endif ()
endif ()
-if (UNIX AND CMAKE_GENERATOR STREQUAL "Ninja")
- if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcolor-diagnostics")
- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fcolor-diagnostics")
- endif ()
- if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color")
- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fdiagnostics-color")
- endif ()
-endif ()
-
-
if (HB_BUILD_TESTS)
## src/ executables
foreach (prog main test test-would-substitute test-size-params test-buffer-serialize hb-ot-tag test-unicode-ranges)
+commit d6fc1d49aa099104a889c96bc9087c21d8fc0960
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Mar 28 21:21:26 2019 -0700
+
+ 2.4.0
+
+ NEWS | 11 +++++++++++
+ configure.ac | 2 +-
+ src/hb-buffer.h | 2 +-
+ src/hb-version.h | 6 +++---
+ 4 files changed, 16 insertions(+), 5 deletions(-)
+
+commit d2db71fdc4764eecf8320cf465ee0e4254146b6e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Mar 28 21:00:58 2019 -0700
+
+ Use internal bsearch() for language tags
+
+ Fixes https://github.com/harfbuzz/harfbuzz/pull/1639
+
+ src/hb-ot-tag.cc | 46 ++++++++++++++++++++++------------------------
+ 1 file changed, 22 insertions(+), 24 deletions(-)
+
+commit 21bb80ebf2e20025a196386cee8fd92dd1eb4597
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Mar 28 20:50:04 2019 -0700
+
+ [indic] Add back medial-consonant to grammar
+
+ Fixes https://github.com/harfbuzz/harfbuzz/issues/1592
+
+ src/hb-ot-shape-complex-indic-machine.hh | 1244 +++++++++++---------
+ src/hb-ot-shape-complex-indic-machine.rl | 5 +-
+ src/hb-ot-shape-complex-indic.cc | 2 +-
+ src/hb-ot-shape-complex-indic.hh | 6 +-
+ .../f75c4b05a0a4d67c1a808081ae3d74a9c66509e8.ttf | Bin 0 -> 1924 bytes
+ .../data/in-house/tests/indic-syllable.tests | 2 +
+ 6 files changed, 672 insertions(+), 587 deletions(-)
+
+commit 5ab6de7a6fbad4c4a954c2c81d216486a5a14f72
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Mar 28 20:23:12 2019 -0700
+
+ [khmer] Add trailing Coeng to syllable grammar
+
+ Fixes https://github.com/harfbuzz/harfbuzz/issues/1541
+
+ src/hb-ot-shape-complex-khmer-machine.hh | 248 ++++++++++-----------
+ src/hb-ot-shape-complex-khmer-machine.rl | 2 +-
+ .../ad01ab2ea1cb1a4d3a2783e2675112ef11ae6404.ttf | Bin 0 -> 1500 bytes
+ test/shaping/data/in-house/tests/khmer-misc.tests | 1 +
+ 4 files changed, 122 insertions(+), 129 deletions(-)
+
+commit 7360265e69a8cdaa9f993c36def2860a79cca49f
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Thu Mar 28 16:57:56 2019 -0700
+
+ [ci] Tweak macos and psvita bots (#1638)
+
+ * Add --with-graphite2 to macOS
+ * Add a dummy ragel script for psvita
+
+ .circleci/config.yml | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit a548d1da78b506cc6460fdde3715f6ef13ccad48
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Thu Mar 28 15:42:45 2019 -0700
+
+ [ci] Use only CircleCI for macOS (#1637)
+
+ .circleci/config.yml | 5 +++--
+ .travis.yml | 18 ------------------
+ 2 files changed, 3 insertions(+), 20 deletions(-)
+
+commit 160b4a2b01e925812fbf0e7db5bc9dcb90dc81cc
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Mar 28 13:44:38 2019 -0700
+
+ Fix shell syntax error
+
+ Fixes https://github.com/harfbuzz/harfbuzz/issues/1612
+
+ src/check-symbols.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 8665b9b0a24e4d46e486057d72c0486b9da16523
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Mar 28 11:11:52 2019 -0700
+
+ Comment
+
+ src/hb.hh | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit a7eed7e41dba8e583a9c740a4ca7ddf53e77de63
+Author: punchcutter <zarijoscha@gmail.com>
+Date: Wed Mar 27 23:12:58 2019 -0700
+
+ Override USE category for Grantha and Tirhuta visargas to allow marks
+
+ src/gen-use-table.py | 3 ++-
+ src/hb-ot-shape-complex-use-table.cc | 4 ++--
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+commit cf040c0fef4a049a75a5ec7972f518b9034bdc76
+Author: Egor Pugin <egor.pugin@gmail.com>
+Date: Thu Mar 28 19:06:12 2019 +0300
+
+ Disable unwanted C++ definitions for MSVC.
+
+ MSVC does not set __cplusplus to the latest standard and also it does not like redefining some keywords.
+
+ src/hb.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 717181c5943c13a682c719dce10bfc3d9cc47e6b
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Wed Mar 27 16:38:39 2019 +0430
+
+ [ci] remove ragel from psvita compile bot
+
+ .circleci/config.yml | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit 08e36c5d8be22b3a7e31f33af9452372dafeacc0
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Wed Mar 27 16:21:47 2019 +0430
+
+ [ci] Don't install ragel on cmake build bot images
+
+ It is not needed anyway
+
+ .circleci/config.yml | 5 -----
+ 1 file changed, 5 deletions(-)
+
+commit ec2a5dc859b03ceb92518aa992e4e9c053b30534
+Author: Behdad Esfahbod <behdad@fb.com>
+Date: Tue Mar 26 16:18:03 2019 -0700
+
+ Use class templates for Null objects
+
+ This allows partial-instantiating custom Null object for template Lookup<T>.
+ Before, this had to be handcoded per instantiation. Apparently I missed
+ adding one for AAT::ankr.lookupTable, so it was getting the wrong (generic)
+ null for Lookup object, which is wrong and unsafe.
+
+ Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=944346
+
+ src/hb-aat-layout-common.hh | 14 ++++------
+ src/hb-null.hh | 31 +++++++++++++--------
+ ...case-minimized-harfbuzz_fuzzer-5748102301614080 | Bin 0 -> 213 bytes
+ 3 files changed, 24 insertions(+), 21 deletions(-)
+
+commit 96f12377942dbe1c6b1d0ffa7d626d99cb265443
+Author: Behdad Esfahbod <behdad@fb.com>
+Date: Tue Mar 26 16:17:45 2019 -0700
+
+ [aat] Add missing check to ankr table
+
+ Isn't absolutely needed. But helps.
+
+ src/hb-aat-layout-ankr-table.hh | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit e5dfffb1ef610a982ed9878fbf3f9ee49cbc3a97
+Author: Behdad Esfahbod <behdad@fb.com>
+Date: Mon Mar 25 15:15:37 2019 -0700
+
+ [docs] Update
+
+ docs/harfbuzz-docs.xml | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 0dd3fdf9d227f9bd79f395078f8e58dcfc32d1bf
+Author: Behdad Esfahbod <behdad@fb.com>
+Date: Mon Mar 25 15:08:14 2019 -0700
+
+ Update ChangeLog generation
+
+ Let's see if I can make a release on Mac...
+
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 2d9034491eca0a63db82d3801f05c067a5241b7d
+Author: Qunxin Liu <qxliu@google.com>
+Date: Tue Mar 26 10:37:24 2019 -0700
+
+ completely remove lines that are commented out
+
+ src/hb-subset-plan.cc | 6 ------
+ src/hb-subset-plan.hh | 3 ---
+ 2 files changed, 9 deletions(-)
+
+commit 3147133b6173487c26813a2a406aebd067b53fbf
+Author: Qunxin Liu <qxliu@google.com>
+Date: Tue Mar 26 09:15:56 2019 -0700
+
+ update arguments in_populate_gids_to_retain() and _create_old_gid_to_new_gid_map()
+ so they don't use deprecated variable
+
+ src/hb-subset-plan.cc | 36 ++++++++++++++++++------------------
+ 1 file changed, 18 insertions(+), 18 deletions(-)
+
+commit 79a6c258497e80be15245a7b576e34443d9f7bff
+Author: Qunxin Liu <qxliu@google.com>
+Date: Mon Mar 25 19:59:37 2019 -0700
+
+ try to remove deprecated variable from struct definition
+
+ src/hb-subset-plan.cc | 9 +++++----
+ src/hb-subset-plan.hh | 2 +-
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+commit bcb4e505d6ffe33e3268a06698e75d6be0e64957
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Fri Mar 15 13:46:25 2019 -0700
+
+ cff2 subset fuzzer issues (#1619)
+
+ * add check to FDArray::serialize
+
+ * add test files
+
+ * fix off by one
+
+ src/hb-ot-cff-common.hh | 1 +
+ ...z-testcase-minimized-hb-subset-fuzzer-5739000398086144 | Bin 0 -> 620 bytes
+ ...z-testcase-minimized-hb-subset-fuzzer-5760768497156096 | Bin 0 -> 210 bytes
+ ...z-testcase-minimized-hb-subset-fuzzer-5764268627066880 | Bin 0 -> 687 bytes
+ 4 files changed, 1 insertion(+)
+
+commit 8aaab78efcac81a05ec919be13792c98741ea1b5
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Thu Mar 14 16:49:42 2019 -0700
+
+ Allow zero length ranges in sanitization (#1617)
+
+ Fixes fvar table sanitization where there are no named instance
+ by allowing zero length ranges starting from Null() address.
+
+ Fixes #1607
+
+ src/hb-machinery.hh | 30 ++++++++++++++++--------------
+ test/api/fonts/Zycon.ttf | Bin 0 -> 21036 bytes
+ test/api/test-ot-face.c | 9 +++++++++
+ 3 files changed, 25 insertions(+), 14 deletions(-)
+
+commit b1dfb8c850f36d4065190a779a6e3342a5fbb593
+Author: Khaled Hosny <khaledhosny@eglug.org>
+Date: Thu Mar 14 21:41:25 2019 +0200
+
+ [ci] Cache FreeType build on Travis
+
+ .ci/build-freetype.sh | 17 +++++++++++++++++
+ .travis.yml | 18 ++++++++++++------
+ 2 files changed, 29 insertions(+), 6 deletions(-)
+
+commit 7de9f92ee9ced6f4c176459cf25f4ca931ca5ceb
+Author: David Corbett <corbett.dav@husky.neu.edu>
+Date: Tue Mar 12 19:30:47 2019 -0400
+
+ Categorize U+09FC as Consonant_Placeholder
+
+ src/hb-ot-shape-complex-indic.hh | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 8b1eaecd9485fe504af364db1537bb04852b265c
+Author: Khaled Hosny <khaledhosny@eglug.org>
+Date: Wed Mar 13 13:21:12 2019 +0200
+
+ [ci] Simplify and fix Travis CI macOS build
+
+ .travis.yml | 16 +++++++++-------
+ 1 file changed, 9 insertions(+), 7 deletions(-)
+
+commit e52ec3fc23c2d5a881849f047885e0423bd74740
+Author: Behdad Esfahbod <behdad@fb.com>
+Date: Mon Mar 11 18:09:51 2019 -0700
+
+ Remove redundant hb_ot_layout_lookup_would_substitute_fast
+
+ src/hb-ot-layout.cc | 13 -------------
+ src/hb-ot-layout.hh | 7 -------
+ src/hb-ot-shape-complex-indic.cc | 2 +-
+ src/hb-ot-shape-complex-khmer.cc | 2 +-
+ 4 files changed, 2 insertions(+), 22 deletions(-)
+
+commit c2442c90d6ecfaee987ed8ac6f93a9ac6b07c642
+Author: Khaled Hosny <khaledhosny@eglug.org>
+Date: Tue Mar 12 01:09:27 2019 +0200
+
+ [doc] Add placeholder since version for new flag
+
+ src/hb-buffer.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 8c42f03215097d7c1bae74db7e98315263d3e8a4
+Author: David Corbett <corbett.dav@husky.neu.edu>
+Date: Fri Mar 8 09:46:48 2019 -0500
+
+ Remove obsolete overrides from Indic/USE scripts
+
+ src/gen-indic-table.py | 4 ----
+ src/gen-use-table.py | 30 +++++++-----------------------
+ src/hb-ot-shape-complex-use-table.cc | 2 +-
+ 3 files changed, 8 insertions(+), 28 deletions(-)
+
+commit b38bab86229bc40d9cdf4819d6dc6aab444d0291
+Author: Eric Muller <emuller@amazon.com>
+Date: Tue Feb 12 11:41:16 2019 -0800
+
+ Update generation code for hb-ot-shape-complex-vowel-constraints.cc. Remove 'unlikely'
+
+ src/gen-vowel-constraints.py | 3 +++
+ src/hb-ot-shape-complex-vowel-constraints.cc | 2 +-
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+commit 44a67ddeb878f7639b30d1884e38b1525aab4f4a
+Author: Eric Muller <emuller@amazon.com>
+Date: Sun Feb 10 04:31:41 2019 -0800
+
+ Fix coding style.
+
+ src/hb-ot-shape-complex-hangul.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 30d7c40f8ce9f47d733b1f43a93f20739772859e
+Author: Eric Muller <emuller@amazon.com>
+Date: Sat Feb 9 02:55:27 2019 -0800
+
+ Add a flag to hb_buffer_t to prevent the insertion of dotted circles on incorrect character sequences.
+
+ Current behavior unchanged if this flag is not set (and it isn't by default).
+
+ src/hb-buffer.h | 7 ++++++-
+ src/hb-ot-shape-complex-hangul.cc | 3 ++-
+ src/hb-ot-shape-complex-indic.cc | 3 +++
+ src/hb-ot-shape-complex-khmer.cc | 3 +++
+ src/hb-ot-shape-complex-myanmar.cc | 3 +++
+ src/hb-ot-shape-complex-use.cc | 3 +++
+ src/hb-ot-shape-complex-vowel-constraints.cc | 3 +++
+ src/hb-ot-shape.cc | 3 +++
+ 8 files changed, 26 insertions(+), 2 deletions(-)
+
+commit 8b6eb6cf465032d0ca747f4b75f6e9155082bc45
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Fri Mar 8 01:33:41 2019 +0330
+
+ Add a macOS 10.14.3 fonts tests (#1608)
+
+ .circleci/config.yml | 11 +++++++++++
+ test/shaping/data/in-house/tests/macos.tests | 19 +++++++++++++++++++
+ 2 files changed, 30 insertions(+)
+
+commit e723c04de1b3dcd96e6a70baf09e3ae2ddbbc0bf
+Author: David Corbett <corbett.dav@husky.neu.edu>
+Date: Wed Mar 6 12:37:25 2019 -0500
+
+ Update to Unicode 12.0.0
+
+ src/gen-use-table.py | 1 -
+ src/gen-vowel-constraints.py | 1 +
+ src/hb-common.h | 8 +
+ src/hb-ot-shape-complex-arabic-table.hh | 14 +-
+ src/hb-ot-shape-complex-indic-table.cc | 56 +-
+ src/hb-ot-shape-complex-use-table.cc | 49 +-
+ src/hb-ot-shape-complex-vowel-constraints.cc | 4 +-
+ src/hb-ot-shape-complex.hh | 3 +
+ src/hb-ot-tag-table.hh | 12 +-
+ src/hb-ucdn.cc | 4 +
+ src/hb-ucdn/ucdn.h | 11 +
+ src/hb-ucdn/ucdn_db.h | 2998 +++++++++++++-------------
+ src/hb-unicode-emoji-table.hh | 6 +-
+ 13 files changed, 1631 insertions(+), 1536 deletions(-)
+
+commit 2f125b0fa763c3be7d8d74489c027f7155607756
+Author: Adrian Wong <adrianwjw@gmail.com>
+Date: Wed Feb 13 21:04:46 2019 +1100
+
+ [indic] Remove superfluous ZWNJ check in final reorder of pre-base matras
+
+ src/hb-ot-shape-complex-indic.cc | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+commit d936ad4582a0017cf88406372d7c08b9896beed6
+Author: Stephan Bergmann <sbergman@redhat.com>
+Date: Tue Mar 5 17:18:57 2019 +0100
+
+ Fix hb_atomic_* variants based on C++11 atomics
+
+ I stumbled over this when trying to upgrade the version of HarfBuzz used by
+ LibreOffice to 3.2.1 (see <https://gerrit.libreoffice.org/plugins/gitiles/core/
+ +/b7ddc514bff9bdf682abae537f990aa01dc2c0fb%5E!/> "Upgrade to latest
+ HarfBuzz 2.3.1"), where building with MSVC 2017 failed like
+
+ > c:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\unpackedtarball\harfbuzz\src\hb-atomic.hh(272): error C2440: 'reinterpret_cast': cannot convert from 'const int *' to 'std::atomic<int> *'
+ > c:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\unpackedtarball\harfbuzz\src\hb-atomic.hh(272): note: Conversion loses qualifiers
+ > c:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\unpackedtarball\harfbuzz\src\hb-atomic.hh(272): error C2227: left of '->load' must point to class/struct/union/generic type
+
+ (see <https://ci.libreoffice.org/job/gerrit_windows/29916/>).
+
+ I added all the necessary "const" to make building of HarfBuzz 2.3.1 with
+ MSVC 2017 succeed for me. There may be more missing at least conceptually.
+
+ src/hb-atomic.hh | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 731b13e4e9190a45e51f855f19e88869a7718d43
+Author: Martin Hosken <martin_hosken@sil.org>
+Date: Mon Mar 4 11:12:21 2019 +0700
+
+ Fix offset drift in graphite integration
+
+ src/hb-graphite2.cc | 35 +++++++++++++++++++----------------
+ 1 file changed, 19 insertions(+), 16 deletions(-)
+
+commit 8a25868e6a41a3d82782aadb3c7b744ad87d20ff
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Sat Mar 2 03:24:49 2019 +0330
+
+ Minor, remove .editorconfig hack
+
+ As vscode is going to support it soon
+
+ .editorconfig | 7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+commit 4f37ab63de9705d7bf74ee75364747e41b7c06a1
+Author: Garret Rieger <grieger@google.com>
+Date: Thu Feb 28 17:25:05 2019 -0800
+
+ Make hb_subset_input_glyph_set () actually do something.
+
+ src/hb-subset-plan.cc | 3 +++
+ test/api/hb-subset-test.h | 11 ++++++++++-
+ test/api/test-subset-glyf.c | 24 ++++++++++++++++++++++++
+ 3 files changed, 37 insertions(+), 1 deletion(-)
+
+commit 45149eb34f9735b5d690a2a7956adb42b938c8d9
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Fri Feb 22 13:13:42 2019 +0330
+
+ [dwrite] hb_directwrite_face_create, a new API
+
+ It makes a hb_face_t from IDWriteFontFace, useful when using
+ DirectWrite facilities for font selection, loading and rendering
+ but using harfbuzz for shaping.
+
+ src/hb-directwrite.cc | 70 +++++++++++++++++++++++++++++++++++++++++++++++----
+ src/hb-directwrite.h | 5 +++-
+ 2 files changed, 69 insertions(+), 6 deletions(-)
+
+commit 45adc185260f0fa1fa86472aafb7f91f942c567e
+Author: David Corbett <corbett.dav@husky.neu.edu>
+Date: Mon Feb 18 22:30:40 2019 -0500
+
+ Fix or document unsupported font-feature-settings
+
+ src/hb-common.cc | 18 ++++++++++++------
+ util/options.cc | 3 ++-
+ 2 files changed, 14 insertions(+), 7 deletions(-)
+
+commit d66f7e14a0097d8ca54ad9824f7aa7daee6c7f72
+Author: Joël R. Langlois <joel.r.langlois@gmail.com>
+Date: Mon Feb 25 15:26:58 2019 -0500
+
+ Remove Forcing Diagnostic Colours from CMakeLists.txt (#1597)
+
+ Fixes https://github.com/harfbuzz/harfbuzz/issues/1596
+
+ CMakeLists.txt | 12 ------------
+ 1 file changed, 12 deletions(-)
+
+commit 93739242e1aab9b745d0ba3c22c33b4acaf9526c
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Wed Feb 20 13:23:12 2019 -0800
+
+ minor edit
+
+ src/hb-map.hh | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+commit eebc21c8de08d58c806fcd3d0f3a5aedee867776
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Wed Feb 20 12:43:18 2019 -0800
+
+ fix crash in hb_map_t::clear()
+
+ in case called immediately after init()
+
+ src/hb-map.hh | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit a17ed8459ee1e01caf4761f682bcda821bc8e656
+Author: Khaled Hosny <khaledhosny@eglug.org>
+Date: Tue Feb 19 21:14:11 2019 +0200
+
+ [doc] Move hb_variation_t to hb-common section
+
+ docs/harfbuzz-sections.txt | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 9caabc9cf898e1d66921f88890d5b7d46494dc90
+Author: Khaled Hosny <khaledhosny@eglug.org>
+Date: Tue Feb 19 19:27:28 2019 +0200
+
+ [doc] Move feature_t and its function to hb-common
+
+ It is rather confusing to have script, language etc, in hb-common section
+ while feature is in hb-shape section. I keep looking for it in hb-common
+ section then using the API index because I can’t find it there.
+
+ docs/harfbuzz-sections.txt | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit d29c8424c8bfa47c910d0e270f05b5c0a1f803a2
+Author: Evgeniy Reizner <razrfalcon@gmail.com>
+Date: Tue Feb 19 18:35:00 2019 +0200
+
+ Typo (#1588)
+
+ Fixed a small typo.
+ [skip ci]
+
+ src/hb-ot-font.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 6bd4c082e49143d0631881645b81f999347257f8
+Author: Khaled Hosny <khaledhosny@eglug.org>
+Date: Tue Feb 19 02:23:58 2019 +0200
+
+ [doc] Document hb_feature_from_string() syntax
+
+ Copied and edited from the util option documentation. The docbook table
+ syntax is too verbose, but that is the best I can come up with.
+
+ src/hb-common.cc | 35 ++++++++++++++++++++++++++++++++++-
+ 1 file changed, 34 insertions(+), 1 deletion(-)
+
+commit 3da79dd5b92b89fbf062cbe591e6b1ba83083aec
+Merge: 50005501 d8a68728
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Feb 15 15:54:51 2019 -0800
+
+ Merge pull request #1557 from harfbuzz/cff-more-arrayof-fixes
+
+ CFF more arrayof fixes
+
+commit 5000550183022db8c9cfef63a9ed90eb9f37764d
+Merge: 5c2bb1de 90c8bbf9
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Feb 15 15:54:13 2019 -0800
+
+ Merge pull request #1583 from harfbuzz/cff-retain-gids
+
+ [subset] Implement --retain-gids with CFF/CFF2
+
+commit d8a68728a077a8c5fc8ceae19f2866cdc8b70baf
+Merge: 1cb1d5d7 5c2bb1de
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Fri Feb 15 14:48:10 2019 -0800
+
+ Merge branch 'master' into cff-more-arrayof-fixes
+
+commit 90c8bbf98747eb29687471da892b4a34a9236242
+Merge: 6f1dfd08 5c2bb1de
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Fri Feb 15 14:47:38 2019 -0800
+
+ Merge branch 'master' into cff-retain-gids
+
+commit 5c2bb1de8de31fecf0dae2ef905b896e42d39f1d
+Author: Martin <44297768+TheRealMDoerr@users.noreply.github.com>
+Date: Fri Feb 15 19:23:46 2019 +0100
+
+ Support xlclang++ on AIX. (#1584)
+
+ src/hb-atomic.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 28f77361322886360743fdbffd388c9482cf4257
+Author: Behdad Esfahbod <behdad@fb.com>
+Date: Thu Feb 14 11:34:28 2019 -0800
+
+ [CI] Install more packages
+
+ Wish there was a way to streamline this :(.
+
+ .circleci/config.yml | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 1cb1d5d7fb74e9f42dc8361dcdf669ed479d595d
+Merge: 8a568a88 d5287e1b
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Thu Feb 14 10:09:19 2019 -0800
+
+ Merge branch 'master' into cff-more-arrayof-fixes
+
+commit 6f1dfd082cf79488ae6773e7d99172f13575668c
+Merge: b1dbc77f d5287e1b
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Thu Feb 14 10:08:16 2019 -0800
+
+ Merge branch 'master' into cff-retain-gids
+
+commit d5287e1ba40638be5d48178ce3d64557b622b01f
+Author: Behdad Esfahbod <behdad@fb.com>
+Date: Wed Feb 13 23:46:17 2019 -0800
+
+ [CI] Install wget on clang-O3-O0 bot
+
+ .circleci/config.yml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 890d0ee77fecd6aa4f19b663bb2897735a0d4c0b
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Thu Feb 14 00:27:01 2019 +0330
+
+ Minor, use a meaningful naming in template parameter (#1582)
+
+ src/hb-ot-layout.hh | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 8a568a8858b44a81ca43a82761a70bf8d53e7c26
+Merge: c83412e4 1e1d0e63
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Wed Feb 13 11:25:00 2019 -0800
+
+ Merge branch 'master' into cff-more-arrayof-fixes
+
+commit b1dbc77fa62a99047df539663cfd1e8778d2c907
+Merge: c3a3536c 1e1d0e63
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Wed Feb 13 11:24:38 2019 -0800
+
+ Merge branch 'master' into cff-retain-gids
+
+commit 1e1d0e63df405730ed542ae1d729928623addf08
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Wed Feb 13 12:58:01 2019 +0330
+
+ Fix djgpp complains by tweaking templates (#1579)
+
+ For some reasons djgpp doesn't understand "unsigned int" can be same
+ with one of uint*_t anyway so lets do that for it explicitly.
+
+ Just to note, our CI's djgpp is based GCC 7.2.0 and isn't old.
+
+ src/hb-ot-layout.hh | 4 ++--
+ src/hb-ot-shape-complex-arabic.cc | 6 +++---
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+commit c3a3536c9a00a989ebd83d52e67d06525ed669bc
+Merge: bc33c617 85a6d312
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Tue Feb 12 15:10:59 2019 -0800
+
+ Merge branch 'cff-retain-gids' of https://github.com/harfbuzz/harfbuzz into cff-retain-gids
+
+commit bc33c617b85988f4d81312e62a75f92601852c76
+Merge: c6af8461 fdfa3d29
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Tue Feb 12 15:10:50 2019 -0800
+
+ Merge branch 'master' into cff-retain-gids
+
+commit c6af846178bba10af318bcea1e9ac5165ec2aea6
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Tue Feb 12 15:10:43 2019 -0800
+
+ tweaked --desubroutinize to remove hintmask only subrs
+
+ src/hb-subset-cff-common.hh | 26 ++++++++++++++++++++++++--
+ 1 file changed, 24 insertions(+), 2 deletions(-)
+
+commit 85a6d3121a26c9bcbec60d37b64643ff8dc97a0a
+Merge: d9ded069 fdfa3d29
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Mon Feb 11 14:25:21 2019 -0800
+
+ Merge branch 'master' into cff-retain-gids
+
+commit c83412e4cec10f6f6f6ac38f202b3ce373da5daf
+Merge: 1239b6b2 fdfa3d29
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Mon Feb 11 14:16:25 2019 -0800
+
+ Merge branch 'master' into cff-more-arrayof-fixes
+
+commit fdfa3d29b7c347b5038f4f9148428c80dde462ae
+Author: Ken <21211439+kencu@users.noreply.github.com>
+Date: Sun Feb 10 23:46:05 2019 -0800
+
+ hb-coretext.cc: remove TARGET_OS_MAC from test (#1578)
+
+ it is always true when building on APPLE systems
+ and this file only builds on APPLE systems
+
+ src/hb-coretext.cc | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit f55e7bf5835c59e478d6a448327d53027c4e9f4a
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Sun Feb 10 01:08:05 2019 +0330
+
+ [ci] Install 'base-devel' on ArchLinux CI bot
+
+ .circleci/config.yml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 8f4eb919bd0498e997852aa39656adc4c65b3f0e
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Sat Feb 9 16:58:02 2019 +0330
+
+ [ci] Install 'which' in ArchLinux bot
+
+ .circleci/config.yml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 02294349618037f59b32834b49880ca75ed96261
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Sat Feb 9 16:33:28 2019 +0330
+
+ [ci] Speculative fix for Alpine and ArchLinux bots
+
+ .circleci/config.yml | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit d9ded069926bf46a5d8e5edbf5201c98044db78e
+Merge: a5e933eb 84694af7
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Fri Feb 8 14:44:20 2019 -0800
+
+ Merge branch 'master' into cff-retain-gids
+
+commit a5e933eba08ff50ac3beb1055ae952ccc26d0af7
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Fri Feb 8 14:44:13 2019 -0800
+
+ Updated expected/cff-japanese fonts with retained FDs
+
+ ...gular.default.3042,3044,3046,3048,304A,304B.otf | Bin 6324 -> 6356 bytes
+ ...gular.default.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 6568 -> 6564 bytes
+ .../SourceHanSans-Regular.default.61,63,65,6B.otf | Bin 5500 -> 5532 bytes
+ ...gular.default.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 6780 -> 6780 bytes
+ .../SourceHanSans-Regular.default.660E.otf | Bin 5248 -> 5248 bytes
+ ...e-retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin 536352 -> 537992 bytes
+ ...e-retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 690752 -> 692312 bytes
+ ...ular.desubroutinize-retain-gids.61,63,65,6B.otf | Bin 530004 -> 531624 bytes
+ ...e-retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 690868 -> 692496 bytes
+ ...ans-Regular.desubroutinize-retain-gids.660E.otf | Bin 612212 -> 613836 bytes
+ ...esubroutinize.3042,3044,3046,3048,304A,304B.otf | Bin 6248 -> 6272 bytes
+ ...esubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 6432 -> 6456 bytes
+ ...eHanSans-Regular.desubroutinize.61,63,65,6B.otf | Bin 5428 -> 5460 bytes
+ ...esubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 6552 -> 6572 bytes
+ .../SourceHanSans-Regular.desubroutinize.660E.otf | Bin 5196 -> 5224 bytes
+ ...e-retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin 536176 -> 537424 bytes
+ ...e-retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 690500 -> 691692 bytes
+ ...ints-desubroutinize-retain-gids.61,63,65,6B.otf | Bin 529888 -> 531124 bytes
+ ...e-retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 690564 -> 691808 bytes
+ ....drop-hints-desubroutinize-retain-gids.660E.otf | Bin 612108 -> 613348 bytes
+ ...s-retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin 536244 -> 537492 bytes
+ ...s-retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 690596 -> 691788 bytes
+ ...-Regular.drop-hints-retain-gids.61,63,65,6B.otf | Bin 529928 -> 531164 bytes
+ ...-Regular.drop-hints-retain-gids.61,63,65,6B.ttx | 393879 ++++++++++++++++++
+ ...s-retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 690768 -> 692008 bytes
+ ...HanSans-Regular.drop-hints-retain-gids.660E.otf | Bin 612128 -> 613368 bytes
+ ...ar.drop-hints.3042,3044,3046,3048,304A,304B.otf | Bin 6132 -> 6164 bytes
+ ...ar.drop-hints.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 6304 -> 6300 bytes
+ ...ourceHanSans-Regular.drop-hints.61,63,65,6B.otf | Bin 5344 -> 5376 bytes
+ ...ar.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 6472 -> 6472 bytes
+ .../SourceHanSans-Regular.drop-hints.660E.otf | Bin 5140 -> 5140 bytes
+ ...r.retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin 536436 -> 538076 bytes
+ ...r.retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 690860 -> 692420 bytes
+ ...urceHanSans-Regular.retain-gids.61,63,65,6B.otf | Bin 530084 -> 531704 bytes
+ ...r.retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 691076 -> 692700 bytes
+ .../SourceHanSans-Regular.retain-gids.660E.otf | Bin 612236 -> 613860 bytes
+ 36 files changed, 393879 insertions(+)
+
+commit 84694af723bde07cf3231ed2d2e193123f5f73ed
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Fri Feb 8 15:30:17 2019 +0330
+
+ [ci] Disable the just added bot
+
+ Doesn't play well with CircleCI apparently
+
+ https://circleci.com/gh/harfbuzz/harfbuzz/74289
+
+ .circleci/config.yml | 19 ++++++++++---------
+ 1 file changed, 10 insertions(+), 9 deletions(-)
+
+commit 81ae4974e35aa8ca408abd6238eb768f5c948287
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Fri Feb 8 15:18:26 2019 +0330
+
+ [ci] Add a Void Linux bot
+
+ https://voidlinux.org/ is yet another and different distro written from scratch, thus completely eligible to have a bot here!
+
+ Seriously however not that useful yet however but I will try to overload it other tasks later, like our other bots.
+
+ No test yet also, couldn't install cairo-devel, will try to fix that later.
+
+ Their harfbuzz package source: https://github.com/void-linux/void-packages/blob/master/srcpkgs/harfbuzz/template
+
+ .circleci/config.yml | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+commit e2856c2d85eb0f6ce0c780d1889dc9bb05cdc433
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Thu Feb 7 15:32:32 2019 -0800
+
+ retain FDSelect & FDArray with --retain-gids
+
+ so in sync with fonttools behavior
+
+ src/hb-subset-cff-common.cc | 12 ++++--------
+ .../SourceHanSans-Regular.41,4C2E.retaingids.otf | Bin 2604 -> 2736 bytes
+ 2 files changed, 4 insertions(+), 8 deletions(-)
+
+commit 1239b6b2b4430658aea78216a1dcc885724a7ab4
+Merge: 9f80eb01 126abca9
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Thu Feb 7 10:29:40 2019 -0800
+
+ Merge branch 'master' into cff-more-arrayof-fixes
+
+commit a5fa76977b5bdf3bd40ede3cdd0da9c5546557a6
+Merge: 214d0b02 126abca9
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Thu Feb 7 10:28:13 2019 -0800
+
+ Merge branch 'master' into cff-retain-gids
+
+commit 214d0b024b49edd51974ff2c051535ae06de0709
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Thu Feb 7 10:27:43 2019 -0800
+
+ minor change
+
+ src/hb-subset-cff-common.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 126abca98a954f7ec3374d0593fee25f78dc10f3
+Merge: 1e062821 7859decd
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Feb 6 13:36:52 2019 -0800
+
+ Merge pull request #1571 from kencu/cleanostests
+
+ hb-coretext.cc: clean up macosx test
+
+commit 7859decdd02f65dfb3da07bd95742b14b4697638
+Author: Ken Cunningham <kencu@macports.org>
+Date: Tue Feb 5 20:26:49 2019 -0800
+
+ hb-coretext.cc: clean up macosx test
+
+ TARGET_OS_OSX was introduced only in late OS versions
+ so always returns as "0" on older systems.
+
+ if !TARGET_OS_IPHONE can work, as it returns as !0 on older
+ systems where TARGET_OS_IPHONE is not defined, but is not
+ specific
+
+ if TARGET_OS_MAC && !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
+ is both specific and accurate on all systems.
+
+ src/hb-coretext.cc | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit 9328354a83252a8d8d74fe424ab3894d398b0bd0
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Mon Feb 4 11:28:15 2019 -0800
+
+ separate CFF from TrueType in full font tests
+
+ ...eSansPro-Regular.default.1FC,21,41,20,62,63.otf | Bin
+ .../SourceSansPro-Regular.default.61,62,63.otf | Bin
+ ...ourceSansPro-Regular.default.D7,D8,D9,DA,DE.otf | Bin
+ ...subroutinize-retain-gids.1FC,21,41,20,62,63.otf | Bin
+ ...Regular.desubroutinize-retain-gids.61,62,63.otf | Bin
+ ...r.desubroutinize-retain-gids.D7,D8,D9,DA,DE.otf | Bin
+ ...o-Regular.desubroutinize.1FC,21,41,20,62,63.otf | Bin
+ ...urceSansPro-Regular.desubroutinize.61,62,63.otf | Bin
+ ...nsPro-Regular.desubroutinize.D7,D8,D9,DA,DE.otf | Bin
+ ...subroutinize-retain-gids.1FC,21,41,20,62,63.otf | Bin
+ ...p-hints-desubroutinize-retain-gids.61,62,63.otf | Bin
+ ...s-desubroutinize-retain-gids.D7,D8,D9,DA,DE.otf | Bin
+ ...rop-hints-desubroutinize.1FC,21,41,20,62,63.otf | Bin
+ ...-Regular.drop-hints-desubroutinize.61,62,63.otf | Bin
+ ...ar.drop-hints-desubroutinize.D7,D8,D9,DA,DE.otf | Bin
+ ...r.drop-hints-retain-gids.1FC,21,41,20,62,63.otf | Bin
+ ...Pro-Regular.drop-hints-retain-gids.61,62,63.otf | Bin
+ ...gular.drop-hints-retain-gids.D7,D8,D9,DA,DE.otf | Bin
+ ...nsPro-Regular.drop-hints.1FC,21,41,20,62,63.otf | Bin
+ .../SourceSansPro-Regular.drop-hints.61,62,63.otf | Bin
+ ...ceSansPro-Regular.drop-hints.D7,D8,D9,DA,DE.otf | Bin
+ ...sPro-Regular.retain-gids.1FC,21,41,20,62,63.otf | Bin
+ .../SourceSansPro-Regular.retain-gids.61,62,63.otf | Bin
+ ...eSansPro-Regular.retain-gids.D7,D8,D9,DA,DE.otf | Bin
+ ...gular.default.3042,3044,3046,3048,304A,304B.otf | Bin
+ ...gular.default.3042,3044,3046,73E0,5EA6,8F38.otf | Bin
+ .../SourceHanSans-Regular.default.61,63,65,6B.otf | Bin
+ ...gular.default.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin
+ .../SourceHanSans-Regular.default.660E.otf | Bin
+ ...e-retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin
+ ...e-retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin
+ ...ular.desubroutinize-retain-gids.61,63,65,6B.otf | Bin
+ ...e-retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin
+ ...ans-Regular.desubroutinize-retain-gids.660E.otf | Bin
+ ...esubroutinize.3042,3044,3046,3048,304A,304B.otf | Bin
+ ...esubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf | Bin
+ ...eHanSans-Regular.desubroutinize.61,63,65,6B.otf | Bin
+ ...esubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin
+ .../SourceHanSans-Regular.desubroutinize.660E.otf | Bin
+ ...e-retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin
+ ...e-retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin
+ ...ints-desubroutinize-retain-gids.61,63,65,6B.otf | Bin
+ ...e-retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin
+ ....drop-hints-desubroutinize-retain-gids.660E.otf | Bin
+ ...esubroutinize.3042,3044,3046,3048,304A,304B.otf | Bin
+ ...esubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf | Bin
+ ...gular.drop-hints-desubroutinize.61,63,65,6B.otf | Bin
+ ...esubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin
+ ...Sans-Regular.drop-hints-desubroutinize.660E.otf | Bin
+ ...s-retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin
+ ...s-retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin
+ ...-Regular.drop-hints-retain-gids.61,63,65,6B.otf | Bin
+ ...s-retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin
+ ...HanSans-Regular.drop-hints-retain-gids.660E.otf | Bin
+ ...ar.drop-hints.3042,3044,3046,3048,304A,304B.otf | Bin
+ ...ar.drop-hints.3042,3044,3046,73E0,5EA6,8F38.otf | Bin
+ ...ourceHanSans-Regular.drop-hints.61,63,65,6B.otf | Bin
+ ...ar.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin
+ .../SourceHanSans-Regular.drop-hints.660E.otf | Bin
+ ...r.retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin
+ ...r.retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin
+ ...urceHanSans-Regular.retain-gids.61,63,65,6B.otf | Bin
+ ...r.retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin
+ .../SourceHanSans-Regular.retain-gids.660E.otf | Bin
+ test/subset/data/tests/cff-full-font.tests | 18 +++++++++++++++++
+ test/subset/data/tests/cff-japanese.tests | 22 +++++++++++++++++++++
+ test/subset/data/tests/full-font.tests | 7 -------
+ test/subset/data/tests/japanese.tests | 7 -------
+ test/subset/subset_test_suite.py | 7 +------
+ 69 files changed, 41 insertions(+), 20 deletions(-)
+
+commit ec30a8a9acf7be9918a8a6bff41696127090173f
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Fri Feb 1 15:58:03 2019 -0800
+
+ removed unused test data
+
+ ...ts.desubroutinize-retain-gids.1FC,21,41,20,62,63.otf | Bin 15456 -> 0 bytes
+ ...r.drop-hints.desubroutinize-retain-gids.61,62,63.otf | Bin 13036 -> 0 bytes
+ ...-hints.desubroutinize-retain-gids.D7,D8,D9,DA,DE.otf | Bin 16656 -> 0 bytes
+ ...nsPro-Regular.drop-hints.desubroutinize.61,62,63.otf | Bin 3276 -> 0 bytes
+ ...-hints.desubroutinize.retain-gids.D7,D8,D9,DA,DE.otf | Bin 34560 -> 0 bytes
+ ...ro-Regular.drop-hints.retain-gids.D7,D8,D9,DA,DE.otf | Bin 34576 -> 0 bytes
+ 6 files changed, 0 insertions(+), 0 deletions(-)
+
+commit 30b781f20a8e386732f8e2858a22665d7af98061
+Merge: c1286265 1e062821
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Fri Feb 1 14:50:34 2019 -0800
+
+ Merge branch 'master' into cff-retain-gids
+
+commit c12862657f24b6c197e23d99a4edbdfcf3c90653
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Fri Feb 1 14:50:01 2019 -0800
+
+ added desubroutinize & retain-gids full test cases with CFF fonts
+
+ and CFF retain-gids fixes
+
+ src/hb-subset-cff1.cc | 44 +++++++++------------
+ .../SourceHanSans-Regular.41,4C2E.retaingids.otf | Bin 2600 -> 2604 bytes
+ ...subroutinize-retain-gids.1FC,21,41,20,62,63.otf | Bin 0 -> 33516 bytes
+ ...Regular.desubroutinize-retain-gids.61,62,63.otf | Bin 0 -> 31080 bytes
+ ...r.desubroutinize-retain-gids.D7,D8,D9,DA,DE.otf | Bin 0 -> 34708 bytes
+ ...subroutinize-retain-gids.1FC,21,41,20,62,63.otf | Bin 0 -> 33352 bytes
+ ...p-hints-desubroutinize-retain-gids.61,62,63.otf | Bin 0 -> 30956 bytes
+ ...s-desubroutinize-retain-gids.D7,D8,D9,DA,DE.otf | Bin 0 -> 34560 bytes
+ ...op-hints-desubroutinize.1FC,21,41,20,62,63.otf} | Bin
+ ...-Regular.drop-hints-desubroutinize.61,62,63.otf | Bin 0 -> 3288 bytes
+ ...r.drop-hints-desubroutinize.D7,D8,D9,DA,DE.otf} | Bin
+ ...r.drop-hints-retain-gids.1FC,21,41,20,62,63.otf | Bin 0 -> 33448 bytes
+ ...Pro-Regular.drop-hints-retain-gids.61,62,63.otf | Bin 0 -> 31028 bytes
+ ...gular.drop-hints-retain-gids.D7,D8,D9,DA,DE.otf | Bin 0 -> 34576 bytes
+ ...subroutinize-retain-gids.1FC,21,41,20,62,63.otf | Bin 0 -> 15456 bytes
+ ...p-hints.desubroutinize-retain-gids.61,62,63.otf | Bin 0 -> 13036 bytes
+ ...s.desubroutinize-retain-gids.D7,D8,D9,DA,DE.otf | Bin 0 -> 16656 bytes
+ ...s.desubroutinize.retain-gids.D7,D8,D9,DA,DE.otf | Bin 0 -> 34560 bytes
+ ...gular.drop-hints.retain-gids.D7,D8,D9,DA,DE.otf | Bin 0 -> 34576 bytes
+ ...sPro-Regular.retain-gids.1FC,21,41,20,62,63.otf | Bin 0 -> 33668 bytes
+ .../SourceSansPro-Regular.retain-gids.61,62,63.otf | Bin 0 -> 31180 bytes
+ ...eSansPro-Regular.retain-gids.D7,D8,D9,DA,DE.otf | Bin 0 -> 34724 bytes
+ ...e-retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> 536352 bytes
+ ...e-retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> 690752 bytes
+ ...ular.desubroutinize-retain-gids.61,63,65,6B.otf | Bin 0 -> 530004 bytes
+ ...e-retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> 690868 bytes
+ ...ans-Regular.desubroutinize-retain-gids.660E.otf | Bin 0 -> 612212 bytes
+ .../SourceHanSans-Regular.desubroutinize..otf | Bin 2340 -> 0 bytes
+ ...e-retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> 536176 bytes
+ ...e-retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> 690500 bytes
+ ...ints-desubroutinize-retain-gids.61,63,65,6B.otf | Bin 0 -> 529888 bytes
+ ...e-retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> 690564 bytes
+ ....drop-hints-desubroutinize-retain-gids.660E.otf | Bin 0 -> 612108 bytes
+ ...subroutinize.3042,3044,3046,3048,304A,304B.otf} | Bin 6076 -> 6096 bytes
+ ...subroutinize.3042,3044,3046,73E0,5EA6,8F38.otf} | Bin 6180 -> 6204 bytes
+ ...ular.drop-hints-desubroutinize.61,63,65,6B.otf} | Bin 5312 -> 5344 bytes
+ ...subroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf} | Bin 6248 -> 6268 bytes
+ ...ans-Regular.drop-hints-desubroutinize.660E.otf} | Bin 5140 -> 5120 bytes
+ ...s-retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> 536244 bytes
+ ...s-retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> 690596 bytes
+ ...-Regular.drop-hints-retain-gids.61,63,65,6B.otf | Bin 0 -> 529928 bytes
+ ...s-retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> 690768 bytes
+ ...HanSans-Regular.drop-hints-retain-gids.660E.otf | Bin 0 -> 612128 bytes
+ ...eHanSans-Regular.drop-hints.desubroutinize..otf | Bin 2188 -> 0 bytes
+ ...r.retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> 536436 bytes
+ ...r.retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> 690860 bytes
+ ...urceHanSans-Regular.retain-gids.61,63,65,6B.otf | Bin 0 -> 530084 bytes
+ ...r.retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> 691076 bytes
+ .../SourceHanSans-Regular.retain-gids.660E.otf | Bin 0 -> 612236 bytes
+ .../data/profiles/desubroutinize-retain-gids.txt | 2 +
+ .../drop-hints-desubroutinize-retain-gids.txt | 3 ++
+ test/subset/data/tests/full-font.tests | 6 +++
+ test/subset/data/tests/japanese.tests | 6 +++
+ test/subset/subset_test_suite.py | 2 +-
+ 54 files changed, 36 insertions(+), 27 deletions(-)
+
+commit f2908b4d8f9b02ce06d3f648c3f08757797073b6
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Thu Jan 31 14:16:37 2019 -0800
+
+ Implement subset --regain-gids option with CFF1/2
+
+ along with api tests & expected results
+
+ src/hb-subset-cff-common.cc | 17 +++-
+ src/hb-subset-cff-common.hh | 91 +++++++++++++--------
+ src/hb-subset-cff1.cc | 89 ++++++++++++--------
+ src/hb-subset-cff2.cc | 30 ++++---
+ test/api/fonts/AdobeVFPrototype.ac.retaingids.otf | Bin 0 -> 7000 bytes
+ .../SourceHanSans-Regular.41,4C2E.retaingids.otf | Bin 0 -> 2600 bytes
+ .../fonts/SourceSansPro-Regular.ac.retaingids.otf | Bin 0 -> 1708 bytes
+ test/api/test-subset-cff1.c | 48 +++++++++++
+ test/api/test-subset-cff2.c | 24 ++++++
+ 9 files changed, 217 insertions(+), 82 deletions(-)
+
+commit 1e06282105a2d579aab32094cc7abc10ed231978
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jan 31 13:56:58 2019 -0800
+
+ Adjust hb_is_signed<>
+
+ Fixes https://github.com/harfbuzz/harfbuzz/issues/1535
+
+ src/hb-dsalgs.hh | 27 +++++++++------------------
+ 1 file changed, 9 insertions(+), 18 deletions(-)
+
+commit 21ea1c91529471c05e03b6db61df256f24fa23c1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jan 31 13:49:18 2019 -0800
+
+ Remove stale comment
+
+ src/hb-dsalgs.hh | 5 -----
+ 1 file changed, 5 deletions(-)
+
+commit 9f80eb0177e527253818ad9171fc75fb565318cb
+Merge: b3799007 d14d2c20
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Thu Jan 31 12:54:36 2019 -0800
+
+ Merge branch 'master' into cff-more-arrayof-fixes
+
+commit d14d2c20b05c5acf0a6f9c6dc36a7b8d8966153e
+Merge: acf5f0a3 dc04261a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jan 30 18:36:57 2019 -0500
+
+ Merge pull request #1567 from googlefonts/fuzzer
+
+ [subset] Update the subset fuzzer to get options to use from test case.
+
+commit dc04261a5b8408bcfde16090ddf91568c3d8dae7
+Author: Garret Rieger <grieger@google.com>
+Date: Wed Jan 30 15:23:19 2019 -0800
+
+ [subset] Update the subset fuzzer to determine which options to use based on data in the fuzzing test case.
+ Add support for toggling retain_gids.
+
+ test/fuzzing/hb-subset-fuzzer.cc | 32 +++++++++++++++++++-------------
+ 1 file changed, 19 insertions(+), 13 deletions(-)
+
+commit acf5f0a3aff0e128509b0979f629edf0596fcee5
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jan 30 15:10:23 2019 -0800
+
+ [configure] Fix up
+
+ configure.ac | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+commit 6b834c1c76b867ef32747202a755255d2f360f1e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jan 30 15:06:22 2019 -0800
+
+ [configure] Print compiler version info in report
+
+ configure.ac | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+commit d983c529b66b530715e9c813c69e699b1d8029d3
+Merge: 55d1d7c8 e6ffcc59
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jan 30 17:17:59 2019 -0500
+
+ Merge pull request #1564 from googlefonts/retain_gids
+
+ [subset] Add --retain-gids option to the subsetter.
+
+commit 55d1d7c8bcd8d97c4e618e5dd21f13df50b10ce8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jan 30 13:54:15 2019 -0800
+
+ 2.3.1
+
+ NEWS | 7 +++++++
+ configure.ac | 2 +-
+ src/hb-version.h | 4 ++--
+ 3 files changed, 10 insertions(+), 3 deletions(-)
+
+commit e6ffcc5904ab88143cad0c7a7a4c990147af278b
+Author: Garret Rieger <grieger@google.com>
+Date: Mon Jan 28 18:12:19 2019 -0800
+
+ [subset] Add expected files for retain-gids integration tests.
+
+ ...oboto-Regular.abc.drop-hints-retain-gids.61,62,63.ttf | Bin 0 -> 924 bytes
+ .../Roboto-Regular.abc.drop-hints-retain-gids.61,63.ttf | Bin 0 -> 856 bytes
+ .../Roboto-Regular.abc.drop-hints-retain-gids.61.ttf | Bin 0 -> 744 bytes
+ .../Roboto-Regular.abc.drop-hints-retain-gids.62.ttf | Bin 0 -> 712 bytes
+ .../Roboto-Regular.abc.drop-hints-retain-gids.63.ttf | Bin 0 -> 716 bytes
+ .../basics/Roboto-Regular.abc.retain-gids.61,62,63.ttf | Bin 0 -> 2168 bytes
+ .../basics/Roboto-Regular.abc.retain-gids.61,63.ttf | Bin 0 -> 1996 bytes
+ .../basics/Roboto-Regular.abc.retain-gids.61.ttf | Bin 0 -> 1808 bytes
+ .../basics/Roboto-Regular.abc.retain-gids.62.ttf | Bin 0 -> 1756 bytes
+ .../basics/Roboto-Regular.abc.retain-gids.63.ttf | Bin 0 -> 1732 bytes
+ test/subset/data/profiles/retain-gids.txt | 1 -
+ 11 files changed, 1 deletion(-)
+
+commit 198859bb3702e45cb271dd51b7231f10d01576be
+Author: Garret Rieger <grieger@google.com>
+Date: Mon Jan 28 18:10:56 2019 -0800
+
+ [subset] For retain gids don't truncate glyphs past the highest requested subset glyph.
+
+ src/hb-subset-plan.cc | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+commit 490d52f908aaa4722e71a4a682de20e94d89ad00
+Author: Garret Rieger <grieger@google.com>
+Date: Mon Jan 28 17:43:42 2019 -0800
+
+ [subset] Add retain-gids option to hb-subset executable.
+
+ util/hb-subset.cc | 1 +
+ util/options.cc | 1 +
+ util/options.hh | 2 ++
+ 3 files changed, 4 insertions(+)
+
+commit a903f9c228d1f3e8065f89de16e50027d6018e58
+Author: Garret Rieger <grieger@google.com>
+Date: Mon Jan 28 17:43:11 2019 -0800
+
+ [subset] Add some subsetting integration tests covering retain gids.
+
+ test/subset/data/profiles/drop-hints-retain-gids.txt | 2 ++
+ test/subset/data/profiles/retain-gids.txt | 2 ++
+ test/subset/data/tests/basics.tests | 2 ++
+ 3 files changed, 6 insertions(+)
+
+commit 05e99c86baa0e95c2bff1c87d601eaf022c9d1f8
+Author: Garret Rieger <grieger@google.com>
+Date: Mon Jan 28 17:05:04 2019 -0800
+
+ [subset] A few small fixes for the new subset plan api.
+
+ src/hb-ot-hdmx-table.hh | 6 +++---
+ src/hb-ot-hmtx-table.hh | 9 +++------
+ src/hb-subset.cc | 2 +-
+ 3 files changed, 7 insertions(+), 10 deletions(-)
+
+commit bdbe047d6ce3d8873c6740500d38d1b0c4e851f8
+Author: Garret Rieger <grieger@google.com>
+Date: Mon Jan 28 16:59:15 2019 -0800
+
+ [subset] Update hb-subset-plan.cc to match hb-subset-plan.hh.
+
+ src/hb-subset-plan.cc | 20 ++++++++++----------
+ src/hb-subset-plan.hh | 1 -
+ 2 files changed, 10 insertions(+), 11 deletions(-)
+
+commit 74c44ffebafe7758937d82524758be8bb4ecc4e2
+Author: Garret Rieger <grieger@google.com>
+Date: Mon Jan 28 16:53:01 2019 -0800
+
+ [subset] Update hb-subset-glyf.cc to use new hb-subset-plan API.
+
+ src/hb-subset-glyf.cc | 57 ++++++++++++++++++++-------------------------------
+ 1 file changed, 22 insertions(+), 35 deletions(-)
+
+commit 4842294b861b9fe322c811abef0ebb0553be2bf0
+Author: Garret Rieger <grieger@google.com>
+Date: Mon Jan 28 16:51:27 2019 -0800
+
+ [subset] Update gsub to use glyphset() method of subset plan.
+
+ src/hb-ot-layout-gsub-table.hh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 853b1f1aa5489b8439c41c30be77ed042c8c89e5
+Author: Garret Rieger <grieger@google.com>
+Date: Mon Jan 28 16:50:56 2019 -0800
+
+ [subset] Correct maxp num glyph's to use new subset plan method.
+
+ src/hb-ot-maxp-table.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 846e05a298bc088f2cd2fe53b75ca531916a56f8
+Author: Garret Rieger <grieger@google.com>
+Date: Mon Jan 28 16:50:20 2019 -0800
+
+ [subset] Re-add glyphs array to subset plan, with new name 'glyphs_deprecated'. Switch CFF subsetting to use it.
+
+ src/hb-subset-cff1.cc | 36 ++++++++++++++++++------------------
+ src/hb-subset-cff2.cc | 12 ++++++------
+ src/hb-subset-plan.hh | 3 +++
+ 3 files changed, 27 insertions(+), 24 deletions(-)
+
+commit 03e88eab5c0f8775ccffc0925532748140d93470
+Author: Garret Rieger <grieger@google.com>
+Date: Mon Jan 28 16:15:06 2019 -0800
+
+ Re-implement HMTX/VMTX subsetting. Update it to support glyph renumbering and simplify the implementation.
+
+ src/hb-ot-hmtx-table.hh | 99 +++++++++++++++++++++++++------------------------
+ src/hb-subset-plan.cc | 2 +-
+ src/hb-subset-plan.hh | 2 +-
+ 3 files changed, 53 insertions(+), 50 deletions(-)
+
+commit 925be2922348336335a96d84e606d4bdd9a11110
+Author: Garret Rieger <grieger@google.com>
+Date: Fri Jan 25 18:04:41 2019 -0800
+
+ Update hb-ot-vorg-table and hb-ot-layout-common to use the updated subset plan api.
+
+ src/hb-ot-layout-common.hh | 4 ++--
+ src/hb-ot-vorg-table.hh | 30 +++++++++++++++++++-----------
+ 2 files changed, 21 insertions(+), 13 deletions(-)
+
+commit 4af3be6ef8654ae05b331941e6e690ac197fd144
+Author: Garret Rieger <grieger@google.com>
+Date: Fri Jan 25 18:03:47 2019 -0800
+
+ Remove glyph array from subset plan, make num_glyphs and glyphset private.
+
+ src/hb-subset-plan.hh | 51 +++++++++++++++++++++++++++++++++++++++++----------
+ 1 file changed, 41 insertions(+), 10 deletions(-)
+
+commit 23f364429dc9350ee06146bdf0ff73d7035e1d71
+Author: Garret Rieger <grieger@google.com>
+Date: Fri Jan 18 18:33:21 2019 -0800
+
+ [subset] Fix hdmx subsetting when retain gids is enabled.
+
+ src/hb-ot-hdmx-table.hh | 19 +++++++++++--------
+ src/hb-subset-plan.cc | 10 ++++++++++
+ src/hb-subset-plan.hh | 16 +++++++++++++++-
+ 3 files changed, 36 insertions(+), 9 deletions(-)
+
+commit 2da1654aefbe4f8e5f1320f1c061adbf90963951
+Author: Garret Rieger <grieger@google.com>
+Date: Fri Jan 18 17:49:35 2019 -0800
+
+ [subset] Compute num_glyphs during subset plan construction.
+ Update maxp to use the correct num glyphs.
+
+ src/hb-ot-maxp-table.hh | 2 +-
+ src/hb-subset-glyf.cc | 6 +-----
+ src/hb-subset-plan.cc | 16 +++++++++++++---
+ src/hb-subset-plan.hh | 1 +
+ 4 files changed, 16 insertions(+), 9 deletions(-)
+
+commit ccc59dc6121e98ed8d610350b43218e540f61f25
+Author: Garret Rieger <grieger@google.com>
+Date: Fri Jan 18 17:36:32 2019 -0800
+
+ [subset] Add unit test for glyf subsetting and retain gids.
+
+ test/api/fonts/Roboto-Regular.ac.retaingids.ttf | Bin 0 -> 2284 bytes
+ test/api/test-subset-glyf.c | 26 ++++++++++++++++++++++++
+ 2 files changed, 26 insertions(+)
+
+commit 96b038f375bcfcfdf76c75200ca02758ea7a4ff6
+Author: Garret Rieger <grieger@google.com>
+Date: Fri Jan 18 16:41:08 2019 -0800
+
+ [subset] fix failure to init instruction ranges values for an invalid glyph.
+
+ src/hb-subset-glyf.cc | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit 4b1ac3a2fa0a5842b5d45d287fe33e5050ffda3f
+Author: Garret Rieger <grieger@google.com>
+Date: Fri Jan 18 15:11:26 2019 -0800
+
+ [subset] Do some refactoring in hb-subset-glyf.cc.
+ - Extract code out into helper methods in several places.
+ - Bundle loca address, size and is short into a struct.
+
+ src/hb-subset-glyf.cc | 264 ++++++++++++++++++++++++++++----------------------
+ 1 file changed, 148 insertions(+), 116 deletions(-)
+
+commit b7f971884ed838636be85de216bf60ca4a28ccb9
+Author: Garret Rieger <grieger@google.com>
+Date: Thu Jan 17 18:55:56 2019 -0800
+
+ Add retain_gids option to subset input. Update glyf and loca handling to respect retain_gids.
+
+ src/hb-subset-glyf.cc | 39 ++++++++++++++++++++++++++++++---------
+ src/hb-subset-input.cc | 27 +++++++++++++++++++++++++++
+ src/hb-subset-input.hh | 1 +
+ src/hb-subset-plan.cc | 14 ++++++++++----
+ src/hb-subset.h | 6 ++++++
+ 5 files changed, 74 insertions(+), 13 deletions(-)
+
+commit b3799007554f2909170df941b07c72f7dc02dfcd
+Merge: c6856443 fe532923
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Tue Jan 29 12:19:57 2019 -0800
+
+ Merge branch 'master' into cff-more-arrayof-fixes
+
commit fe532923101586e316b300d419a337d357cd93da
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Mon Jan 28 20:47:58 2019 -0500
[CI] Peg CircleCI badge link to master branch
-
+
[skip ci]
README.md | 2 +-
Date: Mon Jan 28 20:43:43 2019 -0500
[ci] Peg build status badges to master branch
-
+
[skip ci]
README.md | 6 +++---
Date: Mon Jan 28 20:38:15 2019 -0500
Switch README / README.md
-
+
[skip ci]
README | 19 +------------------
Date: Mon Jan 28 14:09:59 2019 -0500
Fix warning
-
- c:\projects\harfbuzz\src\hb-ot-color-cbdt-table.hh(59): warning C4146:
- unary minus operator applied to unsigned type, result still unsigned
- [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
+
+ c:\projects\harfbuzz\src\hb-ot-color-cbdt-table.hh(59): warning C4146: unary minus operator applied to unsigned type, result still unsigned [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
src/hb-ot-color-cbdt-table.hh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
test/shaping/data/in-house/tests/macos.tests | 2 ++
1 file changed, 2 insertions(+)
+commit c685644386d1c88d6df6e024e56d61c792d94418
+Merge: 0bd0a331 e970de48
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Thu Jan 24 13:19:18 2019 -0800
+
+ Merge branch 'master' into cff-more-arrayof-fixes
+
commit e970de48bcbdccd29350f331288c0a98f7846c16
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Jan 24 18:16:17 2019 +0100
Date: Thu Jan 24 18:12:25 2019 +0100
[AAT] Use a ring buffer for ligature stack
-
- I think Apple does very similarly, but probably with a stack size
- of 16.
+
+ I think Apple does very similarly, but probably with a stack size of 16.
We do it with a stack size that is currently set to 64.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1531
src/hb-aat-layout-morx-table.hh | 15 ++++++---------
Date: Thu Jan 24 18:01:07 2019 +0100
[AAT] Handle transition errors during machine operation
-
- Before we used to give up. Now, just ignore error and continue
- processing.
-
+
+ Before we used to give up. Now, just ignore error and continue processing.
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1531
src/hb-aat-layout-common.hh | 3 +--
src/hb-aat-layout-morx-table.hh | 34 +++++++++++++---------------------
3 files changed, 21 insertions(+), 37 deletions(-)
+commit 0bd0a3311cfded5ffa4d9d488d404558cf65e8ed
+Merge: 12cd3171 f60282c5
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Thu Jan 24 08:53:28 2019 -0800
+
+ Merge branch 'master' into cff-more-arrayof-fixes
+
commit e234bb6a428cd6c8ddf57eb078cd51b9d1f25ba8
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Jan 24 17:23:11 2019 +0100
src/hb-aat-layout-common.hh | 12 ++++----
src/hb-aat-layout-kerx-table.hh | 38 +++++++++++------------
- src/hb-aat-layout-morx-table.hh | 68
- ++++++++++++++++++++---------------------
+ src/hb-aat-layout-morx-table.hh | 68 ++++++++++++++++++++---------------------
3 files changed, 59 insertions(+), 59 deletions(-)
commit 299eca0c3b28c99add006420bc667431d874fb2e
Date: Thu Jan 24 16:29:09 2019 +0100
More pragma control
-
+
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=924848
src/hb.hh | 16 +++++++++++++++-
Date: Thu Jan 24 16:08:33 2019 +0100
Form cluster for Emoji sub-region tag sequences
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1556
- src/hb-ot-shape.cc | 13
- +++++++++++++
- .../fonts/8d9c4b193808b8bde94389ba7831c1fc6f9e794e.ttf | Bin 0 ->
- 1548 bytes
+ src/hb-ot-shape.cc | 13 +++++++++++++
+ .../fonts/8d9c4b193808b8bde94389ba7831c1fc6f9e794e.ttf | Bin 0 -> 1548 bytes
test/shaping/data/in-house/tests/cluster.tests | 1 +
3 files changed, 14 insertions(+)
Date: Thu Jan 24 12:08:23 2019 +0100
Adjust mark offsets when zeroing from fallback mark positioning code
-
+
Adjust tests.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1532
- src/hb-ot-shape-fallback.cc | 31
- +++++++++++++++-------
+ src/hb-ot-shape-fallback.cc | 31 +++++++++++++++-------
src/hb-ot-shape-fallback.hh | 3 ++-
src/hb-ot-shape.cc | 3 ++-
.../in-house/tests/arabic-fallback-shaping.tests | 2 +-
.../data/in-house/tests/fallback-positioning.tests | 4 +--
6 files changed, 30 insertions(+), 15 deletions(-)
+commit 12cd3171ba3b84eff9f359778fabcab8f66ce36e
+Merge: 261a7421 36fb2b4d
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Wed Jan 23 14:05:42 2019 -0800
+
+ Merge branch 'master' into cff-more-arrayof-fixes
+
+commit 261a7421814d83f84d8def046b7108a245347461
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Wed Jan 23 14:04:29 2019 -0800
+
+ more rewriting with ArrayOf<>
+
+ CFF1 Encoding0, Encoding1, CFF1SuppEncData
+
+ src/hb-ot-cff1-table.hh | 51 +++++++++++++++++++++++--------------------------
+ 1 file changed, 24 insertions(+), 27 deletions(-)
+
commit 36fb2b4da9718a86978fa07c99ba4345f7ca9b4b
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Wed Jan 23 20:53:57 2019 +0100
[AAT] In InsertionChain, set mark to previous-position if inserting
-
+
Fixes MORX-31
src/hb-aat-layout-morx-table.hh | 8 +++++---
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue Jan 22 16:30:07 2019 +0100
- Fix sign-compare error resulted from promoting unsigned integers to
- signed larger ints
-
- Clang and gcc know not to warn in these cases, but not nonmainstream
- compilers
+ Fix sign-compare error resulted from promoting unsigned integers to signed larger ints
+
+ Clang and gcc know not to warn in these cases, but not nonmainstream compilers
src/hb-subset-cff2.cc | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
Date: Tue Jan 22 12:34:05 2019 +0100
Fix cast-align error
-
+
If compiler doesn't inline StructAtOffset, this was an error since we
only disable cast-align at call-site. So, move the cast out.
-
- ../src/hb-machinery.hh: In instantiation of 'const Type&
- StructAtOffset(const void*, unsigned int) [with Type = unsigned int]':
+
+ ../src/hb-machinery.hh: In instantiation of 'const Type& StructAtOffset(const void*, unsigned int) [with Type = unsigned int]':
../src/hb-font.cc:146:85: required from here
- ../src/hb-machinery.hh:63:12: error: cast from 'const char*' to
- 'const unsigned int*' increases required alignment of target type
- [-Werror=cast-align]
- { return * reinterpret_cast<const Type*> ((const char *) P +
- offset); }
+ ../src/hb-machinery.hh:63:12: error: cast from 'const char*' to 'const unsigned int*' increases required alignment of target type [-Werror=cast-align]
+ { return * reinterpret_cast<const Type*> ((const char *) P + offset); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ../src/hb-machinery.hh: In instantiation of 'Type&
- StructAtOffset(void*, unsigned int) [with Type = unsigned int]':
+ ../src/hb-machinery.hh: In instantiation of 'Type& StructAtOffset(void*, unsigned int) [with Type = unsigned int]':
../src/hb-font.cc:147:79: required from here
- ../src/hb-machinery.hh:66:12: error: cast from 'char*' to 'unsigned
- int*' increases required alignment of target type [-Werror=cast-align]
+ ../src/hb-machinery.hh:66:12: error: cast from 'char*' to 'unsigned int*' increases required alignment of target type [-Werror=cast-align]
{ return * reinterpret_cast<Type*> ((char *) P + offset); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Date: Tue Jan 22 12:29:05 2019 +0100
[CI] Remove gcc 4.2 bots
-
+
We don't support that version anymore.
.circleci/config.yml | 25 -------------------------
Date: Tue Jan 22 12:15:23 2019 +0100
Convert all other enum class consts to static constexpr
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1553
src/hb-cff-interp-common.hh | 2 +-
Date: Tue Jan 22 12:11:24 2019 +0100
Convert unsigned enum class consts to static constexpr
-
+
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
src/hb-aat-layout-common.hh | 6 +++---
Date: Tue Jan 22 12:08:57 2019 +0100
Convert tag enum class consts to static constexpr
-
+
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
src/hb-aat-fdsc-table.hh | 2 +-
Date: Tue Jan 22 12:07:43 2019 +0100
Convert boolean enum class consts to static constexpr
-
+
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
src/hb-aat-layout-common.hh | 4 ++--
Remove wrongly added files
- test/api/test-ot-extents-cff | Bin 8574336 ->
- 0 bytes
- .../test-ot-extents-cff.dSYM/Contents/Info.plist | 20
- --------------------
- .../Contents/Resources/DWARF/test-ot-extents-cff | Bin 7650053 ->
- 0 bytes
+ test/api/test-ot-extents-cff | Bin 8574336 -> 0 bytes
+ .../test-ot-extents-cff.dSYM/Contents/Info.plist | 20 --------------------
+ .../Contents/Resources/DWARF/test-ot-extents-cff | Bin 7650053 -> 0 bytes
3 files changed, 20 deletions(-)
commit 380c3cffb9353083913a3bb505c2c62367613096
Date: Sat Jan 19 09:20:46 2019 -0500
Fix sign compare warnings
-
- ../../third_party/harfbuzz-ng/src/src/hb-map.hh(56,45): warning:
- comparison of integers of different signs: 'const hb_codepoint_t'
- (aka 'const unsigned int') and 'hb_map_t::(anonymous enum
- at ../../third_party/harfbuzz-ng/src/src/hb-map.hh:169:3)'
- [-Wsign-compare]
+
+ ../../third_party/harfbuzz-ng/src/src/hb-map.hh(56,45): warning: comparison of integers of different signs: 'const hb_codepoint_t' (aka 'const unsigned int') and 'hb_map_t::(anonymous enum at ../../third_party/harfbuzz-ng/src/src/hb-map.hh:169:3)' [-Wsign-compare]
bool is_unused () const { return key == INVALID; }
src/hb-map.hh | 2 +-
Date: Sat Jan 19 09:18:03 2019 -0500
Fix warning
-
+
warning: '_WIN64' is not defined, evaluates to 0 [-Wundef]
src/hb-dsalgs.hh | 4 ++--
Date: Fri Jan 18 21:55:21 2019 +0330
[dwrite] Try to fix delete-non-virtual-dtor warnings
-
+
Fixes #1548 hopefully
src/hb-directwrite.cc | 4 ++--
Date: Fri Jan 18 12:48:01 2019 -0500
Fix -Wundef errors with __GNUC__
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1549
src/hb-common.h | 4 ++--
Date: Fri Jan 18 09:43:51 2019 -0800
init interp_env_t::hintmask_size
-
+
fixes issue #1547
src/hb-cff-interp-cs-common.hh | 1 +
- test/api/test-ot-extents-cff | Bin 0 ->
- 8574336 bytes
- .../test-ot-extents-cff.dSYM/Contents/Info.plist | 20
- ++++++++++++++++++++
- .../Contents/Resources/DWARF/test-ot-extents-cff | Bin 0 ->
- 7650053 bytes
+ test/api/test-ot-extents-cff | Bin 0 -> 8574336 bytes
+ .../test-ot-extents-cff.dSYM/Contents/Info.plist | 20 ++++++++++++++++++++
+ .../Contents/Resources/DWARF/test-ot-extents-cff | Bin 0 -> 7650053 bytes
4 files changed, 21 insertions(+)
commit 9b4e51b2e44d7dea026b1f9201d2f83277bab1cf
Date: Fri Jan 18 12:23:02 2019 -0500
[pragma] Enable error -Wdelete-non-virtual-dtor
-
+
Currently fails directwrite backend.
src/hb.hh | 1 +
Date: Fri Jan 18 12:22:07 2019 -0500
[directwrite] Fix error
-
- hb-directwrite.cc: In constructor 'TextAnalysis::TextAnalysis(const
- wchar_t*, uint32_t, const wchar_t*, DWRITE_READING_DIRECTION)':
- hb-directwrite.cc:489:18: error: 'TextAnalysis::mText' will be
- initialized after [-Werror=reorder]
+
+ hb-directwrite.cc: In constructor 'TextAnalysis::TextAnalysis(const wchar_t*, uint32_t, const wchar_t*, DWRITE_READING_DIRECTION)':
+ hb-directwrite.cc:489:18: error: 'TextAnalysis::mText' will be initialized after [-Werror=reorder]
const wchar_t* mText;
^~~~~
- hb-directwrite.cc:488:12: error: 'uint32_t
- TextAnalysis::mTextLength' [-Werror=reorder]
+ hb-directwrite.cc:488:12: error: 'uint32_t TextAnalysis::mTextLength' [-Werror=reorder]
uint32_t mTextLength;
^~~~~~~~~~~
- hb-directwrite.cc:282:3: error: when initialized here
- [-Werror=reorder]
+ hb-directwrite.cc:282:3: error: when initialized here [-Werror=reorder]
TextAnalysis (const wchar_t* text, uint32_t textLength,
^~~~~~~~~~~~
- hb-directwrite.cc: In function 'hb_bool_t
- _hb_directwrite_shape_full(hb_shape_plan_t*, hb_font_t*, hb_buffer_t*,
- const hb_feature_t*, unsigned int, float)':
+ hb-directwrite.cc: In function 'hb_bool_t _hb_directwrite_shape_full(hb_shape_plan_t*, hb_font_t*, hb_buffer_t*, const hb_feature_t*, unsigned int, float)':
src/hb-directwrite.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Fri Jan 18 10:03:43 2019 -0500
[pragma] Allow cast-align in hb-font.cc
-
- ../src/hb-machinery.hh: In instantiation of 'const Type&
- StructAtOffset(const void*, unsigned int) [with Type = unsigned int]':
+
+ ../src/hb-machinery.hh: In instantiation of 'const Type& StructAtOffset(const void*, unsigned int) [with Type = unsigned int]':
../src/hb-font.cc:144:85: required from here
- ../src/hb-machinery.hh:63:12: error: cast from 'const char*' to
- 'const unsigned int*' increases required alignment of target type
- [-Werror=cast-align]
- { return * reinterpret_cast<const Type*> ((const char *) P +
- offset); }
+ ../src/hb-machinery.hh:63:12: error: cast from 'const char*' to 'const unsigned int*' increases required alignment of target type [-Werror=cast-align]
+ { return * reinterpret_cast<const Type*> ((const char *) P + offset); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ../src/hb-machinery.hh: In instantiation of 'Type&
- StructAtOffset(void*, unsigned int) [with Type = unsigned int]':
+ ../src/hb-machinery.hh: In instantiation of 'Type& StructAtOffset(void*, unsigned int) [with Type = unsigned int]':
../src/hb-font.cc:145:79: required from here
- ../src/hb-machinery.hh:66:12: error: cast from 'char*' to 'unsigned
- int*' increases required alignment of target type [-Werror=cast-align]
+ ../src/hb-machinery.hh:66:12: error: cast from 'char*' to 'unsigned int*' increases required alignment of target type [-Werror=cast-align]
{ return * reinterpret_cast<Type*> ((char *) P + offset); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ../src/hb-machinery.hh: In instantiation of 'Type&
- StructAtOffset(void*, unsigned int) [with Type = int]':
+ ../src/hb-machinery.hh: In instantiation of 'Type& StructAtOffset(void*, unsigned int) [with Type = int]':
src/hb-font.cc | 5 +++++
1 file changed, 5 insertions(+)
[pragma] Massage more
- src/hb.hh | 106
- ++++++++++++++++++++++++++++++++------------------------------
+ src/hb.hh | 106 ++++++++++++++++++++++++++++++++------------------------------
1 file changed, 55 insertions(+), 51 deletions(-)
commit 16e5ba85b1822ff9d2b2f85f45ddd44f1a05f4b1
Date: Fri Jan 18 09:28:22 2019 -0500
[pragma] Reorg again
-
+
https://github.com/harfbuzz/harfbuzz/issues/1546
- src/hb.hh | 91
- ++++++++++++++++++++++++++++++++-------------------------------
+ src/hb.hh | 91 ++++++++++++++++++++++++++++++++-------------------------------
1 file changed, 46 insertions(+), 45 deletions(-)
commit c04272fac81cac48b6310182d58d54569117f298
Date: Fri Jan 18 08:49:45 2019 -0500
[pragma] GCC diagnostic ignored "-Wunknown-warning-option"
-
+
Try at fixing https://github.com/harfbuzz/harfbuzz/issues/1546
src/hb.hh | 3 ++-
Date: Thu Jan 17 19:12:07 2019 -0500
[ci] Remove unnecessary warning declarations
-
+
clang -Weverything still left to be ported to pragmas
.circleci/config.yml | 2 +-
Date: Thu Jan 17 16:07:27 2019 -0500
[ci] Remove -Werror from Travis
-
- hb-machinery.hh:111:37: warning: comparison of unsigned expression >=
- 0 is always true [-Wtype-limits]
-
+
+ hb-machinery.hh:111:37: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
+
Also ignore -Wtype-limits.
.travis.yml | 2 --
Date: Thu Jan 17 14:54:32 2019 -0500
[AAT] Fully sanitize ankr table at sanitize time
-
- Third try to fix access. Followup
- 6879efc2c1596d11a6a6ad296f80063b558d5e0f
-
+
+ Third try to fix access. Followup 6879efc2c1596d11a6a6ad296f80063b558d5e0f
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12532
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=922303
Date: Thu Jan 17 14:06:37 2019 -0500
[AAT] Fix anchor bound checking, again
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12532
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=922303
src/hb-aat-layout-ankr-table.hh | 3 ++-
- ...zz-testcase-minimized-harfbuzz_fuzzer-5166320261529600 | Bin 0 ->
- 393 bytes
- ...zz-testcase-minimized-hb-shape-fuzzer-5667182741028864 | Bin 0 ->
- 407 bytes
+ ...zz-testcase-minimized-harfbuzz_fuzzer-5166320261529600 | Bin 0 -> 393 bytes
+ ...zz-testcase-minimized-hb-shape-fuzzer-5667182741028864 | Bin 0 -> 407 bytes
3 files changed, 2 insertions(+), 1 deletion(-)
commit a262eb3d0b7009aabd9e0beebc77e5c0a2a65548
Date: Tue Jan 15 13:58:19 2019 -0500
Improve overflow avoidance
-
+
Better fix for 480406cd3ef9e5ab8476ddfa04498bf23906c508
This way we behave the same on 32bit and 64bit archs.
Date: Mon Jan 14 18:23:17 2019 -0800
fix FDSelect fuzzing bug (#1539)
-
+
Rewrote struct FDSelect3_4.ranges as ArrayOf
Updated FDSelect3_4::sanitize () to call ranges.sanitize ()
nRanges now a function to return a reference to ranges.len
Date: Mon Jan 14 20:45:31 2019 -0500
Move _POSIX_SOURCE definition
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1308
src/hb-blob.cc | 9 +++++++++
[test] Add test for previous commit
- ...uzz-testcase-minimized-harfbuzz_fuzzer-5662548265009152 | Bin 0 ->
- 28 bytes
+ ...uzz-testcase-minimized-harfbuzz_fuzzer-5662548265009152 | Bin 0 -> 28 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit 480406cd3ef9e5ab8476ddfa04498bf23906c508
Date: Mon Jan 14 15:27:34 2019 -0500
Fix assertion on address overflow
-
+
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=917031
src/hb-machinery.hh | 5 +++--
Date: Mon Jan 14 15:09:14 2019 -0500
[AAT] Fix mort ContextualSubtable offset access
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12312
src/hb-aat-layout-morx-table.hh | 3 ++-
- ...zz-testcase-minimized-hb-shape-fuzzer-5631444412530688 | Bin 0 ->
- 336 bytes
+ ...zz-testcase-minimized-hb-shape-fuzzer-5631444412530688 | Bin 0 -> 336 bytes
2 files changed, 2 insertions(+), 1 deletion(-)
commit a3fa7d33360a58df5333dbbd121328e580f08849
Date: Mon Jan 14 14:37:36 2019 -0500
[AAT] Fix ankr table access
-
+
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=918340
src/hb-aat-layout-ankr-table.hh | 7 ++++---
- ...z-testcase-minimized-harfbuzz_fuzzer-5126525414014976 | Bin 0 ->
- 1141 bytes
+ ...z-testcase-minimized-harfbuzz_fuzzer-5126525414014976 | Bin 0 -> 1141 bytes
2 files changed, 4 insertions(+), 3 deletions(-)
commit 760303d411b1561533f8f08c7c15db331c71ece8
Date: Wed Jan 9 16:01:11 2019 +0330
Add an initial .clang-format config
-
+
There are things can be improved on clang-format side I guess before
the full assertion, but is the best we can get for now I guess.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1536
.clang-format | 38 ++++++++++++++++++++++++++++++++++++++
Date: Wed Jan 9 15:56:32 2019 +0330
Minor, hack .editorconfig for vscode use
-
- As VSCode and Atom https://github.com/Microsoft/vscode/issues/44438
- don't support it
+
+ As VSCode and Atom https://github.com/Microsoft/vscode/issues/44438 don't support it
.editorconfig | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
Date: Tue Jan 8 12:37:48 2019 -0800
fix leak in subset_enc_supp_codes (#1537)
-
+
oss-fuzz issue 12310
src/hb-subset-cff1.cc | 2 +-
Usermanual: small updates.
...anual-buffers-language-script-and-direction.xml | 7 +-
- docs/usermanual-clusters.xml | 279
- ++++++++++++++++-----
+ docs/usermanual-clusters.xml | 279 ++++++++++++++++-----
docs/usermanual-getting-started.xml | 91 ++++++-
docs/usermanual-install-harfbuzz.xml | 3 +-
docs/usermanual-shaping-concepts.xml | 11 +-
Date: Mon Dec 31 04:30:43 2018 +0100
CircleCI: Test for Python 3 syntax errors and undefined names (#1522)
-
+
Catch missing imports and errors like #1520 and #1521
-
- __E901,E999,F821,F822,F823__ are the "_showstopper_"
- [flake8](http://flake8.pycqa.org) issues that can halt the runtime
- with a SyntaxError, NameError, etc. Most other flake8 issues are
- merely "style violations" -- useful for readability but they do not
- effect runtime safety.
+
+ __E901,E999,F821,F822,F823__ are the "_showstopper_" [flake8](http://flake8.pycqa.org) issues that can halt the runtime with a SyntaxError, NameError, etc. Most other flake8 issues are merely "style violations" -- useful for readability but they do not effect runtime safety.
* F821: undefined name `name`
* F822: undefined name `name` in `__all__`
* F823: local variable name referenced before assignment
* E901: SyntaxError or IndentationError
- * E999: SyntaxError -- failed to compile a file into an Abstract
- Syntax Tree
+ * E999: SyntaxError -- failed to compile a file into an Abstract Syntax Tree
.circleci/config.yml | 3 ++-
src/gen-use-table.py | 4 +++-
Date: Sun Dec 30 11:27:42 2018 -0500
Fix automake warnings
-
+
[skip ci]
test/api/Makefile.am | 1 -
Date: Sun Dec 30 12:58:34 2018 +0100
Python 3 fixes to gen-os2-unicode-ranges.py (#1521)
-
- In Python 3, __reload()__ was moved and __sys.setdefaultencoding()__
- because the default is already utf-8. Also __Error()__ is an
- _undefined name_ and __Exception()__ creates a generic exception.
+
+ In Python 3, __reload()__ was moved and __sys.setdefaultencoding()__ because the default is already utf-8. Also __Error()__ is an _undefined name_ and __Exception()__ creates a generic exception.
src/gen-os2-unicode-ranges.py | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
Date: Thu Dec 27 17:56:22 2018 -0500
[vector] Remove static_array
-
- Was good idea, but with C++ types with constructor/destructor,
- was getting in
- the way as compiler was destructing those items where it was not
- desired.
+
+ Was good idea, but with C++ types with constructor/destructor, was getting in
+ the way as compiler was destructing those items where it was not desired.
Since C++ does not allow zero-sized arrays, just remove it...
src/hb-aat-map.hh | 4 ++--
Date: Mon Dec 24 11:31:04 2018 -0500
[vector] Change pre-alloced count from 8 to 2
-
- I'm thinking about dropping it to zero, but that needs slight code
- changes.
+
+ I'm thinking about dropping it to zero, but that needs slight code changes.
src/hb-vector.hh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Sat Dec 22 07:47:04 2018 -0800
CFF renaming (#1507)
-
+
* reimplement ByteStr as byte_str_t based on hb_ubytes_t
-
+
Unuse start_embed<ByteStr>
Also renamed SubByteStr to byte_str_ref_t
More renaming to come
-
+
* substr renamed to str_ref in line with its type byte_str_ref_t
-
+
* uncamelize non-table struct names
-
+
* uncamelized non-struct types OpCode etc
-
+
* add byte_str_t copy ctor
-
+
* test
-
+
* test2
-
+
* undo tests
-
+
* fix bot failure
-
+
* undo the previous change
-
+
* fixed tabs, added inline
-
+
* Revert "fixed tabs, added inline"
-
+
This reverts commit 21163c30e9d18759414f7fe2518628241599f039.
-
+
* fix tabs
src/hb-cff-interp-common.hh | 215 +++++++++++++++------------------
- src/hb-cff-interp-cs-common.hh | 250
- +++++++++++++++++++--------------------
+ src/hb-cff-interp-cs-common.hh | 250 +++++++++++++++++++--------------------
src/hb-cff-interp-dict-common.hh | 64 +++++-----
src/hb-cff1-interp-cs.hh | 26 ++--
src/hb-cff2-interp-cs.hh | 56 ++++-----
src/hb-ot-cff2-table.cc | 28 ++---
src/hb-ot-cff2-table.hh | 128 ++++++++++----------
src/hb-subset-cff-common.cc | 10 +-
- src/hb-subset-cff-common.hh | 232
- ++++++++++++++++++------------------
- src/hb-subset-cff1.cc | 244
- +++++++++++++++++++-------------------
+ src/hb-subset-cff-common.hh | 232 ++++++++++++++++++------------------
+ src/hb-subset-cff1.cc | 244 +++++++++++++++++++-------------------
src/hb-subset-cff2.cc | 100 ++++++++--------
14 files changed, 796 insertions(+), 819 deletions(-)
Date: Fri Dec 21 19:48:21 2018 -0500
[iter] Change operator[] operand to be signed
-
+
To fix older compilers again (this was the case in hb_array_t).
-
- hb-ot-layout-common.hh:1353: note: candidate 2: operator[](T*,
- int) <built-in>
- hb-ot-layout-common.hh:1354: error: ISO C++ says that these are
- ambiguous, even though the worst conversion for the first is better
- than the worst conversion for the second:
- hb-iter.hh:63: note: candidate 1: Item& hb_iter_t<Iter,
- Item>::operator[](unsigned int) const [with Iter = hb_array_t<const
- OT::IntType<short unsigned int, 2u> >, Item = const OT::IntType<short
- unsigned int, 2u>]
- hb-ot-layout-common.hh:1354: note: candidate 2: operator[](T*,
- int) <built-in>
- hb-ot-layout-common.hh: In member function 'bool
- OT::ClassDef::serialize(hb_serialize_context_t*, hb_array_t<const
- OT::IntType<short unsigned int, 2u> >, hb_array_t<const
- OT::IntType<short unsigned int, 2u> >)':
- hb-ot-layout-common.hh:1490: error: ISO C++ says that these are
- ambiguous, even though the worst conversion for the first is better
- than the worst conversion for the second:
- hb-iter.hh:63: note: candidate 1: Item& hb_iter_t<Iter,
- Item>::operator[](unsigned int) const [with Iter = hb_array_t<const
- OT::IntType<short unsigned int, 2u> >, Item = const OT::IntType<short
- unsigned int, 2u>]
- hb-ot-layout-common.hh:1490: note: candidate 2: operator[](T*,
- int) <built-in>
+
+ hb-ot-layout-common.hh:1353: note: candidate 2: operator[](T*, int) <built-in>
+ hb-ot-layout-common.hh:1354: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
+ hb-iter.hh:63: note: candidate 1: Item& hb_iter_t<Iter, Item>::operator[](unsigned int) const [with Iter = hb_array_t<const OT::IntType<short unsigned int, 2u> >, Item = const OT::IntType<short unsigned int, 2u>]
+ hb-ot-layout-common.hh:1354: note: candidate 2: operator[](T*, int) <built-in>
+ hb-ot-layout-common.hh: In member function 'bool OT::ClassDef::serialize(hb_serialize_context_t*, hb_array_t<const OT::IntType<short unsigned int, 2u> >, hb_array_t<const OT::IntType<short unsigned int, 2u> >)':
+ hb-ot-layout-common.hh:1490: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
+ hb-iter.hh:63: note: candidate 1: Item& hb_iter_t<Iter, Item>::operator[](unsigned int) const [with Iter = hb_array_t<const OT::IntType<short unsigned int, 2u> >, Item = const OT::IntType<short unsigned int, 2u>]
+ hb-ot-layout-common.hh:1490: note: candidate 2: operator[](T*, int) <built-in>
src/hb-iter.hh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Fri Dec 21 19:29:00 2018 -0500
[array] Port to hb_iter_t<>
-
+
hb_array_t is its own iterator...
- src/hb-array.hh | 75
- +++++++++++++++++++++++++--------------------------------
+ src/hb-array.hh | 75 +++++++++++++++++++++++++--------------------------------
src/hb-iter.hh | 5 ++--
2 files changed, 36 insertions(+), 44 deletions(-)
src/hb-aat-layout-feat-table.hh | 5 ++-
src/hb-aat-layout-lcar-table.hh | 2 +-
src/hb-aat-map.cc | 4 +--
- src/hb-array.hh | 72
- ++++++++++++++++++++---------------------
+ src/hb-array.hh | 72 ++++++++++++++++++++---------------------
src/hb-cff-interp-common.hh | 10 +++---
src/hb-cff2-interp-cs.hh | 6 ++--
src/hb-coretext.cc | 12 +++----
Date: Fri Dec 21 16:39:57 2018 -0500
[iter] Disallow copy-construction or assignment of hb_iter_t<>
-
+
Should only be done by subclass.
src/hb-iter.hh | 5 +++++
Date: Fri Dec 21 16:04:38 2018 -0500
[iter] Make hb_fill() take collection type, not iter
-
+
Starting to get the hang of when take which.
src/test-iter.cc | 6 +++---
Date: Fri Dec 21 15:12:55 2018 -0500
[array] Remove copy constructor
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1502
src/hb-array.hh | 1 -
Date: Fri Dec 21 15:08:06 2018 -0500
Fix bot
-
- C:\projects\harfbuzz\src\hb-uniscribe.cc(709): error C2666:
- 'hb_vector_t<OPENTYPE_FEATURE_RECORD,8>::operator
- +': 3 overloads have similar conversions
- [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
+
+ C:\projects\harfbuzz\src\hb-uniscribe.cc(709): error C2666: 'hb_vector_t<OPENTYPE_FEATURE_RECORD,8>::operator +': 3 overloads have similar conversions [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
src/hb-uniscribe.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Fri Dec 21 02:48:28 2018 -0500
[iter] Make hb_fill() and hb_copy() take iterators
-
+
I'm still going back and force...
src/test-iter.cc | 11 ++++-------
[iter] Sketch new iterator design
- src/hb-iter.hh | 154
- +++++++++++++++++++------------------------------------
+ src/hb-iter.hh | 154 +++++++++++++++++++------------------------------------
src/test-iter.cc | 16 ++++++
2 files changed, 69 insertions(+), 101 deletions(-)
Date: Fri Dec 21 00:08:05 2018 -0500
Revert "Remove unused hb-iter.hh"
-
+
This reverts commit 969ff3c7aadbe721cdd414488eb170433f10d00c.
src/Makefile.sources | 1 +
- src/hb-iter.hh | 146
- +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-iter.hh | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-machinery.hh | 1 +
3 files changed, 148 insertions(+)
Date: Thu Dec 20 15:54:17 2018 -0500
[serializer] Add operator <<
-
+
Not sure if we are going to use it. But might incentivize us to.
src/hb-machinery.hh | 2 ++
Date: Thu Dec 20 12:26:30 2018 -0500
[serialize] Adjust ClassDef
-
+
[skip ci]
src/hb-ot-layout-common.hh | 32 ++++++++++++++++----------------
Date: Thu Dec 20 11:48:45 2018 -0500
Fix code on big-endian gcc / clang
-
+
Ouch! We need a bigendian bot...
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1498
src/hb-machinery.hh | 8 +++++++-
Date: Thu Dec 20 11:26:54 2018 +0800
Fix build on older Visual Studio versions (#1499)
-
+
* src/hb-cff-interp-dict-common.hh: Use ull for unsigned int64_t
-
+
The llu suffix does not work for older Visual Studio versions
(pre-2013), but ull works for all the compilers that we attempt to
support.
-
+
* test/api: Fix build on pre-C99 compilers
-
+
Ensure variables are declared at the top of the block.
-
+
* src/hb-dsalgs.hh: Add specialization for hb_is_signed<> for __int8
-
- Pre-Visual Studio 2010 does not consider __int8 (which is typedef'ed
- to
- int8_t) to be equivilant to signed char, so the compiler cannot
- find the
+
+ Pre-Visual Studio 2010 does not consider __int8 (which is typedef'ed to
+ int8_t) to be equivilant to signed char, so the compiler cannot find the
corresponding hb_is_signed<> specialization that is needed.
-
- The interesting thing is unsigned __int8 is considered to be
- equivilant
- to unsigned char, so as the other types (short, int, long) that
- we look
+
+ The interesting thing is unsigned __int8 is considered to be equivilant
+ to unsigned char, so as the other types (short, int, long) that we look
for here, so only the specialization for __int8 is added here.
-
+
This will fix builds on Visual Studio 2008 at least.
src/hb-cff-interp-dict-common.hh | 2 +-
Date: Wed Dec 19 21:05:00 2018 -0500
[sanitize] Use hb_static_size instead of ::static_size
-
+
https://github.com/harfbuzz/harfbuzz/issues/1496#issuecomment-448818112
src/hb-machinery.hh | 11 +++++------
Date: Wed Dec 19 21:18:30 2018 +0330
[test] Fix test-name-table.cc leak issue
-
- Spotted it accidentally but wanted to see if is anything serious so
- went for fixing it
+
+ Spotted it accidentally but wanted to see if is anything serious so went for fixing it
src/test-name-table.cc | 2 ++
1 file changed, 2 insertions(+)
src/hb-open-type.hh | 18 +-
src/hb-ot-cmap-table.hh | 3 +-
src/hb-ot-layout-common.hh | 104 ++++--------
- src/hb-ot-layout-gsub-table.hh | 257
- +++++++++++++----------------
+ src/hb-ot-layout-gsub-table.hh | 257 +++++++++++++----------------
src/hb-ot-shape-complex-arabic-fallback.hh | 23 +--
9 files changed, 170 insertions(+), 269 deletions(-)
Date: Mon Dec 17 22:43:00 2018 -0500
Remove unused hb-iter.hh
-
- The ideas there are all part of hb-array.hh now. To be determined
- how we
+
+ The ideas there are all part of hb-array.hh now. To be determined how we
want to use generic iterator patterns.
src/Makefile.sources | 1 -
- src/hb-iter.hh | 146
- ---------------------------------------------------
+ src/hb-iter.hh | 146 ---------------------------------------------------
src/hb-machinery.hh | 1 -
3 files changed, 148 deletions(-)
Date: Mon Dec 17 22:41:04 2018 -0500
[arrays] Minor tweaks to hb_supplier_t
-
- I think I like to keep this hb_supplier_t thing separately from
- hb_array_t.
+
+ I think I like to keep this hb_supplier_t thing separately from hb_array_t.
src/hb-array.hh | 5 +++++
1 file changed, 5 insertions(+)
src/hb-open-type.hh | 4 +-
src/hb-ot-cmap-table.hh | 2 +-
src/hb-ot-layout-common.hh | 34 ++++-----
- src/hb-ot-layout-gsub-table.hh | 108
- ++++++++++++++---------------
+ src/hb-ot-layout-gsub-table.hh | 108 ++++++++++++++---------------
src/hb-ot-shape-complex-arabic-fallback.hh | 14 ++--
8 files changed, 87 insertions(+), 87 deletions(-)
Date: Mon Dec 17 20:34:51 2018 -0500
Enable __builtin_* on clang
-
+
We'll see which old clang versions this breaks...
src/hb-dsalgs.hh | 6 +++---
Date: Mon Dec 17 20:23:26 2018 -0500
Add hb_addressof() and use it to fix bug after hb_bytes_t merge
-
+
We cannot take address hb_bytes_t direction. We need to use the
newly added hb_addressof(), ala std::addressof().
Date: Mon Dec 17 18:27:36 2018 -0500
Enable system extensions in hb.hh
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1491
configure.ac | 1 -
Date: Mon Dec 17 17:56:10 2018 -0500
Remove define GNU_SOURCE
-
+
Not needed. We get it in our config.h automatically thanks to
AC_USE_SYSTEM_EXTENSIONS. Let's see whose build it breaks...
If we end up putting it back, we should add other things from
Date: Mon Dec 17 21:31:43 2018 +0330
Lower coretext_aat shaper priority (#1488)
-
+
Related to https://github.com/harfbuzz/harfbuzz/issues/1478
src/hb-shaper-list.hh | 8 ++++----
src/hb-gobject-structs.cc | 2 +-
src/hb-icu.cc | 8 +--
src/hb-iter.hh | 15 ++--
- src/hb-machinery.hh | 150
- ++++++++++++++++-----------------------
+ src/hb-machinery.hh | 150 ++++++++++++++++-----------------------
src/hb-map.cc | 4 +-
src/hb-map.hh | 24 +++----
src/hb-mutex.hh | 10 +--
Date: Mon Dec 17 00:39:30 2018 -0500
[array] Add cast operator to add const to Type
-
+
In lieu of constructor removed in previous commit.
src/hb-array.hh | 1 +
Date: Mon Dec 17 00:09:06 2018 -0500
[array] Return Crap instead of Null if Type is not const
-
+
Ouch!
src/hb-array.hh | 2 +-
[array] Organize
- src/hb-array.hh | 75
- ++++++++++++++++++++++++++++++++++++---------------------
+ src/hb-array.hh | 75 ++++++++++++++++++++++++++++++++++++---------------------
1 file changed, 48 insertions(+), 27 deletions(-)
commit 84c1865821151d83a8798ae11ebba3329a12c560
Date: Sun Dec 16 23:33:03 2018 -0500
[arrays] Remove unnecessary constructor from Supplier<>
-
+
Looks like operator hb_array_t<> from vector works here. :)
src/hb-machinery.hh | 5 -----
[array] Remove custom hb_bytes_t implementation
- src/hb-array.hh | 67
- +++++++++++++++++--------------------------------
+ src/hb-array.hh | 67 +++++++++++++++++--------------------------------
src/hb-machinery.hh | 2 +-
src/hb-ot-name-table.hh | 8 +++---
src/hb-ot-name.cc | 10 ++++----
[array] Move hb_array_t and related types to hb-array.hh
src/Makefile.sources | 1 +
- src/hb-array.hh | 241
- +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-array.hh | 241 +++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-dsalgs.hh | 206 -------------------------------------------
src/hb-machinery.hh | 1 +
src/hb-vector.hh | 2 +-
src/hb-ot-hmtx-table.hh | 18 +-
src/hb-ot-kern-table.hh | 44 ++--
src/hb-ot-layout-base-table.hh | 104 +++++-----
- src/hb-ot-layout-common.hh | 425
- ++++++++++++++++++++-------------------
+ src/hb-ot-layout-common.hh | 425 ++++++++++++++++++++-------------------
src/hb-ot-layout-gdef-table.hh | 126 ++++++------
src/hb-ot-layout-gpos-table.hh | 209 +++++++++----------
src/hb-ot-layout-gsub-table.hh | 360 ++++++++++++++++-----------------
[subset] Implement for ClassDef
- src/hb-ot-layout-common.hh | 80
- ++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout-common.hh | 80 ++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-layout-gsub-table.hh | 8 ++---
2 files changed, 84 insertions(+), 4 deletions(-)
[serialize] Implement for ClassDefFormat2
- src/hb-ot-layout-common.hh | 50
- ++++++++++++++++++++++++++++++++++++++++++----
+ src/hb-ot-layout-common.hh | 50 ++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 46 insertions(+), 4 deletions(-)
commit c8b43cbe316b07507aece4dc769f38226cd706da
Date: Wed Dec 12 18:08:15 2018 -0800
[CFF] bad offset in Index (#1476)
-
+
* Update hb-ot-cff-common.hh
-
+
* fix bug
-
+
* bummer fix wasn't hit. refix
-
+
* additional sanity check
-
+
* Added test cases for oss-fuzz issues 11805, 11806
- src/hb-ot-cff-common.hh | 10
- ++++++++--
- ...clusterfuzz-testcase-hb-subset-fuzzer-5643036478930944 | Bin 0 ->
- 369 bytes
- ...clusterfuzz-testcase-hb-subset-fuzzer-5686186874503168 | Bin 0 ->
- 962 bytes
+ src/hb-ot-cff-common.hh | 10 ++++++++--
+ ...clusterfuzz-testcase-hb-subset-fuzzer-5643036478930944 | Bin 0 -> 369 bytes
+ ...clusterfuzz-testcase-hb-subset-fuzzer-5686186874503168 | Bin 0 -> 962 bytes
3 files changed, 8 insertions(+), 2 deletions(-)
commit bcb4ecaf68c7219e89a801352bfc6a682b1581ef
Date: Wed Dec 12 17:36:01 2018 -0800
[CFF] check out of range FD index (#1477)
-
+
* add fd index checks to subr subsetter
-
+
also added oss-fuzz test case
-
+
* undid SubrSubsetParam::is_valid
-
+
because already validated by SubrClosures.valid
src/hb-subset-cff-common.hh | 10 ++++++++++
- ...lusterfuzz-testcase-hb-subset-fuzzer-5762137968869376 | Bin 0 ->
- 2037 bytes
+ ...lusterfuzz-testcase-hb-subset-fuzzer-5762137968869376 | Bin 0 -> 2037 bytes
2 files changed, 10 insertions(+)
commit 3f8e7a98d3cc10fefe65b9638c8abdf3ebe152cb
Date: Wed Dec 12 11:32:57 2018 -0500
[util/hb-subset] Add --layout to keep GDEF/GSUB/GPOS
-
+
Will become default and option removed in the future.
util/hb-subset.cc | 1 +
Date: Wed Dec 12 09:44:30 2018 -0500
Revert "Minor fix re sanitize of Lookup subtables"
-
+
This reverts commit 7146718bef81492e13aede0a2801cda1da41ce35.
-
+
Fixing differently.
src/hb-ot-layout-common.hh | 4 +---
src/hb-aat-layout-trak-table.hh | 18 +--
src/hb-aat-layout.cc | 4 +-
src/hb-buffer.cc | 48 +++----
- src/hb-directwrite.cc | 297
- +++++++++++++++++++---------------------
+ src/hb-directwrite.cc | 297 +++++++++++++++++++---------------------
src/hb-dsalgs.hh | 5 +-
src/hb-map.hh | 20 +--
src/hb-ot-cmap-table.hh | 2 +-
Date: Wed Dec 12 12:44:06 2018 +0330
Merge pull request #1474 from fanc999/master.msvc
-
+
Few fixes for Visual Studio builds
commit 7146718bef81492e13aede0a2801cda1da41ce35
Date: Tue Dec 11 23:44:29 2018 -0500
Minor fix re sanitize of Lookup subtables
-
+
We were dereferencing Null pointers and trying to sanitize them,
which is not necessary...
Date: Tue Dec 11 22:53:58 2018 -0500
[subset] Map glyphs during SingleSubst subsetting
-
+
Ha!
src/hb-ot-layout-gsub-table.hh | 10 ++++++----
Date: Tue Dec 11 12:21:24 2018 -0800
[CFF] oss-fuzz issue 11690 ASSERT: substr.offset >= opStart (#1461)
-
+
* fix oss-fuzz 11690: substr.offset >= opStart
-
+
detect recursive subroutine call & handle as error
-
+
* fix build failure
-
+
* add minimized test case for oss-fuzz 11690
-
+
* removed asserts
src/hb-cff-interp-common.hh | 9 ++++-----
- src/hb-subset-cff-common.hh | 12
- ++++++++++--
+ src/hb-subset-cff-common.hh | 12 ++++++++++--
src/hb-subset-cff1.cc | 4 ++--
src/hb-subset-cff2.cc | 4 ++--
- ...testcase-minimized-hb-subset-fuzzer-5750420593442816 | Bin 0 ->
- 96091 bytes
+ ...testcase-minimized-hb-subset-fuzzer-5750420593442816 | Bin 0 -> 96091 bytes
5 files changed, 18 insertions(+), 11 deletions(-)
commit 333586245cb37668c8a29af17920474c09667f4b
Date: Tue Dec 11 13:38:05 2018 -0500
[ucdn] Fix header
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1470
src/hb-ucdn/ucdn.h | 4 +---
Date: Wed Dec 12 01:32:01 2018 +0800
test/api: Fix building on pre-C99 compilers
-
+
Ensure variables are declared at the top of the block.
test/api/hb-test.h | 3 ++-
Date: Wed Dec 12 01:23:53 2018 +0800
CMake: Fix Introspection builds
-
- We need to add -DHB_AAT_H and -DHB_AAT_H_IN to the flags that
- are passed
+
+ We need to add -DHB_AAT_H and -DHB_AAT_H_IN to the flags that are passed
to g-ir-scanner, so that introspection builds can proceed normally.
CMakeLists.txt | 2 ++
Date: Sat Dec 8 10:20:25 2018 +0330
Apply non-controversial parts of ot-style (#1464)
-
+
Things to be used in https://github.com/harfbuzz/harfbuzz/pull/1459
src/hb-aat-fdsc-table.hh | 29 +++++++++++++++++++++++++---
src/hb-aat-layout-common.hh | 1 +
src/hb-ot-head-table.hh | 13 +++++++++++++
- src/hb-ot-os2-table.hh | 46
- +++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-os2-table.hh | 46 +++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-stat-table.hh | 38 ++++++++++++++++++-------------------
5 files changed, 105 insertions(+), 22 deletions(-)
Date: Fri Dec 7 20:49:39 2018 -0800
fix for issue #1447 (#1462)
-
- Added case for OpCode_BaseFontName. This opcode in spec but
- practically unused.
+
+ Added case for OpCode_BaseFontName. This opcode in spec but practically unused.
Added a comment for default case which can't be hit
src/hb-ot-cff1-table.hh | 6 ++++--
Date: Thu Dec 6 13:36:26 2018 -0800
[CFF] Refix oss-fuzz 11714: set_blends (PR #1458) (#1460)
-
+
* pass subarray of stack to set_blends
-
+
* get_subarray to return a value, not ref
-
+
* restored error check (with tweak)
src/hb-cff-interp-common.hh | 5 +++++
Date: Thu Dec 6 10:27:37 2018 -0800
Fix likely check
-
+
Ouch!
src/hb-cff-interp-dict-common.hh | 4 ++--
Date: Thu Dec 6 10:21:00 2018 +0330
Merge pull request #1458 from harfbuzz/cff-check-blends
-
+
[CFF] oss-fuzz issue 11714: set_blends
commit ae087d10c22249f3aec3239e4eac98a728f71f75
add minimized test case for oss-fuzz issue 11714
- ...-testcase-minimized-hb-subset-fuzzer-5710107829075968 | Bin 0 ->
- 3660 bytes
+ ...-testcase-minimized-hb-subset-fuzzer-5710107829075968 | Bin 0 -> 3660 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit 1ccbdcf73bbc967f5f94c0bc7f7e869bd87d9fa0
Date: Thu Dec 6 08:33:44 2018 +0330
Merge pull request #1457 from harfbuzz/cff-varstore-sanitize
-
+
[CFF] oss-fuzz issue 11713 (CFF2VariationStore::serialize)
commit 6727c4b6f0356b08803b4d5cde608ec004e3533f
Date: Wed Dec 5 17:37:21 2018 -0800
Merge pull request #1456 from harfbuzz/cff-subr-sanitize
-
+
[CFF] fix oss-fuzz issue 11691 (BlendArg::set_blends)
commit 9d8f3b0dfbf39f5dfa25d52f47e8af6ad318eb17
add minimized test case for oss-fuzz issue 11713
- ...z-testcase-minimized-hb-subset-fuzzer-5660711141769216 | Bin 0 ->
- 383 bytes
+ ...z-testcase-minimized-hb-subset-fuzzer-5660711141769216 | Bin 0 -> 383 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit c31092ab34641072606f854408eb1bea18ed2507
add minimized test case for oss-fuzz issue 11691
- ...z-testcase-minimized-hb-shape-fuzzer-5686369209286656 | Bin 0 ->
- 2880 bytes
+ ...z-testcase-minimized-hb-shape-fuzzer-5686369209286656 | Bin 0 -> 2880 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit d9dabc00e9278a346e85538212c126da7e610d55
Date: Wed Dec 5 15:39:34 2018 -0800
Merge pull request #1454 from harfbuzz/cff-fixbcd
-
+
[CFF] fix oss-fuzz issue 11674: parse_bcd
commit 81cfd3c775dbc470f57d7fe2775cc068ffa367b6
Date: Wed Dec 5 15:37:15 2018 -0800
Merge pull request #1455 from harfbuzz/cff-strinc_assert
-
+
[CFF] fix oss-fuzz issue 11675 (ASSERT: count <= str.len)
commit 6dcfda92c17a7701479118751a8290246e9a3c05
Date: Wed Dec 5 12:51:18 2018 -0800
fix oss-fuzz issue 11675 (ASSERT: count <= str.len)
-
+
Also added an additional error check to avail ()
- src/hb-cff-interp-common.hh | 18
- ++++++++++++++++--
- ...stcase-minimized-hb-subset-fuzzer-5768186323009536 | Bin 0 ->
- 337 bytes
+ src/hb-cff-interp-common.hh | 18 ++++++++++++++++--
+ ...stcase-minimized-hb-subset-fuzzer-5768186323009536 | Bin 0 -> 337 bytes
2 files changed, 16 insertions(+), 2 deletions(-)
commit 010e2ddb384b5a721172fd7466aafec58dbf8063
minimized test case for oss-fuzz issue 11674
- ...zz-testcase-minimized-hb-subset-fuzzer-5672006905757696 | Bin 0 ->
- 73 bytes
+ ...zz-testcase-minimized-hb-subset-fuzzer-5672006905757696 | Bin 0 -> 73 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit 2cb9d4c183afc838ecf2ba0d47814e9eaa6f09c6
[os2] Make newer table fields accessible (#1452)
- src/hb-ot-os2-table.hh | 88
- +++++++++++++++++++++++++++++++++++++-------------
+ src/hb-ot-os2-table.hh | 88 +++++++++++++++++++++++++++++++++++++-------------
1 file changed, 66 insertions(+), 22 deletions(-)
commit 5ab086ebb18112ef48bf6c913acc91b2009a9bed
Date: Wed Dec 5 14:17:37 2018 +0330
[fdsc] Implement the table parsing
-
+
Related to https://github.com/harfbuzz/harfbuzz/issues/1337
-
+
May used in addition to an API related to STAT.
-
+
Lots of Apple fonts have it.
src/Makefile.sources | 1 +
- src/hb-aat-fdsc-table.hh | 103
- +++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-aat-fdsc-table.hh | 103 +++++++++++++++++++++++++++++++++++++++++++++++
src/hb-aat-layout.cc | 1 +
3 files changed, 105 insertions(+)
Date: Wed Dec 5 13:51:14 2018 +0330
[gasp] Implement the table parsing
-
- May or may not be used in
- https://github.com/harfbuzz/harfbuzz/pull/1432
+
+ May or may not be used in https://github.com/harfbuzz/harfbuzz/pull/1432
src/Makefile.sources | 1 +
- src/hb-ot-gasp-table.hh | 84
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-gasp-table.hh | 84 +++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-layout.cc | 5 +--
3 files changed, 88 insertions(+), 2 deletions(-)
Date: Wed Dec 5 13:25:18 2018 +0330
Merge pull request #1449 from harfbuzz/cff-fixcharset
-
+
[CFF] fix for oss-fuzz 11657: Charset overrun
commit cf4b7db6b1e01c11d7a8a26d95cf947935a234a7
Date: Wed Dec 5 13:23:23 2018 +0330
Merge pull request #1448 from harfbuzz/cff-leak
-
+
[CFF] fix leak: oss-fuzz 11662
commit 620d1ef588c6ce25644891cfe4b9c20fd8a9d1db
check overflow & clamp
- src/hb-cff-interp-dict-common.hh | 36
- +++++++++++++++++++++++++++---------
+ src/hb-cff-interp-dict-common.hh | 36 +++++++++++++++++++++++++++---------
1 file changed, 27 insertions(+), 9 deletions(-)
commit 32cc46c75a5f163f254b7998ed9193d5bbc85e4b
Date: Tue Dec 4 21:32:34 2018 -0800
[CFF] fix oss-fuzz issue 11670: NULL dereference (#1450)
-
+
* guard against no subr access
-
+
* code tweak
-
+
* add minimized testcase for oss-fuzz 11670 (Null deference)
- src/hb-cff-interp-cs-common.hh | 22
- ++++++++++++++++-----
+ src/hb-cff-interp-cs-common.hh | 22 ++++++++++++++++-----
src/hb-ot-cff-common.hh | 2 +-
...ase-minimized-hb-subset-fuzzer-5672913680728064 | Bin 0 -> 861 bytes
3 files changed, 18 insertions(+), 6 deletions(-)
added minimized testcase for oss-fuzz issue 11657
- ...zz-testcase-minimized-hb-shape-fuzzer-5700264032468992 | Bin 0 ->
- 648 bytes
+ ...zz-testcase-minimized-hb-shape-fuzzer-5700264032468992 | Bin 0 -> 648 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit d3d2f32c6e85de1d7fbbb18afef356e09110e61c
Date: Tue Dec 4 13:51:26 2018 -0800
fix oss-fuzz 11657: buffer overrun
-
+
Check overrun in Charset1_2::get_glyph
src/hb-ot-cff1-table.hh | 10 ++++++----
Author: Ebrahim Byagowi <ebrahim@gnu.org>
Date: Tue Dec 4 23:42:13 2018 +0330
- Reuse hb_aat_layout_has_* logic in coretext-aat detection logic
- (#1442)
+ Reuse hb_aat_layout_has_* logic in coretext-aat detection logic (#1442)
src/hb-coretext.cc | 16 ++--------------
1 file changed, 2 insertions(+), 14 deletions(-)
added minimized test case for oss-fuzz issue 11662
- ...testcase-minimized-hb-shape-fuzzer-5175735354916864 | Bin 0 ->
- 354461 bytes
+ ...testcase-minimized-hb-shape-fuzzer-5175735354916864 | Bin 0 -> 354461 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit 0b952e6026c8be13d16d97f464034ee477e6282f
Date: Tue Dec 4 21:30:07 2018 +0330
Merge pull request #1444 from harfbuzz/cff-assert
-
+
removed assert, fixes https://github.com/harfbuzz/harfbuzz/issues/1443
commit 9473463f5c884fcb1de8a7ba7410da2601e6ffa8
Date: Tue Dec 4 04:14:13 2018 -0500
Merge pull request #1441 from harfbuzz/cff-doublenum
-
+
use double as CFF Number implementation
commit c48f53d30901dfc20b7432c2947e66642010dc4e
added minimized test cases
- ...zz-testcase-minimized-hb-shape-fuzzer-5647267827023872 | Bin 0 ->
- 655 bytes
- ...zz-testcase-minimized-hb-shape-fuzzer-5725855502827520 | Bin 0 ->
- 655 bytes
- ...zz-testcase-minimized-hb-shape-fuzzer-5736657639178240 | Bin 0 ->
- 459 bytes
+ ...zz-testcase-minimized-hb-shape-fuzzer-5647267827023872 | Bin 0 -> 655 bytes
+ ...zz-testcase-minimized-hb-shape-fuzzer-5725855502827520 | Bin 0 -> 655 bytes
+ ...zz-testcase-minimized-hb-shape-fuzzer-5736657639178240 | Bin 0 -> 459 bytes
3 files changed, 0 insertions(+), 0 deletions(-)
commit 5fff6ab0024547a8ac47723a0047f4b17416d6ce
Number to use double for all types
- src/hb-cff-interp-common.hh | 84
- +++++++--------------------------------------
+ src/hb-cff-interp-common.hh | 84 +++++++--------------------------------------
1 file changed, 13 insertions(+), 71 deletions(-)
commit 8c05b955eb4aa088b2b5df9b6415863486eaf59c
Date: Mon Dec 3 14:30:51 2018 -0500
Merge pull request #1439 from ebraminio/tracking
-
+
[aat] Expose hb_aat_layout_has_tracking API
commit 01f628cf5571b8b58108ab66cfc3e929c9840e31
Date: Mon Dec 3 10:41:37 2018 -0500
[aat] Expose a couple APIs
-
+
New API:
+hb_aat_layout_has_substitution()
+hb_aat_layout_has_positioning()
Date: Sun Dec 2 12:38:53 2018 -0500
[aat] Fix division sign fallout
-
+
Happened after 11d2f49af8f53340134c844173f4d8655b00dea3
since now nClasses is unsigned int...
src/hb-aat-layout-common.hh | 2 +-
- ...zz-testcase-minimized-hb-shape-fuzzer-5768046065483776 | Bin 0 ->
- 342 bytes
+ ...zz-testcase-minimized-hb-shape-fuzzer-5768046065483776 | Bin 0 -> 342 bytes
2 files changed, 1 insertion(+), 1 deletion(-)
commit 2087f5a2a743380b36399ba8a2b4ff9e93890fcf
CMakeLists.txt | 12 +--
src/Makefile.am | 6 --
- src/Makefile.sources | 231
- ++++++++++++++++++++++++---------------------------
+ src/Makefile.sources | 231 ++++++++++++++++++++++++---------------------------
3 files changed, 111 insertions(+), 138 deletions(-)
commit 967a204ee92548163a0d19678a237dcaf3720c20
Date: Sat Dec 1 13:12:21 2018 -0500
New approach to change BigEndian casts to be int-sized
-
+
Fixes spurious warnings like:
Fixes https://github.com/harfbuzz/harfbuzz/issues/1436
Date: Sat Dec 1 00:14:48 2018 -0500
Revert "Change BigEndian casts to be int-sized"
-
+
This reverts commit eb5ddd32bf4e458ca0af8d5784f8fd46485ad225.
-
+
Broke tests, badly. To be investigated and reenabled.
src/hb-open-type.hh | 16 ++++++++--------
Date: Sat Dec 1 00:03:01 2018 -0500
Change BigEndian casts to be int-sized
-
+
Fixes spurious warnings like:
Fixes https://github.com/harfbuzz/harfbuzz/issues/1436
src/hb-cff2-interp-cs.hh | 76 +++----
src/hb-ot-cff-common.hh | 128 +++++------
src/hb-ot-cff1-table.cc | 4 +-
- src/hb-ot-cff1-table.hh | 456
- +++++++++++++++++++--------------------
+ src/hb-ot-cff1-table.hh | 456 +++++++++++++++++++--------------------
src/hb-ot-cff2-table.cc | 4 +-
src/hb-ot-cff2-table.hh | 216 +++++++++----------
src/hb-subset-cff-common.cc | 76 +++----
src/hb-subset-cff-common.hh | 384 ++++++++++++++++-----------------
- src/hb-subset-cff1.cc | 416
- +++++++++++++++++------------------
+ src/hb-subset-cff1.cc | 416 +++++++++++++++++------------------
src/hb-subset-cff1.hh | 2 +-
src/hb-subset-cff2.cc | 240 ++++++++++-----------
src/hb-subset-cff2.hh | 2 +-
Remove generated files that were accidentally added by CFF2 branch
gtk-doc.make | 320 --
- m4/libtool.m4 | 8369
- -----------------------------------------------------
+ m4/libtool.m4 | 8369 -----------------------------------------------------
m4/ltoptions.m4 | 437 ---
m4/ltsugar.m4 | 124 -
m4/ltversion.m4 | 23 -
Date: Fri Nov 30 22:40:54 2018 -0500
Merge pull request #1113 from harfbuzz/cff-subset
-
+
CFF/CFF2 subsetter
commit 09096aa89f1944dff94a5518bce578eba8989e74
Date: Sat Dec 1 10:22:49 2018 +0700
Use nullptr instead of 0/NULL. (#1435)
-
+
* Use nullptr instead of 0/NULL.
-
+
* Update test-name-table.cc
src/hb-debug.hh | 2 +-
Date: Fri Nov 30 21:36:35 2018 -0500
Merge pull request #1433 from harfbuzz/overload-overload
-
+
Fix ambiguous overload errors with old compilers
commit fb059082138bf17a5a8616410d9a35f927f9fd85
Date: Fri Nov 30 20:45:40 2018 -0500
Revert ugly fixes
-
+
Now that we have 6daf45e0, revert cryptic hacks...
-
+
This reverts commit abd81ed4f5cbc5a94171747909bc6b77551cb929.
This reverts commit 9c6921c08c905a0cf45ba0182134e6ff910fac51.
This reverts commit d39760cabfe4007cefdfc45231e85e93fababac2.
This reverts commit fedd8e6c176dea85194693399e50243eb1c117c4.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1374
src/hb-aat-layout-morx-table.hh | 4 ++--
Date: Fri Nov 30 19:57:12 2018 -0500
Make operator [] take signed int
-
+
The built-in operator takes signed int. So, match it, such that
the built-in is never a better or equally-good match to our operator.
Fixes "ambiguous overload" errors from gcc 4.2 and VS 2008.
-
+
See https://github.com/harfbuzz/harfbuzz/issues/1374
src/hb-dsalgs.hh | 3 ++-
Date: Fri Nov 30 16:50:30 2018 -0500
One more.........
-
+
I wonder if there's something better to do about these :(.
-
+
In file included from hb-ot-color.cc:31:
- hb-ot-color-cpal-table.hh: In member function 'unsigned int
- OT::CPAL::get_size() const':
- hb-ot-color-cpal-table.hh:118: error: ISO C++ says that these are
- ambiguous, even though the worst conversion for the first is better
- than the worst conversion for the second:
+ hb-ot-color-cpal-table.hh: In member function 'unsigned int OT::CPAL::get_size() const':
+ hb-ot-color-cpal-table.hh:118: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
src/hb-ot-color-cpal-table.hh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Fri Nov 30 16:04:52 2018 -0500
One more....
-
- hb-ot-vorg-table.hh:96: error: ISO C++ says that these are ambiguous,
- even though the worst conversion for the first is better than the
- worst conversion for the second:
- hb-vector.hh:87: note: candidate 1: const Type& hb_vector_t<Type,
- PreallocedCount>::operator[](unsigned int) const [with Type =
- OT::VertOriginMetric, unsigned int PreallocedCount = 8u]
- hb-ot-vorg-table.hh:96: note: candidate 2: operator[](const T*,
- int) <built-in>
+
+ hb-ot-vorg-table.hh:96: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
+ hb-vector.hh:87: note: candidate 1: const Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) const [with Type = OT::VertOriginMetric, unsigned int PreallocedCount = 8u]
+ hb-ot-vorg-table.hh:96: note: candidate 2: operator[](const T*, int) <built-in>
src/hb-ot-vorg-table.hh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Fri Nov 30 15:55:30 2018 -0500
One more...
-
+
Sigh.
-
- hb-ot-kern-table.hh: In member function 'int
- OT::KernSubTableFormat3<KernSubTableHeader>::get_kerning(hb_codepoint_t,
- hb_codepoint_t) const':
- hb-ot-kern-table.hh:59: error: ambiguous overload for 'operator[]'
- in 'kernValue[kernIndex[i]]'
- hb-ot-kern-table.hh:59: note: candidates are: operator[](T*, int)
- <built-in>
- hb-dsalgs.hh:574: note: Type&
- hb_array_t<Type>::operator[](unsigned int) const [with Type = const
- OT::IntType<short int, 2u>]
+
+ hb-ot-kern-table.hh: In member function 'int OT::KernSubTableFormat3<KernSubTableHeader>::get_kerning(hb_codepoint_t, hb_codepoint_t) const':
+ hb-ot-kern-table.hh:59: error: ambiguous overload for 'operator[]' in 'kernValue[kernIndex[i]]'
+ hb-ot-kern-table.hh:59: note: candidates are: operator[](T*, int) <built-in>
+ hb-dsalgs.hh:574: note: Type& hb_array_t<Type>::operator[](unsigned int) const [with Type = const OT::IntType<short int, 2u>]
src/hb-ot-kern-table.hh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Fri Nov 30 15:16:57 2018 -0500
More...
-
- hb-ot-layout-gsubgpos.hh:1707: error: ISO C++ says that these are
- ambiguous, even though the worst conversion for the first is better
- than the worst conversion for the second:
+
+ hb-ot-layout-gsubgpos.hh:1707: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
...
src/hb-aat-layout-morx-table.hh | 4 ++--
Date: Fri Nov 30 12:52:21 2018 -0500
More weird fixes
-
+
In file included from hb-ot-name.cc:29:
- hb-ot-name-table.hh: In member function 'unsigned int
- OT::name::get_size() const':
- hb-ot-name-table.hh:157: error: ISO C++ says that these are ambiguous,
- even though the worst conversion for the first is better than the
- worst conversion for the second:
- hb-open-type.hh:354: note: candidate 1: const Type&
- OT::UnsizedArrayOf<Type>::operator[](unsigned int) const [with Type
- = OT::NameRecord]
- hb-ot-name-table.hh:157: note: candidate 2: operator[](const T*,
- int) <built-in>
- hb-ot-name-table.hh: In member function 'void
- OT::name::accelerator_t::init(hb_face_t*)':
- hb-ot-name-table.hh:196: error: ISO C++ says that these are ambiguous,
- even though the worst conversion for the first is better than the
- worst conversion for the second:
- hb-dsalgs.hh:574: note: candidate 1: Type&
- hb_array_t<Type>::operator[](unsigned int) const [with Type =
- const OT::NameRecord]
- hb-ot-name-table.hh:196: note: candidate 2: operator[](T*, int)
- <built-in>
- hb-ot-name-table.hh:197: error: ISO C++ says that these are ambiguous,
- even though the worst conversion for the first is better than the
- worst conversion for the second:
- hb-dsalgs.hh:574: note: candidate 1: Type&
- hb_array_t<Type>::operator[](unsigned int) const [with Type =
- const OT::NameRecord]
- hb-ot-name-table.hh:197: note: candidate 2: operator[](T*, int)
- <built-in>
- hb-ot-name-table.hh:198: error: ISO C++ says that these are ambiguous,
- even though the worst conversion for the first is better than the
- worst conversion for the second:
- hb-dsalgs.hh:574: note: candidate 1: Type&
- hb_array_t<Type>::operator[](unsigned int) const [with Type =
- const OT::NameRecord]
- hb-ot-name-table.hh:198: note: candidate 2: operator[](T*, int)
- <built-in>
+ hb-ot-name-table.hh: In member function 'unsigned int OT::name::get_size() const':
+ hb-ot-name-table.hh:157: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
+ hb-open-type.hh:354: note: candidate 1: const Type& OT::UnsizedArrayOf<Type>::operator[](unsigned int) const [with Type = OT::NameRecord]
+ hb-ot-name-table.hh:157: note: candidate 2: operator[](const T*, int) <built-in>
+ hb-ot-name-table.hh: In member function 'void OT::name::accelerator_t::init(hb_face_t*)':
+ hb-ot-name-table.hh:196: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
+ hb-dsalgs.hh:574: note: candidate 1: Type& hb_array_t<Type>::operator[](unsigned int) const [with Type = const OT::NameRecord]
+ hb-ot-name-table.hh:196: note: candidate 2: operator[](T*, int) <built-in>
+ hb-ot-name-table.hh:197: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
+ hb-dsalgs.hh:574: note: candidate 1: Type& hb_array_t<Type>::operator[](unsigned int) const [with Type = const OT::NameRecord]
+ hb-ot-name-table.hh:197: note: candidate 2: operator[](T*, int) <built-in>
+ hb-ot-name-table.hh:198: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
+ hb-dsalgs.hh:574: note: candidate 1: Type& hb_array_t<Type>::operator[](unsigned int) const [with Type = const OT::NameRecord]
+ hb-ot-name-table.hh:198: note: candidate 2: operator[](T*, int) <built-in>
make[4]: *** [libharfbuzz_la-hb-ot-name.lo] Error 1
make[3]: *** [all-recursive] Error 1
Date: Fri Nov 30 11:51:26 2018 -0500
Umm. Cryptic, yes
-
+
In file included from hb-face.cc:35:
- hb-ot-cmap-table.hh: In member function 'void
- OT::CmapSubtableFormat4::_compiles_assertion_on_line_388() const':
- hb-ot-cmap-table.hh:388: error: ISO C++ says that these are ambiguous,
- even though the worst conversion for the first is better than the
- worst conversion for the second:
- hb-open-type.hh:354: note: candidate 1: const Type&
- OT::UnsizedArrayOf<Type>::operator[](unsigned int) const [with Type =
- OT::IntType<short unsigned int, 2u>]
- hb-ot-cmap-table.hh:388: note: candidate 2: operator[](const T*,
- int) <built-in>
- hb-ot-cmap-table.hh: In member function 'void
- OT::CmapSubtableFormat4::_instance_assertion_on_line_388() const':
- hb-ot-cmap-table.hh:388: error: ISO C++ says that these are ambiguous,
- even though the worst conversion for the first is better than the
- worst conversion for the second:
- hb-open-type.hh:354: note: candidate 1: const Type&
- OT::UnsizedArrayOf<Type>::operator[](unsigned int) const [with Type =
- OT::IntType<short unsigned int, 2u>]
- hb-ot-cmap-table.hh:388: note: candidate 2: operator[](const T*,
- int) <built-in>
- hb-face.cc: In function 'hb_blob_t*
- _hb_face_builder_data_reference_blob(hb_face_builder_data_t*)':
- hb-face.cc:650: error: ISO C++ says that these are ambiguous, even
- though the worst conversion for the first is better than the worst
- conversion for the second:
- hb-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type,
- PreallocedCount>::operator[](unsigned int) [with Type =
- hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount
- = 32u]
+ hb-ot-cmap-table.hh: In member function 'void OT::CmapSubtableFormat4::_compiles_assertion_on_line_388() const':
+ hb-ot-cmap-table.hh:388: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
+ hb-open-type.hh:354: note: candidate 1: const Type& OT::UnsizedArrayOf<Type>::operator[](unsigned int) const [with Type = OT::IntType<short unsigned int, 2u>]
+ hb-ot-cmap-table.hh:388: note: candidate 2: operator[](const T*, int) <built-in>
+ hb-ot-cmap-table.hh: In member function 'void OT::CmapSubtableFormat4::_instance_assertion_on_line_388() const':
+ hb-ot-cmap-table.hh:388: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
+ hb-open-type.hh:354: note: candidate 1: const Type& OT::UnsizedArrayOf<Type>::operator[](unsigned int) const [with Type = OT::IntType<short unsigned int, 2u>]
+ hb-ot-cmap-table.hh:388: note: candidate 2: operator[](const T*, int) <built-in>
+ hb-face.cc: In function 'hb_blob_t* _hb_face_builder_data_reference_blob(hb_face_builder_data_t*)':
+ hb-face.cc:650: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
+ hb-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u]
hb-face.cc:650: note: candidate 2: operator[](T*, int) <built-in>
- hb-face.cc:650: error: ISO C++ says that these are ambiguous, even
- though the worst conversion for the first is better than the worst
- conversion for the second:
- hb-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type,
- PreallocedCount>::operator[](unsigned int) [with Type =
- hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount
- = 32u]
- hb-face.cc:650: note: candidate 2: operator[](const T*, int)
- <built-in>
- hb-face.cc:651: error: ISO C++ says that these are ambiguous, even
- though the worst conversion for the first is better than the worst
- conversion for the second:
- hb-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type,
- PreallocedCount>::operator[](unsigned int) [with Type =
- hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount
- = 32u]
+ hb-face.cc:650: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
+ hb-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u]
+ hb-face.cc:650: note: candidate 2: operator[](const T*, int) <built-in>
+ hb-face.cc:651: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
+ hb-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u]
hb-face.cc:651: note: candidate 2: operator[](T*, int) <built-in>
- hb-face.cc:651: error: ISO C++ says that these are ambiguous, even
- though the worst conversion for the first is better than the worst
- conversion for the second:
- hb-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type,
- PreallocedCount>::operator[](unsigned int) [with Type =
- hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount
- = 32u]
- hb-face.cc:651: note: candidate 2: operator[](const T*, int)
- <built-in>
+ hb-face.cc:651: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
+ hb-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u]
+ hb-face.cc:651: note: candidate 2: operator[](const T*, int) <built-in>
src/hb-face.cc | 4 ++--
src/hb-machinery.hh | 4 ++--
Date: Fri Nov 30 11:51:26 2018 -0500
Umm. Cryptic, yes
-
- hb-face.cc:650: error: ISO C++ says that these are ambiguous, even
- though the worst conversion for the first is better than the worst
- conversion for the second:
- hb-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type,
- PreallocedCount>::operator[](unsigned int) [with Type =
- hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount
- = 32u]
+
+ hb-face.cc:650: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
+ hb-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u]
hb-face.cc:650: note: candidate 2: operator[](T*, int) <built-in>
src/hb-face.cc | 4 ++--
src/Makefile.sources | 1 +
src/hb-deprecated.h | 61 +---------------------------
- src/hb-ot-deprecated.h | 106
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-deprecated.h | 106 +++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot.h | 1 +
4 files changed, 109 insertions(+), 60 deletions(-)
Date: Fri Nov 30 00:06:40 2018 +0330
[test][aat] Remove extra --shaper ot
-
+
As run-tests.py already adds it
- test/shaping/data/in-house/tests/macos.tests | 64
- ++++++++++++++--------------
+ test/shaping/data/in-house/tests/macos.tests | 64 ++++++++++++++--------------
1 file changed, 32 insertions(+), 32 deletions(-)
commit b65645bbafb3f1f9f956df3028cf4479a4bdc265
[ci] Re-enable llvm-gcc-4.2 bots (#1429)
- .circleci/config.yml | 48
- ++++++++++++++++++++++++------------------------
+ .circleci/config.yml | 48 ++++++++++++++++++++++++------------------------
1 file changed, 24 insertions(+), 24 deletions(-)
commit e7bd29ea11bd6301a332b471120a4a2cd8575d09
Date: Thu Nov 29 15:07:44 2018 -0500
[coretext] Fix compile
-
+
Fingers crossed.
src/hb-coretext.cc | 2 +-
Date: Thu Nov 29 14:34:44 2018 -0500
[vector] Make pointer cast explicit
-
+
Too bad this doesn't help MSVC 2008 build, as explicit operators are
C++11.
[test/text-rendering-tests] Update from upstream
- .../text-rendering-tests/fonts/TestGVAR-Composite-0.ttf | Bin 0 ->
- 3136 bytes
- .../fonts/TestGVAR-Composite-Missing.ttf | Bin 0 ->
- 2984 bytes
+ .../text-rendering-tests/fonts/TestGVAR-Composite-0.ttf | Bin 0 -> 3136 bytes
+ .../fonts/TestGVAR-Composite-Missing.ttf | Bin 0 -> 2984 bytes
2 files changed, 0 insertions(+), 0 deletions(-)
commit 000d4b128eba58677acdc3b361829ff2f9a257b1
Date: Thu Nov 29 12:32:47 2018 -0500
Make shaper's override_features() override user features as well
-
+
The override_features is used to override features that are normally
discretionary features, but in a specific shaper are for various
reasons desired to be bolted on or off, because they've been used
for inherent shaping. As such, it makes sense that they also
override user features. Ie. if user turned 'liga' on, we don't
want Khmer shaping to become broken... Or turn 'clig' off...
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1310
src/hb-ot-shape.cc | 6 +++---
Date: Thu Nov 29 12:30:14 2018 -0500
[khmer] Move 'clig' to overrides
-
+
Prerequisite for https://github.com/harfbuzz/harfbuzz/issues/1310
src/hb-ot-shape-complex-khmer.cc | 15 +++++++++------
Date: Thu Nov 29 12:18:14 2018 -0500
Fix "typename outside template" issues
-
+
Nothing an extra template class wouldn't fix...
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1419
src/hb-null.hh | 25 +++++++++++++++++++------
Date: Thu Nov 29 10:39:18 2018 -0500
Merge pull request #1418 from gvictor/replace_icu_deprecated
-
+
Replace @Deprecated ICU API - USCRIPT_CODE_LIMIT
commit e0307de818ad1f70ef96938642bda61d7a62532a
Date: Wed Nov 28 17:21:57 2018 -0500
Merge pull request #1425 from mbutterick/patch-1
-
+
update simple shaping example (closes #298)
commit d3d0f15f7d20bedf7018fb2fb652f92ff4159bd7
Date: Wed Nov 28 13:46:12 2018 -0800
update simple shaping example (closes #298)
-
- add call to `FT_Set_Char_Size`, otherwise default size remains at
- `0`, and glyph positions come back as `0` too
+
+ add call to `FT_Set_Char_Size`, otherwise default size remains at `0`, and glyph positions come back as `0` too
docs/usermanual-getting-started.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Date: Thu Nov 29 00:55:05 2018 +0330
[test][aat] Update expectency
-
- It is not visually noticeable but apparently affected by kern format2
- correct implementation.
+
+ It is not visually noticeable but apparently affected by kern format2 correct implementation.
I should've checked CoreText result which can't as CircleCI outage.
test/shaping/data/in-house/tests/macos.tests | 4 ++--
[test] Add test for format2 kern (#1423)
test/shaping/data/in-house/Makefile.sources | 1 +
- .../fonts/e39391c77a6321c2ac7a2d644de0396470cd4bfe.ttf | Bin 0 ->
- 34116 bytes
+ .../fonts/e39391c77a6321c2ac7a2d644de0396470cd4bfe.ttf | Bin 0 -> 34116 bytes
test/shaping/data/in-house/tests/kern-format2.tests | 3 +++
3 files changed, 4 insertions(+)
Date: Wed Nov 28 15:06:01 2018 -0500
[kern] Fix kern table Format2 offsetToIndex
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1421
src/hb-aat-layout-kerx-table.hh | 8 ++++++--
[test][aat] Add a test and make macOS runners faster (#1422)
.circleci/config.yml | 15 +++-----
- test/shaping/data/in-house/tests/macos.tests | 54
- ++++++++++++++--------------
+ test/shaping/data/in-house/tests/macos.tests | 54 ++++++++++++++--------------
2 files changed, 33 insertions(+), 36 deletions(-)
commit 987f4187722a05e3f360b85c66309a351fc5d6ad
Date: Tue Nov 27 17:40:32 2018 -0500
Merge pull request #1398 from Adenilson/bigInt01
-
+
Optimize harfbuzz big integer conversions
commit 4e2a03b6b6e0c0d1c4edea10dc1aae63eeb6c581
Date: Tue Nov 20 14:41:19 2018 -0800
Optimize harfbuzz big integer conversions
-
- Profiling showed that type conversions were adding considerable
- cycles in time
+
+ Profiling showed that type conversions were adding considerable cycles in time
spent doing text shaping.
-
- The idea is to optimize it using native processor instructions to
- help Blink
+
+ The idea is to optimize it using native processor instructions to help Blink
layout performance.
-
+
Doing further investigation revelead that compilers may not use the
proper instruction on ARM 32bits builds (i.e. REV16).
-
+
One way to insure that the generated ASM was ideal for both gcc/clang
was using __builtin_bswap16.
-
+
Added bonus is that we no longer need to test for CPU architecture.
src/hb-machinery.hh | 4 ++++
Date: Tue Nov 27 11:34:56 2018 +0000
Replace @Deprecated ICU API - USCRIPT_CODE_LIMIT
-
+
Use of the deprecated API USCRIPT_CODE_LIMIT prevents harfbuzz
using the ICU4C as a shared library.
-
+
The API has been replaced by u_getIntPropertyMaxValue(UCHAR_SCRIPT)
src/hb-icu.cc | 3 ++-
Date: Mon Nov 26 18:58:39 2018 +0330
[ci] Add .codecov.yml
-
- Similar to
- https://github.com/GoogleChrome/lighthouse/blob/master/.codecov.yml
-
+
+ Similar to https://github.com/GoogleChrome/lighthouse/blob/master/.codecov.yml
+
No strong preference on commenting, feel free to enable it again
.codecov.yml | 7 +++++++
Date: Sun Nov 25 16:51:22 2018 -0500
[aat] Ignore GSUB table of Muthu Foundry if they have morx table
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1410
src/hb-ot-layout-gpos-table.hh | 3 +++
Date: Sun Nov 25 01:14:40 2018 -0500
[aat.feat] Rework API and implementation
-
+
Fixes https://github.com/harfbuzz/harfbuzz/pull/1346
docs/harfbuzz-docs.xml | 5 +++
docs/harfbuzz-sections.txt | 7 ++--
- src/hb-aat-layout-feat-table.hh | 89
- +++++++++++++++++++++++------------------
+ src/hb-aat-layout-feat-table.hh | 89 +++++++++++++++++++++++------------------
src/hb-aat-layout.cc | 80 ++++++++++++++++--------------------
src/hb-aat-layout.h | 32 +++++++++------
test/api/test-aat-layout.c | 58 ++++++++++++++-------------
Date: Sat Nov 24 10:46:56 2018 -0500
[AAT.feat] Use lsearch for looking up SettingName's
-
+
They are not sorted.
src/hb-aat-layout-feat-table.hh | 18 ++++++------------
Date: Fri Nov 23 14:05:11 2018 -0500
[aat] Move contents of hb-aat.h to hb-aat-layout.h
-
+
Since it was pages and pages...
src/Makefile.sources | 1 +
src/hb-aat-layout.cc | 1 -
- src/hb-aat-layout.h | 452
- +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-aat-layout.h | 452 +++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-aat-layout.hh | 1 -
src/hb-aat-map.hh | 1 -
- src/hb-aat.h | 417
- +----------------------------------------------
+ src/hb-aat.h | 417 +----------------------------------------------
src/hb.hh | 2 +
7 files changed, 458 insertions(+), 417 deletions(-)
src/hb-aat-layout-feat-table.hh | 2 +-
src/hb-aat-layout-morx-table.hh | 4 +-
src/hb-aat-layout.cc | 150 ++++++------
- src/hb-aat.h | 502
- ++++++++++++++++++++--------------------
+ src/hb-aat.h | 502 ++++++++++++++++++++--------------------
test/api/test-aat-layout.c | 2 +-
5 files changed, 330 insertions(+), 330 deletions(-)
docs/harfbuzz-sections.txt | 6 +--
src/hb-aat-layout-feat-table.hh | 52 ++++++++++++------------
src/hb-aat-layout-morx-table.hh | 2 +-
- src/hb-aat-layout.cc | 88
- ++++++++++++++++++++---------------------
+ src/hb-aat-layout.cc | 88 ++++++++++++++++++++---------------------
src/hb-aat-layout.hh | 4 +-
src/hb-aat-map.cc | 2 +-
src/hb-aat-map.hh | 2 +-
[feat] Apply renamings and add documentation
docs/harfbuzz-sections.txt | 10 ++++++++++
- src/hb-aat-layout.cc | 44
- ++++++++++++++++++++++++++++++++++++++------
+ src/hb-aat-layout.cc | 44 ++++++++++++++++++++++++++++++++++++++------
src/hb-aat.h | 6 +++---
test/api/test-aat-layout.c | 28 ++++++++++++++--------------
4 files changed, 65 insertions(+), 23 deletions(-)
src/hb-aat-layout-feat-table.hh | 114 ++++---
src/hb-aat-layout.cc | 14 +-
- src/hb-aat.h | 673
- +++++++++++++++++-----------------------
+ src/hb-aat.h | 673 +++++++++++++++++-----------------------
test/api/test-aat-layout.c | 88 +++---
4 files changed, 423 insertions(+), 466 deletions(-)
src/hb-aat-layout-morx-table.hh | 2 +-
src/hb-aat-layout.cc | 104 ++++----
src/hb-aat-map.cc | 2 +-
- src/hb-aat.h | 533
- ++++++++++++----------------------------
+ src/hb-aat.h | 533 ++++++++++++----------------------------
src/hb-ot.h | 1 -
test/api/test-aat-layout.c | 84 +++----
8 files changed, 282 insertions(+), 528 deletions(-)
src/hb-aat-layout-morx-table.hh | 2 +-
src/hb-aat-layout.cc | 154 ++++-----
- src/hb-aat.h | 697
- ++++++++++++++++++++++++++++++++++++++--
+ src/hb-aat.h | 697 ++++++++++++++++++++++++++++++++++++++--
3 files changed, 752 insertions(+), 101 deletions(-)
commit fbad794bd2c574363a0c5c5fefabce764496f93c
src/hb-aat-layout-feat-table.hh | 36 +++++++++++++++++++++--------
src/hb-aat-layout.cc | 26 +++++++++++----------
src/hb-aat.h | 23 +++++++++++++++++--
- test/api/test-aat-layout.c | 51
- +++++++++++++++++++++++++++--------------
+ test/api/test-aat-layout.c | 51 +++++++++++++++++++++++++++--------------
4 files changed, 96 insertions(+), 40 deletions(-)
commit 7a0471aa356bcd062d31a59bdb19c335249116c7
src/hb-aat-layout-feat-table.hh | 20 ++---
src/hb-aat-layout-morx-table.hh | 10 +--
- src/hb-aat-layout.cc | 170
- ++++++++++++++++++++--------------------
+ src/hb-aat-layout.cc | 170 ++++++++++++++++++++--------------------
src/hb-aat-layout.hh | 6 +-
src/hb-aat-map.cc | 2 +-
src/hb-aat-map.hh | 4 +-
Date: Thu Nov 1 13:14:29 2018 +0330
[feat] Expose public API
-
+
* hb_aat_get_feature_settings
src/Makefile.sources | 1 +
src/hb-aat-map.hh | 5 ++-
src/hb-ot-face.hh | 1 +
test/api/Makefile.am | 1 +
- test/api/test-aat-layout.c | 89
- +++++++++++++++++++++++++++++++++++++++++
+ test/api/test-aat-layout.c | 89 +++++++++++++++++++++++++++++++++++++++++
test/api/test-c.c | 1 +
11 files changed, 278 insertions(+), 9 deletions(-)
Date: Sun Nov 25 00:30:08 2018 -0500
[test] Reorder test suites
-
+
aots is less interesting. Run text-rendering-tests before aots.
test/shaping/data/Makefile.am | 2 +-
Date: Sat Nov 24 23:38:06 2018 -0500
Add hb_sanitize_with_object_t
-
+
Context manager.
src/hb-machinery.hh | 17 +++++++++++++++++
Date: Sat Nov 24 23:12:28 2018 -0500
[aat] Skip terminator in VarSizedBinSearchArray<>
-
+
Fixes shaping with Apple Chancery on 10.13 again. In that font,
there was a terminator segment, that was tripping off sanitize().
Date: Sat Nov 24 22:16:59 2018 -0500
Revert "[aat.morx] Remove set_object() business"
-
+
This reverts commit ae8ed58a6e53441d9ccbf67afd8a00b815cde99e.
-
+
Apparently this broke Apple Chancery from OS X 10.12 :(.
Investigating...
Date: Sat Nov 24 22:16:53 2018 -0500
Revert "[aat.kerx] Remove kerx subtable boundary enforcement"
-
+
This reverts commit 15905a2a2998f7ddd964f920a4828602235d6b00.
src/hb-aat-layout-kerx-table.hh | 21 +++++++++++++++++++++
Date: Sat Nov 24 22:16:47 2018 -0500
Revert "[sanitize] Remove now-unused set_object() machinery"
-
+
This reverts commit bbdb6edb3e1cea4c5b7076c4f6b3e6998ae36dae.
src/hb-machinery.hh | 25 ++++++++++++++++++++++++-
test/shaping/data/in-house/Makefile.sources | 3 +--
.../data/in-house/tests/macos-10.12.6.tests | 11 ---------
.../data/in-house/tests/macos-10.13.6.tests | 13 -----------
- test/shaping/data/in-house/tests/macos.tests | 26
- ++++++++++++++++++++++
+ test/shaping/data/in-house/tests/macos.tests | 26 ++++++++++++++++++++++
4 files changed, 27 insertions(+), 26 deletions(-)
commit bbdb6edb3e1cea4c5b7076c4f6b3e6998ae36dae
Date: Sat Nov 24 17:14:39 2018 -0500
[aat.kerx] Remove kerx subtable boundary enforcement
-
+
Have not encountered fonts needing this, but same reasoning as
for morx (see previos commit.)
Date: Sat Nov 24 17:11:09 2018 -0500
[aat.morx] Remove set_object() business
-
+
With OS X 10.13 Apple Chancery fails to ligate if we limit each morx
sub-chain to its declared length. Perhaps their newer compiler does
object-sharing across sub-chains. Anyway, since that's a valid, if
unspecified, way to compile tables, remove enforcement.
-
+
Probably do the same with kern/kerx.
src/hb-aat-layout-morx-table.hh | 8 --------
Add 10.13.6 aat fonts tests and bot (#1409)
- .circleci/config.yml | 16
- ++++++++++++++--
+ .circleci/config.yml | 16 ++++++++++++++--
test/shaping/data/in-house/Makefile.sources | 3 ++-
.../in-house/tests/{macos.tests => macos-10.12.6.tests} | 2 --
- test/shaping/data/in-house/tests/macos-10.13.6.tests | 13
- +++++++++++++
+ test/shaping/data/in-house/tests/macos-10.13.6.tests | 13 +++++++++++++
4 files changed, 29 insertions(+), 5 deletions(-)
commit b7f7950e8fc4b9e229b466ac2453d57b8da9a5a6
[tests] Redo test runner logging a bit
- test/shaping/run-tests.py | 44
- +++++++++++++++++++++++---------------------
+ test/shaping/run-tests.py | 44 +++++++++++++++++++++++---------------------
1 file changed, 23 insertions(+), 21 deletions(-)
commit 5020affc3877d39377506245ecaf01a659eef82a
Date: Sat Nov 24 15:37:01 2018 -0500
[tests/shaping] Allow comments in test files
-
+
Line should start with "# ".
test/shaping/run-tests.py | 17 +++++++++++++++--
[tests] Rename
- test/shaping/data/in-house/Makefile.sources |
- 2 +-
+ test/shaping/data/in-house/Makefile.sources | 2 +-
test/shaping/data/in-house/tests/{macos-10.12.tests => macos.tests} | 0
2 files changed, 1 insertion(+), 1 deletion(-)
Date: Sat Nov 24 14:52:34 2018 -0500
[morx/kerx] Fix sanitize regression
-
+
Broke in 8dcc1913a1670ede7b124f7b5b775d7ab8791386
-
+
If sanitizer is left with another object, it wouldn't work.
-
+
Better fix coming soon.
src/hb-aat-layout-kerx-table.hh | 6 +-----
Date: Sat Nov 24 20:49:21 2018 +0330
[test] Enable more of aots tests (#1408)
-
+
The ones commented out in this change should've be passed :/
a closer look is needed.
- test/shaping/data/aots/Makefile.sources | 76
- +++++++++++-----------
+ test/shaping/data/aots/Makefile.sources | 76 +++++++++++-----------
test/shaping/data/aots/hb-aots-tester.cpp | 1 +
test/shaping/data/aots/tests/classdef1_empty.tests | 2 +-
test/shaping/data/aots/tests/gsub3_1_simple.tests | 2 +-
Date: Sat Nov 24 20:07:24 2018 +0330
Add Adobe AOTS tests (#1395)
-
- Annotated OpenType Specification or aots,
- https://github.com/adobe-type-tools/aots
- provides a set of tests for OpenType specification, this change add
- those tests in addition
- to modified version of their HarfBuzz test runner for generating
- harfbuzz project specific tests.
+
+ Annotated OpenType Specification or aots, https://github.com/adobe-type-tools/aots
+ provides a set of tests for OpenType specification, this change add those tests in addition
+ to modified version of their HarfBuzz test runner for generating harfbuzz project specific tests.
configure.ac | 1 +
test/shaping/CMakeLists.txt | 13 +-
.../fonts/lookupflag_ignore_combination_f1.otf | Bin 0 -> 5408 bytes
.../aots/fonts/lookupflag_ignore_ligatures_f1.otf | Bin 0 -> 5320 bytes
.../data/aots/fonts/lookupflag_ignore_marks_f1.otf | Bin 0 -> 5288 bytes
- test/shaping/data/aots/hb-aots-tester.cpp | 343
- +++++++++++++++++++++
+ test/shaping/data/aots/hb-aots-tester.cpp | 343 +++++++++++++++++++++
test/shaping/data/aots/tests/classdef1.tests | 1 +
test/shaping/data/aots/tests/classdef1_empty.tests | 1 +
.../data/aots/tests/classdef1_multiple.tests | 1 +
Date: Sat Nov 24 10:06:13 2018 -0500
[arrays] Improve bfind() interface
-
+
Much more useful now. :)
src/hb-dsalgs.hh | 29 +++++++++++++++++++++++++----
Date: Sat Nov 24 09:49:21 2018 -0500
[fuzzing] Add tests for previous commit
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11526
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11522
- ...zz-testcase-minimized-hb-shape-fuzzer-5634620935110656 | Bin 0 ->
- 41 bytes
- ...zz-testcase-minimized-hb-shape-fuzzer-5716208469409792 | Bin 0 ->
- 243 bytes
+ ...zz-testcase-minimized-hb-shape-fuzzer-5634620935110656 | Bin 0 -> 41 bytes
+ ...zz-testcase-minimized-hb-shape-fuzzer-5716208469409792 | Bin 0 -> 243 bytes
2 files changed, 0 insertions(+), 0 deletions(-)
commit 8dcc1913a1670ede7b124f7b5b775d7ab8791386
[arrays] Port SortedArrayOf.bsearch/bfind to hb_sorted_array_t's
src/hb-dsalgs.hh | 9 +++------
- src/hb-open-type.hh | 50
- ++++++++++----------------------------------------
+ src/hb-open-type.hh | 50 ++++++++++----------------------------------------
src/hb-vector.hh | 35 ++++++++++-------------------------
3 files changed, 23 insertions(+), 71 deletions(-)
[arrays] Port hb_vector_t.bsearch/bfind to (new) hb_sorted_array_t's
- src/hb-dsalgs.hh | 63
- +++++++++++++++++++++++++++++++++++++++++++++++++----
+ src/hb-dsalgs.hh | 63 +++++++++++++++++++++++++++++++++++++++++++++++++----
src/hb-open-type.hh | 12 ++++++----
src/hb-vector.hh | 57 +++++++++++++++++++-----------------------------
3 files changed, 89 insertions(+), 43 deletions(-)
Date: Sat Nov 24 00:58:44 2018 -0500
[arrays] Update ArrayOf.lsearch()
-
+
Currently unused apparently
src/hb-open-type.hh | 17 +++++++++++++----
Date: Sat Nov 24 00:53:19 2018 -0500
[arrays] Change argument type of cmp called by hb_vector_t.bsearch()
-
+
Towards consolidating all array bsearch/...
src/hb-aat-map.hh | 4 ++--
Author: Nathan Willis <nwillis@glyphography.com>
Date: Thu Nov 15 17:40:21 2018 -0600
- Usermanual: clusters chapter; add brief grapheme definition and
- clarify monotonous cluster handling.
+ Usermanual: clusters chapter; add brief grapheme definition and clarify monotonous cluster handling.
- docs/usermanual-clusters.xml | 56
- ++++++++++++++++++++++++++++++--------------
+ docs/usermanual-clusters.xml | 56 ++++++++++++++++++++++++++++++--------------
1 file changed, 39 insertions(+), 17 deletions(-)
commit 939220e57da613e090d247aa1af2396c28370af4
Usermanual: expand clusters chapter.
- docs/usermanual-clusters.xml | 743
- +++++++++++++++++++++++++++----------------
+ docs/usermanual-clusters.xml | 743 +++++++++++++++++++++++++++----------------
1 file changed, 473 insertions(+), 270 deletions(-)
commit 30cb45b3eaacda15cc45435815cae3fd50e87557
Date: Sat Nov 24 00:35:31 2018 -0500
Change ArrayOf.bsearch() return semantics
-
+
Towards consolidating all array bsearch/...
src/hb-aat-layout-kerx-table.hh | 16 +++-------------
src/hb-open-file.hh | 12 ++++++++----
- src/hb-open-type.hh | 42
- ++++++++++++++++++++++++++++++++---------
+ src/hb-open-type.hh | 42 ++++++++++++++++++++++++++++++++---------
src/hb-ot-cmap-table.hh | 30 ++++++++++++-----------------
src/hb-ot-color-svg-table.hh | 3 +--
src/hb-ot-layout-common.hh | 29 +++++++++++-----------------
Date: Fri Nov 23 13:49:34 2018 -0500
Merge pull request #1407 from harfbuzz/at-sign
-
+
Don't canonicalize '@' to '-' in language tags
commit 018ba46e4d003a5dd0f6d2d899226129c4ef0c60
Date: Fri Nov 23 13:21:22 2018 -0500
Don't canonicalize '@' to '-' in language tags
-
+
Fixes #1406.
src/hb-common.cc | 2 +-
Date: Fri Nov 23 11:10:17 2018 -0500
[aat] Disable mark advance zeroing if kern table has state-machines
-
+
Geeza Pro for example, relies on that for fancy mark positioning.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1405
src/hb-aat-layout-kerx-table.hh | 15 +++++++++++++++
[aat] Add macOS specific tests (#1404)
- .circleci/config.yml | 46
- ++++++++++++++--------
+ .circleci/config.yml | 46 ++++++++++++++--------
test/shaping/CMakeLists.txt | 2 +
test/shaping/data/in-house/Makefile.sources | 1 +
test/shaping/data/in-house/tests/macos-10.12.tests | 10 +++++
- test/shaping/run-tests.py | 38
- ++++++++++++++----
+ test/shaping/run-tests.py | 38 ++++++++++++++----
5 files changed, 73 insertions(+), 24 deletions(-)
commit 22798e93c414a2655c757a6e41b300f67e04a9a3
Date: Thu Nov 22 22:39:12 2018 -0500
Merge pull request #1291 from harfbuzz/use-reordering
-
+
[use] Fix reordering
commit e4a4555d1e40dacdf72452805e9e6b6109627d63
Date: Thu Nov 22 22:12:36 2018 -0500
[sanitizer] Add reset_object(), make set_object() do bounds-check
-
- Affects morx/kerx run-time only currently. Will adjust their
- sanitize next.
+
+ Affects morx/kerx run-time only currently. Will adjust their sanitize next.
src/hb-aat-layout-kerx-table.hh | 1 +
src/hb-aat-layout-morx-table.hh | 1 +
Date: Thu Nov 22 22:02:19 2018 -0500
[kerx] Make sure subtables are non-zero-length
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11400
src/hb-aat-layout-kerx-table.hh | 1 +
src/hb-aat-layout-morx-table.hh | 2 +-
- ...z-testcase-minimized-hb-shape-fuzzer-5722888989048832 | Bin 0 ->
- 3608 bytes
+ ...z-testcase-minimized-hb-shape-fuzzer-5722888989048832 | Bin 0 -> 3608 bytes
3 files changed, 2 insertions(+), 1 deletion(-)
commit a9e0bdc35dfcbead7d4b6fa249d60ebedd7d43ca
Date: Thu Nov 22 21:30:04 2018 -0500
[GSUB] Don't flush glyphset during recursion in closure()
-
+
See comment.
-
+
Supercedes https://github.com/harfbuzz/harfbuzz/pull/1401
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11366
[subset] add fuzzer testcase.
- ...z-testcase-minimized-hb-subset-fuzzer-5067936541179904 | Bin 0 ->
- 172 bytes
+ ...z-testcase-minimized-hb-subset-fuzzer-5067936541179904 | Bin 0 -> 172 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit d0e81b2cc85d09d01905c5fc5b3382c25eaa3bb3
Date: Thu Nov 22 18:07:59 2018 -0500
Enforce requiring null_size even if min_size is 0
-
+
This concludes null-size enforcement changes
src/hb-null.hh | 2 +-
Date: Thu Nov 22 17:56:51 2018 -0500
[glyf] Don't mark structs UNBOUNDED
-
+
See comments.
src/hb-ot-glyf-table.hh | 8 ++++++--
Date: Thu Nov 22 17:53:29 2018 -0500
Mark UnsizedArrayOf<> as UNBOUNDED
-
+
Since min_size is 0, Null() still accepts this type.
src/hb-open-type.hh | 3 ++-
Date: Thu Nov 22 16:20:29 2018 -0500
[aat] Zero mark advances if decided so even if there's cross-kerning
-
- Cross-kerning can only take care of positioning vertically.
- It doesn't
+
+ Cross-kerning can only take care of positioning vertically. It doesn't
adjust mark advance...
src/hb-ot-shape.cc | 2 +-
Date: Thu Nov 22 15:52:29 2018 -0500
[aat] Tweak fallback positioning logic when applying morx
-
- Such that for Indic-like scripts (eg. Khmer), we don't do any
- fallback mark
- advance-zeroing / positioning, but we do for Latin, etc. Reuses
- preferences
+
+ Such that for Indic-like scripts (eg. Khmer), we don't do any fallback mark
+ advance-zeroing / positioning, but we do for Latin, etc. Reuses preferences
of our script-specific OpenType shapers for those.
-
+
Fixes regression: https://github.com/harfbuzz/harfbuzz/issues/1393
- Which means, fixes again:
- https://github.com/harfbuzz/harfbuzz/issues/1264
+ Which means, fixes again: https://github.com/harfbuzz/harfbuzz/issues/1264
While not regressing: https://github.com/harfbuzz/harfbuzz/issues/1357
src/hb-ot-shape.cc | 38 +++++++++++++++++++++++---------------
Date: Thu Nov 22 14:45:46 2018 -0500
[myanmar] If there's no GSUB table, pick myanmar shaper
-
+
Needed for morx+kern mark-zeroing interaction. All other scripts
work this way.
Date: Thu Nov 22 14:41:01 2018 -0500
[myanmar] Remove myanmar_old shaper
-
+
Over time it has become the same as default shaper. So, remove.
src/hb-ot-shape-complex-myanmar.cc | 21 ---------------------
Date: Thu Nov 22 01:53:36 2018 -0500
Fix spurious gcc warnings
-
- ../../src/hb-null.hh:53:39: warning: enum constant in boolean context
- [-Wint-in-bool-context]
+
+ ../../src/hb-null.hh:53:39: warning: enum constant in boolean context [-Wint-in-bool-context]
src/hb-null.hh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Thu Nov 22 01:49:12 2018 -0500
More
-
+
This makes more of the gcc spurious warning:
-
- ../../src/hb-null.hh:53:39: warning: enum constant in boolean context
- [-Wint-in-bool-context]
-
- But not going to let that defeat correct code. Type to switch
- to clang
+
+ ../../src/hb-null.hh:53:39: warning: enum constant in boolean context [-Wint-in-bool-context]
+
+ But not going to let that defeat correct code. Type to switch to clang
as my main compiler...
src/hb-blob.hh | 2 +-
Date: Thu Nov 22 01:44:27 2018 -0500
Fix up recent change
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1300
src/hb-null.hh | 12 +++++++++---
Date: Thu Nov 22 01:18:55 2018 -0500
Disallow taking Null() of unbounded structs
-
+
Not sure I've marked all such structs. To be done as we discover.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1300
src/hb-aat-layout-common.hh | 2 +-
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Nov 22 01:10:22 2018 -0500
- Use Type::null_size for our structs in Null(), sizeof() for other
- types
+ Use Type::null_size for our structs in Null(), sizeof() for other types
src/hb-null.hh | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
Date: Thu Nov 22 00:39:14 2018 -0500
Fix bots happy again, hopefully
-
+
So, our fallback static_assert cannot be had more than once per line
of source.
Date: Thu Nov 22 00:21:49 2018 -0500
Revert alignof() == 1 check
-
+
Bots not happy with using "this" inside assertion...
-
+
This reverts 2656644887e77a9d814bb12374af3c26b42fd935
src/hb-machinery.hh | 12 ++++--------
Date: Wed Nov 21 17:27:27 2018 -0500
Merge pull request #1400 from harfbuzz/sharada-sandhi-mark
-
+
Test U+111C9 SHARADA SANDHI MARK
commit 264439c6c308ac5f01c4ba4faf64daa2d642236a
Test U+111C9 SHARADA SANDHI MARK
- .../fonts/86cdd983c4e4c4d7f27dd405d6ceb7d4b9ed3d35.ttf | Bin 0 ->
- 968 bytes
+ .../fonts/86cdd983c4e4c4d7f27dd405d6ceb7d4b9ed3d35.ttf | Bin 0 -> 968 bytes
test/shaping/data/in-house/tests/use-syllable.tests | 1 +
2 files changed, 1 insertion(+)
Date: Wed Nov 21 16:12:32 2018 -0500
Merge pull request #1399 from harfbuzz/sharada-sandhi-mark
-
+
Fix USE categories for U+111C9 SHARADA SANDHI MARK
commit b89c7fd3dc505a958dd4b6acec0e0f8e57224fd8
Date: Wed Nov 21 12:32:48 2018 -0500
Allow defining HB_USE_ATEXIT to 0
-
- That's better use of that value than requiring extra macro
- HB_NO_ATEXIT
+
+ That's better use of that value than requiring extra macro HB_NO_ATEXIT
src/hb-common.cc | 10 +++++-----
src/hb-ft.cc | 12 ++++++------
Date: Tue Nov 20 20:40:55 2018 -0500
[var] Deprecated axis enumeration API and add new version
-
+
New version has axis flags.
-
+
New API:
+hb_ot_var_axis_info_t
+hb_ot_var_find_axis_info()
+hb_ot_var_get_axis_infos()
-
+
Deprecated API:
-HB_OT_VAR_NO_AXIS_INDEX
-hb_ot_var_axis_t
docs/harfbuzz-sections.txt | 14 +++---
src/hb-deprecated.h | 37 +++++++++++++++
- src/hb-ot-var-fvar-table.hh | 112
- ++++++++++++++++++++++++++++++++------------
+ src/hb-ot-var-fvar-table.hh | 112 ++++++++++++++++++++++++++++++++------------
src/hb-ot-var.cc | 43 ++++++++++++++---
src/hb-ot-var.h | 61 ++++++++++++------------
test/api/test-ot-face.c | 2 +-
Date: Tue Nov 20 16:29:30 2018 -0500
Merge pull request #1397 from harfbuzz/small-emoji-table
-
+
Shrink the emoji table by merging adjacent ranges
commit 82951182799772a642d32195dd87e6f0c116f545
Shrink the emoji table by merging adjacent ranges
src/gen-emoji-table.py | 13 +--
- src/hb-unicode-emoji-table.hh | 189
- ++++--------------------------------------
+ src/hb-unicode-emoji-table.hh | 189 ++++--------------------------------------
2 files changed, 23 insertions(+), 179 deletions(-)
commit be1828daaa1e1a72d971aed8d34fff54688d0f41
Date: Tue Nov 20 11:16:23 2018 -0500
[var] Fix type of coords returned
-
+
Ouch. Wonder how none of the bots caught the float->int truncation.
src/hb-ot-var-fvar-table.hh | 2 +-
Date: Sat Oct 20 15:02:26 2018 -0400
[use] Fix reordering
-
+
Fixes #1235.
- src/hb-ot-shape-complex-use.cc | 48
- ++++++++++++++-------
+ src/hb-ot-shape-complex-use.cc | 48 ++++++++++++++-------
src/hb.hh | 2 +
.../4afb0e8b9a86bb9bd73a1247de4e33fbe3c1fd93.ttf | Bin 0 -> 1824 bytes
test/shaping/data/in-house/tests/use.tests | 3 ++
Date: Mon Nov 19 14:27:19 2018 -0500
[fvar] Add named-instance API
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1241
docs/harfbuzz-sections.txt | 4 ++++
- src/hb-ot-var-fvar-table.hh | 55
- ++++++++++++++++++++++++++++++++++++++++++---
+ src/hb-ot-var-fvar-table.hh | 55 ++++++++++++++++++++++++++++++++++++++++++---
src/hb-ot-var.cc | 33 +++++++++++++++++++++++++++
src/hb-ot-var.h | 32 ++++++++++++++++++++++++++
4 files changed, 121 insertions(+), 3 deletions(-)
Date: Mon Nov 19 12:36:56 2018 -0500
[ot-var] Add hb_ot_var_axis_get_flags()
-
+
Part of https://github.com/harfbuzz/harfbuzz/issues/1241
-
+
New API:
+hb_ot_var_axis_flags_t
+hb_ot_var_axis_get_flags
Date: Mon Nov 19 11:34:56 2018 -0500
[ot-var] Add flags
-
- Unfortunate that we don't have room in hb_ot_var_axis_t to expose
- flags :(.
+
+ Unfortunate that we don't have room in hb_ot_var_axis_t to expose flags :(.
src/hb-ot-var-fvar-table.hh | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
Date: Fri Nov 16 16:48:28 2018 -0800
Revert b4c61130324455bfd42095b01fa14ac901e441f1
-
- Was causing more trouble than it solved. We use unsigned for
- indexing,
+
+ Was causing more trouble than it solved. We use unsigned for indexing,
and it's not helpful to allow that wrapping to negative integers on
32bit machines. The only way we could work around it would have been
by accepting int64_t arg, but that's overkill.
-
+
Ignore the MSVC 2008 build issue. We don't support that compiler.
src/hb-open-type.hh | 17 ++++-------------
Date: Fri Nov 16 16:41:59 2018 -0800
Detect over/under-flow in UnsizedArray::operator[]
-
- Was causing bad substitutions in mort table because of
- WordOffsetToIndex()
- producing negative numbers that were cast to unsigned int and
- returned as
- large numbers (which was desirable, so they would be rejected),
- but then
+
+ Was causing bad substitutions in mort table because of WordOffsetToIndex()
+ producing negative numbers that were cast to unsigned int and returned as
+ large numbers (which was desirable, so they would be rejected), but then
they were cast to int when passed to this operator and acting as small
negative integers, which was bad...
-
+
Detect overflow. Ouch, however, now I see this still fails on 32-bit.
Guess I'm going to revert an earlier change.
Date: Fri Nov 16 16:11:02 2018 -0800
[aat] Fix mort shaping
-
+
Ouch!
src/hb-aat-layout.cc | 2 +-
Date: Fri Nov 16 15:04:41 2018 -0800
Fix vertical fallback space sign
-
+
Ouch!
-
+
Follow-up to cf203af8a33591c163b63dbdf0fd341bc4606190
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1343
src/hb-ot-shape-fallback.cc | 8 ++++----
Date: Fri Nov 16 14:46:40 2018 -0800
Don't apply GPOS if applying morx
-
- That's what Apple does, and it wouldn't degrade our OpenType
- performance.
-
+
+ That's what Apple does, and it wouldn't degrade our OpenType performance.
+
Part of https://github.com/harfbuzz/harfbuzz/issues/1348
src/hb-ot-shape.cc | 2 +-
Date: Fri Nov 16 14:45:56 2018 -0800
Prefer morx table if GSUB is empty (no scripts)
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1348
src/hb-ot-shape.cc | 6 +++++-
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Fri Nov 16 02:29:13 2018 -0500
- [shaper] Rewrite shaper data code to be more template-driven than
- macro-driven
+ [shaper] Rewrite shaper data code to be more template-driven than macro-driven
src/hb-coretext.cc | 17 +++----
src/hb-directwrite.cc | 9 +---
src/hb-ot-shape.cc | 5 --
src/hb-shape-plan.cc | 4 +-
src/hb-shaper-impl.hh | 9 +---
- src/hb-shaper.hh | 117
- ++++++++++++++++++++++++++++++++---------------
+ src/hb-shaper.hh | 117 ++++++++++++++++++++++++++++++++---------------
src/hb-uniscribe.cc | 32 +++++--------
14 files changed, 127 insertions(+), 147 deletions(-)
Date: Fri Nov 16 02:02:24 2018 -0500
[hdmx] Fix bounds checking
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11351
src/hb-ot-hdmx-table.hh | 11 +++++------
Date: Fri Nov 16 01:48:26 2018 -0500
[subset] Remove invalid glyphs from glypset to retain
-
+
Fixes https://github.com/harfbuzz/harfbuzz/pull/1388
src/hb-subset-plan.cc | 13 +++++++++++++
Date: Thu Nov 15 15:41:46 2018 -0800
use 2-byte offset instead of 4-byte for local subrs
-
- more than enough since local subrs immediately follow its
- corresponding private dict, as the result 2-byte redunction for each
- font dict with local subrs
+
+ more than enough since local subrs immediately follow its corresponding private dict, as the result 2-byte redunction for each font dict with local subrs
updated api test expected subset fonts accordingly
src/hb-subset-cff-common.hh | 4 ++--
- test/api/fonts/AdobeVFPrototype.abc.otf | Bin 7460 ->
- 7456 bytes
- test/api/fonts/AdobeVFPrototype.ac.nohints.otf | Bin 6780 ->
- 6780 bytes
- test/api/fonts/AdobeVFPrototype.ac.otf | Bin 6996 ->
- 6996 bytes
- .../fonts/SourceHanSans-Regular.41,4C2E.nohints.otf | Bin 2380 ->
- 2376 bytes
- test/api/fonts/SourceHanSans-Regular.41,4C2E.otf | Bin 2576 ->
- 2572 bytes
- test/api/fonts/SourceSansPro-Regular.abc.otf | Bin 1812 ->
- 1808 bytes
- test/api/fonts/SourceSansPro-Regular.ac.nohints.otf | Bin 1592 ->
- 1592 bytes
- test/api/fonts/SourceSansPro-Regular.ac.otf | Bin 1708 ->
- 1704 bytes
- test/api/fonts/cff1_seac.C0.otf | Bin 1604 ->
- 1600 bytes
+ test/api/fonts/AdobeVFPrototype.abc.otf | Bin 7460 -> 7456 bytes
+ test/api/fonts/AdobeVFPrototype.ac.nohints.otf | Bin 6780 -> 6780 bytes
+ test/api/fonts/AdobeVFPrototype.ac.otf | Bin 6996 -> 6996 bytes
+ .../fonts/SourceHanSans-Regular.41,4C2E.nohints.otf | Bin 2380 -> 2376 bytes
+ test/api/fonts/SourceHanSans-Regular.41,4C2E.otf | Bin 2576 -> 2572 bytes
+ test/api/fonts/SourceSansPro-Regular.abc.otf | Bin 1812 -> 1808 bytes
+ test/api/fonts/SourceSansPro-Regular.ac.nohints.otf | Bin 1592 -> 1592 bytes
+ test/api/fonts/SourceSansPro-Regular.ac.otf | Bin 1708 -> 1704 bytes
+ test/api/fonts/cff1_seac.C0.otf | Bin 1604 -> 1600 bytes
10 files changed, 2 insertions(+), 2 deletions(-)
commit 9d0231cfe7c404da3b5bc360ad76180a7aded62c
src/hb-open-type.hh | 70 ++++++------
src/hb-ot-cmap-table.hh | 182 +++++++++++++++----------------
- src/hb-ot-glyf-table.hh | 242
- ++++++++++++++++++++---------------------
+ src/hb-ot-glyf-table.hh | 242 ++++++++++++++++++++---------------------
src/hb-ot-hdmx-table.hh | 20 ++--
src/hb-ot-hmtx-table.hh | 14 +--
src/hb-ot-layout-common.hh | 77 ++++++-------
src/hb-aat-layout.hh | 6 +++---
src/hb-ot-layout.cc | 2 +-
src/hb-ot-layout.hh | 2 +-
- src/hb-ot-shape.cc | 44
- +++++++++++++++++++++++++++++---------------
+ src/hb-ot-shape.cc | 44 +++++++++++++++++++++++++++++---------------
src/hb-ot-shape.hh | 6 +++---
7 files changed, 43 insertions(+), 29 deletions(-)
Implemented seac for extents & subset along with API tests
- gtk-doc.make | 321
- +++++++++++++++++++++++++++++++++++++++-
+ gtk-doc.make | 321 +++++++++++++++++++++++++++++++++++++++-
src/hb-cff-interp-common.hh | 2 +-
src/hb-cff-interp-cs-common.hh | 7 +
src/hb-cff1-interp-cs.hh | 29 +++-
src/hb-ot-face.hh | 2 +
src/hb-ot-font.cc | 4 +-
src/hb-ot-hmtx-table.hh | 11 +-
- src/hb-ot-stat-table.hh | 280
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-stat-table.hh | 280 ++++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 290 insertions(+), 8 deletions(-)
commit 48d16c2ab2b181c733accd4fd9730963e59b6323
Date: Wed Nov 14 09:56:30 2018 -0500
[hmtx] Fix signedness issue
-
- Fixes
- https://github.com/harfbuzz/harfbuzz/issues/1248#issuecomment-438689499
+
+ Fixes https://github.com/harfbuzz/harfbuzz/issues/1248#issuecomment-438689499
src/hb-ot-hmtx-table.hh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
Date: Wed Nov 14 08:29:17 2018 +0330
Merge pull request #1383 from punchcutter/master
-
+
Add test for https://github.com/harfbuzz/harfbuzz/issues/1379
commit e543e1a0858bb5d7384d82600a789d40b62d9821
Add Grantha test
- .../fonts/dcf774ca21062e7439f98658b18974ea8b956d0c.ttf | Bin 0 ->
- 2568 bytes
+ .../fonts/dcf774ca21062e7439f98658b18974ea8b956d0c.ttf | Bin 0 -> 2568 bytes
test/shaping/data/in-house/tests/use.tests | 1 +
2 files changed, 1 insertion(+)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue Nov 13 21:10:10 2018 -0500
- [aat] Disable fallback mark advance zeroing and positioning if
- morx applied
-
+ [aat] Disable fallback mark advance zeroing and positioning if morx applied
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1357
src/hb-ot-shape.cc | 4 ++--
Date: Tue Nov 13 20:48:46 2018 -0500
Don't retry creating again and again in lazy_loader if create failed
-
- Still does that if get_null() returns nullptr. Our shaper data
- objects
+
+ Still does that if get_null() returns nullptr. Our shaper data objects
are like that. Shrug.
src/hb-machinery.hh | 14 ++++++++++----
Date: Tue Nov 13 19:50:25 2018 -0500
Merge pull request #1382 from punchcutter/master
-
+
Change USE Category for Grantha Virama
commit 2092f595c7a4c591cace41cb99d31620fa6d5fa4
Date: Tue Nov 13 19:49:06 2018 -0500
Merge pull request #1380 from kbrow1i/cygwin
-
+
Don't use Win32 API on Cygwin
commit c565fc3fb3b14c02e30af28b9d4d4289b0d2e162
Date: Tue Nov 13 11:45:12 2018 -0500
Make atomic types' internal values non-mutable
-
+
This resulted from confusion previously...
src/hb-atomic.hh | 10 +++++-----
Date: Mon Nov 12 21:05:39 2018 -0500
Don't use Win32 API on Cygwin
-
+
Cygwin is a Posix platform to the extent possible. It should use the
Posix API except in special circumstances.
Date: Mon Nov 12 19:26:01 2018 -0500
[shape-plan] Implement fine-grained caching plans with user-features
-
+
Only tag, value, and global-ness of features are considered, not their
start/end offsets.
- src/hb-shape-plan.cc | 69
- ++++++++++++++++++++++++++++++----------------------
+ src/hb-shape-plan.cc | 69 ++++++++++++++++++++++++++++++----------------------
src/hb-shape-plan.hh | 17 ++-----------
2 files changed, 42 insertions(+), 44 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Mon Nov 12 18:48:10 2018 -0500
- [shape-plan] Cache shape plans with variations based on variation
- indices
+ [shape-plan] Cache shape plans with variations based on variation indices
src/hb-aat-map.cc | 4 +---
src/hb-aat-map.hh | 4 +---
src/hb-ot-map.hh | 6 +++---
src/hb-ot-shape.cc | 13 +++++--------
src/hb-ot-shape.hh | 28 +++++++++++++++++++++++---
- src/hb-shape-plan.cc | 55
- ++++------------------------------------------------
+ src/hb-shape-plan.cc | 55 ++++------------------------------------------------
src/hb-shape-plan.hh | 23 ++++++++++++++++++----
8 files changed, 63 insertions(+), 88 deletions(-)
Date: Mon Nov 12 18:05:02 2018 -0500
[shape-plan] Only use shape-plan key to initialize hb_ot_shape_plan_t
-
+
Such that we don't accidentally use info not in the cache key.
src/hb-ot-shape.cc | 25 +++++++++++--------------
[shape-plan] Refactor some more
- src/hb-shape-plan.cc | 147
- ++++++++++++++++++++++++++++-----------------------
+ src/hb-shape-plan.cc | 147 ++++++++++++++++++++++++++++-----------------------
src/hb-shape-plan.hh | 15 ++++++
2 files changed, 95 insertions(+), 67 deletions(-)
Date: Mon Nov 12 17:19:45 2018 -0500
[shape-plan] Turn hb_shape_plan_proposal_t into hb_shape_plan_key_t
-
+
And include it in hb_shape_plan_t itself.
- src/hb-shape-plan.cc | 206
- +++++++++++++++++++--------------------------------
+ src/hb-shape-plan.cc | 206 +++++++++++++++++++--------------------------------
src/hb-shape-plan.hh | 27 +++----
2 files changed, 92 insertions(+), 141 deletions(-)
[fuzzing] Add new test
- ...zz-testcase-minimized-hb-shape-fuzzer-5754863779053568 | Bin 0 ->
- 100 bytes
+ ...zz-testcase-minimized-hb-shape-fuzzer-5754863779053568 | Bin 0 -> 100 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit 274f4c726f461f49f54a79557d63bf95d22903cf
Date: Mon Nov 12 14:11:29 2018 -0500
[kerx] Fix integer overflow in multiply
-
+
Fixes https://oss-fuzz.com/v2/testcase-detail/5754863779053568
src/hb-aat-layout-kerx-table.hh | 2 +-
Date: Mon Nov 12 13:21:14 2018 -0500
[fuzzing] Remove limited-edition build of libraries
-
+
Use normal, production, shared libraries.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1237
src/Makefile.am | 31 -------------------------------
Date: Mon Nov 12 13:01:22 2018 -0500
[kerx] Protect against stack underflow
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11367
src/hb-aat-layout-kerx-table.hh | 2 +-
- ...uzz-testcase-minimized-hb-shape-fuzzer-5691469793329152 | Bin 0 ->
- 69 bytes
+ ...uzz-testcase-minimized-hb-shape-fuzzer-5691469793329152 | Bin 0 -> 69 bytes
2 files changed, 1 insertion(+), 1 deletion(-)
commit 41a8bc7fd9399def8f580b02627a77f3972cc0e9
Date: Sun Nov 11 22:08:48 2018 -0500
Add variation coords to shape_plan proposal
-
- This is the root cause of bug worked around in
- 19e77e01bc13f44138e1d50533327d314dd0a018.
-
+
+ This is the root cause of bug worked around in 19e77e01bc13f44138e1d50533327d314dd0a018.
+
Still no shape plan caching for variations though.
src/hb-shape-plan.cc | 2 ++
Date: Sun Nov 11 21:32:01 2018 -0500
Embed hb_ot_shape_plan_t into hb_shape_plan_t
-
+
No other shaper will need shape_plan_data, by definition. So, remove
abstraction layer and always create hb_ot_shape_plan_t as part of
hb_shape_plan_t.
src/hb-directwrite.cc | 21 ----------
src/hb-fallback-shape.cc | 22 -----------
src/hb-graphite2.cc | 22 -----------
- src/hb-ot-shape.cc | 99
- ++++++++++++++++++++++--------------------------
+ src/hb-ot-shape.cc | 99 ++++++++++++++++++++++--------------------------
src/hb-ot-shape.hh | 21 +++++-----
src/hb-shape-plan.cc | 22 ++++++-----
src/hb-shape-plan.hh | 3 +-
Date: Sun Nov 11 16:09:38 2018 -0500
Revert "Declare Null() constexpr"
-
+
This reverts commit 442a72d95ab1fb3a47b486d8d1eb68e909d0ffb8.
-
- Doesn't make sense. No idea how my local compilers where happy
- with it!
+
+ Doesn't make sense. No idea how my local compilers where happy with it!
src/hb-null.hh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Sun Nov 11 15:48:47 2018 -0500
Don't store to null object
-
+
Ouch :).
src/hb-machinery.hh | 9 ++++-----
[hdmx] Renames
- src/hb-ot-hdmx-table.hh | 46
- +++++++++++++++++++++++-----------------------
+ src/hb-ot-hdmx-table.hh | 46 +++++++++++++++++++++++-----------------------
1 file changed, 23 insertions(+), 23 deletions(-)
commit da6aa3b0333de3f2169a5cfcb33374e1b2fe346e
Date: Sun Nov 11 00:28:47 2018 -0500
[cmap] Port to hb_blob_ptr_t
-
+
Although didn't need it...
src/hb-ot-cmap-table.hh | 7 +++----
Date: Sun Nov 11 00:26:55 2018 -0500
[color] Port to hb_blob_ptr_t
-
+
Fix hb_blob_ptr_t::get_length () as well.
src/hb-blob.hh | 2 +-
Date: Sun Nov 11 00:15:08 2018 -0500
[shape-plan] Make null object all zeros
-
+
To remove custom null object next..
src/hb-shape-plan.cc | 8 ++++----
Date: Sun Nov 11 00:11:28 2018 -0500
[blob] Change null object memory mode to DUPLICATE
-
+
We never rely on that being equal to readonly. Just not being
writable. Maybe not even that given that the object is inert.
-
+
In prep for next commit, using default null pool.
src/hb-blob.cc | 2 +-
Date: Sat Nov 10 23:52:15 2018 -0500
Add hb_blob_ptr_t
-
- Use in a couple of places. Push to bots to see how many unhappy
- before
+
+ Use in a couple of places. Push to bots to see how many unhappy before
I convert the rest.
src/hb-blob.hh | 23 +++++++++++++++++++++++
Date: Sat Nov 10 21:13:13 2018 -0500
[kerx] Fix Format1 tupleKern sanitization
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11312
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11305
src/hb-aat-layout-kerx-table.hh | 6 +++---
- ...uzz-testcase-minimized-hb-shape-fuzzer-5629524117553152 | Bin 0 ->
- 93 bytes
+ ...uzz-testcase-minimized-hb-shape-fuzzer-5629524117553152 | Bin 0 -> 93 bytes
2 files changed, 3 insertions(+), 3 deletions(-)
commit f9e0552debc45afedd86c848484bcd169af62dc2
Date: Sat Nov 10 19:54:08 2018 -0500
Better fix for MSVC 2008
-
+
Follow up on b4c61130324455bfd42095b01fa14ac901e441f1
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1374
src/hb-machinery.hh | 8 ++++----
Date: Sat Nov 10 16:35:39 2018 -0500
Try fixing MSVC 2008 build
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1374
src/hb-open-type.hh | 12 ++++++++++--
Date: Sat Nov 10 15:54:33 2018 -0500
Revert back hb_bytes_t.cmp() to the scheme it was
-
+
But fix UBSan complaint.
-
+
There's nothing in hb_bytes_t that guarantees lexical ordering, and
ordering by length first is much faster.
Date: Sat Nov 10 15:38:48 2018 -0500
Fix hb_bytes_t.cmp()
-
+
Ouch!
src/hb-dsalgs.hh | 8 +++++---
Date: Sat Nov 10 15:35:12 2018 -0500
Merge pull request #1376 from ebraminio/minor
-
+
[colr/feat/trak] minor
commit 1d82b4761d0a2e2e0be002e8a6bfe060f7b6dec3
Date: Sat Nov 10 01:56:37 2018 -0500
[qsort] Fix O(N^2) behavior if all array elements are the same
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11327
-
+
Reported as https://github.com/noporpoise/sort_r/issues/7
- src/hb-dsalgs.hh | 15
- +++++++++++----
- ...-testcase-minimized-hb-shape-fuzzer-5634443633491968 | Bin 0 ->
- 41814 bytes
+ src/hb-dsalgs.hh | 15 +++++++++++----
+ ...-testcase-minimized-hb-shape-fuzzer-5634443633491968 | Bin 0 -> 41814 bytes
2 files changed, 11 insertions(+), 4 deletions(-)
commit b308aaccf0773e252880b9b887f3d3d1dec00168
Date: Fri Nov 9 08:59:18 2018 -0800
fixed vstem handling (lack thereof) in check_width
-
+
bug exposed by U+2261 equivalence in SourceCodePro-Regular.otf
src/hb-cff1-interp-cs.hh | 5 ++++-
Date: Fri Nov 9 10:01:50 2018 -0500
Fix a few MSVC 2008 warnings
-
+
https://github.com/harfbuzz/harfbuzz/issues/1374
src/hb-set.hh | 4 ++--
Date: Thu Nov 8 14:42:40 2018 -0500
Merge pull request #1358 from ebraminio/lcar
-
+
Hook AAT's lcar to _get_ligature_carets
commit b986fead0aee52d219ce85dd49c9109bfaf31801
Hook AAT's lcar to _get_ligature_carets
src/Makefile.sources | 1 +
- src/hb-aat-layout-lcar-table.hh | 92
- +++++++++++++++++++++++++++++++++++++
+ src/hb-aat-layout-lcar-table.hh | 92 +++++++++++++++++++++++++++++++++++++
src/hb-ot-face.hh | 1 +
src/hb-ot-layout-gdef-table.hh | 6 +--
src/hb-ot-layout.cc | 17 ++++---
test/shaping/data/text-rendering-tests/DISABLED | 1 +
test/shaping/data/text-rendering-tests/Makefile.sources | 2 +-
- .../data/text-rendering-tests/tests/MORX-31.tests | 16
- ++++++++--------
+ .../data/text-rendering-tests/tests/MORX-31.tests | 16 ++++++++--------
3 files changed, 10 insertions(+), 9 deletions(-)
commit b989507fa6b36eb9950001d4e28f3946ffbe75f9
Date: Thu Nov 8 19:17:02 2018 +0330
[just] Initial table implementation (#1364)
-
+
A starting point, its sanitization is not tested however
src/Makefile.sources | 1 +
- src/hb-aat-layout-just-table.hh | 416
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-aat-layout-just-table.hh | 416 ++++++++++++++++++++++++++++++++++++++++
src/hb-aat-layout.cc | 1 +
3 files changed, 418 insertions(+)
[aat] Support Lookup<OffsetTo<>>, needed by just and lcar (#1368)
- src/hb-aat-layout-common.hh | 57
- +++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-aat-layout-common.hh | 57 +++++++++++++++++++++++++++++++++++++++++++++
src/hb-open-type.hh | 11 +++++++++
2 files changed, 68 insertions(+)
Date: Wed Nov 7 21:58:04 2018 -0500
[aat] Ignore cross-stream offset of deleted-glyphs
-
+
I think it makes sense to accumulate it, but Ned tells me that's
what CoreText does.
Date: Wed Nov 7 17:58:45 2018 -0800
fixed ends_in_hint bug
-
+
subr ends in hint itself should be regarded as hint
- this flag should propagate to its caller if the call itself is at
- the end of the caller
+ this flag should propagate to its caller if the call itself is at the end of the caller
src/hb-subset-cff-common.hh | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
Date: Wed Nov 7 18:40:48 2018 -0500
Merge pull request #1362 from harfbuzz/cross-kern
-
+
Vastly improve kern/kerx tables, including cross-stream "kerning"
commit b18a56a290bf5330e81019b33f15e6951dd86a8b
Date: Wed Nov 7 18:04:53 2018 -0500
[kern] Implement negative state numbers
-
+
Let the fuzzing bots rip this code apart...
- src/hb-aat-layout-common.hh | 90
- ++++++++++++++++++++++++++++++-----------
+ src/hb-aat-layout-common.hh | 90 ++++++++++++++++++++++++++++++-----------
src/hb-aat-layout-kerx-table.hh | 10 -----
2 files changed, 66 insertions(+), 34 deletions(-)
Date: Wed Nov 7 14:48:37 2018 -0800
implented no-desubroutinize with CFF2 along with API test
-
- replaced AdobeVFPrototype.abc.otf with a hinted (maually) &
- subroutinized copy
+
+ replaced AdobeVFPrototype.abc.otf with a hinted (maually) & subroutinized copy
replaced expected results as well
src/hb-cff-interp-dict-common.hh | 4 +-
src/hb-cff2-interp-cs.hh | 16 +-
src/hb-ot-cff-common.hh | 22 +--
src/hb-subset-cff-common.hh | 64 +++++---
- src/hb-subset-cff2.cc | 180
- ++++++++++++++++++---
+ src/hb-subset-cff2.cc | 180 ++++++++++++++++++---
test/api/fonts/AdobeVFPrototype.abc.nohints.otf | Bin 7800 -> 0 bytes
- test/api/fonts/AdobeVFPrototype.abc.otf | Bin 7800 ->
- 7460 bytes
- test/api/fonts/AdobeVFPrototype.ac.nohints.otf | Bin 7152 ->
- 6780 bytes
+ test/api/fonts/AdobeVFPrototype.abc.otf | Bin 7800 -> 7460 bytes
+ test/api/fonts/AdobeVFPrototype.ac.nohints.otf | Bin 7152 -> 6780 bytes
.../fonts/AdobeVFPrototype.ac.nosubrs.nohints.otf | Bin 0 -> 6844 bytes
test/api/fonts/AdobeVFPrototype.ac.nosubrs.otf | Bin 0 -> 7060 bytes
- test/api/fonts/AdobeVFPrototype.ac.otf | Bin 7336 ->
- 6996 bytes
+ test/api/fonts/AdobeVFPrototype.ac.otf | Bin 7336 -> 6996 bytes
test/api/test-subset-cff2.c | 51 +++++-
12 files changed, 271 insertions(+), 66 deletions(-)
Date: Wed Nov 7 17:19:21 2018 -0500
[aat] Remove deleted-glyhs after applying kerx/kern
-
+
Finally: Fixes https://github.com/harfbuzz/harfbuzz/issues/1356
-
+
Test case:
$ ./hb-shape GeezaPro.ttc -u U+0628,U+064A,U+064E,U+0651,U+0629
[u0629.final.tehMarbuta=4+713|u064e_u0651.shaddaFatha=1@0,-200+0|u064a.medial.yeh=1+656|u0628.initial.beh=0+656]
-
- The mark positioning (kern table CrossStream kerning) only works
- if deleted
- glyph (as result of ligation) is still in stream and pushed through
- the
+
+ The mark positioning (kern table CrossStream kerning) only works if deleted
+ glyph (as result of ligation) is still in stream and pushed through the
state machine.
src/hb-aat-layout-morx-table.hh | 16 -------
src/hb-ot-layout-gpos-table.hh | 6 +--
src/hb-ot-layout.cc | 60 +++++++++++++++++++++--
src/hb-ot-layout.hh | 23 +++++----
- src/hb-ot-shape.cc | 102
- ++++++++++++++--------------------------
+ src/hb-ot-shape.cc | 102 ++++++++++++++--------------------------
7 files changed, 142 insertions(+), 107 deletions(-)
commit 1909072235e59eb80f9169300279b65779b932a4
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Wed Nov 7 16:19:51 2018 -0500
- Disable fallback mark positioning if kern table has cross-stream
- kerning
-
- Happens even if the cross-stream kerning is for cursive attachment
- only. Oh well..
+ Disable fallback mark positioning if kern table has cross-stream kerning
+
+ Happens even if the cross-stream kerning is for cursive attachment only. Oh well..
src/hb-ot-layout.cc | 6 ++++++
src/hb-ot-layout.hh | 3 +++
Date: Wed Nov 7 16:07:22 2018 -0500
Don't apply both kerx and kern
-
+
Ouch!
src/hb-ot-shape.cc | 2 +-
Date: Wed Nov 7 15:44:40 2018 -0500
[kerx] Fix peculiar indexing that was needed previously
-
+
Not needed now that we use GPOS attachment for cursive kerx.
src/hb-aat-layout-kerx-table.hh | 20 +++++++-------------
Date: Wed Nov 7 15:40:55 2018 -0500
[GPOS] Only mark unsafe-to-break if kerning happened
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1365
- src/hb-ot-layout-gpos-table.hh | 56
- ++++++++++++++++++++++++------------------
+ src/hb-ot-layout-gpos-table.hh | 56 ++++++++++++++++++++++++------------------
1 file changed, 32 insertions(+), 24 deletions(-)
commit 501a364d9bb6c5828f9d660bae8b6e93b158b275
Date: Wed Nov 7 14:52:36 2018 -0500
[kerx] Implement CrossStream kerning for non-state-machine subtables
-
+
Untested.
src/hb-aat-layout-kerx-table.hh | 12 ++++++------
- src/hb-kern.hh | 43
- +++++++++++++++++++++++++++++------------
+ src/hb-kern.hh | 43 +++++++++++++++++++++++++++++------------
src/hb-ot-kern-table.hh | 4 ++--
3 files changed, 39 insertions(+), 20 deletions(-)
Date: Wed Nov 7 14:42:15 2018 -0500
[kerx] Disable backwards-kerning for non-state-machine tables
-
+
That's what the spec says for Backwards flag, only applicable to
formats 1 and 4.
[kerx] Use GPOS attachment facilities for CrossStream kerning
- src/hb-aat-layout-kerx-table.hh | 51
- ++++++++++++++++++++++++++++-------------
+ src/hb-aat-layout-kerx-table.hh | 51 ++++++++++++++++++++++++++++-------------
1 file changed, 35 insertions(+), 16 deletions(-)
commit e10a856eb24ae45e301c3ffa778caa4c0a995bb9
[kerx] Format
- src/hb-aat-layout-kerx-table.hh | 58
- ++++++++++++++++++++---------------------
+ src/hb-aat-layout-kerx-table.hh | 58 ++++++++++++++++++++---------------------
1 file changed, 28 insertions(+), 30 deletions(-)
commit 649cc3ef2773950b0b5884d9d1caf414aac888bf
Date: Wed Nov 7 13:51:17 2018 -0500
[kerx] Implement tupleKerning for Format1
-
+
Untested.
src/hb-aat-layout-kerx-table.hh | 7 +++----
[kern/kerx] Share KernTable, renamed to KerxTable
src/hb-aat-layout-kerx-table.hh | 77 ++++++++++++++++++++++--------
- src/hb-ot-kern-table.hh | 103
- ++--------------------------------------
+ src/hb-ot-kern-table.hh | 103 ++--------------------------------------
2 files changed, 61 insertions(+), 119 deletions(-)
commit c038f5be6b70b8edffc701dd3e4e3cd08d14e2f0
[kern/kerx] More towards sharing KernTable
src/hb-aat-layout-kerx-table.hh | 48 ++++++++++++++++++---------------
- src/hb-ot-kern-table.hh | 59
- ++++++++++++++++++++++++++++-------------
+ src/hb-ot-kern-table.hh | 59 ++++++++++++++++++++++++++++-------------
2 files changed, 67 insertions(+), 40 deletions(-)
commit 89ec095979bde94bd203ed2c394f6e40629e9e78
[kern] Move code
- src/hb-ot-kern-table.hh | 118
- +++++++++++++++++++++++++-----------------------
+ src/hb-ot-kern-table.hh | 118 +++++++++++++++++++++++++-----------------------
1 file changed, 62 insertions(+), 56 deletions(-)
commit 1ff300464a1075b8cd5311970afbbcf4bb3b6f3d
Date: Wed Nov 7 12:19:52 2018 -0500
[kern/kerx] Share Format2
-
+
This, enables Format2 for kern table, which was disabled before.
src/hb-aat-layout-kerx-table.hh | 6 ++++
- src/hb-ot-kern-table.hh | 73
- +----------------------------------------
+ src/hb-ot-kern-table.hh | 73 +----------------------------------------
2 files changed, 7 insertions(+), 72 deletions(-)
commit 8faec4e33486616fdc0d690ad80d4a38a73c8182
[kern/kerx] Share Format1 subtable
src/hb-aat-layout-kerx-table.hh | 9 +-
- src/hb-ot-kern-table.hh | 187
- +---------------------------------------
+ src/hb-ot-kern-table.hh | 187 +---------------------------------------
2 files changed, 4 insertions(+), 192 deletions(-)
commit a244190afa90ac253724a2ff23a3bdf0c507d0e6
Date: Wed Nov 7 11:21:09 2018 -0500
[kern/kerx] Enable crossStream kerning in vertical
-
+
CoreText doesn't, but no reason we shouldn't do.
src/hb-aat-layout-kerx-table.hh | 8 ++++----
[kerx] Towards sharing Format1
- src/hb-aat-layout-kerx-table.hh | 61
- +++++++++++++++++++++++++++++++----------
+ src/hb-aat-layout-kerx-table.hh | 61 +++++++++++++++++++++++++++++++----------
1 file changed, 47 insertions(+), 14 deletions(-)
commit e890753ebbf0d20c1c86796837918d530610df3b
[kern/kerx] Share Format0
src/hb-aat-layout-kerx-table.hh | 22 +++++++++++++-----
- src/hb-ot-kern-table.hh | 50
- ++++++-----------------------------------
+ src/hb-ot-kern-table.hh | 50 ++++++-----------------------------------
2 files changed, 23 insertions(+), 49 deletions(-)
commit c97dde5d55929df394fbe57c1ba1a725592c6732
[kern/kerx] Towards merge more
- src/hb-aat-layout-kerx-table.hh | 75
- ++++++++++++++++++++++++++++++-----------
+ src/hb-aat-layout-kerx-table.hh | 75 ++++++++++++++++++++++++++++++-----------
src/hb-kern.hh | 33 ------------------
src/hb-ot-kern-table.hh | 7 ++--
3 files changed, 58 insertions(+), 57 deletions(-)
src/Makefile.sources | 1 +
src/hb-aat-layout-kerx-table.hh | 5 +-
- src/hb-kern.hh | 153
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-kern.hh | 153 ++++++++++++++++++++++++++++++++++++++++
src/hb-ot-kern-table.hh | 115 +-----------------------------
src/hb-ot-shape-fallback.cc | 2 +-
5 files changed, 157 insertions(+), 119 deletions(-)
[kerx] Towards sharing subtables with kern
- src/hb-aat-layout-kerx-table.hh | 41
- +++++++++++++++++++++++------------------
+ src/hb-aat-layout-kerx-table.hh | 41 +++++++++++++++++++++++------------------
1 file changed, 23 insertions(+), 18 deletions(-)
commit befac337ca2c705e2cea60a9a92e40e0dbbc40aa
Date: Wed Nov 7 09:53:02 2018 -0500
[kern] Remove Override business
-
+
Not used in any fonts. Not well-specified when mixing kerning with
Cross-Stream positioning.
Date: Wed Nov 7 09:16:53 2018 -0500
[post] Return true on truncation
-
+
Client can check that buffer was completely filled out and reallocate.
src/hb-ot-post-table.hh | 7 +++----
Date: Wed Nov 7 13:19:36 2018 +0000
Use non-GRID-fitted values for metrics (#1363)
-
+
* Use non-GRID-fitted values for metrics
-
+
See freetype/src/base/ftobjs.c:ft_recompute_scaled_metrics() and
the usage of GRID_FIT_METRICS inside.
-
+
Fixes https://github.com/behdad/harfbuzz/issues/1262
-
+
* Update hb-ft.cc
src/hb-ft.cc | 6 +++---
Date: Wed Nov 7 00:25:48 2018 -0500
[kern/kerx] Fix cursive joining
-
+
Tested with Waseem TTC:
-
+
$ hb-shape Waseem.ttc جحخج
[F1Jeem_R2=3@0,180+479|M1Khah_L2_R2=2@0,682+403|M1Hah_L2_R2=1@0,1184+403|I1Jeem_L2=0@0,1184+744]
[kerx] Adjust CrossStream kern to match 'kern' table
- src/hb-aat-layout-kerx-table.hh | 62
- +++++++++++++++++++++++++++++++----------
+ src/hb-aat-layout-kerx-table.hh | 62 +++++++++++++++++++++++++++++++----------
1 file changed, 48 insertions(+), 14 deletions(-)
commit 80a33b9ac351d81793f35a92e0255ffbf5ceb8b9
Date: Tue Nov 6 21:41:28 2018 -0500
[kern] More tweaks
-
- Solves a mystery or two. I'm fairly confident this is what CoreText
- does now.
+
+ Solves a mystery or two. I'm fairly confident this is what CoreText does now.
src/hb-ot-kern-table.hh | 40 ++++++++++++++++++++++------------------
1 file changed, 22 insertions(+), 18 deletions(-)
Date: Tue Nov 6 21:04:40 2018 -0500
[kern] Adjust some more
-
+
Getting closer. So many open questions still...
src/hb-ot-kern-table.hh | 36 ++++++++++++++++++++++--------------
Date: Tue Nov 6 18:35:58 2018 -0500
[kern] In Format1, adjust how kerning is done
-
+
In a series of kerns in one action, kern all but last glyph forward,
- and the last one backward. Seems to better match what CoreText
- is doing.
-
+ and the last one backward. Seems to better match what CoreText is doing.
+
Test cases, with GeezaPro Arabic:
-
+
$ ./hb-shape GeezaPro_10_10.ttc -u U+0631,U+0628
[u0628.beh=1+1415|u0631.reh=0@-202,0+700]
-
+
$ ./hb-shape GeezaPro_10_10.ttc -u U+0628,U+064F
[u064f.damma=0@0,-250+-250|u0628.beh=0@250,0+1665]
-
- In a later change, I'll make kern machine avoid producing negative
- kerns.
+
+ In a later change, I'll make kern machine avoid producing negative kerns.
src/hb-ot-kern-table.hh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Date: Tue Nov 6 17:16:04 2018 -0500
[kern] XXX Negate CrossKerning sign
-
+
Not sure why, but seems to better match GeezaPro Arabic w CoreText.
-
+
Quite possibly I'm doing something very wrong...
src/hb-ot-kern-table.hh | 3 ++-
[kern] Implement CrossStream kerning
- src/hb-aat-layout-kerx-table.hh | 75
- ++++++++++++++++++++++++++---------------
+ src/hb-aat-layout-kerx-table.hh | 75 ++++++++++++++++++++++++++---------------
src/hb-ot-kern-table.hh | 63 ++++++++++++++++++++++++++++------
2 files changed, 101 insertions(+), 37 deletions(-)
Date: Tue Nov 6 15:23:18 2018 -0500
[kern] Improve Format 2
-
+
Still disabled.
src/hb-aat-layout-common.hh | 20 +++++++++-----------
[kern] Refactor to include header in each subtable type
- src/hb-ot-kern-table.hh | 189
- +++++++++++++++++++++++-------------------------
+ src/hb-ot-kern-table.hh | 189 +++++++++++++++++++++++-------------------------
1 file changed, 91 insertions(+), 98 deletions(-)
commit b0da2cd0b9c1346b7cda5997fb799e895e34aace
Date: Tue Nov 6 18:10:56 2018 +0200
Another missing backlash
-
+
Did this ever work?
test/api/Makefile.am | 2 +-
Date: Tue Nov 6 10:49:19 2018 -0500
[util] Don't terminate string after a a 0 in -u
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1361
util/options.cc | 4 +++-
Date: Tue Nov 6 11:17:14 2018 +0330
Fix link issue of some of the bots
-
+
e.g. https://circleci.com/gh/harfbuzz/harfbuzz/52410
src/hb-ot-layout.cc | 2 +-
Date: Tue Nov 6 09:16:28 2018 +0330
[mort] Fix table detection logic
-
+
mort really needs some initial tests at least.
src/hb-aat-layout.cc | 2 +-
Date: Mon Nov 5 23:26:29 2018 -0500
[ot-layout] Simplify GSUB/GPOS access
-
+
This concludes simplifying table access to face->table.XXXX.
src/hb-ot-layout.cc | 31 +++++++++++++------------------
Date: Mon Nov 5 22:58:43 2018 -0500
[ot-face] Simplify table access
-
+
Yoohoo!
- src/hb-aat-layout.cc | 107
- ++++++++++-----------------------------------------
+ src/hb-aat-layout.cc | 107 ++++++++++-----------------------------------------
src/hb-ot-color.cc | 66 ++++++++-----------------------
src/hb-ot-layout.cc | 20 ++--------
src/hb-ot-math.cc | 47 ++++++++--------------
Date: Mon Nov 5 22:39:50 2018 -0500
[ot-face] Include hb-ot-face directly in hb_face_t
-
+
Simplifying access coming next.
src/hb-face.cc | 4 ++++
[fuzzing] Fuzz glyph-id etc in test-ot-face
- test/api/test-ot-face.c | 57
- +++++++++++++++++++++--------------------
+ test/api/test-ot-face.c | 57 +++++++++++++++++++++--------------------
test/fuzzing/hb-shape-fuzzer.cc | 19 +-------------
2 files changed, 30 insertions(+), 46 deletions(-)
Date: Mon Nov 5 13:45:12 2018 -0500
[cmap] Make null accelerator safe
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1146
- src/hb-ot-cmap-table.hh | 50
- ++++++++++++++++++++++++-------------------------
+ src/hb-ot-cmap-table.hh | 50 ++++++++++++++++++++++++-------------------------
1 file changed, 25 insertions(+), 25 deletions(-)
commit f6fc5574d3dae177a54b10195e0d1f368a74f768
Makefile.in | 954 --
aclocal.m4 | 1496 ---
ar-lib | 270 -
- autom4te.cache/output.0 | 23333
- ----------------------------------------------
- autom4te.cache/output.1 | 23333
- ----------------------------------------------
- autom4te.cache/output.2 | 23333
- ----------------------------------------------
+ autom4te.cache/output.0 | 23333 ----------------------------------------------
+ autom4te.cache/output.1 | 23333 ----------------------------------------------
+ autom4te.cache/output.2 | 23333 ----------------------------------------------
autom4te.cache/requests | 555 --
autom4te.cache/traces.0 | 3823 --------
autom4te.cache/traces.1 | 1229 ---
config.log | 1560 ----
config.status | 2420 -----
config.sub | 1807 ----
- configure | 23333
- ----------------------------------------------
+ configure | 23333 ----------------------------------------------
depcomp | 791 --
install-sh | 501 -
libtool | 11805 -----------------------
Date: Sun Nov 4 13:12:20 2018 -0800
added desubroutinize full font test profiles & expected fonts
-
- modified subset_test_suite.py to apply desubroutinize profiles to
- CFF only (not to TT)
-
- ...urceSansPro-Regular.default.1FC,21,41,20,62,63.otf | Bin 3640 ->
- 3784 bytes
- .../SourceSansPro-Regular.default.61,62,63.otf | Bin 3400 ->
- 3496 bytes
- .../SourceSansPro-Regular.default.D7,D8,D9,DA,DE.otf | Bin 3596 ->
- 3612 bytes
- ...sPro-Regular.desubroutinize.1FC,21,41,20,62,63.otf | Bin 0 ->
- 3640 bytes
- .../SourceSansPro-Regular.desubroutinize.61,62,63.otf | Bin 0 ->
- 3400 bytes
- ...eSansPro-Regular.desubroutinize.D7,D8,D9,DA,DE.otf | Bin 0 ->
- 3596 bytes
- ...eSansPro-Regular.drop-hints.1FC,21,41,20,62,63.otf | Bin 3480 ->
- 3564 bytes
- .../SourceSansPro-Regular.drop-hints.61,62,63.otf | Bin 3276 ->
- 3340 bytes
- ...ourceSansPro-Regular.drop-hints.D7,D8,D9,DA,DE.otf | Bin 3448 ->
- 3464 bytes
- ...r.drop-hints.desubroutinize.1FC,21,41,20,62,63.otf | Bin 0 ->
- 3480 bytes
- ...Pro-Regular.drop-hints.desubroutinize.61,62,63.otf | Bin 0 ->
- 3276 bytes
- ...gular.drop-hints.desubroutinize.D7,D8,D9,DA,DE.otf | Bin 0 ->
- 3448 bytes
- ...-Regular.default.3042,3044,3046,3048,304A,304B.otf | Bin 6248 ->
- 6324 bytes
- ...-Regular.default.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 6432 ->
- 6568 bytes
- .../SourceHanSans-Regular.default.61,63,65,6B.otf | Bin 5428 ->
- 5500 bytes
- ...-Regular.default.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 6552 ->
- 6780 bytes
- .../japanese/SourceHanSans-Regular.default.660E.otf | Bin 5196 ->
- 5248 bytes
+
+ modified subset_test_suite.py to apply desubroutinize profiles to CFF only (not to TT)
+
+ ...urceSansPro-Regular.default.1FC,21,41,20,62,63.otf | Bin 3640 -> 3784 bytes
+ .../SourceSansPro-Regular.default.61,62,63.otf | Bin 3400 -> 3496 bytes
+ .../SourceSansPro-Regular.default.D7,D8,D9,DA,DE.otf | Bin 3596 -> 3612 bytes
+ ...sPro-Regular.desubroutinize.1FC,21,41,20,62,63.otf | Bin 0 -> 3640 bytes
+ .../SourceSansPro-Regular.desubroutinize.61,62,63.otf | Bin 0 -> 3400 bytes
+ ...eSansPro-Regular.desubroutinize.D7,D8,D9,DA,DE.otf | Bin 0 -> 3596 bytes
+ ...eSansPro-Regular.drop-hints.1FC,21,41,20,62,63.otf | Bin 3480 -> 3564 bytes
+ .../SourceSansPro-Regular.drop-hints.61,62,63.otf | Bin 3276 -> 3340 bytes
+ ...ourceSansPro-Regular.drop-hints.D7,D8,D9,DA,DE.otf | Bin 3448 -> 3464 bytes
+ ...r.drop-hints.desubroutinize.1FC,21,41,20,62,63.otf | Bin 0 -> 3480 bytes
+ ...Pro-Regular.drop-hints.desubroutinize.61,62,63.otf | Bin 0 -> 3276 bytes
+ ...gular.drop-hints.desubroutinize.D7,D8,D9,DA,DE.otf | Bin 0 -> 3448 bytes
+ ...-Regular.default.3042,3044,3046,3048,304A,304B.otf | Bin 6248 -> 6324 bytes
+ ...-Regular.default.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 6432 -> 6568 bytes
+ .../SourceHanSans-Regular.default.61,63,65,6B.otf | Bin 5428 -> 5500 bytes
+ ...-Regular.default.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 6552 -> 6780 bytes
+ .../japanese/SourceHanSans-Regular.default.660E.otf | Bin 5196 -> 5248 bytes
....otf => SourceHanSans-Regular.desubroutinize..otf} | Bin
- ...r.desubroutinize.3042,3044,3046,3048,304A,304B.otf | Bin 0 ->
- 6248 bytes
- ...r.desubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 ->
- 6432 bytes
- ...urceHanSans-Regular.desubroutinize.61,63,65,6B.otf | Bin 0 ->
- 5428 bytes
- ...r.desubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 ->
- 6552 bytes
- .../SourceHanSans-Regular.desubroutinize.660E.otf | Bin 0 ->
- 5196 bytes
- ...gular.drop-hints.3042,3044,3046,3048,304A,304B.otf | Bin 6076 ->
- 6132 bytes
- ...gular.drop-hints.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 6180 ->
- 6304 bytes
- .../SourceHanSans-Regular.drop-hints.61,63,65,6B.otf | Bin 5312 ->
- 5344 bytes
- ...gular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 6248 ->
- 6472 bytes
- .../SourceHanSans-Regular.drop-hints.660E.otf | Bin 5088 ->
- 5140 bytes
+ ...r.desubroutinize.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> 6248 bytes
+ ...r.desubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> 6432 bytes
+ ...urceHanSans-Regular.desubroutinize.61,63,65,6B.otf | Bin 0 -> 5428 bytes
+ ...r.desubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> 6552 bytes
+ .../SourceHanSans-Regular.desubroutinize.660E.otf | Bin 0 -> 5196 bytes
+ ...gular.drop-hints.3042,3044,3046,3048,304A,304B.otf | Bin 6076 -> 6132 bytes
+ ...gular.drop-hints.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 6180 -> 6304 bytes
+ .../SourceHanSans-Regular.drop-hints.61,63,65,6B.otf | Bin 5312 -> 5344 bytes
+ ...gular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 6248 -> 6472 bytes
+ .../SourceHanSans-Regular.drop-hints.660E.otf | Bin 5088 -> 5140 bytes
...rceHanSans-Regular.drop-hints.desubroutinize..otf} | Bin
- ...s.desubroutinize.3042,3044,3046,3048,304A,304B.otf | Bin 0 ->
- 6076 bytes
- ...s.desubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 ->
- 6180 bytes
- ...-Regular.drop-hints.desubroutinize.61,63,65,6B.otf | Bin 0 ->
- 5312 bytes
- ...s.desubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 ->
- 6248 bytes
- ...HanSans-Regular.drop-hints.desubroutinize.660E.otf | Bin 0 ->
- 5140 bytes
+ ...s.desubroutinize.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> 6076 bytes
+ ...s.desubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> 6180 bytes
+ ...-Regular.drop-hints.desubroutinize.61,63,65,6B.otf | Bin 0 -> 5312 bytes
+ ...s.desubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> 6248 bytes
+ ...HanSans-Regular.drop-hints.desubroutinize.660E.otf | Bin 0 -> 5140 bytes
test/subset/data/profiles/desubroutinize.txt | 1 +
.../data/profiles/drop-hints-desubroutinize.txt | 2 ++
test/subset/generate-expected-outputs.py | 1 -
src/hb-aat-layout-ankr-table.hh | 2 ++
src/hb-aat-layout-common.hh | 31 +++++++++---------------------
src/hb-aat-layout-kerx-table.hh | 16 ++++++++--------
- src/hb-aat-layout.cc | 42
- +++++++++++++++++++++++++++++++++++++++--
+ src/hb-aat-layout.cc | 42 +++++++++++++++++++++++++++++++++++++++--
src/hb-ot-kern-table.hh | 1 -
src/hb-static.cc | 1 -
6 files changed, 59 insertions(+), 34 deletions(-)
Date: Sun Nov 4 02:47:34 2018 -0500
[test] Call test-ot-face.c test from hb-shape-fuzzer
-
+
Should increase coverage...
test/api/test-ot-face.c | 28 ++++++++++++++++++----------
Date: Sun Nov 4 02:25:07 2018 -0500
Clean up buffer->swap_buffers() calls
-
+
That function checks for buffer->successful already. No need
to check at call site.
Date: Sat Nov 3 22:42:22 2018 -0700
CFF1 no-desubr fixes
-
- make sure charstring/subrs not ending with endchar/return handled
- correctly
+
+ make sure charstring/subrs not ending with endchar/return handled correctly
if no local subrs, skip serializing Subrs op in Private
misc fixes
src/hb-ot-cff-common.hh | 13 +++++++++-
- src/hb-subset-cff-common.hh | 59
- +++++++++++++++++++++++----------------------
+ src/hb-subset-cff-common.hh | 59 +++++++++++++++++++++++----------------------
src/hb-subset-cff1.cc | 27 +++++++++++++++------
3 files changed, 62 insertions(+), 37 deletions(-)
Date: Sat Nov 3 21:38:24 2018 -0400
Revert "Add operator char * to the naked array types as well"
-
+
This reverts commit db889c182ee5f54127285bfaab5bc94dafe46bda.
-
+
Was resulting in ambigious overloads...
src/hb-dsalgs.hh | 4 +---
[test] Add test for empty face
test/api/Makefile.am | 1 +
- test/api/test-ot-face.c | 94
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ test/api/test-ot-face.c | 94 +++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 95 insertions(+)
commit 1da4de7e7b71dfde734cb77ec6acb31f574585f2
Date: Sat Nov 3 15:41:29 2018 -0700
fix for subset fuzzer failure
-
- A called subr must be freshly parsed or completely parsed. otherwise
- the prevoius parse must have terminated prematurely
+
+ A called subr must be freshly parsed or completely parsed. otherwise the prevoius parse must have terminated prematurely
src/hb-subset-cff1.cc | 3 +++
1 file changed, 3 insertions(+)
Date: Sat Nov 3 16:15:30 2018 -0400
Fix null accelerator's
-
+
Fixes all except for cmap. To be done separately.
-
+
Part of https://github.com/harfbuzz/harfbuzz/issues/1146
src/hb-ot-color-cbdt-table.hh | 10 ++--------
Date: Sat Nov 3 15:49:37 2018 -0400
[blob] Allow null parent in create_sub_blob()
-
+
Like font and unicode.
src/hb-blob.cc | 2 +-
Date: Sat Nov 3 15:24:14 2018 -0400
Add hb_nonnull_ptr_t
-
+
Towards fixing https://github.com/harfbuzz/harfbuzz/issues/1146
src/hb-null.hh | 28 ++++++++++++++++++++++++++++
Date: Sat Nov 3 15:14:57 2018 -0400
[kern] Third try fix access violation in Format3
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11245
src/hb-ot-kern-table.hh | 1 -
Date: Sat Nov 3 15:06:45 2018 -0400
[kern] Really fix access violation in Format3
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11245
src/hb-ot-kern-table.hh | 2 +-
Date: Sat Nov 3 14:58:54 2018 -0400
[kern] Fix access violation in Format3
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11245
src/hb-ot-kern-table.hh | 6 +++++-
Date: Sat Nov 3 14:51:38 2018 -0400
Port objects to use header.writable instead of immutable
-
+
Saves 4 or 8 bytes per object on 64bit archs.
src/hb-blob.cc | 12 ++++--------
[BASE] Improvements (#1347)
- src/hb-ot-layout-base-table.hh | 610
- ++++++++++++++++++-----------------------
+ src/hb-ot-layout-base-table.hh | 610 ++++++++++++++++++-----------------------
src/hb-ot-layout.cc | 65 ++++-
src/hb-ot-layout.h | 16 --
test/api/Makefile.am | 1 +
[fuzz] A new testcase
- ...uzz-testcase-minimized-hb-shape-fuzzer-5735679418433536 | Bin 0 ->
- 36 bytes
+ ...uzz-testcase-minimized-hb-shape-fuzzer-5735679418433536 | Bin 0 -> 36 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit 34b06d994a79124963d2a7432d0ec945e72bfdbd
src/hb-ot-cff-common.hh | 2 +-
src/hb-subset-cff-common.cc | 6 +++---
- test/api/fonts/SourceHanSans-Regular.41,3041,4C2E.otf | Bin 2576 ->
- 3892 bytes
+ test/api/fonts/SourceHanSans-Regular.41,3041,4C2E.otf | Bin 2576 -> 3892 bytes
3 files changed, 4 insertions(+), 4 deletions(-)
commit 481fdfdc23f557400ad3aceeceeab07add78f005
Author: Michiharu Ariza <ariza@adobe.com>
Date: Fri Nov 2 15:28:09 2018 -0700
- Merge branch 'cff-subset' of https://github.com/harfbuzz/harfbuzz
- into cff-subset
+ Merge branch 'cff-subset' of https://github.com/harfbuzz/harfbuzz into cff-subset
commit 1bc710a8c94fbe08ca3a3e535c7b6597a57883df
Author: Michiharu Ariza <ariza@adobe.com>
src/hb-cff1-interp-cs.hh | 7 --
src/hb-ot-cff-common.hh | 56 ++++++----
- src/hb-subset-cff-common.hh | 100
- +++++++++--------
+ src/hb-subset-cff-common.hh | 100 +++++++++--------
src/hb-subset-cff1.cc | 53 ++++-----
- .../fonts/SourceHanSans-Regular.41,3041,4C2E.otf | Bin 3892 ->
- 2576 bytes
+ .../fonts/SourceHanSans-Regular.41,3041,4C2E.otf | Bin 3892 -> 2576 bytes
.../SourceHanSans-Regular.41,4C2E.nohints.otf | Bin 0 -> 2380 bytes
...urceHanSans-Regular.41,4C2E.nosubrs.nohints.otf | Bin 0 -> 2360 bytes
.../SourceHanSans-Regular.41,4C2E.nosubrs.otf | Bin 0 -> 2548 bytes
- test/api/fonts/SourceHanSans-Regular.41,4C2E.otf | Bin 2548 ->
- 2576 bytes
- test/api/fonts/SourceSansPro-Regular.abc.otf | Bin 3412 ->
- 1812 bytes
- .../api/fonts/SourceSansPro-Regular.ac.nohints.otf | Bin 3228 ->
- 1592 bytes
+ test/api/fonts/SourceHanSans-Regular.41,4C2E.otf | Bin 2548 -> 2576 bytes
+ test/api/fonts/SourceSansPro-Regular.abc.otf | Bin 3412 -> 1812 bytes
+ .../api/fonts/SourceSansPro-Regular.ac.nohints.otf | Bin 3228 -> 1592 bytes
.../SourceSansPro-Regular.ac.nosubrs.nohints.otf | Bin 0 -> 1540 bytes
.../api/fonts/SourceSansPro-Regular.ac.nosubrs.otf | Bin 0 -> 1632 bytes
- test/api/fonts/SourceSansPro-Regular.ac.otf | Bin 3332 ->
- 1708 bytes
- test/api/test-subset-cff1.c | 122
- +++++++++++++++++++++
+ test/api/fonts/SourceSansPro-Regular.ac.otf | Bin 3332 -> 1708 bytes
+ test/api/test-subset-cff1.c | 122 +++++++++++++++++++++
15 files changed, 232 insertions(+), 106 deletions(-)
commit 2c68f34bddbe506d0b22948562f2f59b9a5b6050
Date: Fri Nov 2 23:06:00 2018 +0200
[os2] Capitalize table tag and struct
-
+
Other tables follow the case of the OT tag, except this one.
src/hb-ot-hmtx-table.hh | 6 +++---
Date: Fri Nov 2 14:47:42 2018 -0400
[kern] Implement Format1
-
+
Also, implement backwards kerning for Format1 in kern and kerx.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1350
src/hb-aat-layout-kerx-table.hh | 11 +++-
- src/hb-ot-kern-table.hh | 127
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-kern-table.hh | 127 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 136 insertions(+), 2 deletions(-)
commit 46b3885c1a8ea3b85efbdd1704edcee385797c5d
Date: Fri Nov 2 13:57:41 2018 -0400
[kern] Minor
-
+
We like check_struct() more.
src/hb-ot-kern-table.hh | 5 +++--
Date: Fri Nov 2 13:47:33 2018 -0400
Remove pointer cast operators from ArrayOf<>
-
+
ArrayOf<>, unlike UnsizedArrayOf<>, has data before the array.
This was confusing. Remove.
[kern] Push apply loop to each subtable
- src/hb-ot-kern-table.hh | 153
- ++++++++++++++++++++++++++++++++++++++----------
+ src/hb-ot-kern-table.hh | 153 ++++++++++++++++++++++++++++++++++++++----------
src/hb-ot-layout.cc | 28 ++++++---
src/hb-ot-layout.hh | 8 ++-
src/hb-ot-shape.cc | 2 +-
Date: Fri Nov 2 12:47:55 2018 -0400
[kern] Remove accelerator
-
+
It wasn't doing anything.
src/hb-ot-face.hh | 2 +-
- src/hb-ot-kern-table.hh | 55
- ++++++++++++++-----------------------------------
+ src/hb-ot-kern-table.hh | 55 ++++++++++++++-----------------------------------
src/hb-ot-layout.cc | 4 ++--
3 files changed, 18 insertions(+), 43 deletions(-)
Date: Fri Nov 2 11:56:55 2018 -0400
[kern] Implement Format3
-
+
Untested.
- src/hb-ot-kern-table.hh | 51
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-kern-table.hh | 51 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
commit c6ef5dbd5c40cc8934756456221e080012a82530
Date: Thu Nov 1 17:25:23 2018 -0700
added hb_subset_input_set_desubroutinize API
-
+
hooked up with CFF1 subroutinizer
a renaming
Date: Wed Oct 31 22:30:34 2018 -0700
CFF1 no-desubroutinize + no-hinting
-
+
no-desubroutinize option is disabled for now
code cleanup (esp. CFF1 width handling)
bug fixes & renaming
src/hb-ot-cff-common.hh | 85 ++---
src/hb-ot-cff1-table.hh | 20 +-
src/hb-ot-cff2-table.hh | 25 +-
- src/hb-subset-cff-common.hh | 702
- ++++++++++++++++++++++++++++++++++++---
+ src/hb-subset-cff-common.hh | 702 ++++++++++++++++++++++++++++++++++++---
src/hb-subset-cff1.cc | 242 +++++++++++---
src/hb-subset-cff2.cc | 45 +--
src/hb-subset-input.hh | 1 +
Date: Wed Oct 31 19:05:53 2018 -0700
[aat] Implement 'aalt' mapping
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1160
src/hb-aat-map.cc | 8 ++++++++
Date: Wed Oct 31 19:00:11 2018 -0700
[aat] Add 'afrc' feature mapping
-
+
https://github.com/harfbuzz/harfbuzz/issues/1342#issuecomment-434829028
src/hb-aat-layout.cc | 1 +
Date: Wed Oct 31 18:51:45 2018 -0700
[aat] Fallback to old style "Letter Case" small caps
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1342
src/hb-aat-layout-morx-table.hh | 8 ++++++++
Date: Wed Oct 31 18:21:48 2018 -0700
Implement space fallback in vertical direction
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1343
- src/hb-ot-shape-fallback.cc | 36
- +++++++++++++++++++--------
+ src/hb-ot-shape-fallback.cc | 36 +++++++++++++++++++--------
test/shaping/data/in-house/tests/spaces.tests | 17 +++++++++++++
2 files changed, 42 insertions(+), 11 deletions(-)
Date: Wed Oct 31 13:19:42 2018 -0700
Improve blob->as<>
-
+
It's true that blob->as<> should only be called on null or sanitized
data. But this change is safe, so keep it.
Date: Wed Oct 31 10:42:49 2018 -0700
[set] Warning fix with gcc 8.1
-
+
https://github.com/harfbuzz/harfbuzz/pull/1334
src/hb-dsalgs.hh | 6 ++++--
Author: Ebrahim Byagowi <ebrahim@gnu.org>
Date: Wed Oct 31 14:20:23 2018 +0330
- [ot-color-test] Remove the non-working exact strike size storing
- (#1339)
+ [ot-color-test] Remove the non-working exact strike size storing (#1339)
- src/test-ot-color.cc | 135
- +++++++++++++++++++++++----------------------------
+ src/test-ot-color.cc | 135 +++++++++++++++++++++++----------------------------
1 file changed, 62 insertions(+), 73 deletions(-)
commit 2e639c47c9d35ff7dc4dde21f744f9ee695a27f3
Date: Wed Oct 31 01:16:33 2018 -0700
[mort] Make ligatures work
-
+
./hb-shape Apple_Chancery_10_12.ttf "Th th ll te to tr fr fu fj"
[T_h=0+2308|space=2+569|t_h=3+1687|space=5+569|l_l=6+1108|space=8+569|t_e=9+1408|space=11+569|t_o=12+1531|space=14+569|t_r=15+1385|space=17+569|f_r=18+1432|space=20+569|f_u=21+1733|space=23+569|f_j=24+1098]
-
+
Part of https://github.com/harfbuzz/harfbuzz/issues/1331
src/hb-aat-layout-morx-table.hh | 25 +++++++++++++++++--------
[mort] More Ligature work
- src/hb-aat-layout-morx-table.hh | 54
- ++++++++++++++++++++++++++++++-----------
+ src/hb-aat-layout-morx-table.hh | 54 ++++++++++++++++++++++++++++++-----------
1 file changed, 40 insertions(+), 14 deletions(-)
commit 431c6e496be56e441ee4b9b705f40a1246bdd0d6
[mort] Some Ligature work
- src/hb-aat-layout-morx-table.hh | 38
- +++++++++++++++++++++++++++++++-------
+ src/hb-aat-layout-morx-table.hh | 38 +++++++++++++++++++++++++++++++-------
1 file changed, 31 insertions(+), 7 deletions(-)
commit 28b68cffe4e5ebf82217ebf439f428431d672af3
[mort] Implement / adjust Contextual substitution
- src/hb-aat-layout-morx-table.hh | 70
- ++++++++++++++++++++++++++++++-----------
+ src/hb-aat-layout-morx-table.hh | 70 ++++++++++++++++++++++++++++++-----------
src/hb-open-type.hh | 7 +++++
2 files changed, 59 insertions(+), 18 deletions(-)
[mort] More massaging towards mort
- src/hb-aat-layout-morx-table.hh | 53
- +++++++++++++++++++++--------------------
+ src/hb-aat-layout-morx-table.hh | 53 +++++++++++++++++++++--------------------
1 file changed, 27 insertions(+), 26 deletions(-)
commit 2d9467340b1498ccc0cd47bf915b84ab12dfa025
Date: Tue Oct 30 19:26:16 2018 -0700
[mort] Make it compile / hook it up
-
+
Untested.
src/hb-aat-layout-common.hh | 11 +++++-----
src/hb-aat-layout-morx-table.hh | 2 +-
- src/hb-aat-layout.cc | 47
- ++++++++++++++++++++++++++---------------
+ src/hb-aat-layout.cc | 47 ++++++++++++++++++++++++++---------------
3 files changed, 36 insertions(+), 24 deletions(-)
commit 933babdc075c27fbcc1b726c3c9b2aa67338c6ad
Date: Tue Oct 30 18:41:34 2018 +0330
[mort] Bring back mort generalizations
-
- Started by reverting
- https://github.com/harfbuzz/harfbuzz/commit/1f1c85a5
-
+
+ Started by reverting https://github.com/harfbuzz/harfbuzz/commit/1f1c85a5
+
Just a starting point, if we agree even mort can come back.
src/hb-aat-layout-common.hh | 76 +++++++++++++++++++----
src/hb-aat-layout-kerx-table.hh | 17 ++---
- src/hb-aat-layout-morx-table.hh | 133
- ++++++++++++++++++++++++----------------
+ src/hb-aat-layout-morx-table.hh | 133 ++++++++++++++++++++++++----------------
src/hb-aat-layout.cc | 16 ++++-
src/hb-ot-face.hh | 1 +
5 files changed, 171 insertions(+), 72 deletions(-)
Date: Tue Oct 30 19:16:00 2018 -0700
Fix build
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1338
src/test-ot-color.cc | 2 +-
2.1.0
- NEWS | 81
- ++++++++++++++++++++++++++++++++++++++++++++++++++
+ NEWS | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++
RELEASING.md | 3 +-
configure.ac | 2 +-
docs/harfbuzz-docs.xml | 1 +
Author: Garret Rieger <grieger@google.com>
Date: Tue Oct 30 11:29:58 2018 -0700
- [subset] Limit the number of scripts and langsys' that should be
- checked when collecting features.
+ [subset] Limit the number of scripts and langsys' that should be checked when collecting features.
src/hb-ot-layout-common.hh | 8 ++++++++
src/hb-ot-layout.cc | 11 ++++++++++-
Date: Tue Oct 30 14:04:09 2018 -0700
[name] Rename hb_name_id_t to hb_ot_name_id_t
-
+
https://github.com/harfbuzz/harfbuzz/pull/1254
docs/harfbuzz-sections.txt | 3 +-
src/hb-ot-layout.h | 28 ++++++-------
src/hb-ot-name-table.hh | 6 +--
src/hb-ot-name.cc | 38 ++++++++---------
- src/hb-ot-name.h | 98
- +++++++++++++++++++++----------------------
+ src/hb-ot-name.h | 98 +++++++++++++++++++++----------------------
test/api/test-ot-color.c | 30 ++++++-------
test/api/test-ot-name.c | 8 ++--
11 files changed, 139 insertions(+), 138 deletions(-)
Date: Tue Oct 30 13:16:07 2018 -0700
[CBDT] Implement Format18 get_extens
-
+
Part of https://github.com/harfbuzz/harfbuzz/issues/1327
src/hb-ot-color-cbdt-table.hh | 10 +++++++++-
[CBDT] Bound checks in reference_png
- src/hb-ot-color-cbdt-table.hh | 57
- ++++++++++++++++++++++++++-----------------
+ src/hb-ot-color-cbdt-table.hh | 57 ++++++++++++++++++++++++++-----------------
1 file changed, 34 insertions(+), 23 deletions(-)
commit f236f790884d7b5c7afb73768724c360d4ea5212
Author: Nathan Willis <nwillis@glyphography.com>
Date: Tue Oct 30 11:24:56 2018 -0500
- Docs Makefile: sync SGML list to harfbuzz-docs.xml include
- list. Hopefully fixes distcheck failure.
+ Docs Makefile: sync SGML list to harfbuzz-docs.xml include list. Hopefully fixes distcheck failure.
docs/Makefile.am | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
docs/usermanual-fonts-and-faces.xml | 8 +++++++-
docs/usermanual-getting-started.xml | 6 ++++++
docs/usermanual-glyph-information.xml | 8 +++++++-
- docs/usermanual-install-harfbuzz.xml | 20
- +++++++++++++++++---
+ docs/usermanual-install-harfbuzz.xml | 20 +++++++++++++++++---
docs/usermanual-opentype-features.xml | 8 +++++++-
docs/usermanual-shaping-concepts.xml | 6 ++++++
docs/usermanual-what-is-harfbuzz.xml | 12 +++++++-----
Author: Nathan Willis <nwillis@glyphography.com>
Date: Mon Oct 29 16:42:59 2018 -0500
- Usermanual: update DTD in chapter XML to avoid HTML entity parsing
- errors.
+ Usermanual: update DTD in chapter XML to avoid HTML entity parsing errors.
docs/usermanual-what-is-harfbuzz.xml | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
Date: Sat Oct 20 16:12:45 2018 +0100
Minor; rewording unsafe-to-break note.
-
+
Co-Authored-By: n8willis <nwillis@glyphography.com>
docs/usermanual-getting-started.xml | 2 +-
Date: Sat Oct 20 15:46:04 2018 +0100
Trivial; typo.
-
+
Co-Authored-By: n8willis <nwillis@glyphography.com>
docs/usermanual-what-is-harfbuzz.xml | 2 +-
Date: Sat Oct 20 15:45:24 2018 +0100
Minor; simplify example code
-
+
Co-Authored-By: n8willis <nwillis@glyphography.com>
docs/usermanual-getting-started.xml | 4 +++-
Date: Sat Oct 20 15:44:51 2018 +0100
Minor: simplify example code
-
+
Co-Authored-By: n8willis <nwillis@glyphography.com>
docs/usermanual-getting-started.xml | 2 +-
Date: Sat Oct 20 15:41:00 2018 +0100
Minor; drop 'OpenType' from sentence
-
+
Co-Authored-By: n8willis <nwillis@glyphography.com>
docs/usermanual-what-is-harfbuzz.xml | 2 +-
Date: Sat Oct 20 15:00:52 2018 +0100
Use 'glyphs' instead of 'text'
-
+
Co-Authored-By: n8willis <nwillis@glyphography.com>
docs/harfbuzz-docs.xml | 2 +-
Docs: rename Hello HarfBuzz to Getting Started.
- docs/harfbuzz-docs.xml |
- 2 +-
- docs/{usermanual-hello-harfbuzz.xml => usermanual-getting-started.xml}
- | 0
+ docs/harfbuzz-docs.xml | 2 +-
+ docs/{usermanual-hello-harfbuzz.xml => usermanual-getting-started.xml} | 0
2 files changed, 1 insertion(+), 1 deletion(-)
commit 9e7efa3f47557a77852a15d89619787fd9933ed1
Author: Nathan Willis <nwillis@glyphography.com>
Date: Tue Oct 16 17:46:03 2018 -0500
- Docs: usermanual, add API Overview to Hello HarfBuzz chapter. Start
- Terminology section.
+ Docs: usermanual, add API Overview to Hello HarfBuzz chapter. Start Terminology section.
- docs/usermanual-hello-harfbuzz.xml | 309
- +++++++++++++++++++++++++------------
+ docs/usermanual-hello-harfbuzz.xml | 309 +++++++++++++++++++++++++------------
1 file changed, 212 insertions(+), 97 deletions(-)
commit 3a27e8fb97f716c17b03e3a4a634a4900bcb6045
Docs: usermanual, add Shaping Concepts chapter.
docs/harfbuzz-docs.xml | 5 +-
- docs/usermanual-shaping-concepts.xml | 368
- +++++++++++++++++++++++++++++++++++
+ docs/usermanual-shaping-concepts.xml | 368 +++++++++++++++++++++++++++++++++++
2 files changed, 371 insertions(+), 2 deletions(-)
commit 9aa865dcc68ec207741e07ba3f7aacf4ac750c1c
Author: Nathan Willis <nwillis@glyphography.com>
Date: Thu Oct 11 15:40:08 2018 -0500
- Docs: move harfbuzz-ng-vs-old discussion down below the TOC; put
- in note.
+ Docs: move harfbuzz-ng-vs-old discussion down below the TOC; put in note.
- docs/harfbuzz-docs.xml | 63
- ++++++++++++++++++++++++++++++++++----------------
+ docs/harfbuzz-docs.xml | 63 ++++++++++++++++++++++++++++++++++----------------
1 file changed, 43 insertions(+), 20 deletions(-)
commit 792af5d254fddcdc4292dffb76b81d65754e65a9
Docs: flesh out config options in Usermanual:Install chapter.
- docs/usermanual-install-harfbuzz.xml | 108
- +++++++++++++++++++++++++++--------
+ docs/usermanual-install-harfbuzz.xml | 108 +++++++++++++++++++++++++++--------
1 file changed, 85 insertions(+), 23 deletions(-)
commit 325e2745cfa55f9ef114ee8eeaf7bd8176743822
Author: Nathan Willis <nwillis@glyphography.com>
Date: Wed Oct 10 17:01:21 2018 -0500
- Docs: add basic config-options section to Usermanual Installation
- chapter.
+ Docs: add basic config-options section to Usermanual Installation chapter.
- docs/usermanual-install-harfbuzz.xml | 132
- ++++++++++++++++++++++++++++++++++-
+ docs/usermanual-install-harfbuzz.xml | 132 ++++++++++++++++++++++++++++++++++-
1 file changed, 131 insertions(+), 1 deletion(-)
commit 97c1c46cd2241d77b531a582dd1a2432af976357
Author: Nathan Willis <nwillis@glyphography.com>
Date: Wed Oct 10 16:38:22 2018 -0500
- Docs: update and linearize build instructions; add installation
- overview material.
+ Docs: update and linearize build instructions; add installation overview material.
- docs/usermanual-install-harfbuzz.xml | 229
- ++++++++++++++++++++++++++++-------
+ docs/usermanual-install-harfbuzz.xml | 229 ++++++++++++++++++++++++++++-------
1 file changed, 188 insertions(+), 41 deletions(-)
commit 088755f9e654d2ec638dce0c68d523084b9eaf5a
Docs: update usermanual What Is HarfBuzz material.
- docs/usermanual-what-is-harfbuzz.xml | 220
- +++++++++++++++++++++++++++--------
+ docs/usermanual-what-is-harfbuzz.xml | 220 +++++++++++++++++++++++++++--------
1 file changed, 172 insertions(+), 48 deletions(-)
commit 0956ab41851d30f50c39c28730cf30ea0bbc5466
Docs: Move What-HarfBuzz-doesnt-do to Usermanual-what-is-HarfBuzz.
- docs/usermanual-hello-harfbuzz.xml | 98
- +++------------------------------
- docs/usermanual-what-is-harfbuzz.xml | 101
- +++++++++++++++++++++++++++++++++--
+ docs/usermanual-hello-harfbuzz.xml | 98 +++------------------------------
+ docs/usermanual-what-is-harfbuzz.xml | 101 +++++++++++++++++++++++++++++++++--
2 files changed, 104 insertions(+), 95 deletions(-)
commit fd270beedb331c4685e918f5a3ef5789a23ffaeb
Docs: Usermanual- What is HarfBuzz; add intro to shaping concepts.
- docs/usermanual-what-is-harfbuzz.xml | 51
- ++++++++++++++++++++++++++++++++++++
+ docs/usermanual-what-is-harfbuzz.xml | 51 ++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
commit d9fd92721002726c4aeaae9cc3a519a41f694e48
Docs: update Usermanual-What Is HarfBuzz.
- docs/usermanual-what-is-harfbuzz.xml | 199
- +++++++++++++++++++++++------------
+ docs/usermanual-what-is-harfbuzz.xml | 199 +++++++++++++++++++++++------------
1 file changed, 130 insertions(+), 69 deletions(-)
commit 0af3d176a64c0a57c7acb2a64ce8b9d08f449241
Date: Tue Oct 30 17:05:28 2018 +0200
[sbix] Fix memory leak in early return
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11210
src/hb-ot-color-sbix-table.hh | 3 +++
- ...zz-testcase-minimized-hb-shape-fuzzer-5768601332613120 | Bin 0 ->
- 108 bytes
+ ...zz-testcase-minimized-hb-shape-fuzzer-5768601332613120 | Bin 0 -> 108 bytes
2 files changed, 3 insertions(+)
commit edaa768253cfeb97d614537253f90d47aa93ff6f
Date: Tue Oct 30 00:51:43 2018 -0700
[test/shaping] Spawn one hb-shape per test file
-
+
Speeds up runnings in-house tests from over 20s to 2s.
test/shaping/run-tests.py | 32 ++++++++++++--------------------
Date: Mon Oct 29 23:21:14 2018 -0700
[set/map] Fix uninitialized memory
-
- I keep forgetting that primitive types are NOT initialized during
- construction. :|
+
+ I keep forgetting that primitive types are NOT initialized during construction. :|
src/hb-map.hh | 4 ++--
src/hb-object.hh | 1 +
Date: Mon Oct 29 18:05:25 2018 -0700
Remove a few unnecessary hb_auto_t<>'s
-
+
See a85641446c30247c4e948263f0f8c1147ed4efb9
src/hb-coretext.cc | 8 ++++----
Date: Mon Oct 29 17:37:41 2018 -0700
[set/map/vector] Make constructable, but not copy or assignable
-
+
Disable copy/assign on them, as they shouldn't.
-
+
Make constructor / destructor call init_shallow/fini_shallow,
and make those idempotent. So, these three can be constructed
on stack now and no init/fini call is needed. As such,
Date: Mon Oct 29 15:58:44 2018 -0700
Remove HB_DISALLOW_COPY_AND_ASSIGN from hb_ot_shape_planner_t
-
+
It was arbitrary that this struct had it and not dozens of others.
src/hb-ot-shape.hh | 3 ---
Date: Mon Oct 29 15:16:52 2018 -0700
Try fixing older bots
-
+
Older C++ doesn't allow struct-with-constructor in union.
src/hb.hh | 13 ++++++++++++-
Date: Mon Oct 29 14:45:44 2018 -0700
Remove ASSERT_POD
-
+
Newer compilers / language allows structs with constructor in union.
So, this was not actually testing anything. Indeed, the recent
change in DISALLOW_COPY *is* making some of our types non-POD.
That broke some bots.
-
+
Just remove this since it wasn't doing much, and I'd rather have
DISALLOW_COPY.
src/hb-subset-input.hh | 1 -
src/hb-subset-plan.hh | 1 -
src/hb-unicode.hh | 1 -
- src/hb.hh | 26
- --------------------------
+ src/hb.hh | 26 --------------------------
18 files changed, 2 insertions(+), 60 deletions(-)
commit 6f0454e176efdb8b99c8aa59b5ad765ca455b8d6
Date: Mon Oct 29 11:25:35 2018 -0700
Make Array types uncopyable-unassignable
-
+
Finally! Catches hard-to-find errors like this:
-
- - const SortedArrayOf<SVGDocumentIndexEntry> docs =
- this+svgDocEntries;
- + const SortedArrayOf<SVGDocumentIndexEntry> &docs =
- this+svgDocEntries;
-
+
+ - const SortedArrayOf<SVGDocumentIndexEntry> docs = this+svgDocEntries;
+ + const SortedArrayOf<SVGDocumentIndexEntry> &docs = this+svgDocEntries;
+
We implement this for our array types. This, in turn, trickles down
into all types that embed the arrays. So, as long as we define all
open-ended structs in terms of Array types (all can be done using
Date: Mon Oct 29 12:34:33 2018 +0330
Merge pull request #1326 from ebraminio/test-ot-color
-
- Revive and rename dump-emoji to test-ot-color but use public APIs
- instead
+
+ Revive and rename dump-emoji to test-ot-color but use public APIs instead
commit 9c692e5b8d195d8e82538594d89865c609d708f3
Author: Ebrahim Byagowi <ebrahim@gnu.org>
[test-ot-color] Use public APIs on the tool
src/Makefile.am | 9 +++
- src/test-ot-color.cc | 184
- +++++++++++++++++++++++++++++----------------------
+ src/test-ot-color.cc | 184 +++++++++++++++++++++++++++++----------------------
2 files changed, 113 insertions(+), 80 deletions(-)
commit fb525f8943b43fe241424c93461bee2b94af28e3
Revive dump-emoji
- src/dump-emoji.cc | 322
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/dump-emoji.cc | 322 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 322 insertions(+)
commit f10252b4b637b4aa0b74bb75963ae1e1a41b5b9f
[cbdt] Refactor get_strike()
- src/hb-ot-color-cbdt-table.hh | 39
- ++++++++++++++++-----------------------
+ src/hb-ot-color-cbdt-table.hh | 39 ++++++++++++++++-----------------------
src/hb-ot-color.cc | 2 +-
2 files changed, 17 insertions(+), 24 deletions(-)
Date: Sun Oct 28 15:44:40 2018 -0700
[sbix] Simplify ppem access
-
+
If struct members are simple and needed publicly, we make them public.
src/hb-ot-color-sbix-table.hh | 10 ++++------
Date: Sun Oct 28 15:33:12 2018 -0700
[sbix] Check glyph id before looking into unsafe array
-
- That 'Z' at end of imageOffsetsZ is a reminder that you should
- check...
+
+ That 'Z' at end of imageOffsetsZ is a reminder that you should check...
src/hb-ot-color-sbix-table.hh | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
[color] Remove more dump-emoji cruft
- src/hb-ot-color-cbdt-table.hh | 53
- -------------------------------------------
+ src/hb-ot-color-cbdt-table.hh | 53 -------------------------------------------
src/hb-ot-color-sbix-table.hh | 13 -----------
2 files changed, 66 deletions(-)
Remove dump-emoji
src/Makefile.am | 9 --
- src/dump-emoji.cc | 322
- ------------------------------------------
+ src/dump-emoji.cc | 322 ------------------------------------------
src/hb-ot-color-sbix-table.hh | 4 +-
3 files changed, 3 insertions(+), 332 deletions(-)
[sbix] Select best strike based on ppem
- src/hb-ot-color-sbix-table.hh | 50
- ++++++++++++++++++++++++-------------------
+ src/hb-ot-color-sbix-table.hh | 50 ++++++++++++++++++++++++-------------------
src/hb-ot-color.cc | 3 +--
src/hb-ot-font.cc | 2 +-
3 files changed, 30 insertions(+), 25 deletions(-)
[ot-color] Preparation for setting PNG width/height in extents
src/dump-emoji.cc | 7 +++---
- src/hb-ot-color-sbix-table.hh | 52
- +++++++++++++++++++++++++++++++++++--------
+ src/hb-ot-color-sbix-table.hh | 52 +++++++++++++++++++++++++++++++++++--------
src/hb-ot-color.cc | 14 +++++-------
src/hb-ot-font.cc | 7 +++++-
4 files changed, 59 insertions(+), 21 deletions(-)
Date: Sun Oct 28 08:26:30 2018 -0700
[name] Change hb_name_id_t back to unsigned int
-
+
https://github.com/harfbuzz/harfbuzz/commit/d941f66c75fe26f909b1ba248535cc372bbde851#commitcomment-31076011
docs/harfbuzz-sections.txt | 2 --
Date: Sat Oct 27 18:36:24 2018 -0700
[name] Make sure hb_name_id_t is int-sized
-
+
https://github.com/harfbuzz/harfbuzz/commit/d941f66c75fe26f909b1ba248535cc372bbde851#commitcomment-31068905
src/hb-ot-name.h | 4 +++-
[docs] Divide reference API into three chapters
- docs/harfbuzz-docs.xml | 213
- +++++++++++++------------------------------------
+ docs/harfbuzz-docs.xml | 213 +++++++++++++------------------------------------
1 file changed, 56 insertions(+), 157 deletions(-)
commit 1d40d72f291ed5e11850f8bd51a8562b57de1997
Date: Sat Oct 27 04:50:38 2018 -0700
[docs] Change section titles again
-
+
I think I like the uniform "hb-*" more.
src/hb-blob.cc | 2 +-
Date: Sat Oct 27 04:28:40 2018 -0700
[docs] Rename section titles to object names
-
+
More useful.
src/hb-blob.cc | 2 +-
src/Makefile.sources | 1 -
src/hb-graphite2.cc | 2 +-
src/hb-ot-layout.h | 42 ++++++++++++++++++++++++-
- src/hb-ot-tag.h | 78
- ----------------------------------------------
+ src/hb-ot-tag.h | 78 ----------------------------------------------
src/hb-ot.h | 1 -
src/hb-uniscribe.cc | 2 +-
8 files changed, 51 insertions(+), 96 deletions(-)
[docs] Fill in some sections
docs/harfbuzz-docs.xml | 20 ++++++--------
- docs/harfbuzz-sections.txt | 65
- +++++++++++++++++++---------------------------
+ docs/harfbuzz-sections.txt | 65 +++++++++++++++++++---------------------------
src/hb-blob.cc | 13 ++++++++++
src/hb-buffer.cc | 3 ++-
src/hb-common.cc | 23 ++++++++++++++++
Date: Sat Oct 27 15:04:43 2018 +0330
Merge pull request #1318 from ebraminio/png
-
+
Add a non-hooked _png _svg get emoji blob
commit 8180c37df0a856dbc3564c0aefd8b2acab8baf8a
Author: Ebrahim Byagowi <ebrahim@gnu.org>
Date: Sat Oct 27 14:24:58 2018 +0330
- [ot-color/png] Try to get image blob from sbix first options.aat
- is set
+ [ot-color/png] Try to get image blob from sbix first options.aat is set
src/hb-ot-color.cc | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
Date: Sat Oct 27 03:18:45 2018 -0700
[docs] Fix hb_name_id_t
-
+
Yep, was not recognized without this patch!
src/hb-ot-name.h | 2 +-
[ot-color/png] Implement CBDT part
- src/hb-ot-color-cbdt-table.hh | 56
- +++++++++++++++++++++++++++++++++++++++----
+ src/hb-ot-color-cbdt-table.hh | 56 +++++++++++++++++++++++++++++++++++++++----
src/hb-ot-color.cc | 19 ++-------------
src/hb-ot-color.h | 4 ++++
test/api/test-ot-color.c | 25 ++++++++++++++++---
Date: Sat Oct 27 02:55:52 2018 -0700
[name] Make hb_name_id_t be the enum
-
+
This is like hb_script_t.
-
+
We had this exposed as unsigned int since 2.0.0 release in two APIs,
as well as hb_ot_layout_get_size_params() from earlier.
But since no one uses those (right?!), let's just fix this now.
Date: Sat Oct 27 02:49:32 2018 -0700
[name] Move HB_NAME_ID_INVALID into the enum
-
+
Don't know how to document anonymous enum members.
src/hb-ot-name.h | 6 +++---
[name] Move around
- src/hb-ot-name.h | 74
- ++++++++++++++++++++++++++++----------------------------
+ src/hb-ot-name.h | 74 ++++++++++++++++++++++++++++----------------------------
1 file changed, 37 insertions(+), 37 deletions(-)
commit 3b7e5f131383956e19642d28c938f1bc0d16295f
Date: Sat Oct 27 02:39:20 2018 -0700
[name] Rename hb_ot_name_get_names() to hb_ot_name_list_names()
-
- And swap return value positions, so can be annotated for
- gobject-introspectin.
+
+ And swap return value positions, so can be annotated for gobject-introspectin.
docs/harfbuzz-sections.txt | 2 +-
src/hb-ot-name.cc | 17 ++++++++---------
src/hb-common.h | 30 +++++++++++++++++++++++++-
src/hb-ot-color.cc | 16 +++++++-------
src/hb-ot-layout.cc | 2 +-
- src/hb-ot-name.cc | 61
- ++++++++++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-ot-name.cc | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
src/hb-ot-name.h | 15 +++++++++++++
5 files changed, 113 insertions(+), 11 deletions(-)
Date: Sat Oct 27 12:15:25 2018 +0330
[sbix] Set num_glyphs on accelerator
-
+
dump-emoji was broken without it
src/hb-ot-color-sbix-table.hh | 1 +
docs/harfbuzz-sections.txt | 2 +
src/dump-emoji.cc | 5 ++-
src/hb-ot-color-cbdt-table.hh | 27 ++++++++----
- src/hb-ot-color-sbix-table.hh | 98
- +++++++++++++++++++++++++++++++++++++------
+ src/hb-ot-color-sbix-table.hh | 98 +++++++++++++++++++++++++++++++++++++------
src/hb-ot-color.cc | 64 ++++++++++++++++++++++++++++
src/hb-ot-color.h | 9 ++++
test/api/test-ot-color.c | 32 ++++++++++++++
Date: Sat Oct 27 00:06:48 2018 -0700
Remove stale comment
-
+
Ugliness was fixed in 30eab97a0072fbc22d353082249e0e6e546cd86b
But yeah, my smell detector was working. Ugliness was buggy.
[docs] Hook up new symbols
- docs/harfbuzz-docs.xml | 46
- +++++++++++++++++++++++++++++++++++++++++-----
+ docs/harfbuzz-docs.xml | 46 +++++++++++++++++++++++++++++++++++++++++-----
docs/harfbuzz-sections.txt | 21 +++++++++++++++++++++
src/hb-ot-color.cc | 2 +-
3 files changed, 63 insertions(+), 6 deletions(-)
Date: Fri Oct 26 22:02:17 2018 -0700
[morx] Fix merge_cluster to end at last ligature component
-
+
Don't assume current position was a component in the ligature.
src/hb-aat-layout-morx-table.hh | 3 ++-
Date: Fri Oct 26 21:59:20 2018 -0700
[morx] Fix bailing out ligation at end-of-text
-
+
Check was after a move_to, which wouldn't work.
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11147
src/hb-aat-layout-morx-table.hh | 5 +++--
Date: Fri Oct 26 21:54:07 2018 -0700
Fix invalid memory read
-
+
Buffer might be relocated inside replace_glyphs().
-
+
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=895117
src/hb-ot-shape-normalize.cc | 3 ++-
Date: Fri Oct 26 21:21:18 2018 -0700
[indic] Fix infinite loop
-
+
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=863044
src/hb-ot-shape-complex-indic.cc | 2 +-
Date: Fri Oct 26 21:01:11 2018 -0700
Fix bunch of unused parameter warnings
-
+
Show up with gcc -O0.
-
+
There's a few more but those are functions that need to be filled in.
-
+
Maybe this is a lost battle...
src/gen-vowel-constraints.py | 4 ++--
src/hb-aat-layout-kerx-table.hh | 4 ++--
src/hb-aat-layout-morx-table.hh | 10 +++++-----
src/hb-face.cc | 2 +-
- src/hb-font.cc | 29
- ++++++++++++++--------------
+ src/hb-font.cc | 29 ++++++++++++++--------------
src/hb-graphite2.cc | 9 ++++++---
src/hb-machinery.hh | 4 ++--
src/hb-ot-color-cbdt-table.hh | 2 +-
Date: Fri Oct 26 20:31:14 2018 -0700
[fuzzing] Remove HB_NDEBUG
-
+
Not sure why it ever was added.
src/Makefile.am | 1 -
[fuzzing] Add more test
- ...z-testcase-minimized-harfbuzz_fuzzer-5659690013556736 | Bin 0 ->
- 2732 bytes
+ ...z-testcase-minimized-harfbuzz_fuzzer-5659690013556736 | Bin 0 -> 2732 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit c965eeadbc71943f2336a20dc16ac691c805b90e
[name] Fill out most missing language codes
- src/hb-ot-name-language.cc | 114
- +++++++++++++++++++++++----------------------
+ src/hb-ot-name-language.cc | 114 +++++++++++++++++++++++----------------------
1 file changed, 58 insertions(+), 56 deletions(-)
commit 622b014faf7bbe7a97f9aff959c434d1664c10d0
[name] Do record sanitization at run-time
- src/hb-dsalgs.hh | 62
- +++++++++++++++++++++++++++----------------------
+ src/hb-dsalgs.hh | 62 +++++++++++++++++++++++++++----------------------
src/hb-ot-name-table.hh | 22 +++++++++++-------
src/hb-ot-name.cc | 2 +-
3 files changed, 49 insertions(+), 37 deletions(-)
[name] Add src/test-name-table tool to show all font names
src/Makefile.am | 17 ++++++++-----
- src/test-name-table.cc | 67
- ++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/test-name-table.cc | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 78 insertions(+), 6 deletions(-)
commit 7007bd9dff9f8eef3263f1b39327552ff1ebae3f
[name] Rebuild language list, include missing entries
- src/hb-ot-name-language.cc | 634
- ++++++++++++++++++++++++++-------------------
+ src/hb-ot-name-language.cc | 634 ++++++++++++++++++++++++++-------------------
1 file changed, 370 insertions(+), 264 deletions(-)
commit 68f172101c1228a7d669d71da1d0eeb96a10565e
[name] Add language mapping
src/Makefile.sources | 2 +
- src/hb-ot-name-language.cc | 349
- +++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-name-language.cc | 349 +++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-name-language.hh | 40 ++++++
src/hb-ot-name-table.hh | 21 ++-
4 files changed, 399 insertions(+), 13 deletions(-)
Date: Tue Oct 23 20:51:53 2018 -0700
[name] Hook things up
-
+
Accept Mac Latin name entries as ASCII as well.
src/hb-ot-name-table.hh | 24 +++++++++++++++------
src/hb-ot-name.cc | 8 +++++--
- src/hb-utf.hh | 55
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-utf.hh | 55 +++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 79 insertions(+), 8 deletions(-)
commit 69f5da0629f1e5a307fc49fe58490aa92d1bd0e2
Date: Tue Oct 23 20:30:40 2018 -0700
[name] More
-
- It assumes all names are encoded in UTF16-BE. Other than that,
- and not
+
+ It assumes all names are encoded in UTF16-BE. Other than that, and not
listing languages correctly, it's *supposed* to work.
src/hb-dsalgs.hh | 21 +++++++++++++++++++++
- src/hb-ot-name-table.hh | 37
- ++++++++++++++++++++++++++++++-------
+ src/hb-ot-name-table.hh | 37 ++++++++++++++++++++++++++++++-------
src/hb-ot-name.cc | 12 ++++++++----
src/hb-ot-os2-unicode-ranges.hh | 10 +++++-----
src/hb-unicode.cc | 8 ++++----
src/hb-ot-name.cc | 84 ++++++++++++++++++++++++++++++++++++------
src/hb-ot-name.h | 10 ++---
- src/hb-utf.hh | 107
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-utf.hh | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 182 insertions(+), 19 deletions(-)
commit 84811a06a26508effe9f4a9eaf1be15297ecf0cb
[utf] Add UTF16-BE and UTF32-BE
src/hb-buffer.cc | 4 +--
- src/hb-utf.hh | 80
- ++++++++++++++++++++++++++++++++------------------------
+ src/hb-utf.hh | 80 ++++++++++++++++++++++++++++++++------------------------
2 files changed, 48 insertions(+), 36 deletions(-)
commit a826a8730f21ae996ae8f4d12c44dc18b9e8e933
[name] Finish accelerator sorting
- src/hb-ot-name-table.hh | 61
- +++++++++++++++++++++++++++++++++++++++++--------
+ src/hb-ot-name-table.hh | 61 +++++++++++++++++++++++++++++++++++++++++--------
src/hb-ot-name.h | 3 ++-
2 files changed, 53 insertions(+), 11 deletions(-)
src/hb-ot-face.cc | 1 +
src/hb-ot-face.hh | 7 +++---
- src/hb-ot-name-table.hh | 60
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-name-table.hh | 60 +++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-name.h | 3 +++
4 files changed, 68 insertions(+), 3 deletions(-)
Date: Fri Oct 26 15:40:12 2018 -0700
[indic/khmer/myanmar/use] Clarify clear_syllable
-
+
No logic change.
src/hb-ot-shape-complex-indic.cc | 3 ++-
src/hb-ot-shape-complex-khmer.cc | 4 +---
- src/hb-ot-shape-complex-myanmar.cc | 40
- ++++++++++++++++++--------------------
+ src/hb-ot-shape-complex-myanmar.cc | 40 ++++++++++++++++++--------------------
src/hb-ot-shape-complex-use.cc | 22 +++++++++++++++------
4 files changed, 38 insertions(+), 31 deletions(-)
[fuzz] Add a new testcase
- ...z-testcase-minimized-hb-shape-fuzzer-5658272078495744 | Bin 0 ->
- 2252 bytes
+ ...z-testcase-minimized-hb-shape-fuzzer-5658272078495744 | Bin 0 -> 2252 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit 30f18039b3c0e5748101f8934ae82aebfc5a83f7
[svg] Collapse SVGDocumentIndex into SVG
- src/hb-ot-color-svg-table.hh | 54
- +++++++++++++++-----------------------------
+ src/hb-ot-color-svg-table.hh | 54 +++++++++++++++-----------------------------
src/hb-ot-color.cc | 2 +-
test/api/test-ot-color.c | 2 +-
3 files changed, 20 insertions(+), 38 deletions(-)
[svg] Hide start_glyph and end_glyph from API
src/dump-emoji.cc | 21 ++++++++-------------
- src/hb-ot-color-svg-table.hh | 42
- ++++++++++++------------------------------
+ src/hb-ot-color-svg-table.hh | 42 ++++++++++++------------------------------
src/hb-ot-color.cc | 9 ++-------
src/hb-ot-color.h | 5 +----
test/api/test-ot-color.c | 11 ++---------
Date: Tue Oct 23 18:00:48 2018 +0330
[svg] Add public API
-
+
* hb_ot_color_has_svg
* hb_ot_color_glyph_svg_create_blob
src/dump-emoji.cc | 51 +++++++++++++++----------
src/hb-open-type.hh | 1 -
src/hb-ot-color-sbix-table.hh | 2 +
- src/hb-ot-color-svg-table.hh | 86
- ++++++++++++++++++++++++++++++++-----------
+ src/hb-ot-color-svg-table.hh | 86 ++++++++++++++++++++++++++++++++-----------
src/hb-ot-color.cc | 53 ++++++++++++++++++++++----
src/hb-ot-color.h | 13 +++++++
src/hb-ot-face.cc | 2 +
Date: Thu Oct 25 22:25:29 2018 -0700
[layout] Try to speed up collect_lookups some more
-
+
Barely made a dent :(.
src/hb-ot-layout-common.hh | 2 ++
Date: Thu Oct 25 21:42:19 2018 -0700
[layout] Memoize collect_features
-
+
Fixes https://github.com/harfbuzz/harfbuzz/pull/1317
Fixes https://oss-fuzz.com/v2/testcase-detail/6543700493598720
- src/hb-ot-layout.cc | 55
- ++++++++++++++++++++++++++++++++++++++++++++++-------
+ src/hb-ot-layout.cc | 55 ++++++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 48 insertions(+), 7 deletions(-)
commit 84098b1639775aea5bf3f5d91fa6e657b612ce3a
Date: Thu Oct 25 21:26:08 2018 -0700
[layout] Add hb_collect_features_context_t
-
+
Towards https://github.com/harfbuzz/harfbuzz/pull/1317
- src/hb-ot-layout.cc | 66
- +++++++++++++++++++++++++++++------------------------
+ src/hb-ot-layout.cc | 66 +++++++++++++++++++++++++++++------------------------
1 file changed, 36 insertions(+), 30 deletions(-)
commit c237cdfcc74d33f77b2399b4d08228c2fcf50df5
[layout] More prep work to memoize collect_features() work
- src/hb-ot-layout.cc | 62
- ++++++++++++++++++++---------------------------------
+ src/hb-ot-layout.cc | 62 ++++++++++++++++++++---------------------------------
1 file changed, 23 insertions(+), 39 deletions(-)
commit e8e67503ff0a50eb10ad410d6a76a282ea494cf4
Date: Thu Oct 25 20:48:20 2018 -0700
[lookup] More prep work for memoizing collect_features
-
+
https://github.com/harfbuzz/harfbuzz/pull/1317
src/hb-ot-layout-common.hh | 2 ++
- src/hb-ot-layout.cc | 83
- +++++++++++++++++++++-------------------------
+ src/hb-ot-layout.cc | 83 +++++++++++++++++++++-------------------------
2 files changed, 40 insertions(+), 45 deletions(-)
commit 96828b97a8fc2c50721ce040bdde63c462908791
Date: Thu Oct 25 20:34:29 2018 -0700
[layout] Minor
-
+
We were returning the accelerator's lookup count. Returns table's.
They are the same except for OOM cases. Just shorter code.
Date: Thu Oct 25 20:32:05 2018 -0700
[layout] Fold one function inline
-
+
Preparation for fixing https://github.com/harfbuzz/harfbuzz/pull/1317
src/hb-ot-layout.cc | 22 +++-------------------
Date: Thu Oct 25 17:41:26 2018 -0700
[morx] Use deleted-glyph, instead of actual deletion, in Ligation
-
+
Closer to what CoreText does.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1302
src/hb-aat-layout-morx-table.hh | 3 +--
Date: Thu Oct 25 17:29:32 2018 -0700
[aat] Start adding support for DELETED-GLYPH
-
+
https://github.com/harfbuzz/harfbuzz/issues/1302
src/hb-aat-layout-common.hh | 2 ++
Date: Thu Oct 25 16:50:38 2018 -0700
[vector] Make it act more like pointer
-
+
Add pointer cast operator and plus operator.
src/hb-coretext.cc | 2 +-
Date: Thu Oct 25 16:35:36 2018 -0700
[set] Make array access more explicit
-
+
Follow up on 94e421abbfc7ede9aaf3c8d86bb0ff9992ea3123
src/hb-set.hh | 4 +++-
Date: Thu Oct 25 13:40:40 2018 -0700
dropped support of legacy CFF CharString ops
-
+
along with test & font
- src/hb-cff1-interp-cs.hh | 135
- +-------------------------------------
+ src/hb-cff1-interp-cs.hh | 135 +-------------------------------------
test/api/fonts/cff1_legacyops.otf | Bin 3104 -> 0 bytes
test/api/test-ot-extents-cff.c | 23 -------
3 files changed, 1 insertion(+), 157 deletions(-)
Date: Thu Oct 25 13:23:33 2018 -0700
[test] Rename some fonts
-
+
If we have duplicae font files in different directories, that would
break the oss-fuzz build currently. So, rename some to avoid
name class with text-rendering-test. Would be better to find
.../data/in-house/fonts/{TestTTC.ttc => TTC.ttc} | Bin
test/shaping/data/in-house/fonts/TestDFONT.dfont | Bin 3505 -> 0 bytes
test/shaping/data/in-house/tests/aat-morx.tests | 2 +-
- test/shaping/data/in-house/tests/aat-trak.tests | 22
- ++++++++++-----------
+ test/shaping/data/in-house/tests/aat-trak.tests | 22 ++++++++++-----------
test/shaping/data/in-house/tests/collections.tests | 12 +++++------
7 files changed, 18 insertions(+), 18 deletions(-)
Date: Thu Oct 25 13:19:34 2018 -0700
Fix possible overflow in bsearch impls
-
+
From bungeman.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/pull/1314
src/hb-dsalgs.hh | 2 +-
Date: Thu Oct 25 13:44:27 2018 -0400
Remove some use of Crap in hb-set.
-
- When hb_set_t::page_for_insert needs to insert at the end of the
- page_map
+
+ When hb_set_t::page_for_insert needs to insert at the end of the page_map
it ends up evaluating '&page_map[i + 1]' which has hb_vector return an
- lvalue of a Crap so that nothing can be moved to its address. This
- turns
- into issues with ThreadSanitizer on Crap when two threads modify
- different
+ lvalue of a Crap so that nothing can be moved to its address. This turns
+ into issues with ThreadSanitizer on Crap when two threads modify different
hb_set_t instances. This can be avoided by using '&page_map[i] + 1'
instead.
1 file changed, 1 insertion(+), 1 deletion(-)
commit 2798ac1c28edc4ba6f2283784d1027393f588f8c
-Author: azure-pipelines[bot]
-<azure-pipelines[bot]@users.noreply.github.com>
+Author: azure-pipelines[bot] <azure-pipelines[bot]@users.noreply.github.com>
Date: Thu Oct 25 15:22:54 2018 +0000
Set up CI with Azure Pipelines
Date: Thu Oct 25 01:55:10 2018 +0200
[appveyor] Drop Cygwin builds again
-
+
They are so slow and we had only a couple of Cygwin build failure
reported in ~5 years.
Date: Wed Oct 24 22:58:22 2018 +0200
[appveyor] Limit make to three jobs
-
+
https://github.com/harfbuzz/harfbuzz/pull/1309#issuecomment-432778270
appveyor.yml | 4 ++--
Date: Wed Oct 24 16:46:07 2018 -0700
[vowel-constraints] Reset continuation on all dottedcircles
-
+
One of the was missed before. Not intentional.
src/gen-vowel-constraints.py | 9 +++++++--
Date: Wed Oct 24 11:23:21 2018 +0200
[appveyor] Do not update msys2
-
- Looks like AppVeyor has new enough packages for our needs. Cuts
- CI build
+
+ Looks like AppVeyor has new enough packages for our needs. Cuts CI build
time by 5 minutes.
appveyor.yml | 5 ++---
Date: Tue Oct 23 17:00:49 2018 -0700
[ot-font] Fix sign of ascent/descent
-
+
Some fonts, like msmincho, have positive number as descent
in vhea table. That's wrong. Just enforce sign on ascent/descent
when reading both horizontal and vertical metrics.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1248
src/hb-ot-hmtx-table.hh | 8 ++++----
Date: Tue Oct 23 16:46:10 2018 -0700
[morx] Fix cluster-merging when ligating
-
+
Only merge when actual ligature happened.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1305
src/hb-aat-layout-morx-table.hh | 7 ++++---
test/shaping/data/in-house/Makefile.sources | 1 +
- test/shaping/data/in-house/fonts/TestMORXTwentyeight.ttf | Bin 0 ->
- 2660 bytes
+ test/shaping/data/in-house/fonts/TestMORXTwentyeight.ttf | Bin 0 -> 2660 bytes
test/shaping/data/in-house/tests/aat-morx.tests | 1 +
4 files changed, 6 insertions(+), 3 deletions(-)
[aat] Fix up previous commit and add files
src/hb-aat-map.cc | 62 +++++++++++++++++++++++++++++++
- src/hb-aat-map.hh | 106
- +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-aat-map.hh | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-map.cc | 1 +
src/hb-ot-shape.cc | 15 ++++++--
4 files changed, 181 insertions(+), 3 deletions(-)
Date: Tue Oct 23 14:14:03 2018 -0700
[aat] Allow enabling/disabling features
-
+
Only works at entire-buffer range, not sub-ranges.
-
+
Test with:
-
+
$ hb-shape Zapfino.dfont Zapfino
[Z_a_p_f_i_n_o=0+2333]
-
+
$ hb-shape Zapfino.dfont Zapfino --features=-dlig
[Z=0+416|a=1@-21,0+264|p_f=2+433|i=4+181|n=5+261|o=6+250]
-
+
$ hb-shape Zapfino.dfont Zapfino --features=+dlig
[Z_a_p_f_i_n_o=0+2333]
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1303
src/Makefile.sources | 2 ++
Date: Tue Oct 23 03:10:56 2018 -0700
[trak] Allow disabling tracking for ranges of text
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1303
src/hb-aat-layout-trak-table.hh | 4 ++++
Date: Tue Oct 23 00:52:05 2018 +0330
Make tracking optout possible using 'trak' ot feature
-
- So '--features=-trak' or 'font-feature-settings: 'trak' 0;'
- can prevent
+
+ So '--features=-trak' or 'font-feature-settings: 'trak' 0;' can prevent
applying of tracking if used.
src/hb-ot-shape.cc | 10 +++++++---
Date: Tue Oct 23 02:51:42 2018 -0700
Touch up on previous commit
-
+
https://github.com/harfbuzz/harfbuzz/pull/1273
src/HBIndicVowelConstraints.txt | 97 ++++++
src/gen-vowel-constraints.py | 124 ++------
src/hb-ot-shape-complex-indic.cc | 10 +-
src/hb-ot-shape-complex-use.cc | 11 +-
- src/hb-ot-shape-complex-vowel-constraints.cc | 433
- ++++++++++++++++++++++++++
- src/hb-ot-shape-complex-vowel-constraints.hh | 447
- ++-------------------------
+ src/hb-ot-shape-complex-vowel-constraints.cc | 433 ++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-vowel-constraints.hh | 447 ++-------------------------
8 files changed, 606 insertions(+), 523 deletions(-)
commit 205737acdc268b1c90cf00bde2d2038519a8bf48
src/gen-vowel-constraints.py | 286 ++++++++++++++
src/hb-ot-shape-complex-indic.cc | 272 +------------
src/hb-ot-shape-complex-use.cc | 3 +-
- src/hb-ot-shape-complex-vowel-constraints.hh | 434
- +++++++++++++++++++++
+ src/hb-ot-shape-complex-vowel-constraints.hh | 434 +++++++++++++++++++++
test/shaping/README.md | 4 +-
.../46669c8860cbfea13562a6ca0d83130ee571137b.ttf | Bin 0 -> 7184 bytes
.../in-house/tests/use-vowel-letter-spoofing.tests | 94 +++++
Date: Tue Oct 23 02:19:32 2018 -0700
[VORG] Hook up to hb-ot-font's v_origin
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/544
-
+
Test added with NotoSansCJK, eg. with U+FF38.
src/hb-ot-face.cc | 1 -
- src/hb-ot-font.cc | 11
- +++++++++--
+ src/hb-ot-font.cc | 11 +++++++++--
src/hb-ot-vorg-table.hh | 6 ++++--
- .../fonts/4cbbc461be066fccc611dcc634af6e8cb2705537.ttf | Bin 0 ->
- 2808 bytes
+ .../fonts/4cbbc461be066fccc611dcc634af6e8cb2705537.ttf | Bin 0 -> 2808 bytes
test/shaping/data/in-house/tests/vertical.tests | 1 +
5 files changed, 14 insertions(+), 5 deletions(-)
Date: Tue Oct 23 02:09:42 2018 -0700
[VORG] Add get_y_origin()
-
+
Unhooked.
src/hb-ot-vorg-table.hh | 16 ++++++++++++++--
Date: Tue Oct 23 01:58:59 2018 -0700
[VORG] Add VORG table
-
+
Cherry-picked from cff-subset branch.
src/Makefile.sources | 1 +
src/hb-ot-face.cc | 1 +
src/hb-ot-face.hh | 1 +
- src/hb-ot-vorg-table.hh | 168
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-vorg-table.hh | 168 ++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 171 insertions(+)
commit 531f9822b2e8a60f03c43d6f86ef9ed32c951f0e
[test/text-rendering-tests] Update from upstream
test/shaping/data/text-rendering-tests/Makefile.sources | 2 +-
- .../data/text-rendering-tests/fonts/TestTRAKOne.ttf | Bin 0 ->
- 1752 bytes
+ .../data/text-rendering-tests/fonts/TestTRAKOne.ttf | Bin 0 -> 1752 bytes
2 files changed, 1 insertion(+), 1 deletion(-)
commit 792071de4075cb9af0793f0d7c70da0780923bb6
Date: Mon Oct 22 23:38:34 2018 -0700
[morx] Leave ligature on stack after ligating
-
+
Test with Apple Color Emoji.ttf of ~66MB and following sequence:
-
- ./hb-shape Apple\ Color\ Emoji-old.ttf --font-funcs=ot -u
- U+1F468,200d,U+1F469,200d,U+1F467,200d,1f466
-
+
+ ./hb-shape Apple\ Color\ Emoji-old.ttf --font-funcs=ot -u U+1F468,200d,U+1F469,200d,U+1F467,200d,1f466
+
Should form full family if matching works correctly. It first makes
family of three, then makes family of four out of that and the last
two characters.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1292
src/hb-aat-layout-morx-table.hh | 1 -
Date: Tue Oct 23 09:23:48 2018 +0330
[ci] Disable llvm-gcc
-
- #define Null(Type) Null<typename hb_remove_const<typename
- hb_remove_reference<Type>::value>::value>()
-
+
+ #define Null(Type) Null<typename hb_remove_const<typename hb_remove_reference<Type>::value>::value>()
+
raises:
hb-blob.cc: In function 'hb_blob_t* hb_blob_get_empty()':
hb-blob.cc:194: error: using 'typename' outside of template
hb-blob.cc:194: error: using 'typename' outside of template
-
- Removing "typename"s fixes the issue but makes newer compiler fail
- apparently.
-
+
+ Removing "typename"s fixes the issue but makes newer compiler fail apparently.
+
Probably downstream can patch that locally till we get a solution.
.circleci/config.yml | 4 ++--
Date: Mon Oct 22 21:33:18 2018 -0700
Add hb_array<>() specialization for UnsizedArrayOf
-
+
Related https://github.com/harfbuzz/harfbuzz/issues/1301
src/hb-aat-layout-trak-table.hh | 2 +-
Date: Mon Oct 22 21:27:45 2018 -0700
Add hb_array<>()
-
+
Simplifies transient object creation.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1301
src/hb-aat-layout-trak-table.hh | 2 +-
Date: Mon Oct 22 21:22:25 2018 -0700
[color] Use Index for colorIdx
-
+
Doesn't matter, but matches the description.
src/hb-ot-color-colr-table.hh | 2 +-
Date: Mon Oct 22 21:18:27 2018 -0700
Remove const and references when binding Null()
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1299
-
- Removes anomaly I was seeing in cpal table trying to use implicit
- Null(NameID).
+
+ Removes anomaly I was seeing in cpal table trying to use implicit Null(NameID).
src/hb-atomic.hh | 5 +----
src/hb-common.cc | 2 +-
Date: Mon Oct 22 18:20:57 2018 -0700
[color] Add HB_COLOR
-
+
Normally I would have added to_string / from_string like other types
- have. But since we don't use hb_color_t much, I'm not going to
- do that.
+ have. But since we don't use hb_color_t much, I'm not going to do that.
Although, if we did, we could use it in hb-view to parse colors...
src/hb-common.h | 14 +++++++++-----
Date: Mon Oct 22 16:55:12 2018 -0700
[color] Finish reviewing / revamping CPAL
-
+
Now to hb_color_t.
- src/hb-ot-color-cpal-table.hh | 52
- ++++++++++++++++++++++---------------------
+ src/hb-ot-color-cpal-table.hh | 52 ++++++++++++++++++++++---------------------
src/hb-ot-color.cc | 33 +++++----------------------
src/hb-ot-color.h | 10 ++++-----
3 files changed, 38 insertions(+), 57 deletions(-)
[color] Rely on CPALV1Tail Null object
- src/hb-ot-color-cpal-table.hh | 39
- ++++++++++++++-------------------------
+ src/hb-ot-color-cpal-table.hh | 39 ++++++++++++++-------------------------
1 file changed, 14 insertions(+), 25 deletions(-)
commit d7865107ea4664e04c03a1d79678cdcadc0d5ea5
Date: Mon Oct 22 16:18:34 2018 -0700
Remove const from hb_array_t details
-
+
Will come in through <T> if desired.
src/hb-aat-layout-trak-table.hh | 6 +++---
Date: Mon Oct 22 16:16:21 2018 -0700
[color] Use hb_array_t in CPAL
-
+
Doesn't work though, ouch :(. Need to figure out if it's unreasonable
to expect Null(T) inside hb_array_t<T> to see the later specialization
of Null for NameID.
src/hb-open-type.hh | 3 ++-
- src/hb-ot-color-cpal-table.hh | 47
- ++++++++++++++++++++++---------------------
+ src/hb-ot-color-cpal-table.hh | 47 ++++++++++++++++++++++---------------------
src/hb-static.cc | 1 +
3 files changed, 27 insertions(+), 24 deletions(-)
Date: Mon Oct 22 14:54:55 2018 -0700
[color] Check for null CPAL arrays
-
+
We cannot use a nullable offset here though.
src/hb-ot-color-cpal-table.hh | 12 ++++++------
[color] More CPAL rename
- src/hb-ot-color-cpal-table.hh | 104
- +++++++++++++++++++++---------------------
+ src/hb-ot-color-cpal-table.hh | 104 +++++++++++++++++++++---------------------
src/hb-ot-color.cc | 6 +--
2 files changed, 54 insertions(+), 56 deletions(-)
src/hb-ot-color.cc | 81 ++++++++++++++---------------
src/hb-ot-color.h | 26 +++++-----
- test/api/test-ot-color.c | 130
- +++++++++++++++++++++++------------------------
+ test/api/test-ot-color.c | 130 +++++++++++++++++++++++------------------------
3 files changed, 117 insertions(+), 120 deletions(-)
commit 3bf91bd2690cda34a7687ed5465dc4bb0672f2b6
Date: Mon Oct 22 12:40:38 2018 -0700
[color] Rewrite colr access
-
- COLR table has one function: return layers for a glyph, and we
- expose exactly
- that, so should just wire it through. Also use sub_array() for
- verifiable
+
+ COLR table has one function: return layers for a glyph, and we expose exactly
+ that, so should just wire it through. Also use sub_array() for verifiable
safety.
-
- Also, BaseGlyphRecord's null object is enough. We don't need to
- special-case
+
+ Also, BaseGlyphRecord's null object is enough. We don't need to special-case
the not-found.
src/hb-dsalgs.hh | 11 +++++++++
src/hb-open-type.hh | 2 +-
- src/hb-ot-color-colr-table.hh | 53
- +++++++++++++++++++++++--------------------
+ src/hb-ot-color-colr-table.hh | 53 +++++++++++++++++++++++--------------------
src/hb-ot-color.cc | 19 +---------------
4 files changed, 41 insertions(+), 44 deletions(-)
Date: Mon Oct 22 10:29:01 2018 -0700
[colr] Add hb_ot_color_layer_t
-
+
We never return parallel arrays from functions. That's inconvenient
and hard to bind.
Date: Sun Oct 21 19:23:11 2018 -0700
[color] Rename / reorder a bit
-
+
Implement has_data() for realz.
src/hb-ot-color-colr-table.hh | 2 ++
src/hb-ot-color-cpal-table.hh | 2 ++
- src/hb-ot-color.cc | 78
- ++++++++++++++++++++++++-------------------
+ src/hb-ot-color.cc | 78 ++++++++++++++++++++++++-------------------
src/hb-ot-color.h | 33 ++++++++++++------
test/api/test-ot-color.c | 30 ++++++++---------
5 files changed, 85 insertions(+), 60 deletions(-)
Date: Sun Oct 21 19:02:47 2018 -0700
[color] Rename "gid" to "glyph"
-
+
We don't expose "gid" in API.
src/hb-ot-color.cc | 12 ++++++------
Date: Sun Oct 21 17:42:51 2018 -0700
[colr] Move compare function into a static
-
+
Not sure if MSVC would be unhappy about this.
src/hb-ot-color-colr-table.hh | 16 ++++++++--------
Date: Sun Oct 21 17:39:39 2018 -0700
[colr] Move sanitize() to right place
-
+
Sanitize always comes just before data member definitions, so
it's easy to cross-check.
Date: Sun Oct 21 17:39:00 2018 -0700
[colr] Touch up a bit
-
+
When a struct is plain old data with no references, etc, it's okay
to mark its members public.
[CPAL] Add palette entry and enable palette flag API
src/hb-ot-color-cpal-table.hh | 66 +++++++++++++++----------
- src/hb-ot-color.cc | 109
- ++++++++++++++++++++++++------------------
+ src/hb-ot-color.cc | 109 ++++++++++++++++++++++++------------------
src/hb-ot-color.h | 23 +++++++++
test/api/test-ot-color.c | 35 ++++++++++++--
4 files changed, 158 insertions(+), 75 deletions(-)
src/dump-emoji.cc | 26 ++++----
src/hb-common.h | 12 ++++
src/hb-ot-color-cpal-table.hh | 37 +++++-------
- src/hb-ot-color.cc | 136
- +++++++++++++++++++++++++-----------------
+ src/hb-ot-color.cc | 136 +++++++++++++++++++++++++-----------------
src/hb-ot-color.h | 38 +++---------
test/api/test-ot-color.c | 101 +++++++++++++++----------------
6 files changed, 179 insertions(+), 171 deletions(-)
Make ot-color tests pass
- test/api/test-ot-color.c | 52
- ++++++++++++++++++++++++------------------------
+ test/api/test-ot-color.c | 52 ++++++++++++++++++++++++------------------------
1 file changed, 26 insertions(+), 26 deletions(-)
commit d4e928b1421c154adbda9b6e1f2cf804b21654cb
[color] Minimal API for COLR/CPAL
src/Makefile.sources | 1 +
- src/dump-emoji.cc | 114
- +++++++++++----------
+ src/dump-emoji.cc | 114 +++++++++++----------
src/hb-ot-color-colr-table.hh | 12 +--
src/hb-ot-color-cpal-table.hh | 51 +++------
src/hb-ot-color.cc | 87 +++++++++++-----
[fuzz] Add a found hb-subset testcase
- ...z-testcase-minimized-hb-subset-fuzzer-5725847365877760 | Bin 0 ->
- 880 bytes
+ ...z-testcase-minimized-hb-subset-fuzzer-5725847365877760 | Bin 0 -> 880 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit 0ecddad7c5948ecd7879bc7507f8a7a2d99eee86
Date: Sun Oct 21 11:37:38 2018 +0330
[fuzz] Add more testcases
-
+
Fixed already but better to have anyway.
-
+
One didn't have minimized but it was only 164 B, so
- ...uzz-testcase-minimized-hb-shape-fuzzer-5706010589659136 | Bin 0 ->
- 52 bytes
+ ...uzz-testcase-minimized-hb-shape-fuzzer-5706010589659136 | Bin 0 -> 52 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit 4fa94a3e39c21bc1dcdbbd5bda99bff1e1490b0e
Date: Sun Oct 21 11:36:41 2018 +0330
Merge pull request #1290 from ebraminio/testopenfont
-
+
[test] Unify font file opening across the tests
commit c110878cb61f5df99e9d97dda253f2987ddce58e
[fuzzing] Add more font
- .../clusterfuzz-testcase-hb-shape-fuzzer-5097734906839040 | Bin 0 ->
- 164 bytes
+ .../clusterfuzz-testcase-hb-shape-fuzzer-5097734906839040 | Bin 0 -> 164 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit 1e39833ba8547c90a0a4ed7f265a6c4bc8eb8fe1
Date: Sat Oct 20 16:49:16 2018 -0700
[docs] Fix warning
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1260
src/hb-deprecated.h | 6 ------
[kerx] Implement tuple-kerning in Format0
- src/hb-aat-layout-kerx-table.hh | 44
- ++++++++++++++++++++++++++++-------------
+ src/hb-aat-layout-kerx-table.hh | 44 ++++++++++++++++++++++++++++-------------
1 file changed, 30 insertions(+), 14 deletions(-)
commit 0a3b7a0fb0734a66926dfda5d95d3cacea8890ce
Date: Sat Oct 20 12:09:41 2018 -0700
[kerx] Fix sanitize of KerxSubtableFormat2::array read
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11033
src/hb-aat-layout-kerx-table.hh | 5 +++--
Date: Sat Oct 20 12:04:51 2018 -0700
[aat] Fix LookupFormat10 sanitize
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11060
src/hb-aat-layout-common.hh | 2 +-
Date: Sat Oct 20 21:13:25 2018 +0330
[TODO] Remove BCP 47 language handling item
-
+
Closes https://github.com/harfbuzz/harfbuzz/issues/1286
TODO | 2 --
[fuzzing] Add new testcases
- .../clusterfuzz-testcase-hb-shape-fuzzer-5688420752424960 | Bin 0 ->
- 163 bytes
- ...zz-testcase-minimized-hb-shape-fuzzer-5688420752424960 | Bin 0 ->
- 69 bytes
+ .../clusterfuzz-testcase-hb-shape-fuzzer-5688420752424960 | Bin 0 -> 163 bytes
+ ...zz-testcase-minimized-hb-shape-fuzzer-5688420752424960 | Bin 0 -> 69 bytes
2 files changed, 0 insertions(+), 0 deletions(-)
commit 1e55e21dea78aaaddc0715e7df96fd198ec8f78a
Date: Sat Oct 20 07:45:46 2018 +0330
Merge pull request #1283 from khaledhosny/cygwin
-
+
Cygwin fixes and CI build
commit 964ae32aac793540a49c44efab878592394d48db
Date: Fri Oct 19 19:12:33 2018 -0700
[font] Fix parallel funcs passing to eachover in infinite-loop
-
+
Fixes test just added.
src/hb-font.cc | 20 +++++++++++++-------
Date: Fri Oct 19 19:01:01 2018 -0700
[font] Add failing test amongst font-func parallels infinite-looping
-
+
Reported by Nona while updating Android to HarfBuzz 2.0.0.
- test/api/test-font.c | 64
- ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/api/test-font.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 64 insertions(+)
commit d084719ff5a9e0e363bf352037f85b884bff11a7
Date: Sat Oct 20 00:18:36 2018 +0200
Add Cygwin CI build
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1274
appveyor.yml | 15 +++++++++++++++
Date: Fri Oct 19 16:06:54 2018 -0700
[kerx] Implement variation-kerning tables (without the variation part)
-
+
SFSNDisplay uses these. We just apply the default kern without
variations right now. But at least makes the default kern work.
- src/hb-aat-layout-kerx-table.hh | 37
- +++++++++++++++++++++++++++++--------
+ src/hb-aat-layout-kerx-table.hh | 37 +++++++++++++++++++++++++++++--------
1 file changed, 29 insertions(+), 8 deletions(-)
commit f7c0b4319c6f82f1e0020a0029469d8953a7a161
[aat] Implement LookupFormat10
src/hb-aat-layout-ankr-table.hh | 6 +++--
- src/hb-aat-layout-common.hh | 55
- ++++++++++++++++++++++++++++++++++++++---
+ src/hb-aat-layout-common.hh | 55 ++++++++++++++++++++++++++++++++++++++---
src/hb-machinery.hh | 4 +++
src/hb-open-type.hh | 3 +++
4 files changed, 63 insertions(+), 5 deletions(-)
Date: Fri Oct 19 22:21:39 2018 +0200
Use g_strdup instead of strdup
-
+
Cygwin does not seem to have strdup.
util/options.hh | 2 +-
Date: Fri Oct 19 22:04:56 2018 +0200
Use O_BINARY instead of _O_BINARY
-
+
Cygwin does not seem to have the later
src/hb-blob.cc | 6 +++---
Date: Fri Oct 19 11:15:35 2018 -0700
[RELEASING] Post-mortem
-
+
Re https://github.com/harfbuzz/harfbuzz/issues/1271
RELEASING.md | 5 ++++-
Date: Fri Oct 19 12:05:26 2018 +0330
Fix hb_map_is_empty logic
-
+
This needs reviewing
src/hb-map.hh | 2 +-
src/Makefile.am | 2 +-
test/api/Makefile.am | 6 ++-
- test/api/test-map.c | 114
- +++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/api/test-map.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 120 insertions(+), 2 deletions(-)
commit 8a5eba711069285e8d8b6d682eea0090256527bb
Date: Fri Oct 19 18:46:41 2018 +0330
[ci] Run valgrind on test/api
-
+
run-shape-fuzzer-tests.py automatically runs valgrind if see available
- but test/api runs it by request, we probably should normalize the
- approaches
+ but test/api runs it by request, we probably should normalize the approaches
later
.circleci/config.yml | 6 +++++-
Enable valgrind and dedicate a bot to it
.circleci/config.yml | 13 +++++++++++++
- test/fuzzing/run-shape-fuzzer-tests.py | 31
- +++++++++++++++++++++++++++++++
+ test/fuzzing/run-shape-fuzzer-tests.py | 31 +++++++++++++++++++++++++++++++
2 files changed, 44 insertions(+)
commit bccd09d6c7baa99fdaccb8c5b3ff7e1834edd3bf
Minor, tweak spaces on hb-shape-fuzzer.cc
- test/fuzzing/hb-shape-fuzzer.cc | 42
- ++++++++++++++++++++---------------------
+ test/fuzzing/hb-shape-fuzzer.cc | 42 ++++++++++++++++++++---------------------
1 file changed, 21 insertions(+), 21 deletions(-)
commit fbf665b307c8cc9f16f5897671bfdd8719a195b5
[fuzz] Add more found cases (#1275)
- ...clusterfuzz-testcase-hb-shape-fuzzer-5728971283496960 | Bin 0 ->
- 101 bytes
- ...terfuzz-testcase-minimized-hb-fuzzer-5713868010553344 | Bin 0 ->
- 370 bytes
- ...terfuzz-testcase-minimized-hb-fuzzer-6278851874258944 | Bin 0 ->
- 598 bytes
- ...z-testcase-minimized-hb-shape-fuzzer-5649959857160192 | Bin 0 ->
- 3608 bytes
- ...z-testcase-minimized-hb-shape-fuzzer-5664873493561344 | Bin 0 ->
- 400 bytes
- ...z-testcase-minimized-hb-shape-fuzzer-5762953198960640 | Bin 0 ->
- 62 bytes
- ...z-testcase-minimized-hb-shape-fuzzer-5764636557705216 | Bin 0 ->
- 2184 bytes
- ...-testcase-minimized-hb-subset-fuzzer-5690658895953920 | Bin 0 ->
- 2735 bytes
- ...-testcase-minimized-hb-subset-fuzzer-5695279609675776 | Bin 0 ->
- 135 bytes
- ...-testcase-minimized-hb-subset-fuzzer-5718215406125056 | Bin 0 ->
- 107 bytes
- ...-testcase-minimized-hb-subset-fuzzer-5743250149736448 | Bin 0 ->
- 103 bytes
- ...-testcase-minimized-hb-subset-fuzzer-5765071062958080 | Bin 0 ->
- 329 bytes
- ...ized-hb-subset-get-codepoints-fuzzer-5930139383758848 | Bin 0 ->
- 9410 bytes
+ ...clusterfuzz-testcase-hb-shape-fuzzer-5728971283496960 | Bin 0 -> 101 bytes
+ ...terfuzz-testcase-minimized-hb-fuzzer-5713868010553344 | Bin 0 -> 370 bytes
+ ...terfuzz-testcase-minimized-hb-fuzzer-6278851874258944 | Bin 0 -> 598 bytes
+ ...z-testcase-minimized-hb-shape-fuzzer-5649959857160192 | Bin 0 -> 3608 bytes
+ ...z-testcase-minimized-hb-shape-fuzzer-5664873493561344 | Bin 0 -> 400 bytes
+ ...z-testcase-minimized-hb-shape-fuzzer-5762953198960640 | Bin 0 -> 62 bytes
+ ...z-testcase-minimized-hb-shape-fuzzer-5764636557705216 | Bin 0 -> 2184 bytes
+ ...-testcase-minimized-hb-subset-fuzzer-5690658895953920 | Bin 0 -> 2735 bytes
+ ...-testcase-minimized-hb-subset-fuzzer-5695279609675776 | Bin 0 -> 135 bytes
+ ...-testcase-minimized-hb-subset-fuzzer-5718215406125056 | Bin 0 -> 107 bytes
+ ...-testcase-minimized-hb-subset-fuzzer-5743250149736448 | Bin 0 -> 103 bytes
+ ...-testcase-minimized-hb-subset-fuzzer-5765071062958080 | Bin 0 -> 329 bytes
+ ...ized-hb-subset-get-codepoints-fuzzer-5930139383758848 | Bin 0 -> 9410 bytes
13 files changed, 0 insertions(+), 0 deletions(-)
commit 51fba41cc958ded3afc6c1e738895b0a81993e18
Date: Thu Oct 18 13:04:21 2018 -0700
implement flex ops for glyph extents/subset
-
+
also removed unused CSInterpEnv::move_[xy]_with_arg
fixed bug a width being left over on argStack with CFF1
- src/hb-cff-interp-cs-common.hh | 157
- +++++++++++++++++++++++++++++++++++------
+ src/hb-cff-interp-cs-common.hh | 157 +++++++++++++++++++++++++++++++++++------
src/hb-cff1-interp-cs.hh | 1 +
src/hb-subset-cff1.cc | 4 --
src/hb-subset-cff2.cc | 4 --
2.0.0
- NEWS | 68
- +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ NEWS | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++
configure.ac | 2 +-
src/hb-buffer.cc | 4 ++--
src/hb-common.h | 4 ++--
Date: Thu Oct 18 11:06:37 2018 +0330
[ubsan] Use unsigned int instead enum where needed (#1270)
-
+
Actually the check is right,
-
+
On -myanmar.hh, on that particular switch, OT_C is indic_category_t
- but OT_D is myanmar_category_t so we are mixing the types in one
- variable.
-
- And on -arabic.cc, step can goes one number higher than step_t enum
- in the
+ but OT_D is myanmar_category_t so we are mixing the types in one variable.
+
+ And on -arabic.cc, step can goes one number higher than step_t enum in the
loop so we are actually using it as an unsinged int.
.circleci/config.yml | 2 +-
src/hb-ot-shape-complex-arabic.cc | 4 ++--
- src/hb-ot-shape-complex-myanmar.hh | 48
- +++++++++++++++++++-------------------
+ src/hb-ot-shape-complex-myanmar.hh | 48 +++++++++++++++++++-------------------
3 files changed, 27 insertions(+), 27 deletions(-)
commit 64df6b0b0f9d221e14811084f2412a01cf4deb46
Date: Wed Oct 17 23:06:53 2018 -0700
More warning fix
-
+
Okay, let's see if the gods are happy now...
src/hb-static.cc | 2 +-
Date: Wed Oct 17 22:34:16 2018 -0700
[aat] Fix sanitize slowdown
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11034
src/hb-aat-layout-common.hh | 4 ++++
Date: Wed Oct 17 21:52:14 2018 -0700
Revert "[test] Remove not-fixed yet testcases (#1268)"
-
+
This reverts commit 191eef823fe95355425621f8e002dfe7fe632383.
- ...rfuzz-testcase-minimized-hb-fuzzer-4548492505645056 | Bin 0 ->
- 122 bytes
- ...rfuzz-testcase-minimized-hb-fuzzer-6210176798425088 | Bin 0 ->
- 1420 bytes
- ...testcase-minimized-hb-shape-fuzzer-5738888765636608 | Bin 0 ->
- 267731 bytes
+ ...rfuzz-testcase-minimized-hb-fuzzer-4548492505645056 | Bin 0 -> 122 bytes
+ ...rfuzz-testcase-minimized-hb-fuzzer-6210176798425088 | Bin 0 -> 1420 bytes
+ ...testcase-minimized-hb-shape-fuzzer-5738888765636608 | Bin 0 -> 267731 bytes
3 files changed, 0 insertions(+), 0 deletions(-)
commit af99b20dfddbca75e68f84c5aa465a54728990a6
Date: Thu Oct 18 08:35:20 2018 +0330
[ci/ubsan] Disable enum sanitization
-
+
Behdad apparently not interested on them
.circleci/config.yml | 2 +-
Date: Wed Oct 17 21:41:25 2018 -0700
[aat] Another try at fixing Lookup null objects...
-
+
Ugly as hell, and don't even understand why some bits are needed.
But the logic is sound.
Date: Thu Oct 18 08:04:18 2018 +0330
[test] Remove not-fixed yet testcases (#1268)
-
+
I added them but now that I think, it is a bad idea to have them as
fuzzing bots will find good seeds to tweak in order to find easy new
testcases which causes duplicated issues.
- ...rfuzz-testcase-minimized-hb-fuzzer-4548492505645056 | Bin 122 ->
- 0 bytes
- ...rfuzz-testcase-minimized-hb-fuzzer-6210176798425088 | Bin 1420 ->
- 0 bytes
- ...testcase-minimized-hb-shape-fuzzer-5738888765636608 | Bin 267731 ->
- 0 bytes
+ ...rfuzz-testcase-minimized-hb-fuzzer-4548492505645056 | Bin 122 -> 0 bytes
+ ...rfuzz-testcase-minimized-hb-fuzzer-6210176798425088 | Bin 1420 -> 0 bytes
+ ...testcase-minimized-hb-shape-fuzzer-5738888765636608 | Bin 267731 -> 0 bytes
3 files changed, 0 insertions(+), 0 deletions(-)
commit 392e1f4ddd7eb649e1a71755b9bcf6431739f98f
[test/shape-fuzzer] fail on timeout and ubsan errors (#1267)
- test/fuzzing/run-shape-fuzzer-tests.py | 38
- ++++++++++++++++++++++++++++++----
+ test/fuzzing/run-shape-fuzzer-tests.py | 38 ++++++++++++++++++++++++++++++----
1 file changed, 34 insertions(+), 4 deletions(-)
commit eeddda3ec6c28b411d33c74938ec6198c7f6888d
Date: Thu Oct 18 07:38:47 2018 +0330
[util] Better file-not-found error from hb-shape / hb-view
-
+
fixes #1266
util/options.cc | 2 +-
[fuzz] Add more new testcases
- ...testcase-minimized-hb-shape-fuzzer-5718464350650368 | Bin 0 ->
- 41 bytes
- ...testcase-minimized-hb-shape-fuzzer-5738888765636608 | Bin 0 ->
- 267731 bytes
+ ...testcase-minimized-hb-shape-fuzzer-5718464350650368 | Bin 0 -> 41 bytes
+ ...testcase-minimized-hb-shape-fuzzer-5738888765636608 | Bin 0 -> 267731 bytes
2 files changed, 0 insertions(+), 0 deletions(-)
commit fd282eb3285e6d20f77e8a3a7237b677433ccbb4
[fuzz] Add a new testcase
- .../clusterfuzz-testcase-hb-shape-fuzzer-5634395566768128 | Bin 0 ->
- 106 bytes
+ .../clusterfuzz-testcase-hb-shape-fuzzer-5634395566768128 | Bin 0 -> 106 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit 9d42d70269b879e67f3c7724beab8e4cdbfc877a
Date: Wed Oct 17 17:55:47 2018 -0700
[trak] Fix calc
-
+
We were getting the first track record always. Ie. this line:
-
+
if (trackTable[i].get_track_value () == 0.f)
{
- trackTableEntry = &trackTable[0];
+ trackTableEntry = &trackTable[i];
break;
}
-
+
The rest is cleanup.
-
- Fixes https://github.com/harfbuzz/harfbuzz/issues/1263 for the
- most part.
+
+ Fixes https://github.com/harfbuzz/harfbuzz/issues/1263 for the most part.
src/hb-aat-layout-trak-table.hh | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
[fuzzing] Move fuzzing fonts from api/ here
- ...estcase-minimized-hb-subset-fuzzer-5521982557782016 | Bin 1228 ->
- 0 bytes
- ...estcase-minimized-hb-subset-fuzzer-5542653037903872 | Bin 160249 ->
- 0 bytes
- ...estcase-minimized-hb-subset-fuzzer-5609911946838016 | Bin 313 ->
- 0 bytes
- ...estcase-minimized-hb-subset-fuzzer-5670861909524480 | Bin 1298 ->
- 0 bytes
- ...estcase-minimized-hb-subset-fuzzer-5750092395970560 | Bin 72435 ->
- 0 bytes
- ...estcase-minimized-hb-subset-fuzzer-6651660668502016 | Bin 15229 ->
- 0 bytes
- ...ed-hb-subset-get-codepoints-fuzzer-5973295416475648 | Bin 109 ->
- 0 bytes
- ...ed-hb-subset-get-codepoints-fuzzer-6136125075750912 | Bin 65816 ->
- 0 bytes
+ ...estcase-minimized-hb-subset-fuzzer-5521982557782016 | Bin 1228 -> 0 bytes
+ ...estcase-minimized-hb-subset-fuzzer-5542653037903872 | Bin 160249 -> 0 bytes
+ ...estcase-minimized-hb-subset-fuzzer-5609911946838016 | Bin 313 -> 0 bytes
+ ...estcase-minimized-hb-subset-fuzzer-5670861909524480 | Bin 1298 -> 0 bytes
+ ...estcase-minimized-hb-subset-fuzzer-5750092395970560 | Bin 72435 -> 0 bytes
+ ...estcase-minimized-hb-subset-fuzzer-6651660668502016 | Bin 15229 -> 0 bytes
+ ...ed-hb-subset-get-codepoints-fuzzer-5973295416475648 | Bin 109 -> 0 bytes
+ ...ed-hb-subset-get-codepoints-fuzzer-6136125075750912 | Bin 65816 -> 0 bytes
test/api/test-subset-glyf.c | 2 +-
test/api/test-subset-hdmx.c | 4 ++--
test/api/test-subset-hmtx.c | 2 +-
Date: Tue Oct 16 18:35:03 2018 -0700
[buffer] Add an assert
-
- See if it helps debugging
- https://bugs.chromium.org/p/chromium/issues/detail?id=895117
+
+ See if it helps debugging https://bugs.chromium.org/p/chromium/issues/detail?id=895117
src/hb-buffer.cc | 2 ++
1 file changed, 2 insertions(+)
Date: Tue Oct 16 18:28:55 2018 -0700
[fuzzing] Delete blink fuzzed data
-
+
These are text, not font.
- ...minimized-blink_harfbuzz_shaper_fuzzer-5099655095123968 | Bin 88 ->
- 0 bytes
+ ...minimized-blink_harfbuzz_shaper_fuzzer-5099655095123968 | Bin 88 -> 0 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit 25fe7e7e1031401d38db1efed360cd75ea7910b9
Date: Wed Oct 17 00:54:39 2018 +0100
"allow-none" annotation for "out" parameters
-
+
Fixes the following warnings:
- hb-ot-tag.cc:330: Warning: HarfBuzz: invalid "allow-none" annotation:
- only valid for pointer types and out parameters
- hb-ot-tag.cc:334: Warning: HarfBuzz: invalid "allow-none" annotation:
- only valid for pointer types and out parameters
+ hb-ot-tag.cc:330: Warning: HarfBuzz: invalid "allow-none" annotation: only valid for pointer types and out parameters
+ hb-ot-tag.cc:334: Warning: HarfBuzz: invalid "allow-none" annotation: only valid for pointer types and out parameters
src/hb-ot-tag.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Date: Wed Oct 17 00:36:04 2018 +0100
typo in gobject annotation - "in/out" should be "inout"
-
+
"in/out" should be "inout"
src/hb-ot-layout.cc | 2 +-
Date: Tue Oct 16 16:39:29 2018 -0700
[fuzzing] Run tests against fuzzing fonts
-
+
Some disable.
test/fuzzing/run-shape-fuzzer-tests.py | 12 ++--
test/fuzzing/run-subset-fuzzer-tests.py | 35 ++++++-----
test/shaping/data/in-house/Makefile.sources | 1 -
- test/shaping/data/in-house/tests/fuzzed.tests | 84
- ---------------------------
+ test/shaping/data/in-house/tests/fuzzed.tests | 84 ---------------------------
4 files changed, 24 insertions(+), 108 deletions(-)
commit 7b37705fb579a39334be0618c6215c1b887bf9fc
.../fonts/b9e2aaa0d75fcef6971ec3a96d806ba4a6b31fe2.ttf | Bin
.../fonts/e88c339237f52d21e01c55f01b9c1b4cc14a0467.ttf | Bin
.../fonts/fab39d60d758cb586db5a504f218442cd1395725.ttf | Bin
- test/shaping/data/in-house/tests/fuzzed.tests | 16
- ----------------
+ test/shaping/data/in-house/tests/fuzzed.tests | 16 ----------------
17 files changed, 16 deletions(-)
commit 1487173dcf4137fb210b15d9a869aa1f0c626d15
[fuzzing] Delete duplicate fonts
- .../233c1e252e737ca79e03a9fd56b71aaa4a230f2b.ttf | Bin 1048576 ->
- 0 bytes
- .../243798dd281c1c77c065958e1ff467420faa9bde.ttf | Bin 225 ->
- 0 bytes
- .../9d8a94a67932a3ab75a596fc8b5c6d0392ca9e49.ttf | Bin 4545 ->
- 0 bytes
- .../b6acef662e0beb8d5fcf5b61c6b0ca69537b7402.ttf | Bin 3301 ->
- 0 bytes
- .../bbf4a308c402f0678c3e82844892a4da2ebe598f.ttf | Bin 204 ->
- 0 bytes
- .../dd9f0c7c7c36f75a18be0cab1cddf8f3ab0f366b.ttf | Bin 2786 ->
- 0 bytes
- .../ef2511f215aa3ca847cbfffbf861793b42170875.ttf | Bin 1152 ->
- 0 bytes
+ .../233c1e252e737ca79e03a9fd56b71aaa4a230f2b.ttf | Bin 1048576 -> 0 bytes
+ .../243798dd281c1c77c065958e1ff467420faa9bde.ttf | Bin 225 -> 0 bytes
+ .../9d8a94a67932a3ab75a596fc8b5c6d0392ca9e49.ttf | Bin 4545 -> 0 bytes
+ .../b6acef662e0beb8d5fcf5b61c6b0ca69537b7402.ttf | Bin 3301 -> 0 bytes
+ .../bbf4a308c402f0678c3e82844892a4da2ebe598f.ttf | Bin 204 -> 0 bytes
+ .../dd9f0c7c7c36f75a18be0cab1cddf8f3ab0f366b.ttf | Bin 2786 -> 0 bytes
+ .../ef2511f215aa3ca847cbfffbf861793b42170875.ttf | Bin 1152 -> 0 bytes
test/shaping/data/in-house/tests/fuzzed.tests | 7 -------
8 files changed, 7 deletions(-)
Date: Tue Oct 16 16:24:03 2018 -0700
[gpos] Protect mark attachment against out-of-bounds
-
+
Not sure how can happen, but does...
src/hb-ot-layout-gpos-table.hh | 14 ++++++++++----
[fuzzing] Add more tests
- .../fuzzing/fonts/clusterfuzz-testcase-6107935408390144 | Bin 0 ->
- 16800 bytes
- ...-testcase-minimized-harfbuzz_fuzzer-5973566991106048 | Bin 0 ->
- 4047 bytes
- ...-testcase-minimized-hb-shape-fuzzer-5633985665826816 | Bin 0 ->
- 73 bytes
+ .../fuzzing/fonts/clusterfuzz-testcase-6107935408390144 | Bin 0 -> 16800 bytes
+ ...-testcase-minimized-harfbuzz_fuzzer-5973566991106048 | Bin 0 -> 4047 bytes
+ ...-testcase-minimized-hb-shape-fuzzer-5633985665826816 | Bin 0 -> 73 bytes
3 files changed, 0 insertions(+), 0 deletions(-)
commit 12cbe195ae65656dbc9e32b4d50696bc4223136b
Date: Tue Oct 16 15:40:44 2018 -0700
[aat] Make sure Lookup offset is never nulled
-
+
It has unbounded size...
-
+
Fixes https://oss-fuzz.com/v2/testcase-detail/5718889451749376
src/hb-aat-layout-ankr-table.hh | 2 +-
[fuzzing] Add more clusterfuzz tests I had lying around
- .../fonts/clusterfuzz-testcase-5517117891805184 | Bin 0 ->
- 178 bytes
- ...sterfuzz-testcase-hb-shape-fuzzer-5746142327865344 | Bin 0 ->
- 219 bytes
- ...sterfuzz-testcase-hb-shape-fuzzer-5750379279548416 | Bin 0 ->
- 317 bytes
- .../clusterfuzz-testcase-minimized-4884742786777088 | Bin 0 ->
- 393 bytes
+ .../fonts/clusterfuzz-testcase-5517117891805184 | Bin 0 -> 178 bytes
+ ...sterfuzz-testcase-hb-shape-fuzzer-5746142327865344 | Bin 0 -> 219 bytes
+ ...sterfuzz-testcase-hb-shape-fuzzer-5750379279548416 | Bin 0 -> 317 bytes
+ .../clusterfuzz-testcase-minimized-4884742786777088 | Bin 0 -> 393 bytes
.../clusterfuzz-testcase-minimized-5255344882188288 | Bin 0 -> 65 bytes
- .../clusterfuzz-testcase-minimized-5720051798769664 | Bin 0 ->
- 1048576 bytes
- .../clusterfuzz-testcase-minimized-5924299061854208 | Bin 0 ->
- 2786 bytes
- .../clusterfuzz-testcase-minimized-6460279560863744 | Bin 0 ->
- 589 bytes
+ .../clusterfuzz-testcase-minimized-5720051798769664 | Bin 0 -> 1048576 bytes
+ .../clusterfuzz-testcase-minimized-5924299061854208 | Bin 0 -> 2786 bytes
+ .../clusterfuzz-testcase-minimized-6460279560863744 | Bin 0 -> 589 bytes
...ized-blink_harfbuzz_shaper_fuzzer-5099655095123968 | Bin 0 -> 88 bytes
...estcase-minimized-hb-shape-fuzzer-5650286710882304 | Bin 0 -> 76 bytes
...stcase-minimized-hb-shape-fuzzer-5672261407735808} | Bin
test/fuzzing/Makefile.am | 1 +
...clusterfuzz-testcase-hb-fuzzer-4666056377368576 | Bin 0 -> 1152 bytes
- ...clusterfuzz-testcase-hb-fuzzer-5662671558934528 | Bin 0 -> 242272
- bytes
- ...clusterfuzz-testcase-hb-fuzzer-6243458541944832 | Bin 0 -> 370187
- bytes
+ ...clusterfuzz-testcase-hb-fuzzer-5662671558934528 | Bin 0 -> 242272 bytes
+ ...clusterfuzz-testcase-hb-fuzzer-6243458541944832 | Bin 0 -> 370187 bytes
...clusterfuzz-testcase-hb-fuzzer-6303297511096320 | Bin 0 -> 4545 bytes
...clusterfuzz-testcase-hb-fuzzer-6696647723581440 | Bin 0 -> 3266 bytes
...z-testcase-minimized-hb-fuzzer-4523479581851648 | Bin 0 -> 322 bytes
...z-testcase-minimized-hb-fuzzer-4827735151083520 | Bin 0 -> 1384 bytes
...z-testcase-minimized-hb-fuzzer-4841745322868736 | Bin 0 -> 660 bytes
...z-testcase-minimized-hb-fuzzer-4884742786777088 | Bin 0 -> 393 bytes
- ...z-testcase-minimized-hb-fuzzer-5216838347653120 | Bin 0 -> 157600
- bytes
+ ...z-testcase-minimized-hb-fuzzer-5216838347653120 | Bin 0 -> 157600 bytes
...z-testcase-minimized-hb-fuzzer-5255344882188288 | Bin 0 -> 65 bytes
...z-testcase-minimized-hb-fuzzer-5294584596791296 | Bin 0 -> 1602 bytes
...z-testcase-minimized-hb-fuzzer-5303930168803328 | Bin 0 -> 7321 bytes
...z-testcase-minimized-hb-fuzzer-5617496443846656 | Bin 0 -> 195 bytes
...z-testcase-minimized-hb-fuzzer-5672141338968064 | Bin 0 -> 176 bytes
...z-testcase-minimized-hb-fuzzer-5700697074958336 | Bin 0 -> 878 bytes
- ...z-testcase-minimized-hb-fuzzer-5720051798769664 | Bin 0 -> 1048576
- bytes
+ ...z-testcase-minimized-hb-fuzzer-5720051798769664 | Bin 0 -> 1048576 bytes
...z-testcase-minimized-hb-fuzzer-5924299061854208 | Bin 0 -> 2786 bytes
...z-testcase-minimized-hb-fuzzer-6023178755244032 | Bin 0 -> 2261 bytes
...z-testcase-minimized-hb-fuzzer-6111685556305920 | Bin 0 -> 586 bytes
...case-minimized-hb-shape-fuzzer-5740171484463104 | Bin 0 -> 186 bytes
...case-minimized-hb-shape-fuzzer-5750379279548416 | Bin 0 -> 219 bytes
...case-minimized-hb-shape-fuzzer-5762490181353472 | Bin 0 -> 101 bytes
- ...ase-minimized-hb-subset-fuzzer-5359635656605696 | Bin 0 -> 393270
- bytes
+ ...ase-minimized-hb-subset-fuzzer-5359635656605696 | Bin 0 -> 393270 bytes
...ase-minimized-hb-subset-fuzzer-5521982557782016 | Bin 0 -> 1228 bytes
- ...ase-minimized-hb-subset-fuzzer-5542653037903872 | Bin 0 -> 160249
- bytes
+ ...ase-minimized-hb-subset-fuzzer-5542653037903872 | Bin 0 -> 160249 bytes
...ase-minimized-hb-subset-fuzzer-5609911946838016 | Bin 0 -> 313 bytes
...ase-minimized-hb-subset-fuzzer-5629878397829120 | Bin 0 -> 3746 bytes
...ase-minimized-hb-subset-fuzzer-5651059347816448 | Bin 0 -> 2648 bytes
- ...ase-minimized-hb-subset-fuzzer-5669437462544384 | Bin 0 -> 284427
- bytes
+ ...ase-minimized-hb-subset-fuzzer-5669437462544384 | Bin 0 -> 284427 bytes
...ase-minimized-hb-subset-fuzzer-5670861909524480 | Bin 0 -> 1298 bytes
...ase-minimized-hb-subset-fuzzer-5696607199166464 | Bin 0 -> 28 bytes
- ...ase-minimized-hb-subset-fuzzer-5711951464759296 | Bin 0 -> 284521
- bytes
- ...ase-minimized-hb-subset-fuzzer-5747265633779712 | Bin 0 -> 177090
- bytes
+ ...ase-minimized-hb-subset-fuzzer-5711951464759296 | Bin 0 -> 284521 bytes
+ ...ase-minimized-hb-subset-fuzzer-5747265633779712 | Bin 0 -> 177090 bytes
...ase-minimized-hb-subset-fuzzer-5750092395970560 | Bin 0 -> 72435 bytes
...ase-minimized-hb-subset-fuzzer-5758598970343424 | Bin 0 -> 64 bytes
- ...ase-minimized-hb-subset-fuzzer-6543700493598720 | Bin 0 -> 138425
- bytes
+ ...ase-minimized-hb-subset-fuzzer-6543700493598720 | Bin 0 -> 138425 bytes
...ase-minimized-hb-subset-fuzzer-6651660668502016 | Bin 0 -> 15229 bytes
...b-subset-get-codepoints-fuzzer-5203067375976448 | Bin 0 -> 16310 bytes
...b-subset-get-codepoints-fuzzer-5630904853069824 | Bin 0 -> 580 bytes
...b-subset-get-codepoints-fuzzer-6136125075750912 | Bin 0 -> 65816 bytes
...b-subset-get-codepoints-fuzzer-6394290358976512 | Bin 0 -> 1868 bytes
test/fuzzing/run-shape-fuzzer-tests.py | 4 +
- test/shaping/data/in-house/tests/fuzzed.tests | 84
- +++++++++++++++++++++
+ test/shaping/data/in-house/tests/fuzzed.tests | 84 +++++++++++++++++++++
87 files changed, 89 insertions(+)
commit 2137582c9696b6e38d70b4a0d4199b315c9fd4ce
Date: Tue Oct 16 14:46:07 2018 -0700
[morx] Reword ligation
-
- Still fails MORX-41. Am talking to Sascha to better understand
- what CoreText
+
+ Still fails MORX-41. Am talking to Sascha to better understand what CoreText
is doing.
- src/hb-aat-layout-morx-table.hh | 25
- ++++++++++++----------
+ src/hb-aat-layout-morx-table.hh | 25 ++++++++++++----------
test/shaping/data/text-rendering-tests/DISABLED | 2 ++
.../data/text-rendering-tests/Makefile.sources | 2 +-
3 files changed, 17 insertions(+), 12 deletions(-)
[test/text-rendering-tests] Update from upstream
test/shaping/data/text-rendering-tests/Makefile.sources | 1 +
- .../text-rendering-tests/fonts/TestMORXFourtyone.ttf | Bin 0 ->
- 2248 bytes
+ .../text-rendering-tests/fonts/TestMORXFourtyone.ttf | Bin 0 -> 2248 bytes
.../data/text-rendering-tests/tests/MORX-41.tests | 4 ++++
3 files changed, 5 insertions(+)
Date: Tue Oct 16 13:32:52 2018 -0700
Revert "[vector] Simplify Sort" and "More of the same"
-
+
This reverts commit de0b9a466490c2c13d6ec6f59d5122b0a87d3180.
This reverts commit 921f0e6ec722940a1e37660e1291aa69f9f39db8.
-
+
Annnnd, revert. MSVC doesn't like it.
src/hb-vector.hh | 11 ++++++++---
Date: Tue Oct 16 13:24:29 2018 -0700
[kern] Scale kern pairs before applying
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1255
Fixes https://github.com/harfbuzz/harfbuzz/issues/1252
Date: Mon Oct 15 22:19:17 2018 -0700
[vector] Simplify sort
-
+
Hopefully this fits fine with SFINAE with all our compilers.
src/hb-vector.hh | 7 +------
test/api/CMakeLists.txt | 2 +-
test/api/Makefile.am | 2 +-
test/api/test-multithread.c | 6 ++-
- test/api/{test-ot-nameid.c => test-ot-name.c} | 58
- ++++++++++++++-------------
+ test/api/{test-ot-nameid.c => test-ot-name.c} | 58 ++++++++++++++-------------
4 files changed, 36 insertions(+), 32 deletions(-)
commit 42b75dc3a701b13665115e2a234bfa5dedafef3f
Date: Mon Oct 15 21:16:58 2018 -0700
[kerx] Fix Format6 sanitize
-
+
Fixes https://oss-fuzz.com/v2/testcase-detail/5650286710882304
src/hb-aat-layout-kerx-table.hh | 21 +++++++++++----------
Date: Mon Oct 15 19:46:45 2018 -0700
[CBDT] Fix more offsetting
-
+
Fixes https://oss-fuzz.com/v2/testcase-detail/5750379279548416
src/hb-ot-color-cbdt-table.hh | 7 ++++---
Date: Mon Oct 15 11:15:54 2018 -0700
[morx] Another end-of-text corner case
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10990
src/hb-aat-layout-morx-table.hh | 2 ++
Date: Mon Oct 15 01:09:05 2018 -0700
[ot-font] Implement TrueType v_origin
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/537
src/hb-ot-font.cc | 31 +++++++++++++++++-
- src/hb-ot-hmtx-table.hh | 43
- ++++++++++++++++---------
+ src/hb-ot-hmtx-table.hh | 43 ++++++++++++++++---------
test/shaping/data/in-house/tests/vertical.tests | 2 +-
3 files changed, 59 insertions(+), 17 deletions(-)
Date: Sun Oct 14 21:32:09 2018 -0700
[CBDT] Fix more offsetting issues
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/960
-
+
dump-emoji still segfaults. Needs debugging.
src/hb-ot-color-cbdt-table.hh | 28 +++++++++++++++-------------
Date: Sun Oct 14 21:08:42 2018 -0700
[CBDT] Fix offset handling
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/960
src/hb-ot-color-cbdt-table.hh | 2 +-
Date: Sun Oct 14 19:39:31 2018 -0700
[morx] Handle end-of-text conditions in Insertion
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10955
src/hb-aat-layout-morx-table.hh | 8 ++++----
Date: Sun Oct 14 19:36:46 2018 -0700
[buffer] Fix output_glyph at end of buffer
-
+
Part of https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10955
src/hb-buffer.hh | 5 ++++-
Date: Sun Oct 14 15:20:50 2018 -0700
Ignore signed-integer-overflow while kerning
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1247
src/hb-ot-kern-table.hh | 1 +
Date: Sun Oct 14 14:56:32 2018 -0700
[kerx] Fix Format1 sanitize
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10948
src/hb-aat-layout-kerx-table.hh | 10 +++++-----
[aat] Finish off massaging table
- src/hb-aat-layout.cc | 163
- +++++++++++++++++++++++++--------------------------
+ src/hb-aat-layout.cc | 163 +++++++++++++++++++++++++--------------------------
1 file changed, 81 insertions(+), 82 deletions(-)
commit e0c5e0d91bbc0c8b2bb547ba5cb118989affc617
Date: Sat Oct 13 18:37:14 2018 -0400
[aat] WIP remove feature mapping here from hb-coretext
-
- Need to map enum values to numerics since we don't have CoreText
- headers.
+
+ Need to map enum values to numerics since we don't have CoreText headers.
src/hb-aat-layout.cc | 94 +++++++++++++++++++++++++
src/hb-aat-layout.hh | 22 ++++++
- src/hb-coretext.cc | 189
- +--------------------------------------------------
+ src/hb-coretext.cc | 189 +--------------------------------------------------
3 files changed, 117 insertions(+), 188 deletions(-)
commit cb057749131826dd89bc3b92527116a974ae3bbe
Date: Sat Oct 13 13:36:27 2018 -0400
[kerx] Fix-up previous commit
-
- A "&" was missing. Go back to using pointers that are less
- error-prone.
+
+ A "&" was missing. Go back to using pointers that are less error-prone.
src/hb-aat-layout-kerx-table.hh | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Sat Oct 13 11:48:49 2018 -0400
- [kerx] Use sanitizer.get_num_glyphs() instead of
- face->get_num_glyphs()
+ [kerx] Use sanitizer.get_num_glyphs() instead of face->get_num_glyphs()
src/hb-aat-layout-kerx-table.hh | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
Date: Sat Oct 13 09:47:51 2018 -0400
[hangul] Fix use-after-free issue
-
+
out_info might have moved since we copied it's position into local
info var.
-
+
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=894937
src/hb-ot-shape-complex-hangul.cc | 16 +++++++++-------
src/hb-ot-cmap-table.hh | 4 +-
src/hb-ot-layout-common.hh | 4 +-
src/hb-ot-layout-gsubgpos.hh | 8 +--
- src/hb-ot-layout.cc | 127
- +++++++++++++++++++------------------------
+ src/hb-ot-layout.cc | 127 +++++++++++++++++++------------------------
src/hb-ot-layout.h | 25 +++++----
src/hb-ot-math-table.hh | 8 +--
src/hb-ot-name.h | 1 -
Date: Fri Oct 12 14:14:21 2018 -0700
from encode_int removed assert hit by fuzzer
-
+
clamp the value instead
src/hb-subset-cff-common.hh | 5 ++++-
Date: Fri Oct 12 16:05:56 2018 -0400
Touch up new API
-
+
New API:
+hb_ot_layout_feature_get_name_ids()
+hb_ot_layout_feature_get_characters()
Date: Fri Oct 12 15:52:31 2018 -0400
Add hb-ot-name.h
-
+
Actual name-fetching API to come later.
-
+
New API:
hb_name_id_t
HB_NAME_ID_INVALID
src/Makefile.sources | 1 +
src/hb-ot-layout-common.hh | 2 +-
src/hb-ot-layout.h | 12 ++---------
- src/hb-ot-name.h | 54
- ++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-name.h | 54 ++++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot.h | 1 +
5 files changed, 59 insertions(+), 11 deletions(-)
Date: Fri Oct 12 03:00:59 2018 +0330
Add two APIs for getting stylistic set labels
-
+
* hb_ot_layout_feature_get_characters
* hb_ot_layout_feature_get_name_ids
-
- However HarfBuzz currently doesn't expose an API for retrieving
- the actual
- information associated with NameId from the `name` table and that
- should be
+
+ However HarfBuzz currently doesn't expose an API for retrieving the actual
+ information associated with NameId from the `name` table and that should be
done separately.
docs/harfbuzz-sections.txt | 2 +
src/hb-ot-layout-common.hh | 14 +++++
- src/hb-ot-layout.cc | 133
- +++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout.cc | 133 +++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-layout.h | 29 ++++++++++
test/api/CMakeLists.txt | 2 +
test/api/Makefile.am | 1 +
Date: Thu Oct 11 21:37:45 2018 -0400
[sanitize] Reorder condition to silence bogus gcc warning
-
+
Was givin a dozen of:
-
- ../../src/hb-machinery.hh: In member function ‘bool
- AAT::ankr::sanitize(hb_sanitize_context_t*) const’:
- ../../src/hb-machinery.hh:307:23: warning: missed loop optimization,
- the loop counter may overflow [-Wunsafe-loop-optimizations]
+
+ ../../src/hb-machinery.hh: In member function ‘bool AAT::ankr::sanitize(hb_sanitize_context_t*) const’:
+ ../../src/hb-machinery.hh:307:23: warning: missed loop optimization, the loop counter may overflow [-Wunsafe-loop-optimizations]
bool ok = --this->max_ops > 0 &&
~~~~~~~~~~~~~~~~~~~~~~
this->start <= p &&
~~~~~~~~~~~~~~~^~
(unsigned int) (this->end - p) >= len;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- I believe those are bogus, but this silences them and does not
- introduce
+
+ I believe those are bogus, but this silences them and does not introduce
logic issues I believe.
src/hb-machinery.hh | 6 +++---
Date: Thu Oct 11 21:18:20 2018 -0400
Always compile deprecated symbols
-
+
We haven't been keeping this updated. So, while we don't expose the
symbols in the headers if HB_DISABLE_DEPRECATED is defined, we still
always build them.
Date: Fri Oct 12 02:16:07 2018 -0700
overhauled error handling in CFF interpreter
-
+
minimized "if (error) return false" idiom
- src/hb-cff-interp-common.hh | 138
- +++++++++++++++++++++++----------------
+ src/hb-cff-interp-common.hh | 138 +++++++++++++++++++++++----------------
src/hb-cff-interp-cs-common.hh | 43 ++++++------
src/hb-cff-interp-dict-common.hh | 72 +++++++++++---------
src/hb-cff1-interp-cs.hh | 72 +++++++++++---------
Date: Thu Oct 11 20:45:00 2018 -0400
Attach CursivePositioning backwards, not forward
-
+
This is how Uniscribe does it. So, adjust. This is only relevant
to fonts that apply cursive positioning from a contextual lookup.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1181
- src/hb-ot-layout-gpos-table.hh | 20
- ++++++++++----------
+ src/hb-ot-layout-gpos-table.hh | 20 ++++++++++----------
.../9fc3e6960b3520e5304033ef5fd540285f72f14d.ttf | Bin 0 -> 2380 bytes
.../data/in-house/tests/cursive-positioning.tests | 1 +
3 files changed, 11 insertions(+), 10 deletions(-)
Date: Thu Oct 11 20:20:00 2018 -0400
[myanmar] Implement Zawgyi shaper
-
+
Enabled if script tag 'Qaag' is passed to HarfBuzz. Disables mark
advance-zeroing and fallback mark-positioning.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1162
- src/hb-ot-shape-complex-myanmar.cc | 22
- +++++++++++++++++++++
+ src/hb-ot-shape-complex-myanmar.cc | 22 +++++++++++++++++++++
src/hb-ot-shape-complex.hh | 5 +++++
src/hb.hh | 8 ++++++++
test/shaping/data/in-house/Makefile.sources | 1 +
[test] Add test for USE indic3
test/shaping/data/in-house/Makefile.sources | 1 +
- .../fonts/3c96e7a303c58475a8c750bf4289bbe73784f37d.ttf | Bin 0 ->
- 3364 bytes
+ .../fonts/3c96e7a303c58475a8c750bf4289bbe73784f37d.ttf | Bin 0 -> 3364 bytes
test/shaping/data/in-house/tests/use-indic3.tests | 1 +
3 files changed, 2 insertions(+)
Date: Thu Oct 11 17:51:21 2018 -0400
Pass indic3 tags to USE shaper
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/539
src/hb-ot-shape-complex.hh | 6 ++++--
test/fuzzing/Makefile.am | 16 ----------------
test/fuzzing/hb-subset-fuzzer.cc | 5 +++++
- test/fuzzing/hb-subset-get-codepoints-fuzzer.cc | 23
- -----------------------
+ test/fuzzing/hb-subset-get-codepoints-fuzzer.cc | 23 -----------------------
3 files changed, 5 insertions(+), 39 deletions(-)
commit 2c824d3644e16643c2bbe85fb88f9fb6fed53ce7
Date: Thu Oct 11 16:41:01 2018 -0400
[aat] Fix two wrongs that made a right before!
-
+
Unfortunately our static asserts (DEFINE_SIZE_STATIC) don't actually
fail when used in templates, thanks to SFINAE. Le sighs.
-
- Probably fixes
- https://oss-fuzz.com/v2/testcase-detail/5740171484463104
+
+ Probably fixes https://oss-fuzz.com/v2/testcase-detail/5740171484463104
src/hb-aat-layout-common.hh | 4 ++--
src/hb-open-type.hh | 2 +-
Date: Thu Oct 11 15:56:17 2018 -0400
[aat] Fix mul overflow
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10897
src/hb-aat-layout-common.hh | 11 ++++++++---
Date: Thu Oct 11 15:14:18 2018 -0400
[arabic] Update to latest UTR#53
-
+
From Lorna Evans: "That was a new character added to Unicode 11.0"
src/hb-ot-shape-complex-arabic.cc | 1 +
[test] Fix use of deprecated symbols
- test/api/test-ot-tag.c | 60
- ++++++++++++++++++++++++++++++++++++++------------
+ test/api/test-ot-tag.c | 60 ++++++++++++++++++++++++++++++++++++++------------
1 file changed, 46 insertions(+), 14 deletions(-)
commit ca37172ee3908bac12cc3d97768b95ae571530d2
Date: Thu Oct 11 14:25:48 2018 -0400
[graphite] Fix deva/dev2 resolution
-
- See
- https://github.com/harfbuzz/harfbuzz/pull/730#issuecomment-428277800
+
+ See https://github.com/harfbuzz/harfbuzz/pull/730#issuecomment-428277800
src/hb-graphite2.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Thu Oct 11 14:16:55 2018 -0400
Add doc stubs for recently added API
-
- Thanks to David Corbett who revamped our script and language
- processing
+
+ Thanks to David Corbett who revamped our script and language processing
and implemented full BCP 47 support.
-
+
https://github.com/harfbuzz/harfbuzz/pull/730
-
+
New API:
+hb_ot_layout_table_select_script()
+hb_ot_layout_script_select_language()
+HB_OT_MAX_TAGS_PER_LANGUAGE
+hb_ot_tags_from_script_and_language()
+hb_ot_tags_to_script_and_language()
-
+
Deprecated API:
-hb_ot_layout_table_choose_script()
-hb_ot_layout_script_find_language()
Date: Mon Sep 10 13:15:00 2018 -0400
Increase HB_OT_MAX_TAGS_PER_SCRIPT to 3
-
- No script has 3 tags yet, but the plan is for the Indic scripts
- to each
+
+ No script has 3 tags yet, but the plan is for the Indic scripts to each
get a third tag someday.
src/hb-ot-tag.h | 2 +-
docs/harfbuzz-sections.txt | 3 +-
src/hb-ot-map.cc | 2 +-
- src/hb-ot-tag.cc | 75
- ++++++++++++++++++++++++++++++++++++++++------
+ src/hb-ot-tag.cc | 75 ++++++++++++++++++++++++++++++++++++++++------
src/hb-ot-tag.h | 18 +++++++----
test/api/test-ot-tag.c | 33 ++++++++++++++++++--
5 files changed, 112 insertions(+), 19 deletions(-)
Date: Thu Jul 19 13:48:07 2018 -0400
Switch on the first char of a complex language tag
-
- This results in a tenfold speed-up for the common case of tags
- that are
+
+ This results in a tenfold speed-up for the common case of tags that are
not complex, in the sense of `hb_ot_tags_from_complex_language`.
src/gen-tag-table.py | 171 ++++--
- src/hb-ot-tag-table.hh | 1580
- ++++++++++++++++++++++++------------------------
+ src/hb-ot-tag-table.hh | 1580 ++++++++++++++++++++++++------------------------
2 files changed, 922 insertions(+), 829 deletions(-)
commit a754d44195021603306af2a296d06187eda95409
Date: Mon Jul 16 21:14:48 2018 -0400
Map Quechua languages to closest ones with tags
-
+
OpenType only officially maps four ISO 639 codes to Quechua languages,
- but prior versions of HarfBuzz also mapped qu to 'QUZ '. Because qu
- is a
+ but prior versions of HarfBuzz also mapped qu to 'QUZ '. Because qu is a
macrolanguage, the mapping now applies to all individual Quechua
- languages. OpenType calls 'QUZ ' "Quechua", but it really corresponds
- to
+ languages. OpenType calls 'QUZ ' "Quechua", but it really corresponds to
Cusco Quechua, so the individual Quechua languages should not all
necessarily be mapped to it.
src/gen-tag-table.py | 32 ++++++++++++++++++++++++++
- src/hb-ot-tag-table.hh | 62
- +++++++++++++++++++++++++++-----------------------
+ src/hb-ot-tag-table.hh | 62 +++++++++++++++++++++++++++-----------------------
2 files changed, 65 insertions(+), 29 deletions(-)
commit 65d01f77552a5102ee114d9917fd2ecf091a35c3
Date: Thu Jan 18 16:33:39 2018 -0500
Test deprecated tag fallback in a font
-
+
The font supports the deprecated tag 'DHV ' instead of 'DIV '. dv is
mapped to 'DIV ' and 'DHV ', in that order. The test specifies
- `--language=dv`, demonstrating that if a font does not support
- the first
- OpenType tag mapped to a BCP 47 tag, it will fall back to the
- next tag.
+ `--language=dv`, demonstrating that if a font does not support the first
+ OpenType tag mapped to a BCP 47 tag, it will fall back to the next tag.
- .../fonts/d3129450fafe5e5c98cfc25a4e71809b1b4d2855.ttf | Bin 0 ->
- 956 bytes
+ .../fonts/d3129450fafe5e5c98cfc25a4e71809b1b4d2855.ttf | Bin 0 -> 956 bytes
test/shaping/data/in-house/tests/language-tags.tests | 1 +
2 files changed, 1 insertion(+)
Date: Sat Jan 20 15:53:09 2018 -0500
Match extlang subtags
-
+
If the second subtag of a BCP 47 tag is three letters long, it denotes
- an extended language. The tag converter ignores the language
- subtag and
+ an extended language. The tag converter ignores the language subtag and
uses the extended language instead.
-
+
There are some grandfathered exceptions, which are handled earlier.
src/gen-tag-table.py | 2 +-
Date: Fri Dec 8 22:45:52 2017 -0500
Autogenerate the BCP 47 to OpenType mappings
-
- The new script, gen-tag-table.py, generates `ot_languages`
- automatically
+
+ The new script, gen-tag-table.py, generates `ot_languages` automatically
from the [OpenType language system tag registry][ot] and the [IANA
Language Subtag Registry][bcp47] with some manual modifications. If an
OpenType tag maps to a BCP 47 macrolanguage, all the macrolanguage's
individual languages are mapped to the same OpenType tag, except for
individual languages with their own OpenType mappings. Deprecated
BCP 47 tags are canonicalized.
-
- [ot]:
- https://docs.microsoft.com/en-us/typography/opentype/spec/languagetags
- [bcp47]:
- https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
-
+
+ [ot]: https://docs.microsoft.com/en-us/typography/opentype/spec/languagetags
+ [bcp47]: https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
+
Some OpenType tags correspond to multiple ISO 639 codes. The mapping
- from ISO 639 codes lists OpenType tags in priority order, such
- that more
+ from ISO 639 codes lists OpenType tags in priority order, such that more
specific or more likely tags appear first.
-
- Some OpenType tags have no corresponding ISO 639 code in the
- registry so
- their mappings use BCP 47 subtags besides the language. For example,
- any
- BCP 47 tag with a fonipa variant subtag is mapped to 'IPPH', and
- 'IPPH'
+
+ Some OpenType tags have no corresponding ISO 639 code in the registry so
+ their mappings use BCP 47 subtags besides the language. For example, any
+ BCP 47 tag with a fonipa variant subtag is mapped to 'IPPH', and 'IPPH'
is mapped back to und-fonipa.
-
- Other OpenType tags have no corresponding ISO 639 code because it
- is not
+
+ Other OpenType tags have no corresponding ISO 639 code because it is not
clear what they are for. HarfBuzz just ignores these tags.
-
+
One such ignored tag is 'ZHP ' (Chinese Phonetic). It probably means
zh-Latn. However, it is used in Microsoft JhengHei and Microsoft YaHei
with the script tag 'hani', implying that it is not a romanization
scheme after all. It would be simple enough to add this mapping to
gen-tag-table.py once a definitive mapping is determined.
-
+
The manual modifications are mainly either obvious mappings that the
OpenType registry omits or mappings for compatibility with previous
versions of HarfBuzz. Some of the old mappings were discarded, though,
for homophonous language names. For example, OpenType maps 'KUI ' to
kxu; previous versions of HarfBuzz also mapped it to kvd, because kvd
and kxu both happen to be called "Kui".
-
- gen-tag-table.py also generates a function to convert multi-subtag
- tags
- like el-polyton and zh-HK to OpenType tags, replacing
- `ot_languages_zh`
- and the hard-coded list of special cases in
- `hb_ot_tags_from_language`.
+
+ gen-tag-table.py also generates a function to convert multi-subtag tags
+ like el-polyton and zh-HK to OpenType tags, replacing `ot_languages_zh`
+ and the hard-coded list of special cases in `hb_ot_tags_from_language`.
It also generates a function to convert OpenType tags to BCP 47,
replacing the hard-coded list of special cases in
`hb_ot_tag_to_language`.
src/Makefile.am | 9 +-
src/Makefile.sources | 1 +
src/gen-tag-table.py | 1013 ++++++++++++++++++++++++
- src/hb-ot-tag-table.hh | 1997
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-tag-table.hh | 1997 ++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-tag.cc | 842 +-------------------
src/hb-ot-tag.h | 2 +-
test/api/test-ot-tag.c | 66 +-
Date: Fri Dec 29 20:19:05 2017 +0800
Deprecate obsolete functions
-
+
`hb_ot_tags` replaces `hb_ot_tags_from_script` and
`hb_ot_tag_from_language`.
-
+
`hb_ot_layout_table_select_script` replaces
`hb_ot_layout_table_choose_script`.
-
+
`hb_ot_layout_script_select_language` replaces
`hb_ot_layout_script_find_language`.
Date: Fri Dec 8 11:21:14 2017 -0500
Refactor the selection of script and language tags
-
+
The old hb-ot-tag.cc functions, `hb_ot_tags_from_script` and
`hb_ot_tag_from_language`, are now wrappers around a new function:
`hb_ot_tags`. It converts a script and a language to arrays of script
- tags and language tags. This will make it easier to add new script
- tags
+ tags and language tags. This will make it easier to add new script tags
to scripts, like 'dev3'. It also allows for language fallback chains;
nothing produces more than one language yet though.
-
+
Where the old functions return the default tags 'DFLT' and 'dflt',
`hb_ot_tags` returns an empty array. The caller is responsible for
using the default tag in that case.
-
+
The new function also adds a new private use subtag syntax for script
overrides: "x-hbscabcd" requests a script tag of 'abcd'.
-
- The old hb-ot-layout.cc functions,`hb_ot_layout_table_choose_script`
- and
+
+ The old hb-ot-layout.cc functions,`hb_ot_layout_table_choose_script` and
`hb_ot_layout_script_find_language` are now wrappers around the new
functions `hb_ot_layout_table_select_script` and
- `hb_ot_layout_script_select_language`. They are essentially the
- same as
+ `hb_ot_layout_script_select_language`. They are essentially the same as
the old ones plus a tag count parameter.
-
+
Closes #495.
docs/harfbuzz-sections.txt | 5 +
src/hb-ot-layout.cc | 43 +-
src/hb-ot-layout.h | 16 +
src/hb-ot-map.cc | 13 +-
- src/hb-ot-tag.cc | 1639
- ++++++++++++++++++++++++--------------------
+ src/hb-ot-tag.cc | 1639 ++++++++++++++++++++++++--------------------
src/hb-ot-tag.h | 11 +
test/api/test-ot-tag.c | 107 +++
7 files changed, 1070 insertions(+), 764 deletions(-)
Date: Thu Dec 28 22:59:29 2017 +0800
Replace "ISO 639" with "BCP 47"
-
- `hb_language_from_string` accepts not only ISO 639 but also BCP
- 47. Not
- all ISO 639 codes are valid BCP 47 tags but the function does
- not accept
+
+ `hb_language_from_string` accepts not only ISO 639 but also BCP 47. Not
+ all ISO 639 codes are valid BCP 47 tags but the function does not accept
overlong language subtags anyway.
src/hb-buffer.cc | 2 +-
Date: Thu Oct 11 10:53:44 2018 -0700
Replaced CFF1 J subset font for better coverage
-
+
in api test-ot-extents-cff
- test/api/fonts/SourceHanSans-Regular.41,3041,4C2E.otf | Bin 0 ->
- 3892 bytes
- test/api/fonts/SourceHanSans-Regular.41,3041,4E9D.otf | Bin 5864 ->
- 0 bytes
- test/api/fonts/SourceHanSans-Regular.41,4C2E.otf | Bin 0 ->
- 2548 bytes
- test/api/fonts/SourceHanSans-Regular.41,4E9D.otf | Bin 5500 ->
- 0 bytes
- test/api/test-ot-extents-cff.c | 15
- +++++++++++++++
- test/api/test-subset-cff1.c | 18
- +++++++++---------
+ test/api/fonts/SourceHanSans-Regular.41,3041,4C2E.otf | Bin 0 -> 3892 bytes
+ test/api/fonts/SourceHanSans-Regular.41,3041,4E9D.otf | Bin 5864 -> 0 bytes
+ test/api/fonts/SourceHanSans-Regular.41,4C2E.otf | Bin 0 -> 2548 bytes
+ test/api/fonts/SourceHanSans-Regular.41,4E9D.otf | Bin 5500 -> 0 bytes
+ test/api/test-ot-extents-cff.c | 15 +++++++++++++++
+ test/api/test-subset-cff1.c | 18 +++++++++---------
6 files changed, 24 insertions(+), 9 deletions(-)
commit 0b9d60e1a1c4b7867ac907bbd7c004191a14e697
Date: Thu Oct 11 13:26:58 2018 -0400
[aat] Apply kerx if GPOS kern was not applied
-
+
Ned tells me this is what Apple does.
src/hb-ot-shape.cc | 18 ++++++++----------
Date: Thu Oct 11 11:25:07 2018 -0400
[trak] Implement extrapolation
-
+
This concludes trak, as well as AAT shaping support!
- src/hb-aat-layout-trak-table.hh | 39
- ++++++++++++++++++++-------------------
+ src/hb-aat-layout-trak-table.hh | 39 ++++++++++++++++++++-------------------
1 file changed, 20 insertions(+), 19 deletions(-)
commit d6a12dba6da6262fd9e5d8397b46ac8516136cae
Date: Thu Oct 11 11:10:06 2018 -0400
[trak] Fix, and hook up
-
+
Works beautifully! Test coming.
src/hb-aat-layout-common.hh | 4 ++--
Date: Thu Oct 11 10:22:01 2018 -0400
[trak] Only adjust around first glyph
-
+
Assumes graphemes only have one base glyph.
src/hb-aat-layout-trak-table.hh | 12 ++++++------
[trak] Clean up
- src/hb-aat-layout-trak-table.hh | 67
- +++++++++++++++++++++++------------------
+ src/hb-aat-layout-trak-table.hh | 67 +++++++++++++++++++++++------------------
1 file changed, 37 insertions(+), 30 deletions(-)
commit fbbd926dba163d9a2a6a62f380951f03363c2b14
Date: Thu Oct 11 01:22:29 2018 -0400
[kerx] Implement Format4 action_type=1 contour-point-based attachment
-
+
Untested.
-
+
This concludes kerx table support!
src/hb-aat-layout-kerx-table.hh | 17 ++++++++++++++++-
Date: Thu Oct 11 01:17:57 2018 -0400
[kerx] Implement Format4 action_type=2 coordinate-based attachment
-
+
Untested.
src/hb-aat-layout-kerx-table.hh | 21 ++++++++++++---------
Date: Thu Oct 11 01:14:18 2018 -0400
[kerx] Implement Format4 'ankr'-based mark attachment
-
+
Tested with Kannada MN:
-
+
$ HB_OPTIONS=aat ./hb-shape Kannada\ MN.ttc -u 0CCD,0C95,0CD6
[kn_ka.vattu=0+230|kn_ai_length_mark=1@326,0+607]
Date: Thu Oct 11 00:12:49 2018 -0400
[kerx] Flesh out Format4
-
+
Doesn't apply actions yet.
- src/hb-aat-layout-kerx-table.hh | 122
- ++++++++++++++++++++++++++++++++++++++--
+ src/hb-aat-layout-kerx-table.hh | 122 ++++++++++++++++++++++++++++++++++++++--
1 file changed, 118 insertions(+), 4 deletions(-)
commit 947962a287d9aca2cb509c11f44cb5150aa6daf1
Date: Wed Oct 10 21:46:58 2018 -0400
[kerx] Make Format1 work
-
+
Tested using Kannada MN:
-
+
$ HB_OPTIONS=aat ./hb-shape Kannada\ MN.ttc -u 0C95,0CCd,C95,CCD
[kn_ka.virama=0+1299|kn_ka.vattu=0+115|_blank=0@-115,0+385]
-
- $ HB_OPTIONS=aat ./hb-shape Kannada\ MN.ttc -u 0C95,0CCd,C95,CCD
- --features=-kern
+
+ $ HB_OPTIONS=aat ./hb-shape Kannada\ MN.ttc -u 0C95,0CCd,C95,CCD --features=-kern
[kn_ka.virama=0+1799|kn_ka.vattu=0+230|_blank=0+0]
-
+
I don't see the GPOS table in the font do the same. ¯\_(ツ)_/¯
src/hb-aat-layout-kerx-table.hh | 15 ++++++++++-----
src/hb-cff2-interp-cs.hh | 12 +++++-----
test/api/fonts/AdobeVFPrototype_vsindex.otf | Bin 0 -> 7036 bytes
- test/api/test-ot-extents-cff.c | 33
- ++++++++++++++++++++++++++++
+ test/api/test-ot-extents-cff.c | 33 ++++++++++++++++++++++++++++
3 files changed, 40 insertions(+), 5 deletions(-)
commit 504cb68fc972c7f606bf9fc62015376382f78f45
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Wed Oct 10 21:29:46 2018 -0400
- Disable mark advance zeroing as well as mark fallback positioning
- if doing kerx
+ Disable mark advance zeroing as well as mark fallback positioning if doing kerx
- src/hb-ot-shape.cc | 50
- ++++++++++++++++++++++++++------------------------
+ src/hb-ot-shape.cc | 50 ++++++++++++++++++++++++++------------------------
1 file changed, 26 insertions(+), 24 deletions(-)
commit 84967537966a76297c89460d95e7336f1bfc332d
Date: Wed Oct 10 21:18:37 2018 -0400
[kerx] Implement Format1
-
+
Untested.
- src/hb-aat-layout-kerx-table.hh | 62
- +++++++++++++++++++++++++++++++++--------
+ src/hb-aat-layout-kerx-table.hh | 62 +++++++++++++++++++++++++++++++++--------
src/hb-aat-layout-morx-table.hh | 2 +-
2 files changed, 52 insertions(+), 12 deletions(-)
[kerx] Start fleshing out Format1
- src/hb-aat-layout-kerx-table.hh | 59
- +++++++++++++++++++++++++++++++++++------
+ src/hb-aat-layout-kerx-table.hh | 59 +++++++++++++++++++++++++++++++++++------
src/hb-aat-layout-morx-table.hh | 2 +-
2 files changed, 52 insertions(+), 9 deletions(-)
Date: Wed Oct 10 20:10:20 2018 -0400
[kerx] Implement Format6
-
- Untested. The only Apple font shipping with this format is San
- Francisco fonts
+
+ Untested. The only Apple font shipping with this format is San Francisco fonts
that use this for their kerx variation tables, which we don't support.
- src/hb-aat-layout-kerx-table.hh | 73
- +++++++++++++++++++++++++++++++++--------
+ src/hb-aat-layout-kerx-table.hh | 73 +++++++++++++++++++++++++++++++++--------
1 file changed, 60 insertions(+), 13 deletions(-)
commit c9a2ce9e05f91730a2150b9214dc6a49f31555c1
[kerx] Start fleshing out Format6
- src/hb-aat-layout-kerx-table.hh | 42
- ++++++++++++++++++++++++++++++++---------
+ src/hb-aat-layout-kerx-table.hh | 42 ++++++++++++++++++++++++++++++++---------
src/hb-open-type.hh | 3 +++
2 files changed, 36 insertions(+), 9 deletions(-)
Date: Wed Oct 10 19:11:30 2018 -0400
[kerx] No-op
-
+
Tested that Format0 works with Kannada MN font:
-
- $ make -j5 lib -s && HB_OPTIONS=aat ./hb-shape Kannada\ MN.ttc
- -u 0C95,0CC2
+
+ $ make -j5 lib -s && HB_OPTIONS=aat ./hb-shape Kannada\ MN.ttc -u 0C95,0CC2
[kn_ka=0+1000|kn_matra_uu=0@-30,0+1345]
-
- $ make -j5 lib -s && HB_OPTIONS=aat ./hb-shape Kannada\ MN.ttc -u
- 0C95,0CC2 --features=-kern
+
+ $ make -j5 lib -s && HB_OPTIONS=aat ./hb-shape Kannada\ MN.ttc -u 0C95,0CC2 --features=-kern
[kn_ka=0+1030|kn_matra_uu=0+1375]
-
- Note that GPOS does the same with 'dist' feature, and applies the
- whole difference to the
+
+ Note that GPOS does the same with 'dist' feature, and applies the whole difference to the
same glyph:
-
+
$ make -j5 lib -s && ./hb-shape Kannada\ MN.ttc -u 0C95,0CC2
[kn_ka=0+970|kn_matra_uu=0+1375]
-
- $ make -j5 lib -s && ./hb-shape Kannada\ MN.ttc -u 0C95,0CC2
- --features=-dist
+
+ $ make -j5 lib -s && ./hb-shape Kannada\ MN.ttc -u 0C95,0CC2 --features=-dist
[kn_ka=0+1030|kn_matra_uu=0+1375]
src/hb-aat-layout-kerx-table.hh | 4 +---
Date: Wed Oct 10 18:14:41 2018 -0400
[kern/kerx] Fix offset base
-
+
Disable kern Format2.
-
- Fix kerx Format2. Manually tested this with Tamil MN font and
- it works:
-
+
+ Fix kerx Format2. Manually tested this with Tamil MN font and it works:
+
$ HB_OPTIONS=aat ./hb-shape Tamil\ MN.ttc -u 0B94,0B95
[tgv_au=0+3435|tgc_ka=1@-75,0+1517]
-
+
HB_OPTIONS=aat ./hb-shape Tamil\ MN.ttc -u 0B94,0B95 --features=-kern
[tgv_au=0+3510|tgc_ka=1+1592]
- src/hb-aat-layout-kerx-table.hh | 73
- +++++++++++++++++++++++++----------------
+ src/hb-aat-layout-kerx-table.hh | 73 +++++++++++++++++++++++++----------------
src/hb-ot-kern-table.hh | 7 ++++
2 files changed, 52 insertions(+), 28 deletions(-)
Date: Wed Oct 10 17:44:46 2018 -0400
Allow HB_OPTIONS=aat to prefer AAT tables over OT
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/322
src/hb-common.cc | 23 +++++++++++++++++++++--
Date: Wed Oct 10 16:32:35 2018 -0400
Remove HAVE_OT
-
+
We never tested compiling without it. Just kill it. We always build
our own shaper.
Date: Wed Oct 10 12:07:49 2018 -0400
Add per-subtable set-digests
-
+
This speeds up Roboto shaping by ~10%. I was hoping for more.
Still, good defense against lookups with many subtables.
src/hb-null.hh | 2 +-
- src/hb-ot-layout-gsubgpos.hh | 108
- +++++++++++++++++++++++--------------------
+ src/hb-ot-layout-gsubgpos.hh | 108 +++++++++++++++++++++++--------------------
2 files changed, 59 insertions(+), 51 deletions(-)
commit e78549edfb4df617128a5f5ddd12692f1d0af4bf
Date: Wed Oct 10 11:36:28 2018 -0400
Move code
-
+
In preparation to move add per-subtable set digests...
src/hb-ot-layout-gsubgpos.hh | 50 ++++++++++++++++++++++++++++++++++++++
- src/hb-ot-layout.cc | 57
- ++++----------------------------------------
+ src/hb-ot-layout.cc | 57 ++++----------------------------------------
2 files changed, 54 insertions(+), 53 deletions(-)
commit a03850a3567d532c3a4d7655aa71bfe73dfb0e33
Date: Wed Oct 10 10:57:28 2018 -0400
Fix GPOS/kern interaction
-
+
Oops. Was checking for kern feature in GSUB, not GPOS.
src/hb-ot-shape.cc | 2 +-
Date: Wed Oct 10 10:49:45 2018 -0400
More rewriting plan compile
-
+
Hopefully more clear.
- src/hb-ot-shape.cc | 55
- ++++++++++++++++++++++++++++++++++++++----------------
+ src/hb-ot-shape.cc | 55 ++++++++++++++++++++++++++++++++++++++----------------
src/hb-ot-shape.hh | 1 -
2 files changed, 39 insertions(+), 17 deletions(-)
Date: Wed Oct 10 10:16:09 2018 -0400
Apply TT or fallback kerning when GPOS does not have kern feature
-
+
Previously we only did if there was no GPOS whatsoever. This applies
to Arial, Times New Roman, etc in Win7. Was not kerning before. It
is now.
[circleci] Add an iOS bot (#1233)
.circleci/config.yml | 12 +++++
- CMakeLists.txt | 140
- ++++++++++++++++++++++++++++++++-------------------
+ CMakeLists.txt | 140 ++++++++++++++++++++++++++++++++-------------------
2 files changed, 100 insertions(+), 52 deletions(-)
commit c06a5dff0b0f8d1c5aba53bcfd7fb0b680f1ca92
Date: Tue Oct 9 21:59:36 2018 -0700
added cff1_legacyops.otf as test-ot-extents-cff test case
-
+
fixed roll operator bugs uncovered by the test
src/hb-cff-interp-common.hh | 4 ++--
Date: Tue Oct 9 23:17:32 2018 -0400
[aat] Fixup recent commit
-
+
For 329f2401082011007d9ce12b15ce0225cd267c57
-
+
max_ops is signed.
src/hb-aat-layout-common.hh | 2 +-
Date: Tue Oct 9 23:02:53 2018 -0400
[aat] Set embedded sanitizer max ops really high
-
+
Since we consume it legitimately during shaping.
src/hb-aat-layout-common.hh | 1 +
Date: Tue Oct 9 22:49:33 2018 -0400
[kerx] Implement Format2 apply()
-
+
Still, not hooked.
src/hb-aat-layout-kerx-table.hh | 5 +----
Date: Tue Oct 9 22:35:22 2018 -0400
[kerx] Implement Format0 apply()
-
+
Not hooked up to be called yet.
src/hb-aat-layout-common.hh | 6 ++++--
Date: Tue Oct 9 16:24:50 2018 -0400
[ft] Use mutex to lock access to FT_Face
-
- Makes our FT-backed hb_font_t safe to use from multiple threads.
- Still,
+
+ Makes our FT-backed hb_font_t safe to use from multiple threads. Still,
the underlying FT_Face should NOT be used from other threads by client
or other libraries.
-
+
Maybe I add a lock()/unlock() public API ala PangoFT2 and cairo-ft.
Maybe not.
Date: Tue Oct 9 15:39:51 2018 -0400
Install ot-funcs on newly created funcs
-
- **Finally**! Casual users can stop caring about font-funcs
- completely now,
- like they haven't been needing to care re unicode-funcs for a
- few years.
+
+ **Finally**! Casual users can stop caring about font-funcs completely now,
+ like they haven't been needing to care re unicode-funcs for a few years.
src/hb-font.cc | 39 ++++++++++++++++++++++++++-------------
1 file changed, 26 insertions(+), 13 deletions(-)
Date: Tue Oct 9 15:12:09 2018 -0400
[ot-font] Don't pre-load cmap table
-
- Now that we have get_h_advances() and get_nominal_glyphs()
- implemented, the
- overhead of doing a proper atomic load would be once per run, NOT
- once per
+
+ Now that we have get_h_advances() and get_nominal_glyphs() implemented, the
+ overhead of doing a proper atomic load would be once per run, NOT once per
glyph. So, no need to pre-load the tables to avoid that overhead.
-
- As such, hb_ot_font_set_funcs() has become really cheap.
- Can *finally* make
+
+ As such, hb_ot_font_set_funcs() has become really cheap. Can *finally* make
it be default font functions on all newly created fonts!
src/hb-ot-font.cc | 9 +++------
Date: Tue Oct 9 15:07:04 2018 -0400
[ot/ft] Implement get_nominal_glyphs() callback
-
- Some more measurable speedup. The recent commits' speedups are
- as follows:
-
+
+ Some more measurable speedup. The recent commits' speedups are as follows:
+
Testing with Roboto, ****when disabling kern and liga****:
-
+
Before:
-
+
FT --features=-kern,-liga
user↦ 0m0.521s
-
+
OT --features=-liga,-kern
user↦ 0m0.568s
-
+
After:
-
+
FT --features=-liga,-kern
user↦ 0m0.428s
-
+
OT --features=-liga,-kern
user↦ 0m0.470s
-
+
So, 17% speedup.
-
- Note that FT callbacks are faster than OT these days since we added
- an advance
- cache to FT. I don't think the difference is enough to justify
- adding a cache
+
+ Note that FT callbacks are faster than OT these days since we added an advance
+ cache to FT. I don't think the difference is enough to justify adding a cache
to OT.
-
- When not disabling kern, the thing is three times slower, so the
- speedups
- are three times less impressive... Still, 5% not bad for a codebase
- that I
+
+ When not disabling kern, the thing is three times slower, so the speedups
+ are three times less impressive... Still, 5% not bad for a codebase that I
otherwise thought is optimized out.
-
+
Note that, because of this and other optimiztions in our main shaper,
- disabling kern and liga, the OT shaper is now *faster* than the
- fallback
- shaper. So, that's my recommendation to clients that need the
- absolute
+ disabling kern and liga, the OT shaper is now *faster* than the fallback
+ shaper. So, that's my recommendation to clients that need the absolute
fastest...
src/hb-ft.cc | 26 ++++++++++++++++++++++++++
Date: Tue Oct 9 14:50:57 2018 -0400
Call get_nominal_glyphs() for runs of simple clusters at a time
-
- Even without FT or OT font funcs implementing get_nominal_glyphs(),
- there's measurable
+
+ Even without FT or OT font funcs implementing get_nominal_glyphs(), there's measurable
speedup.
src/hb-buffer.hh | 20 +++++++++++++++++++-
Whitespace
src/hb-font.hh | 2 +-
- src/hb-ot-shape-normalize.cc | 52
- ++++++++++++++++++++++++--------------------
+ src/hb-ot-shape-normalize.cc | 52 ++++++++++++++++++++++++--------------------
2 files changed, 29 insertions(+), 25 deletions(-)
commit 30c114ffec335770452e60729224b1634586c5b0
Date: Tue Oct 9 14:37:08 2018 -0400
Avoid sort and recompose stages if all clusters simple
-
+
Even has measurable speedup...
- src/hb-ot-shape-normalize.cc | 52
- ++++++++++++++++++++++++--------------------
+ src/hb-ot-shape-normalize.cc | 52 ++++++++++++++++++++++++--------------------
1 file changed, 29 insertions(+), 23 deletions(-)
commit 9f79365c3b183278d14352ba6241c7d4ec274984
Date: Tue Oct 9 14:36:25 2018 -0400
Fix warning
-
+
How come this one is not generated by clang everything bot?!
-
- ../../../test/api/test-multithread.c:37:26: warning: initialization
- discards ‘const’ qualifier from pointer target type
- [-Wdiscarded-qualifiers]
+
+ ../../../test/api/test-multithread.c:37:26: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
static char *font_path = "fonts/Inconsolata-Regular.abc.ttf";
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ../../../test/api/test-multithread.c:38:21: warning: initialization
- discards ‘const’ qualifier from pointer target type
- [-Wdiscarded-qualifiers]
+ ../../../test/api/test-multithread.c:38:21: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
test/api/test-multithread.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Date: Tue Oct 9 14:12:59 2018 -0400
Inline decompose_cluster
-
+
Towards separating the common case into its own loop.
src/hb-ot-shape-normalize.cc | 14 ++++----------
Date: Tue Oct 9 09:23:51 2018 -0400
[font] Add get_nominal_glyphs() callback (note the plural)
-
+
Unused as of now. To be wired up to normalizer, which would remove
overhead and allow hb-ot-font initialization to become a no-op, so
we can enable it by default.
Date: Wed Jul 25 18:26:10 2018 +0800
test/api/test-subset-*.c: Fix build on pre-C99
-
- Ensure that we have the variables at the beginning of the block.
- These
+
+ Ensure that we have the variables at the beginning of the block. These
are the only fixes that we need for building HarfBuzz on older
compilers.
Date: Wed Jul 25 18:12:34 2018 +0800
builds: Fix and clean up MSVC DLL builds
-
+
Instead of passing a CFLAG/CXXFLAG to define HB_EXTERN, define it
directly in src/hb.hh as __declspec(dllexport) extern when we are
building HarfBuzz as DLLs on Visual Studio. Define HB_INTERNAL
as nothing without defining HB_NO_VISIBILITY when building HarfBuzz as
DLLs to avoid linker errors on Visual Studio builds.
-
+
Also "install" harfbuzz-subset.dll into $(PREFIX)\bin as the
hb-subset utility will depend on that DLL at runtime, when HarfBuzz is
built as DLLs. Since it consists of private APIs that are subject to
Try fixing older bots
- src/hb-ot-shape-fallback.cc | 42
- +++++++++++++++++++++---------------------
+ src/hb-ot-shape-fallback.cc | 42 +++++++++++++++++++++---------------------
1 file changed, 21 insertions(+), 21 deletions(-)
commit bee93e269711a3eda4e7d762b730522564fe6e87
Date: Tue Oct 9 08:01:49 2018 -0400
Add const to get_*_advances API
-
+
Ouch!
src/hb-font.cc | 10 +++++-----
src/hb-glib.cc | 31 +-----------------------------
src/hb-icu.cc | 33 +-------------------------------
src/hb-ucdn.cc | 8 +-------
- test/api/test-unicode.c | 51
- -------------------------------------------------
+ test/api/test-unicode.c | 51 -------------------------------------------------
4 files changed, 3 insertions(+), 120 deletions(-)
commit eed737f6726d3408191a4e64592805b70d8bb247
src/hb-glib.cc | 8 +------
src/hb-icu.cc | 19 +--------------
src/hb-ucdn.cc | 9 +------
- test/api/test-unicode.c | 64
- -------------------------------------------------
+ test/api/test-unicode.c | 64 -------------------------------------------------
4 files changed, 3 insertions(+), 97 deletions(-)
commit 47030b1855f04c0d75899ffb6f5021fea3c19b90
Deprecate font kern API
docs/harfbuzz-sections.txt | 16 +++++++-------
- src/hb-deprecated.h | 54
- ++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-deprecated.h | 54 ++++++++++++++++++++++++++++++++++++++++++++++
src/hb-font.cc | 3 +++
- src/hb-font.h | 51
- -------------------------------------------
+ src/hb-font.h | 51 -------------------------------------------
4 files changed, 65 insertions(+), 59 deletions(-)
commit a51958819fcf51ade3f8eb38001e680a419ebbba
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Mon Oct 8 23:57:45 2018 -0400
- Apply TrueType/OpenType kern table when GPOS kern feature is not
- available
-
+ Apply TrueType/OpenType kern table when GPOS kern feature is not available
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/250
src/hb-ot-kern-table.hh | 24 +++++++++++--------
- src/hb-ot-layout.cc | 57
- ++++++++++++++++++++-------------------------
+ src/hb-ot-layout.cc | 57 ++++++++++++++++++++-------------------------
src/hb-ot-layout.hh | 13 +++++++++++
src/hb-ot-shape-fallback.cc | 4 ++--
src/hb-ot-shape.cc | 10 +++++---
[kern] Abstract away kerning machine
src/hb-font.hh | 2 +-
- src/hb-ot-kern-table.hh | 71
- +++++++++++++++++++++++++++++++++++++++++++++
- src/hb-ot-shape-fallback.cc | 67
- +++++++++++-------------------------------
+ src/hb-ot-kern-table.hh | 71 +++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape-fallback.cc | 67 +++++++++++-------------------------------
3 files changed, 89 insertions(+), 51 deletions(-)
commit fb4f43838154a77912a9fc3437110c81e9d34aac
Date: Mon Oct 8 22:44:16 2018 -0400
Add HB_DEPRECATED
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1232
src/hb-common.h | 9 +++++++++
Deprecate decompose_compatibility stuff
docs/harfbuzz-sections.txt | 7 +++---
- src/hb-deprecated.h | 63
- ++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-deprecated.h | 63 ++++++++++++++++++++++++++++++++++++++++++++++
src/hb-unicode.h | 47 ----------------------------------
3 files changed, 67 insertions(+), 50 deletions(-)
Date: Mon Oct 8 15:05:36 2018 -0700
added CFF2 get_extents
-
+
added source hb-ot-cff2-table.cc
augmented VariationData to return scalars
misc bug fixes, renaming, cleanup
src/Makefile.sources | 2 +
src/hb-cff-interp-common.hh | 37 ++++++-----
- src/hb-cff-interp-cs-common.hh | 134
- +++++++++++++++++++-------------------
+ src/hb-cff-interp-cs-common.hh | 134 +++++++++++++++++++-------------------
src/hb-cff-interp-dict-common.hh | 6 +-
src/hb-cff2-interp-cs.hh | 102 ++++++++++++++++++++++++-----
src/hb-ot-cff1-table.hh | 4 +-
- src/hb-ot-cff2-table.cc | 135
- +++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-cff2-table.cc | 135 +++++++++++++++++++++++++++++++++++++++
src/hb-ot-cff2-table.hh | 71 ++++++++++++--------
src/hb-ot-face.cc | 1 +
src/hb-ot-face.hh | 1 +
[kerx] Clean up Format2
- src/hb-aat-layout-kerx-table.hh | 48
- ++++++++---------------------------------
+ src/hb-aat-layout-kerx-table.hh | 48 ++++++++---------------------------------
1 file changed, 9 insertions(+), 39 deletions(-)
commit 8aa83d97f9e7f63e2fcb4ae965b75a39961c7d87
Date: Sun Oct 7 22:43:59 2018 -0400
[kern/kerx] Fix Format2 offsetting
-
+
"The values in the right class table are stored pre-multiplied by the
number of bytes in a single kerning value, and the values in the left
class table are stored pre-multiplied by the number of bytes in one
row. This eliminates needing to multiply the row and column values
together to determine the location of the kerning value. The array can
- be indexed by doing the right- and left-hand class mappings,
- adding the
+ be indexed by doing the right- and left-hand class mappings, adding the
class values to the address of the array, and fetching the kerning
value to which the new address points."
[kerx] Clean up Format0
- src/hb-aat-layout-kerx-table.hh | 48
- +++++++++++------------------------------
+ src/hb-aat-layout-kerx-table.hh | 48 +++++++++++------------------------------
1 file changed, 12 insertions(+), 36 deletions(-)
commit 4c3b19d52ec7a1fa46f8d0971e377a7d29b87e27
Move code
- src/hb-aat-layout-common.hh | 105
- --------------------------------------------
- src/hb-open-type.hh | 105
- +++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-aat-layout-common.hh | 105 --------------------------------------------
+ src/hb-open-type.hh | 105 +++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 104 insertions(+), 106 deletions(-)
commit 3515c8b187e2316dcf3abaefc84917b09449d485
Date: Sun Oct 7 20:46:11 2018 -0400
Rename invisible_codepoint to invisible_glyph in API
-
+
Deleted recently added API:
hb_buffer_set_invisible_codepoint()
hb_buffer_get_invisible_codepoint()
-
+
hb-shape / hb-view --invisible-codepoint
-
+
New API:
hb_buffer_set_invisible_glyph()
hb_buffer_get_invisible_glyph()
-
+
hb-shape / hb-view --invisible-glyph
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1216
docs/harfbuzz-sections.txt | 4 ++--
Date: Sun Oct 7 20:36:46 2018 -0400
Revert "[morx] Fix MORX-35"
-
+
This reverts commit f62f6e90ad1f1a83f77771ad65ee1ffb79470a8a.
- src/hb-aat-layout-morx-table.hh | 14
- +++++---------
+ src/hb-aat-layout-morx-table.hh | 14 +++++---------
test/shaping/data/text-rendering-tests/DISABLED | 3 +++
test/shaping/data/text-rendering-tests/Makefile.sources | 2 +-
3 files changed, 9 insertions(+), 10 deletions(-)
Date: Sun Oct 7 20:35:06 2018 -0400
[buffer] Improve shift_forward()
-
+
"Improve" is a strong word in this case though, I understand.
src/hb-buffer.cc | 16 +++++++++++++---
Date: Sun Oct 7 18:06:53 2018 -0400
[morx] Fix MORX-35
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1224
- src/hb-aat-layout-morx-table.hh | 14
- ++++++++++----
+ src/hb-aat-layout-morx-table.hh | 14 ++++++++++----
test/shaping/data/text-rendering-tests/DISABLED | 3 ---
test/shaping/data/text-rendering-tests/Makefile.sources | 2 +-
3 files changed, 11 insertions(+), 8 deletions(-)
Date: Sun Oct 7 18:52:12 2018 -0400
Remove some code
-
- We use scratch-flags to short-circuit this function. No need for
- previous
+
+ We use scratch-flags to short-circuit this function. No need for previous
early loop.
src/hb-ot-shape.cc | 16 +++-------------
[test/text-rendering-tests] Update from upstream
test/shaping/data/text-rendering-tests/Makefile.sources | 6 +++++-
- .../data/text-rendering-tests/fonts/TestMORXForty.ttf | Bin 0 ->
- 2408 bytes
- .../text-rendering-tests/fonts/TestMORXThirtyeight.ttf | Bin 0 ->
- 2444 bytes
- .../text-rendering-tests/fonts/TestMORXThirtynine.ttf | Bin 0 ->
- 2436 bytes
- .../text-rendering-tests/fonts/TestMORXThirtyseven.ttf | Bin 0 ->
- 2444 bytes
+ .../data/text-rendering-tests/fonts/TestMORXForty.ttf | Bin 0 -> 2408 bytes
+ .../text-rendering-tests/fonts/TestMORXThirtyeight.ttf | Bin 0 -> 2444 bytes
+ .../text-rendering-tests/fonts/TestMORXThirtynine.ttf | Bin 0 -> 2436 bytes
+ .../text-rendering-tests/fonts/TestMORXThirtyseven.ttf | Bin 0 -> 2444 bytes
.../data/text-rendering-tests/tests/MORX-35.tests | 4 ++--
.../data/text-rendering-tests/tests/MORX-37.tests | 4 ++++
.../data/text-rendering-tests/tests/MORX-38.tests | 4 ++++
[kerx] Clean up kerx and KerxTable structures
- src/hb-aat-layout-kerx-table.hh | 169
- ++++++++++++++++++++++++++--------------
+ src/hb-aat-layout-kerx-table.hh | 169 ++++++++++++++++++++++++++--------------
src/hb-aat-layout-morx-table.hh | 2 +-
2 files changed, 113 insertions(+), 58 deletions(-)
Date: Sun Oct 7 18:41:52 2018 +0200
Add API for setting invisible-codepoint
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1216
-
+
New API:
hb_buffer_set_invisible_codepoint()
hb_buffer_get_invisible_codepoint()
-
+
hb-shape / hb-view --invisible-codepoint
docs/harfbuzz-sections.txt | 2 ++
- src/hb-buffer.cc | 42
- ++++++++++++++++++++++++++++++++++++++++++
+ src/hb-buffer.cc | 42 ++++++++++++++++++++++++++++++++++++++++++
src/hb-buffer.h | 7 +++++++
src/hb-buffer.hh | 1 +
src/hb-ot-shape.cc | 8 ++++----
Date: Sun Oct 7 18:23:45 2018 +0200
[ot-font] Load hmtx/vmtx lazily
-
+
Since we have get_*_advanes() API now, the overhead is once per shape,
not once per glyph.
-
+
Only cmap is warmed-up at set_funcs() time now.
src/hb-ot-font.cc | 26 +++++++++++++-------------
Date: Sun Oct 7 16:31:33 2018 +0200
[coretext] Fix OS X check
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1230
src/hb-coretext.cc | 4 ++--
src/hb-ot-shape.hh | 5 ++
src/hb-set.hh | 4 +-
src/hb-subset.cc | 2 +-
- src/hb-vector.hh | 100
- ++++++++++++++-------
+ src/hb-vector.hh | 100 ++++++++++++++-------
test/shaping/data/text-rendering-tests/DISABLED | 35 +-------
.../data/text-rendering-tests/Makefile.sources | 18 ++--
.../data/text-rendering-tests/extract-tests.py | 18 +++-
Date: Fri Oct 5 18:39:48 2018 +0200
[vector] Make hb_vector_t relocatable / nestable
-
+
Ugly, but...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1227
src/hb-ot-post-table.hh | 2 +-
src/hb-set.hh | 4 +--
src/hb-subset.cc | 2 +-
- src/hb-vector.hh | 94
- +++++++++++++++++++++++++++++++------------------
+ src/hb-vector.hh | 94 +++++++++++++++++++++++++++++++------------------
7 files changed, 66 insertions(+), 42 deletions(-)
commit 5469d80707d32c733b1c60f79ab2f217e879de55
Date: Fri Oct 5 18:14:13 2018 +0200
[morx] Fix memory access issue
-
+
If buffer was enlarged, info was being outdated.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1225
src/hb-aat-layout-common.hh | 4 +---
test/shaping/data/text-rendering-tests/DISABLED | 3 +++
test/shaping/data/text-rendering-tests/Makefile.sources | 2 ++
- .../text-rendering-tests/fonts/TestMORXThirtyfive.ttf | Bin 0 ->
- 1968 bytes
- .../text-rendering-tests/fonts/TestMORXThirtysix.ttf | Bin 0 ->
- 1836 bytes
+ .../text-rendering-tests/fonts/TestMORXThirtyfive.ttf | Bin 0 -> 1968 bytes
+ .../text-rendering-tests/fonts/TestMORXThirtysix.ttf | Bin 0 -> 1836 bytes
.../data/text-rendering-tests/tests/MORX-35.tests | 2 ++
.../data/text-rendering-tests/tests/MORX-36.tests | 1 +
6 files changed, 8 insertions(+)
Date: Fri Oct 5 02:49:29 2018 +0200
Change vendor features from Harf/Buzz to HARF/BUZZ
-
+
https://github.com/harfbuzz/harfbuzz/commit/a01194aaf4c15160330b4042066263b2c963b658#commitcomment-30772041
-
- "The tag space of tags consisting of four uppercase letters (A-Z)
- with no punctuation,
- spaces, or numbers, is reserved as a vendor space. Font vendors may
- use such tags to
+
+ "The tag space of tags consisting of four uppercase letters (A-Z) with no punctuation,
+ spaces, or numbers, is reserved as a vendor space. Font vendors may use such tags to
identify private features."
src/hb-ot-shape.cc | 4 ++--
added CFF glyph extents API test
test/api/Makefile.am | 1 +
- test/api/test-ot-extents-cff.c | 65
- ++++++++++++++++++++++++++++++++++++++++++
+ test/api/test-ot-extents-cff.c | 65 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 66 insertions(+)
commit 0222d57c357c775f25866653700b9dcb7d5bb807
Date: Thu Oct 4 16:23:42 2018 +0200
[test] Choose 'ot' shaper specifically
-
- Now that we added morx support, our OS X bot is running them through
- CoreText
- and failing (with a DoS / infinite loop no less!). Always run
- tests through
+
+ Now that we added morx support, our OS X bot is running them through CoreText
+ and failing (with a DoS / infinite loop no less!). Always run tests through
our own shaper.
test/shaping/run-tests.py | 2 +-
Date: Thu Oct 4 13:00:37 2018 +0200
Enable two OpenType features, 'Harf' and 'Buzz'
-
- One early, before script-specific features, one late, after.
- Allows font
+
+ One early, before script-specific features, one late, after. Allows font
developers to detect us and behave differently if needed.
src/hb-ot-shape.cc | 4 ++++
[test/text-rendering-tests] Update from upstream
test/shaping/data/text-rendering-tests/Makefile.sources | 6 +++++-
- test/shaping/data/text-rendering-tests/extract-tests.py | 12
- ++++++++++++
- .../data/text-rendering-tests/fonts/TestGSUBThree.ttf | Bin 0 ->
- 1504 bytes
- .../text-rendering-tests/fonts/TestMORXThirtyfour.ttf | Bin 0 ->
- 3608 bytes
- .../text-rendering-tests/fonts/TestMORXThirtythree.ttf | Bin 0 ->
- 1520 bytes
- .../text-rendering-tests/fonts/TestMORXTwentyfour.ttf | Bin 0 ->
- 1828 bytes
+ test/shaping/data/text-rendering-tests/extract-tests.py | 12 ++++++++++++
+ .../data/text-rendering-tests/fonts/TestGSUBThree.ttf | Bin 0 -> 1504 bytes
+ .../text-rendering-tests/fonts/TestMORXThirtyfour.ttf | Bin 0 -> 3608 bytes
+ .../text-rendering-tests/fonts/TestMORXThirtythree.ttf | Bin 0 -> 1520 bytes
+ .../text-rendering-tests/fonts/TestMORXTwentyfour.ttf | Bin 0 -> 1828 bytes
.../shaping/data/text-rendering-tests/tests/GSUB-3.tests | 1 +
.../data/text-rendering-tests/tests/MORX-24.tests | 1 +
.../data/text-rendering-tests/tests/MORX-32.tests | 8 ++++----
.../data/text-rendering-tests/tests/MORX-33.tests | 3 +++
.../data/text-rendering-tests/tests/MORX-34.tests | 1 +
- test/shaping/run-tests.py | 15
- +++++++++------
+ test/shaping/run-tests.py | 15 +++++++++------
12 files changed, 36 insertions(+), 11 deletions(-)
commit 6ff8a8a10b62a54a87d53b0af66ccaba5d58b107
src/hb-ot-shape.cc | 23 ++++++++++++----
src/hb-ot-shape.hh | 5 ++++
- test/shaping/data/text-rendering-tests/DISABLED | 32
- ----------------------
+ test/shaping/data/text-rendering-tests/DISABLED | 32 ----------------------
.../data/text-rendering-tests/Makefile.sources | 14 +++++-----
4 files changed, 29 insertions(+), 45 deletions(-)
Date: Thu Oct 4 09:17:08 2018 +0200
Minor: Fix autoconf warning
-
+
Before this change, autoconf was emitting the following warnings:
-
+
```
- configure.ac:22: warning: AC_COMPILE_IFELSE was called before
- AC_USE_SYSTEM_EXTENSIONS
- ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is
- expanded from...
+ configure.ac:22: warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
+ ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is expanded from...
configure.ac:22: the top level
- configure.ac:22: warning: AC_RUN_IFELSE was called before
- AC_USE_SYSTEM_EXTENSIONS
- ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is
- expanded from...
+ configure.ac:22: warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
+ ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is expanded from...
configure.ac:22: the top level
- configure.ac:22: warning: AC_COMPILE_IFELSE was called before
- AC_USE_SYSTEM_EXTENSIONS
- ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is
- expanded from...
+ configure.ac:22: warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
+ ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is expanded from...
configure.ac:22: the top level
- configure.ac:22: warning: AC_RUN_IFELSE was called before
- AC_USE_SYSTEM_EXTENSIONS
- ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is
- expanded from...
+ configure.ac:22: warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
+ ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is expanded from...
configure.ac:22: the top level
- configure.ac:22: warning: AC_COMPILE_IFELSE was called before
- AC_USE_SYSTEM_EXTENSIONS
- ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is
- expanded from...
+ configure.ac:22: warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
+ ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is expanded from...
configure.ac:22: the top level
- configure.ac:22: warning: AC_RUN_IFELSE was called before
- AC_USE_SYSTEM_EXTENSIONS
- ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is
- expanded from...
+ configure.ac:22: warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
+ ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is expanded from...
configure.ac:22: the top level
- configure.ac:22: warning: AC_COMPILE_IFELSE was called before
- AC_USE_SYSTEM_EXTENSIONS
- ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is
- expanded from...
+ configure.ac:22: warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
+ ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is expanded from...
configure.ac:22: the top level
- configure.ac:22: warning: AC_RUN_IFELSE was called before
- AC_USE_SYSTEM_EXTENSIONS
- ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is
- expanded from...
+ configure.ac:22: warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
+ ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is expanded from...
configure.ac:22: the top level
```
Date: Thu Oct 4 09:24:08 2018 +0200
[morx] Only insert glyphs at mark when a mark has been set before
-
+
This reverts commit f4072e8cb81072cd6d51a2607efedb76c02e7db1.
https://github.com/harfbuzz/harfbuzz/issues/1195
Add emoji test for recent work
test/shaping/data/in-house/Makefile.sources | 2 +-
- .../fonts/3cf6f8ac6d647473a43a3100e7494b202b2cfafe.ttf | Bin 0 ->
- 16596 bytes
+ .../fonts/3cf6f8ac6d647473a43a3100e7494b202b2cfafe.ttf | Bin 0 -> 16596 bytes
test/shaping/data/in-house/tests/emoji-flag-tags.tests | 2 --
test/shaping/data/in-house/tests/emoji.tests | 4 ++++
4 files changed, 5 insertions(+), 3 deletions(-)
Date: Wed Oct 3 22:49:02 2018 +0330
[ci] Delete azure-pipelines
-
+
End of experiment, we might get back to it later
azure-pipelines.yml | 10 ----------
Date: Wed Oct 3 21:11:13 2018 +0200
Unbreak Fitzpatrick
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1159
src/hb-ot-layout.hh | 2 +-
Date: Wed Oct 3 21:02:16 2018 +0200
Rewrite grapheme-formation in terms of new work
-
- Also, don't attach ZWNJ to previous cluster. Closer to Unicode
- graphemes.
+
+ Also, don't attach ZWNJ to previous cluster. Closer to Unicode graphemes.
src/hb-coretext.cc | 2 +-
- src/hb-ot-shape.cc | 48
- ++++++----------------
+ src/hb-ot-shape.cc | 48 ++++++----------------
.../in-house/tests/indic-joiner-candrabindu.tests | 2 +-
.../data/in-house/tests/indic-joiners.tests | 6 +--
4 files changed, 18 insertions(+), 40 deletions(-)
[test] Split a test
- .../fonts/4d4206e30b2dbf1c1ef492a8eae1c9e7829ebad8.ttf | Bin 0 ->
- 51924 bytes
- .../fonts/bb29ce50df2bdba2d10726427c6b7609bf460e04.ttf | Bin 74856 ->
- 0 bytes
- .../in-house/tests/mongolian-variation-selector.tests | 17
- ++++++++++++++++-
+ .../fonts/4d4206e30b2dbf1c1ef492a8eae1c9e7829ebad8.ttf | Bin 0 -> 51924 bytes
+ .../fonts/bb29ce50df2bdba2d10726427c6b7609bf460e04.ttf | Bin 74856 -> 0 bytes
+ .../in-house/tests/mongolian-variation-selector.tests | 17 ++++++++++++++++-
3 files changed, 16 insertions(+), 1 deletion(-)
commit ba813aab0909375af0c8f8e0c34595680c2762a4
[buffer] Inline some more
src/hb-buffer.cc | 44 --------------------------------------------
- src/hb-buffer.hh | 52
- ++++++++++++++++++++++++++++++++++++++++++++--------
+ src/hb-buffer.hh | 52 ++++++++++++++++++++++++++++++++++++++++++++--------
2 files changed, 44 insertions(+), 52 deletions(-)
commit 6f39c22029867c6d00cf70d7df242a28ca8f12bc
Date: Wed Oct 3 19:44:15 2018 +0200
[emoji] Mark emoji contination sequences as continuation
-
+
This adds a new grapheme bit. Not used yet.
-
+
Part of https://github.com/harfbuzz/harfbuzz/issues/1159
- src/hb-ot-layout.hh | 83
- +++++++++++++++++++++++++----------------------------
+ src/hb-ot-layout.hh | 83 +++++++++++++++++++++++++----------------------------
src/hb-ot-shape.cc | 24 ++++++++++++++++
src/hb-unicode.hh | 5 ----
3 files changed, 63 insertions(+), 49 deletions(-)
Date: Wed Oct 3 21:26:58 2018 +0330
[test] Use an in-repo font for test-multithread (#1218)
-
- As Khaled's suggestion, hard-coded font paths was only for my own
- testing.
+
+ As Khaled's suggestion, hard-coded font paths was only for my own testing.
test/api/hb-subset-test.h | 13 +++++++++----
- test/api/test-multithread.c | 41
- ++++++++++++++++++++++++++---------------
+ test/api/test-multithread.c | 41 ++++++++++++++++++++++++++---------------
test/fuzzing/main.cc | 6 ++++++
3 files changed, 41 insertions(+), 19 deletions(-)
commit fde9b8852d7cd6224afeffcfe363f4b445ab1ece
-Author: azure-pipelines[bot]
-<azure-pipelines[bot]@users.noreply.github.com>
+Author: azure-pipelines[bot] <azure-pipelines[bot]@users.noreply.github.com>
Date: Wed Oct 3 17:47:05 2018 +0000
[ci] Add a test Azure Pipelines Linux bot
-
+
Related #1219
azure-pipelines.yml | 10 ++++++++++
Date: Wed Oct 3 17:46:48 2018 +0200
[emoji] Add emoji Extended_Pictographic table and function
-
+
Part of https://github.com/harfbuzz/harfbuzz/issues/1159
-
+
.
src/Makefile.am | 12 +-
src/gen-emoji-table.py | 64 ++++++++++
src/hb-ot-os2-table.hh | 2 +-
src/hb-ot-os2-unicode-ranges.hh | 6 +-
- src/hb-unicode-emoji-table.hh | 269
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-unicode-emoji-table.hh | 269 ++++++++++++++++++++++++++++++++++++++++
src/hb-unicode.cc | 16 +++
src/hb-unicode.hh | 37 +++++-
7 files changed, 398 insertions(+), 8 deletions(-)
[os2] Minor rename/shuffle
...unicode-ranges.py => gen-os2-unicode-ranges.py} | 2 +-
- src/hb-ot-os2-unicode-ranges.hh | 45
- +++++++++++-----------
+ src/hb-ot-os2-unicode-ranges.hh | 45 +++++++++++-----------
2 files changed, 24 insertions(+), 23 deletions(-)
commit 7a1ab0464d3ee1ca5c9b31215fbffb8601ae860d
Date: Wed Oct 3 23:22:43 2018 +0800
Fix test-multithread build on FreeBSD (#1217)
-
+
Add the default font path used by FreeBSD ports.
test/api/test-multithread.c | 2 ++
Date: Wed Oct 3 14:44:25 2018 +0200
[indic] Disallow vowel mark combinations that spoof other vowel marks
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1019
-
+
New numbers:
-
+
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707261 out of 707394 tests passed. 133 failed (0.0188014%)
GUJARATI: 366353 out of 366457 tests passed. 104 failed (0.0283799%)
GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%)
KANNADA: 951300 out of 951913 tests passed. 613 failed (0.0643966%)
- MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed
- (0.0188871%)
+ MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
ORIYA: 42327 out of 42329 tests passed. 2 failed (0.00472489%)
SINHALA: 271596 out of 271847 tests passed. 251 failed (0.0923313%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
-
+
Devanagari regressed because Uniscribe doesn't enforce the full set.
-
+
Tests added with the *-vowel-letters.txt files in tree and Noto fonts.
- src/hb-ot-shape-complex-indic.cc | 256
- ++++++++++++++++++++-
+ src/hb-ot-shape-complex-indic.cc | 256 ++++++++++++++++++++-
test/shaping/data/in-house/Makefile.sources | 1 +
.../03e3f463c3a985bc42096620cc415342818454fb.ttf | Bin 0 -> 2904 bytes
.../1a5face3fcbd929d228235c2f72bbd6f8eb37424.ttf | Bin 0 -> 8188 bytes
Typo
- .../{bengali-vowel-leters.txt => bengali-vowel-letters.txt}
- | 0
- .../{gujarati-vowel-letter.txt => gujarati-vowel-letters.txt}
- | 0
+ .../{bengali-vowel-leters.txt => bengali-vowel-letters.txt} | 0
+ .../{gujarati-vowel-letter.txt => gujarati-vowel-letters.txt} | 0
2 files changed, 0 insertions(+), 0 deletions(-)
commit 0dd9101fd0ddff80fff10ba98e93523aed95c8f5
Date: Wed Oct 3 07:11:22 2018 +0800
Missing colon for gobject annotation
-
- There should be a colon separating "(transfer full)" and the
- rest. Warned by g-ir-scanner.
+
+ There should be a colon separating "(transfer full)" and the rest. Warned by g-ir-scanner.
src/hb-face.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Wed Oct 3 12:29:56 2018 +0200
[use] Add Halant_Or_Vowel_Modifier category
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1102
src/gen-use-table.py | 7 +-
- src/hb-ot-shape-complex-use-machine.hh | 518
- +++++++++++----------
+ src/hb-ot-shape-complex-use-machine.hh | 518 +++++++++++----------
src/hb-ot-shape-complex-use-machine.rl | 9 +-
src/hb-ot-shape-complex-use-table.cc | 4 +-
src/hb-ot-shape-complex-use.hh | 5 +-
build/test/api/.libs/test-collect-unicodes | Bin 14336 -> 0 bytes
build/test/api/.libs/test-multithread | Bin 10936 -> 0 bytes
- build/test/api/test-collect-unicodes | 210
- -----------------------------
- build/test/api/test-multithread | 210
- -----------------------------
+ build/test/api/test-collect-unicodes | 210 -----------------------------
+ build/test/api/test-multithread | 210 -----------------------------
4 files changed, 420 deletions(-)
commit 51d5bf4ca2ebb9b8aa3b2777781e328fb93ceea7
Date: Tue Oct 2 13:45:14 2018 -0700
redefine OpCodes as define instead of enum
-
+
in order to eradicate duplicate enum warnings
- src/hb-cff-interp-common.hh | 348
- ++++++++++++++++++++++----------------------
+ src/hb-cff-interp-common.hh | 348 ++++++++++++++++++++++----------------------
1 file changed, 174 insertions(+), 174 deletions(-)
commit 9cdd70b344b9dc34a29aeca79028cbb5d949ca1d
Date: Tue Oct 2 21:39:19 2018 +0330
[circleci] Fix some of warnings from clang-everything bot (#1211)
-
+
* -Wshift-sign-overflow
* -Wmissing-prototypes
Date: Tue Oct 2 18:56:20 2018 +0200
[tests] Allow test-runner to ignore shaping output
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1212
- test/shaping/data/in-house/tests/fuzzed.tests | 46
- +++++++++++++--------------
+ test/shaping/data/in-house/tests/fuzzed.tests | 46 +++++++++++++--------------
test/shaping/run-tests.py | 2 +-
2 files changed, 24 insertions(+), 24 deletions(-)
[tibetan] Remove unused Tibetan shaper
src/Makefile.sources | 1 -
- src/hb-ot-shape-complex-tibetan.cc | 63
- --------------------------------------
+ src/hb-ot-shape-complex-tibetan.cc | 63 --------------------------------------
src/hb-ot-shape-complex.hh | 1 -
3 files changed, 65 deletions(-)
Date: Tue Oct 2 18:43:29 2018 +0200
[tibetan] Route Tibetan through USE
-
+
Fixes https://github.com/harfbuzz/harfbuzz/pull/933
https://github.com/harfbuzz/harfbuzz/issues/1012
-
+
Tibetan failures go from 0 to 2:
-
+
TIBETAN: 208467 out of 208469 tests passed. 2 failed (0.000959375%)
src/gen-use-table.py | 30 ++++++++++------
- src/hb-ot-shape-complex-use-table.cc | 70
- ++++++++++++++++++++++--------------
+ src/hb-ot-shape-complex-use-table.cc | 70 ++++++++++++++++++++++--------------
src/hb-ot-shape-complex.hh | 8 +----
3 files changed, 65 insertions(+), 43 deletions(-)
Date: Tue Oct 2 17:49:06 2018 +0200
[indic/use] Factor common expressions in ragel machine
-
+
No machine change.
- src/hb-ot-shape-complex-indic-machine.hh | 46
- ++++++++++++++++----------------
+ src/hb-ot-shape-complex-indic-machine.hh | 46 ++++++++++++++++----------------
src/hb-ot-shape-complex-indic-machine.rl | 10 ++++---
src/hb-ot-shape-complex-use-machine.hh | 38 +++++++++++++-------------
src/hb-ot-shape-complex-use-machine.rl | 20 +++++++-------
Date: Tue Oct 2 17:46:27 2018 +0200
[indic] Minor flip grammar around
-
+
No behavior change.
src/hb-ot-shape-complex-indic-machine.rl | 2 +-
[indic] Add some confusable sequences from Unicode Standard
.../script-bengali/bengali-vowel-leters.txt | 3 ++
- .../devanagari-atomic-consonants.txt | 33
- ++++++++++++++++++++++
+ .../devanagari-atomic-consonants.txt | 33 ++++++++++++++++++++++
.../script-devanagari/devanagari-vowel-letters.txt | 17 +++++++++++
.../script-gujarati/gujarati-vowel-letter.txt | 8 ++++++
.../script-gurmukhi/gurmukhi-vowel-letters.txt | 9 ++++++
Date: Tue Oct 2 16:05:26 2018 +0200
Treat a base+mark... ligature as base, not ligature
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/746
src/hb-ot-layout-gsubgpos.hh | 22 +++++++++++++++-------
Date: Tue Oct 2 14:40:14 2018 +0200
Disable joiner-skipping when looking back for base to attach mark to
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1189
src/hb-ot-shape.cc | 5 ++++-
test/shaping/data/in-house/Makefile.sources | 1 +
- .../fonts/641ca9d7808b01cafa9a666c13811c9b56eb9c52.ttf | Bin 0 ->
- 11492 bytes
+ .../fonts/641ca9d7808b01cafa9a666c13811c9b56eb9c52.ttf | Bin 0 -> 11492 bytes
.../data/in-house/tests/arabic-mark-attach.tests | 1 +
4 files changed, 6 insertions(+), 1 deletion(-)
src/hb-buffer.hh | 3 +--
src/hb-ot-layout.hh | 12 ++----------
- src/hb-ot-shape-complex-arabic.cc | 41
- ++++++---------------------------------
+ src/hb-ot-shape-complex-arabic.cc | 41 ++++++---------------------------------
3 files changed, 9 insertions(+), 47 deletions(-)
commit 48c513fec978819927535bc86b43be74315f746c
Rename
src/hb-ot-face.cc | 20 +++++++-------
- src/hb-ot-face.hh | 78
- +++++++++++++++++++++++++++----------------------------
+ src/hb-ot-face.hh | 78 +++++++++++++++++++++++++++----------------------------
2 files changed, 49 insertions(+), 49 deletions(-)
commit 10b6c7c63870fa04cd8adcf9f38644c2a799db8a
Date: Tue Oct 2 08:25:29 2018 +0200
Skip BOM in the Python sample file
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1208
src/sample.py | 6 +++---
Date: Tue Oct 2 06:43:06 2018 +0100
Missing "out" indicator (#1209)
-
+
Missing "out" indicator. Affect gobject introspection.
src/hb-font.cc | 2 +-
Date: Mon Oct 1 20:05:00 2018 +0200
[indic] Remove Consonant_Medial from grammar and code
-
- The only Indic CM is U+0A75 GURMUKHI SIGN YAKASH, which Uniscribe
- doesn't treat
+
+ The only Indic CM is U+0A75 GURMUKHI SIGN YAKASH, which Uniscribe doesn't treat
specially, and font designers design for that. So, do the same.
- src/hb-ot-shape-complex-indic-machine.hh | 1244
- ++++++++++++++----------------
+ src/hb-ot-shape-complex-indic-machine.hh | 1244 ++++++++++++++----------------
src/hb-ot-shape-complex-indic-machine.rl | 10 +-
src/hb-ot-shape-complex-indic.cc | 2 +-
src/hb-ot-shape-complex-indic.hh | 6 +-
Date: Mon Oct 1 19:35:48 2018 +0200
[khmer] Add mark-ordering tests
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/667
test/shaping/data/in-house/Makefile.sources | 2 ++
.../b6031119874ae9ff1dd65383a335e361c0962220.ttf | Bin 0 -> 2564 bytes
- .../data/in-house/tests/khmer-mark-order.tests | 25
- +++++++++++++++++++++
+ .../data/in-house/tests/khmer-mark-order.tests | 25 +++++++++++++++++++++
3 files changed, 27 insertions(+)
commit 51436547162a18e88144e7125ad6ce4a69a08d4b
Date: Mon Oct 1 19:09:58 2018 +0200
[khmer] Rewrite grammar completely
-
- Based on experimenting with Uniscribe to extract grammar and
- categories.
-
+
+ Based on experimenting with Uniscribe to extract grammar and categories.
+
Failures down from 44 to 35:
-
+
KHMER: 299089 out of 299124 tests passed. 35 failed (0.0117008%)
-
- We still don't enforce the one-matra rule pre-decomposition,
- but enforce
+
+ We still don't enforce the one-matra rule pre-decomposition, but enforce
an order and one-matra-per-position post-decomposition.
-
+
https://github.com/harfbuzz/harfbuzz/issues/667
src/hb-ot-shape-complex-indic.hh | 2 +-
- src/hb-ot-shape-complex-khmer-machine.hh | 300
- ++++++++++++++++++++-----------
+ src/hb-ot-shape-complex-khmer-machine.hh | 300 ++++++++++++++++++++-----------
src/hb-ot-shape-complex-khmer-machine.rl | 42 +++--
src/hb-ot-shape-complex-khmer.cc | 4 +-
src/hb-ot-shape-complex-khmer.hh | 99 +++++-----
Date: Mon Oct 1 15:01:04 2018 +0200
[use] Disable automatic ZWJ for 'akhn' feature
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/746
src/hb-ot-shape-complex-use.cc | 2 +-
Date: Mon Oct 1 12:45:06 2018 +0200
[use] Change categories for Left_And_* matras
-
+
These are only relevant to Sinhala, because they decompose in other
cases. The USE spec categorizes them all as VPst. No idea why we
weren't following that before.
Date: Mon Oct 1 12:10:00 2018 +0200
[morx] Break out if buffer gets into error
-
+
Was getting stuck not making progress somehow.
src/hb-aat-layout-common.hh | 2 ++
Date: Mon Oct 1 11:34:20 2018 +0200
[cache] Fix cache coherency corner-case
-
+
If key_bits+value_bits-cache_bits==32 then -1 is ambiguous...
src/hb-cache.hh | 6 ++++--
Date: Mon Oct 1 09:40:29 2018 +0330
[circleci] Couple of fixes (#1200)
-
+
* Raise error on warnings on -everything
* Enable fontconfig to two bots
* Fix msan bot now that all of its real complain are gone
Date: Sun Sep 30 18:25:58 2018 +0200
Revert "Fix glib-mkenum warning"
-
+
This reverts commit 247756a7d89008ee6a7d1171dc07ba22454c6034.
-
+
Was wrong. Right fix coming.
src/hb-buffer.h | 2 ++
Date: Sun Sep 30 18:19:54 2018 +0200
Change _HB_SCRIPT_MAX_VALUE from 0xFFFFFFFF to 0x7FFFFFFF
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/504
src/hb-common.h | 8 +++++---
Date: Sun Sep 30 17:48:55 2018 +0200
Fix bug introduced in 9b0b40b3c1ac8155c80ed5dc976228f4d3ec7e1f
-
+
Also discovered by msan bot.
src/hb-ot-shape-fallback.cc | 2 +-
Date: Sun Sep 30 13:10:54 2018 +0200
Fix glib-mkenum warning
-
+
GEN hb-gobject-enums.h
WARNING: Failed to parse "/*< private >*/" in ../../src/hb-buffer.h
Date: Sun Sep 30 12:23:01 2018 +0200
[util] Remove unneeded virtual
-
+
clang warning:
-
- ../../util/options.hh:72:13: warning: destination for this 'memset'
- call is a pointer to dynamic class
- 'option_parser_t'; vtable pointer will be overwritten
- [-Wdynamic-class-memaccess]
+
+ ../../util/options.hh:72:13: warning: destination for this 'memset' call is a pointer to dynamic class
+ 'option_parser_t'; vtable pointer will be overwritten [-Wdynamic-class-memaccess]
memset (this, 0, sizeof (*this));
~~~~~~ ^
- ../../util/options.hh:72:13: note: explicitly cast the pointer to
- silence this warning
+ ../../util/options.hh:72:13: note: explicitly cast the pointer to silence this warning
memset (this, 0, sizeof (*this));
^
(void*)
Date: Sun Sep 30 05:49:08 2018 -0400
[util] Use HB_FALLTHROUGH
-
+
Sure, gcc knows to warn about this as well:
-
- ../../util/options.cc:175:17: warning: this statement may fall through
- [-Wimplicit-fallthrough=]
+
+ ../../util/options.cc:175:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
case 1: m.r = m.t;
~~~~^~~~~
../../util/options.cc:176:5: note: here
case 2: m.b = m.t;
^~~~
-
+
But HOLY SMOKES, look at clang -Weverything bot message:
-
- options.cc:176:5: warning: unannotated fall-through between switch
- labels [-Wimplicit-fallthrough]
+
+ options.cc:176:5: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
case 2: m.b = m.t;
^
- options.cc:176:5: note: insert 'HB_FALLTHROUGH;' to silence this
- warning
+ options.cc:176:5: note: insert 'HB_FALLTHROUGH;' to silence this warning
case 2: m.b = m.t;
^
HB_FALLTHROUGH;
-
+
Right, it's telling me to insert "HB_FALLTHROUGH;" there!!!!!!!!!
util/options.cc | 10 +++++-----
Date: Sun Sep 30 05:47:36 2018 -0400
[util] Mark var static
-
+
From clang -Weverything bot:
-
- options.cc:39:3: warning: no previous extern declaration
- for non-static variable 'supported_font_funcs'
- [-Wmissing-variable-declarations]
+
+ options.cc:39:3: warning: no previous extern declaration for non-static variable 'supported_font_funcs' [-Wmissing-variable-declarations]
util/options.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Sun Sep 30 05:46:20 2018 -0400
[util] Add empty virtual destructor to option_group_t
-
+
From clang -Weverything bot:
-
- ./options.hh:57:8: warning: 'option_group_t' has virtual functions
- but non-virtual destructor [-Wnon-virtual-dtor]
+
+ ./options.hh:57:8: warning: 'option_group_t' has virtual functions but non-virtual destructor [-Wnon-virtual-dtor]
struct option_group_t
^
Date: Sun Sep 30 05:43:22 2018 -0400
[indic/khmer] Remove use of global constructors
-
+
Alternative woul have been to resurrect F_COMBINE that I removed in
70136a78cb9eda244767f8e8a3d30d0f3c569d01
-
- But this does it for now. I'm not sure why check-static-inits.sh
- didn't
+
+ But this does it for now. I'm not sure why check-static-inits.sh didn't
catch this before. Clang -Weverything bot did:
-
+
CXX libharfbuzz_la-hb-ot-shape-complex-indic.lo
- hb-ot-shape-complex-indic.cc:99:1: warning: declaration requires a
- global constructor [-Wglobal-constructors]
+ hb-ot-shape-complex-indic.cc:99:1: warning: declaration requires a global constructor [-Wglobal-constructors]
indic_features[] =
^
1 warning generated.
CXX libharfbuzz_la-hb-ot-shape-complex-khmer.lo
- hb-ot-shape-complex-khmer.cc:36:1: warning: declaration requires a
- global constructor [-Wglobal-constructors]
+ hb-ot-shape-complex-khmer.cc:36:1: warning: declaration requires a global constructor [-Wglobal-constructors]
khmer_features[] =
^
1 warning generated.
Date: Sun Sep 30 05:34:30 2018 -0400
Tweak HB_TAG and HB_UNTAG
-
- uint32_t was getting promoted to signed int, which is not what
- we wanted...
-
+
+ uint32_t was getting promoted to signed int, which is not what we wanted...
+
Wow, clang has become good at generating warnings...
-
- ../../src/hb-common.h:349:29: warning: signed shift result
- (0xFF000000) sets the sign bit of the shift expression's type ('int')
- and becomes negative [-Wshift-sign-overflow]
- _HB_SCRIPT_MAX_VALUE = HB_TAG_MAX, /*<
- skip >*/
+
+ ../../src/hb-common.h:349:29: warning: signed shift result (0xFF000000) sets the sign bit of the shift expression's type ('int') and becomes negative [-Wshift-sign-overflow]
+ _HB_SCRIPT_MAX_VALUE = HB_TAG_MAX, /*< skip >*/
^~~~~~~~~~
../../src/hb-common.h:93:20: note: expanded from macro 'HB_TAG_MAX'
define HB_TAG_MAX HB_TAG(0xff,0xff,0xff,0xff)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
../../src/hb-common.h:89:57: note: expanded from macro 'HB_TAG'
- define HB_TAG(c1,c2,c3,c4)
- ((hb_tag_t)((((uint8_t)(c1))<<24)|(((uint8_t)(c2))<<16)|(((uint8_t)(c3))<<8)|((uint8_t)(c4))))
+ define HB_TAG(c1,c2,c3,c4) ((hb_tag_t)((((uint8_t)(c1))<<24)|(((uint8_t)(c2))<<16)|(((uint8_t)(c3))<<8)|((uint8_t)(c4))))
~~~~~~~~~~~~~~~^ ~~
- ../../src/hb-common.h:349:3: warning: ISO C restricts enumerator
- values to range of 'int' (4294967295 is too large) [-Wpedantic]
- _HB_SCRIPT_MAX_VALUE = HB_TAG_MAX, /*<
- skip >*/
+ ../../src/hb-common.h:349:3: warning: ISO C restricts enumerator values to range of 'int' (4294967295 is too large) [-Wpedantic]
+ _HB_SCRIPT_MAX_VALUE = HB_TAG_MAX, /*< skip >*/
^ ~~~~~~~~~~
src/hb-common.h | 4 ++--
Date: Sun Sep 30 05:27:39 2018 -0400
[font] Make *_advance() fallback to *_advances
-
+
And remove redundant implementations.
src/hb-font.cc | 12 ++++++++++++
Date: Sun Sep 30 03:49:52 2018 -0400
Document setlocale() threadsafety issue
-
+
"Fixes" //github.com/harfbuzz/harfbuzz/issues/1191
src/hb-buffer.cc | 2 ++
Date: Sat Sep 29 03:10:13 2018 +0330
[circleci] Improve clang-everything bot log, more to come
-
+
#1196
.circleci/config.yml | 2 +-
Date: Sat Sep 29 01:57:50 2018 +0330
[ci] Another try on fixing mingw bots
-
- Per
- https://github.com/Alexpux/MSYS2-packages/issues/163#issuecomment-73555971
+
+ Per https://github.com/Alexpux/MSYS2-packages/issues/163#issuecomment-73555971
appveyor.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Fri Sep 28 20:53:48 2018 +0330
[tests] Don't try to get glyph names on failures
-
+
As it may cause a race unrelated to the issue actually happened
test/api/test-multithread.c | 4 ++--
Date: Fri Sep 28 20:47:21 2018 +0330
[ci] Trying to fix mingw bot
-
+
As https://github.com/Alexpux/MSYS2-packages/issues/702
appveyor.yml | 2 +-
Date: Fri Sep 28 11:06:49 2018 -0400
Fix pthread fail for real
-
+
Using a hack...
test/api/Makefile.am | 4 +++-
Date: Fri Sep 28 10:14:23 2018 -0400
[morx] Remove mark_set from Insertion
-
- text-rendering-tests test MORX-32 shows that for Insertion, an unset
- mark is treated
- as mark set at 0. This is unlike the Reordering lookup where un
- unset mark performs
+
+ text-rendering-tests test MORX-32 shows that for Insertion, an unset mark is treated
+ as mark set at 0. This is unlike the Reordering lookup where un unset mark performs
nothing.
-
+
Fixes MORX-32.
src/hb-aat-layout-morx-table.hh | 7 +------
Date: Fri Sep 28 10:00:07 2018 -0400
[morx] unsafe-to-break in Insertion
-
+
Makes MORX-29, MORX-30, MORX-31 pass.
src/hb-aat-layout-morx-table.hh | 2 ++
test/shaping/data/text-rendering-tests/DISABLED | 4 ++++
test/shaping/data/text-rendering-tests/Makefile.sources | 4 ++++
- .../text-rendering-tests/fonts/TestMORXThirtyone.ttf | Bin 0 ->
- 2964 bytes
- .../text-rendering-tests/fonts/TestMORXThirtytwo.ttf | Bin 0 ->
- 2948 bytes
- .../text-rendering-tests/fonts/TestMORXTwentynine.ttf | Bin 0 ->
- 3012 bytes
+ .../text-rendering-tests/fonts/TestMORXThirtyone.ttf | Bin 0 -> 2964 bytes
+ .../text-rendering-tests/fonts/TestMORXThirtytwo.ttf | Bin 0 -> 2948 bytes
+ .../text-rendering-tests/fonts/TestMORXTwentynine.ttf | Bin 0 -> 3012 bytes
.../data/text-rendering-tests/tests/MORX-29.tests | 4 ++++
.../data/text-rendering-tests/tests/MORX-30.tests | 4 ++++
.../data/text-rendering-tests/tests/MORX-31.tests | 8 ++++++++
test-multithread, check the results on every iteration (#1194)
- test/api/test-multithread.c | 59
- ++++++++++++++++++++++++---------------------
+ test/api/test-multithread.c | 59 ++++++++++++++++++++++++---------------------
1 file changed, 32 insertions(+), 27 deletions(-)
commit dbc3070a15290310bb5aade11d04eb24fe958094
Date: Thu Sep 27 16:54:23 2018 -0400
[cache] Use atomic writes in clear()
-
+
To help TSan.
src/hb-cache.hh | 5 ++++-
Date: Thu Sep 27 16:33:49 2018 +0200
Fix infinite loop when walking up the directory hierarchy (#1183)
-
- A single find_package(harfbuzz) line in user code resulted in
- this loop
+
+ A single find_package(harfbuzz) line in user code resulted in this loop
getting stuck when _harfbuzz_libdir_iter became "/".
src/harfbuzz-config.cmake.in | 4 ++++
Date: Wed Sep 26 16:30:26 2018 -0700
Added CFF1 J font subset to api test
-
+
Also fixed FDSelect3_4::get_fd
Fixed test_subset_cff1_strip_hints (wrong font names!)
src/hb-ot-cff-common.hh | 2 +-
.../fonts/SourceHanSans-Regular.41,3041,4E9D.otf | Bin 0 -> 5864 bytes
test/api/fonts/SourceHanSans-Regular.41,4E9D.otf | Bin 0 -> 5500 bytes
- test/api/test-subset-cff1.c | 25
- +++++++++++++++++++--
+ test/api/test-subset-cff1.c | 25 +++++++++++++++++++--
4 files changed, 24 insertions(+), 3 deletions(-)
commit 662f7d7e8bfa77b21ffa05e853f61dda993dcc8a
Date: Wed Sep 26 18:42:37 2018 -0400
[arabic] Do the joiner-flipping only for rlig feature
-
+
See comment.
src/hb-ot-shape-complex-arabic.cc | 24 +++++++++++++++++++-----
Author: Ebrahim Byagowi <ebrahim@gnu.org>
Date: Thu Sep 27 00:08:06 2018 +0330
- [ci] Compile freetype on tsan and put sanitizer flags on correct
- places (#1188)
+ [ci] Compile freetype on tsan and put sanitizer flags on correct places (#1188)
.circleci/config.yml | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
Date: Wed Sep 26 15:02:21 2018 -0400
Fix test-multithread and increase num_threads to 30
-
+
What were you thinking? ;)
- test/api/test-multithread.c | 56
- +++++++++++++++++++++------------------------
+ test/api/test-multithread.c | 56 +++++++++++++++++++++------------------------
1 file changed, 26 insertions(+), 30 deletions(-)
commit 8bb73dad7f3279e1f1362cf9a137504e8ef08985
Add a multithreaded test (#1184)
test/api/Makefile.am | 6 ++
- test/api/test-multithread.c | 146
- ++++++++++++++++++++++++++++++++++++++++++++
+ test/api/test-multithread.c | 146 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 152 insertions(+)
commit 04caf11608d2db13eb6ed2ecc3d406e284b4c13c
Date: Wed Sep 26 12:13:47 2018 -0400
[hb-view] Change subpixel bits from 8 to 6
-
+
To match FreeType units, such that FreeType gets correct size from us.
This matters more now that we allow setting --ft-load-flags.
Date: Tue Sep 25 12:47:37 2018 -0400
Fix iOS build
-
+
Fixes https://github.com/harfbuzz/harfbuzz/pull/1179
src/hb-coretext.cc | 4 ++--
Date: Mon Sep 24 22:49:44 2018 -0700
fixed memory leaks
-
+
in CFF1 & CFF2 accelerators, VORG subsetter
src/hb-ot-cff1-table.hh | 2 ++
test/api/fonts/SourceSansPro-Regular.abc.otf | Bin 0 -> 3412 bytes
.../api/fonts/SourceSansPro-Regular.ac.nohints.otf | Bin 0 -> 3228 bytes
test/api/fonts/SourceSansPro-Regular.ac.otf | Bin 0 -> 3332 bytes
- test/api/test-subset-cff1.c | 104
- +++++++++++++++++++++
- test/api/test-subset-cff2.c | 104
- +++++++++++++++++++++
+ test/api/test-subset-cff1.c | 104 +++++++++++++++++++++
+ test/api/test-subset-cff2.c | 104 +++++++++++++++++++++
9 files changed, 212 insertions(+)
commit 8282e881b51363811078bce53fad6aa5b41f7b41
Date: Mon Sep 24 19:43:01 2018 -0400
Disable msan bot again
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1175
.circleci/config.yml | 2 +-
Date: Mon Sep 24 18:03:34 2018 -0400
Remove F_COMBINE
-
- Now I wonder if any bots will be unhappy we calling | in static
- const initializations...
+
+ Now I wonder if any bots will be unhappy we calling | in static const initializations...
Or would that cost runtime init? Our tests don't detect any..
src/hb-ot-map.hh | 2 --
src/hb-ot-map.hh | 15 ++++++++++-
src/hb-ot-shape-complex-hangul.cc | 2 +-
- src/hb-ot-shape-complex-indic.cc | 52
- +++++++++++++++-----------------------
+ src/hb-ot-shape-complex-indic.cc | 52 +++++++++++++++-----------------------
src/hb-ot-shape-complex-khmer.cc | 38 ++++++++++------------------
src/hb-ot-shape-complex-myanmar.cc | 2 +-
5 files changed, 51 insertions(+), 58 deletions(-)
Author: Ebrahim Byagowi <ebrahim@gnu.org>
Date: Tue Sep 25 01:00:32 2018 +0330
- [circleci] Update sanitizer bots with newer clang and Ubuntu version
- (#1176)
+ [circleci] Update sanitizer bots with newer clang and Ubuntu version (#1176)
- .circleci/config.yml | 48
- ++++++++++++++++++++++++++++++++----------------
+ .circleci/config.yml | 48 ++++++++++++++++++++++++++++++++----------------
1 file changed, 32 insertions(+), 16 deletions(-)
commit 12b8baa7653741ba13a89cd40f1f36b8bac11666
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Mon Sep 24 17:22:39 2018 -0400
- [msan] Enable again to get a build log, and try to play with
- suppressions
+ [msan] Enable again to get a build log, and try to play with suppressions
.circleci/config.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Mon Sep 24 13:04:48 2018 -0400
[check-symbols.sh] Allow weak objects "V"
-
+
ubsan generates these.
src/check-symbols.sh | 2 +-
Date: Mon Sep 24 13:01:35 2018 -0400
Link API test programs with C++ linker
-
+
Needed to make ubsan work.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1174
test/api/Makefile.am | 2 ++
Date: Mon Sep 24 12:52:42 2018 -0400
[msan] Add MSAN_OPTIONS=exitcode=42
-
+
Default exit value is 77, which causes autotools to "skip" test.
.circleci/config.yml | 2 +-
Date: Mon Sep 24 12:43:29 2018 -0400
[circleci] Disable msan and ubsan builds
-
+
https://github.com/harfbuzz/harfbuzz/issues/1174
https://github.com/harfbuzz/harfbuzz/issues/1175
Date: Mon Sep 24 11:52:22 2018 -0400
Ignore weak symbols in check-symbols.sh
-
+
Some clang versions leave a std::round(float) weak symbol around...
src/check-symbols.sh | 2 +-
Date: Mon Sep 24 10:43:06 2018 -0400
[docs] A few improvements
-
+
If we wrote just this much every day...
src/hb-buffer.cc | 4 ++++
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Mon Sep 24 09:56:18 2018 -0400
- Revert change that would decompose text if GPOS mark feature is
- available
-
+ Revert change that would decompose text if GPOS mark feature is available
+
https://github.com/harfbuzz/harfbuzz/issues/653#issuecomment-423905920
src/hb-ot-shape-normalize.cc | 4 +++-
Date: Mon Sep 24 09:54:37 2018 -0400
Fix normalization
-
+
https://github.com/harfbuzz/harfbuzz/commit/62d1e0852a5549a1b510ad46a4b89f12730bb708#commitcomment-30613091
src/hb-ot-shape-normalize.cc | 1 -
Date: Sun Sep 23 22:33:38 2018 -0400
Simplify ZWJ-skipping a bit
-
+
Towards disabling ZWJ-skipping in certain GPOS contexts.
-
+
Part of https://github.com/flutter/flutter/issues/16886
src/hb-ot-layout-gsubgpos.hh | 6 +++---
Date: Sun Sep 23 22:00:34 2018 -0400
Reinit skippy iters when auto_zwj / auto_zwnj change
-
+
Ouch. How did we not hit this bug before...
src/hb-ot-layout-gsubgpos.hh | 17 +++++++++--------
Date: Sun Sep 23 21:32:18 2018 -0400
Prefer decomposed form if font has GPOS mark feature
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/653
src/hb-ot-shape-complex-hebrew.cc | 2 +-
- src/hb-ot-shape-normalize.cc | 126
- ++++++++++++++++++++------------------
+ src/hb-ot-shape-normalize.cc | 126 ++++++++++++++++++++------------------
src/hb-ot-shape-normalize.hh | 7 ++-
3 files changed, 72 insertions(+), 63 deletions(-)
Date: Sun Sep 23 19:12:52 2018 -0400
[ot-font] Fix leak
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1171
-
+
I'm glad we have leak-detector bots now.
src/hb-ot-post-table.hh | 1 +
Add bots with address- and thread-sanitizer
- .circleci/config.yml | 52
- ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ .circleci/config.yml | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
commit 24dd6c1a9d8d571c30dce4d39c1975b1d1cedc2a
Date: Sat Sep 22 16:41:56 2018 +0200
[test] Fix printing subprocess error messages
-
+
Decode the string as Python 3 returns bytes string, and also don’t
assume that it ends with a new line.
Date: Sat Sep 22 17:24:03 2018 +0330
Fix test-subset-* leak issues
-
+
See also https://github.com/harfbuzz/harfbuzz/pull/1169
test/api/hb-subset-test.h | 12 +++++++++---
Date: Sat Sep 22 17:05:52 2018 +0330
Fix test-ot-math leak issue
-
+
See also https://github.com/harfbuzz/harfbuzz/pull/1169
test/api/test-ot-math.c | 4 ++++
Date: Sat Sep 22 16:49:23 2018 +0330
Fix test-set leak issue
-
+
See also https://github.com/harfbuzz/harfbuzz/pull/1169
test/api/test-set.c | 1 +
Date: Sat Sep 22 16:45:31 2018 +0330
Fix test-font leak issue
-
+
See also https://github.com/harfbuzz/harfbuzz/pull/1169
test/api/test-font.c | 1 +
Date: Fri Sep 21 12:16:36 2018 -0700
fixed subroutinized CFF2 flattening
-
+
and some code cleanup
src/hb-cff-interp-common.hh | 2 +-
Date: Thu Sep 20 10:31:06 2018 -0700
Added desubroutinize option to generate-expected-outputs.py
-
+
Currently hb-subset always desubroutinizes CFF fonts.
- Note that even with this option fonttools won't generate the expected
- subset CFF fonts. They were manually created & tweaked to match
- hb-subset output.
+ Note that even with this option fonttools won't generate the expected subset CFF fonts. They were manually created & tweaked to match hb-subset output.
test/subset/generate-expected-outputs.py | 1 +
1 file changed, 1 insertion(+)
Date: Thu Sep 20 09:45:43 2018 -0700
Added VORG struct and its subsetter
-
+
new file: hb-ot-vorg-table.hh
src/Makefile.sources | 1 +
- src/hb-ot-vorg-table.hh | 163
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-vorg-table.hh | 163 ++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-subset.cc | 5 +-
3 files changed, 168 insertions(+), 1 deletion(-)
Date: Wed Sep 19 17:00:10 2018 -0700
Added SourceHanSans-Regular for CFF subset test
-
- Disabled FDSelect serialization to format 0 for compatibility with
- fonttools
-
- src/hb-subset-cff-common.cc | 16
- +++++++++++++---
- .../japanese/SourceHanSans-Regular.default..otf | Bin 0 ->
- 2340 bytes
- ...Regular.default.3042,3044,3046,3048,304A,304B.otf | Bin 0 ->
- 6248 bytes
- ...Regular.default.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 ->
- 6432 bytes
- .../SourceHanSans-Regular.default.61,63,65,6B.otf | Bin 0 ->
- 5428 bytes
- ...Regular.default.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 ->
- 6552 bytes
- .../japanese/SourceHanSans-Regular.default.660E.otf | Bin 0 ->
- 5196 bytes
- .../japanese/SourceHanSans-Regular.drop-hints..otf | Bin 0 ->
- 2188 bytes
- ...ular.drop-hints.3042,3044,3046,3048,304A,304B.otf | Bin 0 ->
- 6076 bytes
- ...ular.drop-hints.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 ->
- 6180 bytes
- .../SourceHanSans-Regular.drop-hints.61,63,65,6B.otf | Bin 0 ->
- 5312 bytes
- ...ular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 ->
- 6248 bytes
- .../SourceHanSans-Regular.drop-hints.660E.otf | Bin 0 ->
- 5088 bytes
- test/subset/data/fonts/SourceHanSans-Regular.otf | Bin 0 ->
- 16427580 bytes
+
+ Disabled FDSelect serialization to format 0 for compatibility with fonttools
+
+ src/hb-subset-cff-common.cc | 16 +++++++++++++---
+ .../japanese/SourceHanSans-Regular.default..otf | Bin 0 -> 2340 bytes
+ ...Regular.default.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> 6248 bytes
+ ...Regular.default.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> 6432 bytes
+ .../SourceHanSans-Regular.default.61,63,65,6B.otf | Bin 0 -> 5428 bytes
+ ...Regular.default.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> 6552 bytes
+ .../japanese/SourceHanSans-Regular.default.660E.otf | Bin 0 -> 5196 bytes
+ .../japanese/SourceHanSans-Regular.drop-hints..otf | Bin 0 -> 2188 bytes
+ ...ular.drop-hints.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> 6076 bytes
+ ...ular.drop-hints.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> 6180 bytes
+ .../SourceHanSans-Regular.drop-hints.61,63,65,6B.otf | Bin 0 -> 5312 bytes
+ ...ular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> 6248 bytes
+ .../SourceHanSans-Regular.drop-hints.660E.otf | Bin 0 -> 5088 bytes
+ test/subset/data/fonts/SourceHanSans-Regular.otf | Bin 0 -> 16427580 bytes
test/subset/data/tests/japanese.tests | 1 +
15 files changed, 14 insertions(+), 3 deletions(-)
Date: Wed Sep 19 16:46:41 2018 -0400
[morx] Implement forward/backward processing
-
+
We reverse too many times. Can be optimized. But I doubt many fonts
use reverse lookups, so doesn't matter.
-
+
Other than not applying user features, this completes morx table
implementation.
- src/hb-aat-layout-morx-table.hh | 40
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-aat-layout-morx-table.hh | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
commit 3bccd62196b5dff70d446c3fe053b1b47bb9c19e
Date: Wed Sep 19 16:02:56 2018 -0400
[morx] Improve buffer position in Insertion w DontAdvance and wo
-
+
Just speculation. Needs tests to determine which is correct behavior.
src/hb-aat-layout-morx-table.hh | 23 ++++++++++++++++++-----
Date: Tue Sep 18 17:24:30 2018 -0700
fixed char widths & standard Encoding in subset CFF
-
+
also merged flush_n_args to flush_args into one
takes start index of the arguments on stack instead of count
Date: Tue Sep 18 15:53:37 2018 -0700
Added SourceSansPro-Regular along as CFF full-font test case
-
- derived "expected" subset fonts from fonttools then manually tweaked
- further so they resemble hb-subset output
-
- ...ourceSansPro-Regular.default.1FC,21,41,20,62,63.otf | Bin 0 ->
- 3640 bytes
- .../SourceSansPro-Regular.default.61,62,63.otf | Bin 0 ->
- 3400 bytes
- .../SourceSansPro-Regular.default.D7,D8,D9,DA,DE.otf | Bin 0 ->
- 3596 bytes
- ...ceSansPro-Regular.drop-hints.1FC,21,41,20,62,63.otf | Bin 0 ->
- 3480 bytes
- .../SourceSansPro-Regular.drop-hints.61,62,63.otf | Bin 0 ->
- 3276 bytes
- ...SourceSansPro-Regular.drop-hints.D7,D8,D9,DA,DE.otf | Bin 0 ->
- 3448 bytes
- test/subset/data/fonts/SourceSansPro-Regular.otf | Bin 0 ->
- 220852 bytes
+
+ derived "expected" subset fonts from fonttools then manually tweaked further so they resemble hb-subset output
+
+ ...ourceSansPro-Regular.default.1FC,21,41,20,62,63.otf | Bin 0 -> 3640 bytes
+ .../SourceSansPro-Regular.default.61,62,63.otf | Bin 0 -> 3400 bytes
+ .../SourceSansPro-Regular.default.D7,D8,D9,DA,DE.otf | Bin 0 -> 3596 bytes
+ ...ceSansPro-Regular.drop-hints.1FC,21,41,20,62,63.otf | Bin 0 -> 3480 bytes
+ .../SourceSansPro-Regular.drop-hints.61,62,63.otf | Bin 0 -> 3276 bytes
+ ...SourceSansPro-Regular.drop-hints.D7,D8,D9,DA,DE.otf | Bin 0 -> 3448 bytes
+ test/subset/data/fonts/SourceSansPro-Regular.otf | Bin 0 -> 220852 bytes
test/subset/data/tests/full-font.tests | 1 +
test/subset/run-tests.py | 4 ++--
test/subset/subset_test_suite.py | 5 +++++
Date: Mon Sep 17 15:34:39 2018 -0700
include curve control points in extents
-
+
this makes results consistent with FT
also optimized handling of path end points
[morx] Implement InsertionChain
- src/hb-aat-layout-morx-table.hh | 87
- ++++++++++++++++-------------------------
+ src/hb-aat-layout-morx-table.hh | 87 ++++++++++++++++-------------------------
1 file changed, 33 insertions(+), 54 deletions(-)
commit c0c85b852d37dad75eeef473e6dd3ec91a3b559b
Date: Mon Sep 17 11:14:56 2018 -0700
implemented get_glyph_extents with CFF1
-
- Implemented path operators in a new struct PathProc hooked up
- to CSOpSet
+
+ Implemented path operators in a new struct PathProc hooked up to CSOpSet
Added current point to CSInterpEnv
src/hb-cff-interp-common.hh | 86 ++++++++-
- src/hb-cff-interp-cs-common.hh | 425
- +++++++++++++++++++++++++++++++++++++++--
+ src/hb-cff-interp-cs-common.hh | 425 +++++++++++++++++++++++++++++++++++++++--
src/hb-cff1-interp-cs.hh | 18 +-
src/hb-cff2-interp-cs.hh | 10 +-
src/hb-null.hh | 2 +-
Date: Mon Sep 17 10:33:34 2018 +0200
Fix installation of cmake config when building with cmake (#1161)
-
+
When building with the auto tools, the manually mantained
- harfbuzz-config.cmake is installed. When building with cmake, we
- can use
+ harfbuzz-config.cmake is installed. When building with cmake, we can use
cmake to generate the correct config files for us and install them.
CMakeLists.txt | 5 +++++
Date: Sun Sep 16 19:33:48 2018 +0200
Revert forcing use of single-parameter static_assert()
-
- Some clang versions define static_assert as a macro apparently,
- so we cannot
+
+ Some clang versions define static_assert as a macro apparently, so we cannot
redefine it...
-
+
This reverts commit 94bfea0ce6a7b4d5641c198d50751748a353df11.
This reverts commit 4e62627831e7457ed60ff87712570065b14b200a.
src/hb-set-digest.hh | 4 ++--
src/hb-set.hh | 6 +++---
src/hb-uniscribe.cc | 2 +-
- src/hb.hh | 34
- +++++++++++++-----------------
+ src/hb.hh | 34 +++++++++++++-----------------
util/options.cc | 3 ++-
23 files changed, 58 insertions(+), 61 deletions(-)
Date: Sun Sep 16 18:11:46 2018 +0200
Fix bots
-
+
"Unused private member" warning turned error. ugh.
src/hb-aat-layout-morx-table.hh | 2 ++
Date: Sun Sep 16 18:09:36 2018 +0200
Enforce single-param static_assert() only
-
+
So we don't accidentally break it again.
src/hb-atomic.hh | 4 ++--
src/hb-set-digest.hh | 4 ++--
src/hb-set.hh | 6 +++---
src/hb-uniscribe.cc | 2 +-
- src/hb.hh | 34
- +++++++++++++++++-------------
+ src/hb.hh | 34 +++++++++++++++++-------------
22 files changed, 60 insertions(+), 56 deletions(-)
commit f1a86e1e6f3906f33fc89de694a4bbbc3e40d2bc
Date: Sat Sep 15 19:43:33 2018 +0200
Disallow null-enabled offsets to unsized structures...
-
+
...like UnsizedArrayOf<>.
-
- This fixes a class of crasher bugs, mostly with color and AAT tables.
- We
- cannot use nullable offsets to varsized data that does not declare
- min_size,
- because it's nost safe to use our fixed-size null pool for types
- that have
+
+ This fixes a class of crasher bugs, mostly with color and AAT tables. We
+ cannot use nullable offsets to varsized data that does not declare min_size,
+ because it's nost safe to use our fixed-size null pool for types that have
their size external. So, use non_null'able offsets for these.
-
- A further enhancement would be to make use of min_size in Null<>
- itself.
+
+ A further enhancement would be to make use of min_size in Null<> itself.
Will try that after.
src/hb-aat-layout-common.hh | 8 ++++----
Date: Sat Sep 15 18:31:14 2018 +0200
[morx] Respect default feature settings
-
+
Does NOT apply user-selected features. But at least now enables
correct subtables.
[morx] Add stub for InsertionChain
- src/hb-aat-layout-morx-table.hh | 209
- ++++++++++++++++++++++++++++++++++++++--
+ src/hb-aat-layout-morx-table.hh | 209 ++++++++++++++++++++++++++++++++++++++--
1 file changed, 200 insertions(+), 9 deletions(-)
commit f8ccb545c47abe8f0f4ed318ff7b5bf176913893
Date: Fri Sep 14 18:59:53 2018 +0200
[dfont] Disable null-processsing for offsets
-
- An offset to unsized arrayis not safe to be redirected to our
- fixed-sized
+
+ An offset to unsized arrayis not safe to be redirected to our fixed-sized
null pool. Plus, we want to reject, not repair, bad-looking dfonts.
src/hb-open-file.hh | 8 ++++----
Date: Fri Sep 14 11:31:33 2018 +0200
[aat] Add enums for pre-defined state and classes
-
+
Not sure how I didn't add before...
src/hb-aat-layout-common.hh | 19 ++++++++++++++++---
Date: Thu Sep 13 20:35:21 2018 +0200
[dfont] Also check dataLen range in sanitize
-
+
Just to disagree with myself re being done with this code...
src/hb-open-file.hh | 1 +
Date: Thu Sep 13 20:30:04 2018 +0200
[dfont] Solve the mystery +2 offset thing!
-
- Previously, ResourceForkHeader was defined as 30 bytes, having the
- typeCountM1 as last member.
- There was a mysterious offset-by-2 in the code, derived from FontTools
- and JDK code this was
+
+ Previously, ResourceForkHeader was defined as 30 bytes, having the typeCountM1 as last member.
+ There was a mysterious offset-by-2 in the code, derived from FontTools and JDK code this was
ported from.
-
- In testing, I observed that typeListZ offset is actually 28.
- Suggesting that the typeCountM1
- does NOT actually belong to ResourceForkHeader, but belongs to the
- array itself. Adjusting for
- that resolves the mystery +2 offset hack, so everything is clean
- and good now.
-
- This, concludes my dfont hacking. The code looks great now, and
- I'm happy to leave it.
+
+ In testing, I observed that typeListZ offset is actually 28. Suggesting that the typeCountM1
+ does NOT actually belong to ResourceForkHeader, but belongs to the array itself. Adjusting for
+ that resolves the mystery +2 offset hack, so everything is clean and good now.
+
+ This, concludes my dfont hacking. The code looks great now, and I'm happy to leave it.
Fuzzers might disagree though, we will see!
src/hb-open-file.hh | 30 ++++++++++++------------------
Date: Thu Sep 13 20:21:54 2018 +0200
Rename HeadlessArrayOf::len to lenP1
-
+
So it doesn't accidentally match our templates, etc.
src/hb-open-type.hh | 14 +++++++-------
[dfont] Push methods further down
- src/hb-open-file.hh | 58
- ++++++++++++++++++++++++++++++-----------------------
+ src/hb-open-file.hh | 58 ++++++++++++++++++++++++++++++-----------------------
1 file changed, 33 insertions(+), 25 deletions(-)
commit 8c9bdcc1feeab321a642bdaac50b716e48ce4263
Date: Thu Sep 13 18:47:53 2018 +0200
[dfont] Make test pass
-
+
Offset 0 is not null in this context.
src/hb-open-file.hh | 2 +-
Date: Thu Sep 13 16:49:26 2018 +0200
[dfont] Clean up sanitize()
-
+
I don't think I broke anything. Fuzzers will let me know..
src/hb-dsalgs.hh | 8 ++++
- src/hb-open-file.hh | 122
- ++++++++++++++++++++++++----------------------------
+ src/hb-open-file.hh | 122 ++++++++++++++++++++++++----------------------------
2 files changed, 64 insertions(+), 66 deletions(-)
commit 361fc2686152ad8c0ebaf19e0522e0fc58ba3953
Date: Wed Sep 12 17:23:08 2018 -0700
fixed hb_plan_subset_cff_fdselect
-
+
FDSelect3/4 sentinel size wasn't taken into account
src/hb-subset-cff-common.cc | 4 ++--
src/hb-ot-cff-common.hh | 6 ++++
src/hb-ot-cff1-table.hh | 6 ----
- src/hb-subset-cff-common.cc | 68
- ++++++++++++++++++++++++++-------------------
+ src/hb-subset-cff-common.cc | 68 ++++++++++++++++++++++++++-------------------
src/hb-subset-cff-common.hh | 10 +++----
src/hb-subset-cff1.cc | 12 ++++----
src/hb-subset-cff2.cc | 12 ++++----
Date: Wed Sep 12 13:22:19 2018 -0700
fixed bugs in Charset serialization
-
+
also some code cleanup
src/hb-ot-cff1-table.hh | 4 ++--
Date: Tue Sep 11 22:41:50 2018 -0700
fixed name mixup in Remap::reset
-
+
it was causing inconsistent Strings Index subset results
src/hb-ot-cff-common.hh | 4 ++--
Date: Tue Sep 11 16:47:55 2018 -0700
misc bug fixes
-
+
Added OpCode_FontMatrix to TopDictOpSet (yet to parse values)
fixed a wrong assert in encode_int
make parse_bcd locale free
- src/hb-cff-interp-dict-common.hh | 92
- +++++++++++++++++++++++++++++-----------
+ src/hb-cff-interp-dict-common.hh | 92 +++++++++++++++++++++++++++++-----------
1 file changed, 68 insertions(+), 24 deletions(-)
commit bb38d0f66388ec37ee9b0e81176d60c66fc17a19
Implement parse_bcd
src/hb-cff-interp-common.hh | 15 --------------
- src/hb-cff-interp-dict-common.hh | 44
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-cff-interp-dict-common.hh | 44 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 44 insertions(+), 15 deletions(-)
commit 45e564a51917475ef6481825a6efb5b99bf1912e
[dfont] Some renaming, plus add link to reference doc
- src/hb-open-file.hh | 79
- ++++++++++++++++++++++++-----------------------------
+ src/hb-open-file.hh | 79 ++++++++++++++++++++++++-----------------------------
1 file changed, 35 insertions(+), 44 deletions(-)
commit 4134ec1307bbaff24972e238bc5e4a403cd3f1c1
Date: Tue Sep 11 17:18:21 2018 +0200
[dfont] Fix test expecatation and minor touch up
-
- I have no way to authoritatively know, but looks like test font only
- has one
+
+ I have no way to authoritatively know, but looks like test font only has one
face. So, adjust test expectation instead.
- src/hb-open-file.hh | 18
- ++++++------------
+ src/hb-open-file.hh | 18 ++++++------------
test/shaping/data/in-house/tests/collections.tests | 2 +-
2 files changed, 7 insertions(+), 13 deletions(-)
Date: Tue Sep 11 16:41:26 2018 +0200
[dfont] Re-enable and fix offset handling
-
+
Fixes https://github.com/harfbuzz/harfbuzz/pull/1085
src/hb-face.cc | 5 +++--
Date: Tue Sep 11 14:35:26 2018 +0200
[ft] Cache advances
-
- I decided to always use the cache, instead of my previous sketch
- direction
- that was to only allocate and use cache if fast advances are not
- available.
+
+ I decided to always use the cache, instead of my previous sketch direction
+ that was to only allocate and use cache if fast advances are not available.
The cache is a mere 1kb, so just use it...
-
+
TODO: Invalidate cache on font size change.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/651
Fixes https://github.com/harfbuzz/harfbuzz/pull/1082
Date: Tue Sep 11 14:21:15 2018 +0200
[util] Add --ft-load-flags
-
+
Useful for performance testing.
-
+
Not hooked to cairo yet. Just changes shaping, not rasterization.
util/helper-cairo.cc | 2 +-
Date: Tue Sep 11 14:11:10 2018 +0200
[util] Add -n shorthand for --num-iterations
-
+
Meh.
util/options.cc | 2 +-
Date: Tue Sep 11 14:05:16 2018 +0200
[ft] Towards caching slow get_h_advance results
-
+
Related to https://github.com/harfbuzz/harfbuzz/pull/1082
src/hb-ft.cc | 24 ++++++++++++++++++++----
[ot-font] Rename
- src/hb-ot-font.cc | 74
- +++++++++++++++++++++++++++----------------------------
+ src/hb-ot-font.cc | 74 +++++++++++++++++++++++++++----------------------------
1 file changed, 37 insertions(+), 37 deletions(-)
commit d8a67dac2a673138bb4d41cd7eab97c9ee987958
Date: Tue Sep 11 12:02:34 2018 +0200
Revert "Remove unused hb_cache_t"
-
+
This reverts commit 473b17af4d421f4ce7ac18c769731bb2aa4088f8.
-
+
Updates to recent changes.
src/Makefile.sources | 1 +
- src/hb-cache.hh | 75
- ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-cache.hh | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-ft.cc | 1 +
3 files changed, 77 insertions(+)
Date: Mon Sep 10 22:37:19 2018 +0200
Make --features rand=1 available to the user
-
+
Use rand=255 to mean "randomize".
-
+
Part of https://github.com/harfbuzz/harfbuzz/pull/803
src/hb-ot-layout-gsub-table.hh | 11 ++++-------
Date: Mon Sep 10 16:36:05 2018 +0200
Respect user's wish if they set rand feature manually
-
+
Except if the set it to 1, which would mean "randomize"... Ugly.
src/hb-ot-layout-gsub-table.hh | 30 ++++++++++++++++--------------
Test 'rand'
test/shaping/data/in-house/Makefile.sources | 1 +
- .../fonts/5bb74492f5e0ffa1fbb72e4c881be035120b6513.ttf | Bin 0 ->
- 1352 bytes
+ .../fonts/5bb74492f5e0ffa1fbb72e4c881be035120b6513.ttf | Bin 0 -> 1352 bytes
test/shaping/data/in-house/tests/rand.tests | 3 +++
3 files changed, 4 insertions(+)
Date: Fri Jan 26 21:36:15 2018 -0500
Allow requesting a specific glyph for 'rand'
-
- Randomization only happens by default. If the user specifies a
- value for
+
+ Randomization only happens by default. If the user specifies a value for
'rand', that value is respected.
src/hb-ot-map.cc | 3 ++-
fix build attempt
- src/hb-ot-cff1-table.hh | 70
- ++++++++++++++++++++++++-------------------------
+ src/hb-ot-cff1-table.hh | 70 ++++++++++++++++++++++++-------------------------
src/hb-subset-cff1.cc | 16 +++++------
2 files changed, 43 insertions(+), 43 deletions(-)
Removed unused subr subset code
- src/hb-subset-cff-common.hh | 98
- ++-------------------------------------------
- src/hb-subset-cff1.cc | 92
- +++++-------------------------------------
- src/hb-subset-cff2.cc | 90
- ++++-------------------------------------
+ src/hb-subset-cff-common.hh | 98 ++-------------------------------------------
+ src/hb-subset-cff1.cc | 92 +++++-------------------------------------
+ src/hb-subset-cff2.cc | 90 ++++-------------------------------------
3 files changed, 22 insertions(+), 258 deletions(-)
commit becd84aa2f2902ea9d2d1677b28945e103a68816
Date: Tue Sep 11 01:26:18 2018 +0200
Add HB_FEATURE_GLOBAL_START/END
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1141
-
+
New API:
HB_FEATURE_GLOBAL_START
HB_FEATURE_GLOBAL_END
Date: Mon Sep 10 16:00:20 2018 -0700
subset CFF1 String Index
-
+
Repurposed FDMap as Remap then subclassed for remapping SIDs
misc code cleanup
src/hb-ot-cff2-table.hh | 12 +-
src/hb-subset-cff-common.cc | 24 +--
src/hb-subset-cff-common.hh | 20 ++-
- src/hb-subset-cff1.cc | 334
- ++++++++++++++++++++++++++++++++-------
+ src/hb-subset-cff1.cc | 334 ++++++++++++++++++++++++++++++++-------
src/hb-subset-cff2.cc | 8 +-
9 files changed, 565 insertions(+), 194 deletions(-)
Date: Mon Sep 10 23:18:07 2018 +0200
Simplify sanitize->check_array()
-
+
Fix a bug in CBDT sanitize, and redundant check in avar.
src/hb-aat-layout-common.hh | 10 ++++------
Date: Mon Sep 10 23:02:24 2018 +0200
Port some VAR arrays to UnsizedArrayOf<>
-
+
Fix avar sanitize().
- src/hb-ot-layout-gsubgpos.hh | 59
- +++++++++++++++++++++++---------------------
+ src/hb-ot-layout-gsubgpos.hh | 59 +++++++++++++++++++++++---------------------
src/hb-ot-var-avar-table.hh | 10 +++++---
src/hb-ot-var-fvar-table.hh | 7 +++---
src/hb-ot-var-hvar-table.hh | 9 ++++---
Date: Mon Sep 10 18:19:37 2018 +0200
Unbreak HB_OPTIONS
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1154
src/hb-debug.hh | 3 +++
Date: Mon Sep 10 17:38:19 2018 +0200
[indic] Do NOT allow matra after Halant,ZWJ
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/556
-
+
Devanagari regresses 12 tests, and Gujarati 2. See:
-
+
https://github.com/harfbuzz/harfbuzz/issues/556#issuecomment-419957472
-
+
New numbers:
-
+
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707299 out of 707394 tests passed. 95 failed (0.0134296%)
GUJARATI: 366353 out of 366457 tests passed. 104 failed (0.0283799%)
GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%)
KANNADA: 951300 out of 951913 tests passed. 613 failed (0.0643966%)
- MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed
- (0.0188871%)
+ MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
ORIYA: 42327 out of 42329 tests passed. 2 failed (0.00472489%)
SINHALA: 271596 out of 271847 tests passed. 251 failed (0.0923313%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
- src/hb-ot-shape-complex-indic-machine.hh | 1688
- ++++++++++++++----------------
+ src/hb-ot-shape-complex-indic-machine.hh | 1688 ++++++++++++++----------------
src/hb-ot-shape-complex-indic-machine.rl | 2 +-
2 files changed, 784 insertions(+), 906 deletions(-)
Date: Mon Sep 10 15:45:32 2018 +0200
Fix sanitize or Context Rule
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1110
src/hb-ot-layout-gsubgpos.hh | 2 +-
Date: Mon Sep 10 13:56:28 2018 +0200
Revert "[subset] Disable GSUB/GPOS subsetting for now"
-
+
This reverts commit 616fd34a69bb69bc35c7e4ea939e71c3ea2e92cb.
src/hb-subset.cc | 4 ++--
Date: Mon Sep 10 11:19:49 2018 +0200
[subset] Disable GSUB/GPOS subsetting for now
-
+
So I can get a release out. I haven't debugged those yet, and they
are producing bad tables.
Date: Mon Sep 10 11:05:33 2018 +0200
[atomic] Fix pointer type passed to InterlockedExchangeAdd()
-
+
John Emmas reported on mailing list that build with MSVC is failing.
Not sure why bots don't catch it, but this should fix.
Date: Fri Sep 7 15:02:57 2018 -0400
Use enum instead of "static const" in class scope
-
+
Technically, static const needs an out-of-class definition. Eg:
-
+
CXXLD libharfbuzz-subset.la
Undefined symbols for architecture x86_64:
"OT::FeatureVariationRecord::min_size", referenced from:
- bool OT::GSUBGPOS::subset<OT::PosLookup>(hb_subset_context_t*)
- constin libharfbuzz_subset_la-hb-subset.o
- bool OT::GSUBGPOS::subset<OT::SubstLookup>(hb_subset_context_t*)
- constin libharfbuzz_subset_la-hb-subset.o
+ bool OT::GSUBGPOS::subset<OT::PosLookup>(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o
+ bool OT::GSUBGPOS::subset<OT::SubstLookup>(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o
"OT::Record<OT::LangSys>::min_size", referenced from:
- OT::Script::subset(hb_subset_context_t*) constin
- libharfbuzz_subset_la-hb-subset.o
+ OT::Script::subset(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o
"OT::IntType<unsigned short, 2u>::min_size", referenced from:
- OT::Script::subset(hb_subset_context_t*) constin
- libharfbuzz_subset_la-hb-subset.o
- OT::RecordListOf<OT::Feature>::subset(hb_subset_context_t*)
- const in libharfbuzz_subset_la-hb-subset.o
+ OT::Script::subset(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o
+ OT::RecordListOf<OT::Feature>::subset(hb_subset_context_t*) const in libharfbuzz_subset_la-hb-subset.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[4]: *** [libharfbuzz-subset.la] Error 1
Date: Thu Sep 6 18:26:13 2018 -0700
fix build attempt ^2
-
+
Added hb-ot-cff1-table.cc to hb-subset sources
Deleted unused variable (charset)
Date: Thu Sep 6 17:56:05 2018 -0700
fix build attempt
-
+
Added HB_INTERNAL to static funtion declarations
src/hb-ot-cff1-table.hh | 8 ++++----
Date: Thu Sep 6 17:28:15 2018 -0700
subset CFF1 Encoding & Charset
-
+
fixed misc Charset bugs
added source file hb-ot-cff1.table.cc
renamed things for clarity & consistency
src/hb-cff-interp-dict-common.hh | 15 +-
src/hb-ot-cff-common.hh | 34 ++--
src/hb-ot-cff1-table.cc | 130 +++++++++++++
- src/hb-ot-cff1-table.hh | 403
- ++++++++++++++++++++++++++++++++-------
+ src/hb-ot-cff1-table.hh | 403 ++++++++++++++++++++++++++++++++-------
src/hb-ot-cff2-table.hh | 24 +--
src/hb-subset-cff1.cc | 247 ++++++++++++++++++++----
src/hb-subset-cff2.cc | 30 +--
src/hb-ot-hdmx-table.hh | 14 ++++++++++----
test/api/fonts/Roboto-Regular.multihdmx.a.ttf | Bin 0 -> 2052 bytes
test/api/fonts/Roboto-Regular.multihdmx.abc.ttf | Bin 0 -> 2468 bytes
- test/api/test-subset-hdmx.c | 20
- ++++++++++++++++++++
+ test/api/test-subset-hdmx.c | 20 ++++++++++++++++++++
4 files changed, 30 insertions(+), 4 deletions(-)
commit 1e6599f59680c81356b2e9ddddb61252490337a0
Date: Wed Sep 5 16:24:28 2018 -0700
[subset] Hook up GSUB/GPOS, but still disabled
-
+
They are still in the drop list.
src/hb-ot-hdmx-table.hh | 3 +-
- src/hb-subset.cc | 75
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-subset.cc | 75 +++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 77 insertions(+), 1 deletion(-)
commit 0d160d5ff5158fd4190201becd652c8f28ef4430
src/hb-machinery.hh | 2 ++
src/hb-null.hh | 43 +++++++++++++++++++-----------
- src/hb-ot-layout-gsub-table.hh | 59
- +++++++++++++++++++++++++++++++++++-------
+ src/hb-ot-layout-gsub-table.hh | 59 +++++++++++++++++++++++++++++++++++-------
src/hb-vector.hh | 2 ++
4 files changed, 81 insertions(+), 25 deletions(-)
Date: Tue Sep 4 11:29:15 2018 -0700
fix build by untemplatizing DictOpSet & DictVal
-
+
as they aren't instantiated with BlendArg (yet)
src/hb-cff-interp-dict-common.hh | 21 +++++++++------------
Date: Tue Sep 4 10:25:21 2018 -0700
Drop hints from CFF2 charstrings
-
- Templatized ArgStack so it may store the default value along with
- blend deltas as BlendArg while parsing blend operator arguments in
- CFF2 charstring
+
+ Templatized ArgStack so it may store the default value along with blend deltas as BlendArg while parsing blend operator arguments in CFF2 charstring
Added get_region_count() method to VarRegionList & VariationStore
src/hb-cff-interp-common.hh | 67 +++++++++++++++++++++++++++------
src/hb-cff1-interp-cs.hh | 5 ++-
- src/hb-cff2-interp-cs.hh | 91
- +++++++++++++++++++++++++++++++++++++++------
+ src/hb-cff2-interp-cs.hh | 91 +++++++++++++++++++++++++++++++++++++++------
src/hb-ot-cff2-table.hh | 22 ++++++-----
src/hb-ot-layout-common.hh | 6 +++
src/hb-subset-cff-common.hh | 60 ++++++++++++++++--------------
Date: Mon Sep 3 18:54:32 2018 -0700
[subset] Keep glyph set in plan
-
+
Should remove the vector version at some point...
src/hb-subset-plan.cc | 19 ++++++++++---------
Date: Mon Sep 3 18:23:23 2018 -0700
[subset] Towards subsetting SingleSubstFormat1
-
+
Why does subset plan not have a hb_set_t of glyphs?
src/hb-machinery.hh | 10 +++++++++-
[subset] Wire up subset() call down to subtables
src/hb-ot-layout-common.hh | 36 +++++++++++++++++++++++
- src/hb-ot-layout-gpos-table.hh | 67
- +++++++++++++++++++++++++++++++++++++++---
+ src/hb-ot-layout-gpos-table.hh | 67 +++++++++++++++++++++++++++++++++++++++---
src/hb-ot-layout-gsub-table.hh | 54 ++++++++++++++++++++++++++++------
src/hb-ot-layout-gsubgpos.hh | 42 ++++++++++++++++++++++++++
4 files changed, 186 insertions(+), 13 deletions(-)
Templatize Lookup::sanitize()
- src/hb-ot-layout-common.hh | 40
- ++++++++++++++++++++++++++++------------
+ src/hb-ot-layout-common.hh | 40 ++++++++++++++++++++++++++++------------
src/hb-ot-layout-gpos-table.hh | 7 ++-----
src/hb-ot-layout-gsub-table.hh | 25 +++----------------------
3 files changed, 33 insertions(+), 39 deletions(-)
[subset] More
src/hb-ot-layout-gpos-table.hh | 10 +++++----
- src/hb-ot-layout-gsub-table.hh | 48
- +++++++++++++++++++++---------------------
+ src/hb-ot-layout-gsub-table.hh | 48 +++++++++++++++++++++---------------------
src/hb-ot-layout-gsubgpos.hh | 22 +++++++++++++------
3 files changed, 45 insertions(+), 35 deletions(-)
Date: Mon Sep 3 16:37:17 2018 -0700
[subset] Fix serialize_subset() calls
-
+
Ouch.
src/hb-open-type.hh | 2 +-
src/hb-ot-layout-common.hh | 77 +++++++++--
src/hb-ot-layout-gpos-table.hh | 103 ++++++++++----
src/hb-ot-layout-gsub-table.hh | 205 +++++++++++++++++++--------
- src/hb-ot-layout-gsubgpos.hh | 306
- ++++++++++++++++++++++++++++++++---------
+ src/hb-ot-layout-gsubgpos.hh | 306 ++++++++++++++++++++++++++++++++---------
4 files changed, 528 insertions(+), 163 deletions(-)
commit 61ce62e55455bb0d6c9db3b076676ab18e51d449
Date: Sun Sep 2 17:00:27 2018 -0700
[subset] Minor
-
+
Remove Lookup::subset().
src/hb-ot-layout-common.hh | 11 -----------
Date: Sat Sep 1 18:34:50 2018 -0700
[subset] Towards GSUB/GPOS subsetting
-
+
Add subset() call for GSUBGPOS struct and its dependencies.
Not hooked up anywhere.
src/hb-machinery.hh | 10 ++++--
src/hb-open-type.hh | 25 ++++++++++++-
- src/hb-ot-layout-common.hh | 80
- +++++++++++++++++++++++++++++++++++-------
+ src/hb-ot-layout-common.hh | 80 +++++++++++++++++++++++++++++++++++-------
src/hb-ot-layout-gdef-table.hh | 33 ++++++++++-------
src/hb-ot-layout-gsub-table.hh | 11 ++++--
src/hb-ot-layout-gsubgpos.hh | 19 ++++++++++
Date: Fri Aug 31 16:46:35 2018 -0700
[subset] De-templatize hb_subset_context_t
-
- We're going to (finally) use virtual methods for
- hb_serialize_context_t
+
+ We're going to (finally) use virtual methods for hb_serialize_context_t
customization, so don't need to carry a Serializer template variable
around... Simplifies code.
templatized ArgStack as a prep to store blends
- src/hb-cff-interp-common.hh | 46
- +++++++++++++++++++++---------------
+ src/hb-cff-interp-common.hh | 46 +++++++++++++++++++++---------------
src/hb-cff-interp-cs-common.hh | 41 ++++++++++++++++++--------------
src/hb-cff-interp-dict-common.hh | 35 ++++++++++++++++-----------
src/hb-cff1-interp-cs.hh | 15 +++++++-----
src/hb-cff2-interp-cs.hh | 14 +++++++----
src/hb-ot-cff1-table.hh | 32 ++++++++++++-------------
- src/hb-ot-cff2-table.hh | 51
- ++++++++++++++++++++++++++--------------
+ src/hb-ot-cff2-table.hh | 51 ++++++++++++++++++++++++++--------------
src/hb-subset-cff-common.hh | 4 ++--
src/hb-subset-cff1.cc | 1 -
src/hb-subset-cff2.cc | 2 +-
Date: Fri Aug 31 13:28:16 2018 -0700
drop hints from CFF1 charstrings
-
+
renamed confusing Stack.size to Stack.count
src/hb-cff-interp-common.hh | 43 +++++++-----
- src/hb-cff-interp-cs-common.hh | 140
- +++++++++++++++++----------------------
+ src/hb-cff-interp-cs-common.hh | 140 +++++++++++++++++----------------------
src/hb-cff-interp-dict-common.hh | 4 +-
src/hb-cff1-interp-cs.hh | 14 ++--
src/hb-cff2-interp-cs.hh | 18 ++---
src/hb-ot-post-table.hh | 2 +-
src/hb-subset-glyf.cc | 1 -
src/hb-subset-glyf.hh | 2 +-
- src/hb-subset-input.hh | 57
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-subset-input.hh | 57 +++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-subset-plan.cc | 3 +--
src/hb-subset-plan.hh | 2 +-
src/hb-subset.cc | 3 +--
src/hb-cff-interp-cs-common.hh | 20 +++++++++++++++++++-
src/hb-subset-cff-common.hh | 18 ++++++++++++++----
src/hb-subset-cff1.cc | 35 ++++++++++++++++++++++------------
- src/hb-subset-cff2.cc | 43
- ++++++++++++++++++++++++++----------------
+ src/hb-subset-cff2.cc | 43 ++++++++++++++++++++++++++----------------
4 files changed, 83 insertions(+), 33 deletions(-)
commit a23b892fe6cc4859a30edc7ffc003ab7624aa5f0
Shuffle
- src/hb-machinery.hh | 62
- +++++++++++++++++++++++++++--------------------------
+ src/hb-machinery.hh | 62 +++++++++++++++++++++++++++--------------------------
1 file changed, 32 insertions(+), 30 deletions(-)
commit 93fe0faaee45b8fb646f7aa33620105c62193885
[subset] Clean up hb_subset_input_t API
- src/hb-subset-input.cc | 44
- +++++++++++++++++++---------------------
+ src/hb-subset-input.cc | 44 +++++++++++++++++++---------------------
src/hb-subset-plan.cc | 4 ++--
src/hb-subset-plan.hh | 10 ++++-----
src/hb-subset.cc | 2 +-
Date: Wed Aug 29 18:18:18 2018 -0700
CFF2 subroutine flattner
-
- Factored out CFF1 & CFF2 common subsetting code in
- hb-subset-cff-common.hh
+
+ Factored out CFF1 & CFF2 common subsetting code in hb-subset-cff-common.hh
src/hb-cff2-interp-cs.hh | 34 +++++--
src/hb-subset-cff-common.hh | 154 +++++++++++++++++++++++++++++
src/hb-subset-cff1.cc | 135 +++-----------------------
- src/hb-subset-cff2.cc | 229
- ++++++++++++++++++--------------------------
+ src/hb-subset-cff2.cc | 229 ++++++++++++++++++--------------------------
4 files changed, 285 insertions(+), 267 deletions(-)
commit d237ce71810045ee400c52740cd8ab6e1113aada
Date: Wed Aug 29 18:09:55 2018 -0700
[subset] Remove unused hb_subset_profile_t
-
+
We might reintroduce it later, but for now remove, as it was unused.
Some things that should have been in this object (drop_hints, etc)
are already in hb_subset_input_t. So, for now, keep everything there.
src/hb-subset-plan.cc | 3 +--
src/hb-subset-plan.hh | 1 -
- src/hb-subset.cc | 39
- +++------------------------------------
+ src/hb-subset.cc | 39 +++------------------------------------
src/hb-subset.h | 16 +---------------
test/api/hb-subset-test.h | 4 +---
test/api/test-subset-hdmx.c | 8 ++------
Date: Wed Aug 29 16:38:04 2018 -0700
[ot-font] Clean up cmap with gid=0
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1145
src/hb-ot-cmap-table.hh | 25 +++++++++++++++----------
Date: Wed Aug 29 22:37:39 2018 +0100
Delete pkg.m4
+
+ pkg.m4 is provided by pkg-config, which is a requirement to build, and this copy is ancient. Delete it to avoid it being used instead of the host copy.
- pkg.m4 is provided by pkg-config, which is a requirement to build,
- and this copy is ancient. Delete it to avoid it being used instead
- of the host copy.
-
- m4/pkg.m4 | 157
- --------------------------------------------------------------
+ m4/pkg.m4 | 157 --------------------------------------------------------------
1 file changed, 157 deletions(-)
commit b95bf075d7b62baf7d6fa1d8f0d1f16fad934975
Date: Wed Aug 29 13:26:17 2018 -0700
Merge branch 'master' into cff-subset
-
+
Renamed cff "private" source/headers without the suffix
commit 0ad081ec324e734cfca60d4d2c36a1be5bc8a067
Date: Wed Aug 29 12:14:30 2018 -0700
Subroutine flattener for CFF1
-
- Subr-flattened charstrings are temporarily re-encoded in ByteStrBuff
- during "plan" phase, then copied to hb_serialize_context_t during
- "write" phase
-
+
+ Subr-flattened charstrings are temporarily re-encoded in ByteStrBuff during "plan" phase, then copied to hb_serialize_context_t during "write" phase
+
CSOpSet may callback opcode processing "virtual" functions via CRTP
-
- Numer struct may store a value as fixed optionally in addition to
- int and float
+
+ Numer struct may store a value as fixed optionally in addition to int and float
src/hb-cff-interp-common-private.hh | 53 ++++++++++--
src/hb-cff-interp-cs-common-private.hh | 109 ++++++++++++++++++-----
src/hb-cff2-interp-cs.hh | 14 +--
src/hb-ot-cff-common-private.hh | 10 +--
src/hb-subset-cff-common-private.hh | 102 +++++++++++++++++++++-
- src/hb-subset-cff1.cc | 152
- ++++++++++++++++++++++-----------
+ src/hb-subset-cff1.cc | 152 ++++++++++++++++++++++-----------
src/hb-subset-cff2.cc | 7 +-
8 files changed, 372 insertions(+), 110 deletions(-)
Date: Tue Aug 28 18:27:41 2018 -0700
Don't declare extern symbols as inline
-
+
clang -O3 was completely removing _get_gdef(), causing link
failure when needed from another compilation unit. Surprisingly,
"extern inline" didn't fix it.
Date: Tue Aug 28 11:02:00 2018 -0700
Explicitly pass reference in hb_auto_t constructor
-
+
Fixes clang bots as well as fuzzer issue.
src/hb-dsalgs.hh | 9 ++++++++-
Date: Sun Aug 26 15:11:24 2018 -0700
Free up hb-ot-face.hh from includes
-
+
There might be a better way to do this, but I couldn't find...
src/hb-face.cc | 1 +
[GDEF] Move code around
src/hb-ot-layout-gdef-table.hh | 118 +-----------------------------------
- src/hb-ot-layout.cc | 134
- ++++++++++++++++++++++++++++++++++++++---
+ src/hb-ot-layout.cc | 134 ++++++++++++++++++++++++++++++++++++++---
src/hb-ot-layout.hh | 14 +----
3 files changed, 128 insertions(+), 138 deletions(-)
Date: Sun Aug 26 01:30:52 2018 -0700
Add template keyword
-
+
I swear I have no idea why this is needed, but it is...
src/hb-ot-layout-gsubgpos.hh | 2 +-
src/hb-ot-face.cc | 108 ----------------------------------
src/hb-ot-face.hh | 2 +-
- src/hb-ot-layout-gdef-table.hh | 129
- +++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout-gdef-table.hh | 129 +++++++++++++++++++++++++++++++++++++++++
src/hb-ot-layout.cc | 14 ++++-
src/hb-ot-layout.hh | 5 +-
5 files changed, 147 insertions(+), 111 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Sun Aug 26 01:15:47 2018 -0700
- [ot-face] Unify GSUB/GPOS accelerators in the table accelerator
- framework
+ [ot-face] Unify GSUB/GPOS accelerators in the table accelerator framework
src/hb-aat-layout.cc | 4 +---
- src/hb-ot-face.cc | 40
- ++--------------------------------------
+ src/hb-ot-face.cc | 40 ++--------------------------------------
src/hb-ot-face.hh | 25 +++++++++++--------------
src/hb-ot-layout-gpos-table.hh | 2 +-
src/hb-ot-layout-gsub-table.hh | 6 +++---
src/hb-machinery.hh | 4 ++--
src/hb-ot-cmap-table.hh | 3 ++-
src/hb-ot-face.cc | 6 +++--
- src/hb-ot-face.hh | 58
- +++++++++++++------------------------------------
+ src/hb-ot-face.hh | 58 +++++++++++++------------------------------------
src/hb-ot-font.cc | 6 ++---
5 files changed, 26 insertions(+), 51 deletions(-)
src/hb-ot-cmap-table.hh | 1 +
src/hb-ot-face.cc | 2 ++
src/hb-ot-face.hh | 55 +++++++++++++++++++++++++++-----
- src/hb-ot-font.cc | 75
- ++++----------------------------------------
+ src/hb-ot-font.cc | 75 ++++----------------------------------------
src/hb-ot-layout-gsubgpos.hh | 1 +
src/hb-ot-layout.hh | 1 -
6 files changed, 58 insertions(+), 77 deletions(-)
[ot-font] Make everything (cmap/metrics) lazy
src/hb-machinery.hh | 5 +++++
- src/hb-ot-font.cc | 51
- ++++++++++++++++++++++++++-------------------------
+ src/hb-ot-font.cc | 51 ++++++++++++++++++++++++++-------------------------
2 files changed, 31 insertions(+), 25 deletions(-)
commit 62fc54725a3863473829f3a3748c9336e4dc0787
Date: Sat Aug 25 23:15:52 2018 -0700
[ot-font] Fallback vertical advance to UPEM
-
+
Used to be ascent+descent. Whatever. This is more convenient for
upcoming changes.
Add hb-ot-face.cc/hh
src/Makefile.sources | 2 +
- src/hb-ot-face.cc | 206
- +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-face.cc | 206 +++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-face.hh | 144 +++++++++++++++++++++++++++++++++++
src/hb-ot-layout.cc | 172 ------------------------------------------
src/hb-ot-layout.hh | 108 +--------------------------
Date: Sat Aug 25 22:44:39 2018 -0700
[face] Introduce character-map API
-
+
New API:
+hb_face_collect_unicodes
+hb_face_collect_variation_selectors
+hb_face_collect_variation_unicodes
docs/harfbuzz-sections.txt | 3 ++
- src/hb-face.cc | 61
- ++++++++++++++++++++++++-
+ src/hb-face.cc | 61 ++++++++++++++++++++++++-
src/hb-face.h | 19 ++++++++
- src/hb-subset.cc | 53
- ---------------------
+ src/hb-subset.cc | 53 ---------------------
src/hb-subset.h | 15 ------
test/api/test-subset-codepoints.c | 6 +--
test/fuzzing/hb-subset-get-codepoints-fuzzer.cc | 2 +-
Date: Sat Aug 25 22:36:36 2018 -0700
Rename hb-*private.hh to hb-*.hh
-
+
Sorry for the noise, downstream custom builders. Please adjust.
- src/Makefile.sources | 75
- +++++++++++-----------
+ src/Makefile.sources | 75 +++++++++++-----------
src/check-includes.sh | 8 +--
src/dump-indic-data.cc | 2 +-
src/dump-khmer-data.cc | 2 +-
Date: Sat Aug 25 22:07:17 2018 -0700
[unicode] Add HB_UNICODE_MAX
-
+
New API:
HB_UNICODE_MAX
Use new hb_auto_t<> constructor with Coverage::Iter
- src/hb-ot-layout-common-private.hh | 65
- ++++++++++++++++++++++++--------------
+ src/hb-ot-layout-common-private.hh | 65 ++++++++++++++++++++++++--------------
src/hb-ot-layout-gsub-table.hh | 30 ++++++------------
2 files changed, 52 insertions(+), 43 deletions(-)
Date: Sat Aug 25 21:08:15 2018 -0700
Add 1-param passthrough constructor to hb_auto_t<>
-
+
And use.
src/hb-dsalgs.hh | 1 +
Date: Sat Aug 25 16:11:26 2018 -0700
[cmap Add hb_subset_collect_variation_unicodes()
-
+
To be moved to hb-face.h later.
- src/hb-ot-cmap-table.hh | 59
- +++++++++++++++++++++++++++++++++++++++++--------
+ src/hb-ot-cmap-table.hh | 59 +++++++++++++++++++++++++++++++++++++++++--------
src/hb-subset.cc | 25 ++++++++++++++++++++-
src/hb-subset.h | 10 +++++++--
3 files changed, 82 insertions(+), 12 deletions(-)
Date: Sat Aug 25 15:56:07 2018 -0700
[cmap] Add hb_subset_collect_variation_selectors()
-
+
To be moved to hb-face later.
src/hb-ot-cmap-table.hh | 20 ++++++++++++++++----
[cmap] Factor out find_best_subtable
- src/hb-ot-cmap-table.hh | 52
- +++++++++++++++++++++++++++++--------------------
+ src/hb-ot-cmap-table.hh | 52 +++++++++++++++++++++++++++++--------------------
1 file changed, 31 insertions(+), 21 deletions(-)
commit b41c43b4e112bfa38fef35694842f242c28a7da2
Minor
- src/hb-ot-cmap-table.hh | 48
- ++++++++++++++++++++++++++----------------------
+ src/hb-ot-cmap-table.hh | 48 ++++++++++++++++++++++++++----------------------
1 file changed, 26 insertions(+), 22 deletions(-)
commit 7d382fa276f44b7b163e98d434cc79f958bf87fb
Date: Sat Aug 25 09:33:30 2018 -0700
[cmap] Simplify collect_unicodes()
-
+
Don't use accelerator (almost). Hooks up Format13 as well.
- src/hb-ot-cmap-table.hh | 52
- +++++++++++++++++++++++++++----------------------
+ src/hb-ot-cmap-table.hh | 52 +++++++++++++++++++++++++++----------------------
1 file changed, 29 insertions(+), 23 deletions(-)
commit d60c465627d76fcfbeb37d6b8f9382f3b84ace6e
Rename get_all_codepoints() to collect_unicodes()
- src/hb-ot-cmap-table.hh | 26
- ++++++++++++-------------
+ src/hb-ot-cmap-table.hh | 26 ++++++++++++-------------
src/hb-subset.cc | 6 +++---
src/hb-subset.h | 4 ++--
test/api/test-subset-codepoints.c | 18 ++++++++---------
Date: Sat Aug 25 08:44:18 2018 -0700
[ot-font] Return char-not-found if mapped to gid 0
-
+
OpenType cmap table can use gid=0 to mean "not covered" to produce
more optimized cmap subtables. Return false from get_nominal_glyph()
for those. hb-ft already does this.
Date: Sat Aug 25 08:18:53 2018 -0700
Add face-builder
-
+
New API:
+hb_face_builder_create
+hb_face_builder_add_table
docs/harfbuzz-sections.txt | 5 +-
- src/hb-face.cc | 149
- +++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-face.cc | 149 +++++++++++++++++++++++++++++++++++++++++++++
src/hb-face.h | 14 +++++
src/hb-subset-plan.cc | 2 +-
src/hb-subset-plan.hh | 2 +-
[sanitize] Document how sanitize machinery works
- src/hb-machinery-private.hh | 62
- +++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-machinery-private.hh | 62 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 62 insertions(+)
commit 142ac5a6be6088771e0ee4b135ba753c80036a9a
src/hb-ot-layout-gsub-table.hh | 8 ++-
src/hb-ot-layout-gsubgpos-private.hh | 2 +-
src/hb-ot-layout-private.hh | 12 ++---
- src/hb-ot-layout.cc | 100
- +++++++++++++++++------------------
+ src/hb-ot-layout.cc | 100 +++++++++++++++++------------------
src/hb-ot-math.cc | 2 +-
src/hb-ot-shape.cc | 5 +-
src/hb-ot-var.cc | 4 +-
drop hints from CFF & CFF2 Private
src/hb-cff-interp-dict-common-private.hh | 24 ++++++++++++++
- src/hb-subset-cff1.cc | 53
- +++++++++++++++++++++++++++---
- src/hb-subset-cff2.cc | 55
- +++++++++++++++++++++++++++++---
+ src/hb-subset-cff1.cc | 53 +++++++++++++++++++++++++++---
+ src/hb-subset-cff2.cc | 55 +++++++++++++++++++++++++++++---
3 files changed, 123 insertions(+), 9 deletions(-)
commit cef75ea41a513a612a683bced27ced31761204b5
Date: Fri Aug 17 13:13:18 2018 -0700
Added CFF2 Subr nullifier
-
+
along with CFF2 charstring interpreter
factored out common code between CFF1 & CFF2 to CSInterpreter
moved fetch_op from Interpreter to InterpEnv
src/Makefile.sources | 1 +
src/hb-cff-interp-common-private.hh | 44 +++++++--------
- src/hb-cff-interp-cs-common-private.hh | 95
- +++++++++++++++++++++++++++++--
+ src/hb-cff-interp-cs-common-private.hh | 95 +++++++++++++++++++++++++++++--
src/hb-cff-interp-dict-common-private.hh | 3 +-
src/hb-cff1-interp-cs.hh | 82 ---------------------------
- src/hb-cff2-interp-cs.hh | 97
- ++++++++++++++++++++++++++++++++
+ src/hb-cff2-interp-cs.hh | 97 ++++++++++++++++++++++++++++++++
src/hb-ot-cff-common-private.hh | 4 ++
src/hb-ot-cff2-table.hh | 7 ++-
src/hb-subset-cff1.cc | 1 +
Date: Thu Aug 16 08:03:46 2018 -0700
renamed CFF::Index to CFF::CFFIndex
-
+
to avoid confusion with OT::Index
- src/hb-ot-cff-common-private.hh | 38
- +++++++++++++++++++-------------------
+ src/hb-ot-cff-common-private.hh | 38 +++++++++++++++++++-------------------
src/hb-ot-cff1-table.hh | 4 ++--
src/hb-ot-cff2-table.hh | 2 +-
src/hb-subset-cff2.cc | 4 ++--
Date: Thu Aug 16 00:25:57 2018 -0700
renamed OT::cff to OT::cff1 for consistency
-
+
along with HB_OT_TAG_cff1
src/hb-ot-cff1-table.hh | 14 +++++++-------
Date: Thu Aug 16 00:13:09 2018 -0700
renamed CFF version 1 structs and sources to CFF1 from CFF
-
+
"CFF" is used for shared structs & sources between CFF1 & CFF2
except OT:cff is for CFF version 1 table
src/Makefile.sources | 8 +-
src/{hb-cff-interp-cs.hh => hb-cff1-interp-cs.hh} | 22 ++--
- src/{hb-ot-cff-table.hh => hb-ot-cff1-table.hh} | 150
- +++++++++++-----------
+ src/{hb-ot-cff-table.hh => hb-ot-cff1-table.hh} | 150 +++++++++++-----------
src/hb-ot-font.cc | 2 +-
src/{hb-subset-cff.cc => hb-subset-cff1.cc} | 86 ++++++-------
src/{hb-subset-cff.hh => hb-subset-cff1.hh} | 8 +-
Date: Wed Aug 15 12:00:19 2018 -0700
CFF Subrs subsetting
-
+
Unreferenced subroutines are nullified (not removed) in a subset font
-
- Separate Interpreter struct from hb-ot-cff-common-private.hh in a
- set of four header files, augmented for CharString (CS):
+
+ Separate Interpreter struct from hb-ot-cff-common-private.hh in a set of four header files, augmented for CharString (CS):
hb-cff-interp-common-private.hh
hb-cff-interp-dict-common-private.hh
hb-cff-interp-cs-common-private.hh
hb-cff-interp-cs.hh
-
- Interpreter runtime is separated off as a new struct InterpEnv
- sub-classed differently for Dict and CharString (CS)
+
+ Interpreter runtime is separated off as a new struct InterpEnv sub-classed differently for Dict and CharString (CS)
src/Makefile.sources | 8 +-
- src/hb-cff-interp-common-private.hh | 581
- +++++++++++++++++++++++++++++++
+ src/hb-cff-interp-common-private.hh | 581 +++++++++++++++++++++++++++++++
src/hb-cff-interp-cs-common-private.hh | 174 +++++++++
src/hb-cff-interp-cs.hh | 282 +++++++++++++++
src/hb-cff-interp-dict-common-private.hh | 183 ++++++++++
- src/hb-ot-cff-common-private.hh | 562
- ++----------------------------
+ src/hb-ot-cff-common-private.hh | 562 ++----------------------------
src/hb-ot-cff-table.hh | 165 ++++-----
src/hb-ot-cff2-table.hh | 147 ++++----
src/hb-subset-cff-common-private.hh | 83 +++++
Date: Tue Aug 14 14:47:20 2018 -0700
Add guard around free_static_C_locale
-
+
Add HB_USE_ATEXIT guard around free_static_C_locale missed by previous
commit.
Date: Tue Aug 14 13:50:24 2018 -0700
Guard free_static function definitions with macro
-
+
Add HB_USE_ATEXIT macros around free_static function definitions to
avoid unused function compiler warnings/errors.
Date: Mon Aug 13 10:30:41 2018 -0700
Don't add reference in get_unicode_funcs() functions
-
+
Users don't expect a new reference returned from a get() function.
- Indeed, all users of that API I foud where NOT destroying the
- reference.
+ Indeed, all users of that API I foud where NOT destroying the reference.
Just change the implementations to NOT return a reference.
-
+
This applies to the following APIs:
hb_unicode_funcs_get_default()
hb_glib_get_unicode_funcs()
hb_icu_get_unicode_funcs()
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1134
src/hb-buffer.cc | 3 +--
Date: Sun Aug 12 18:20:53 2018 -0700
[uniscribe] Use lazy loader
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1129
- src/hb-uniscribe.cc | 56
- +++++++++++++++++++++++++++--------------------------
+ src/hb-uniscribe.cc | 56 +++++++++++++++++++++++++++--------------------------
1 file changed, 29 insertions(+), 27 deletions(-)
commit 266368993625e0cfb6eef9188f8b9aa29fb97391
[lazy] Use for C_locale
- src/hb-common.cc | 60
- ++++++++++++++++++++++++++++----------------------------
+ src/hb-common.cc | 60 ++++++++++++++++++++++++++++----------------------------
1 file changed, 30 insertions(+), 30 deletions(-)
commit 747d2564e6bdcc15cf6a197e543fb732924159c5
[lazy] Port more
src/hb-machinery-private.hh | 1 -
- src/hb-shaper.cc | 78
- ++++++++++++++++++++-------------------------
+ src/hb-shaper.cc | 78 ++++++++++++++++++++-------------------------
src/hb-uniscribe.cc | 3 +-
3 files changed, 37 insertions(+), 45 deletions(-)
[lazy] Port more to it
- src/hb-shape.cc | 75
- +++++++++++++++++++++++++++++----------------------------
+ src/hb-shape.cc | 75 +++++++++++++++++++++++++++++----------------------------
1 file changed, 38 insertions(+), 37 deletions(-)
commit 6901090945d7e16102f3a2b168465434032b9a09
[lazy] Make hb_lazy_loader_t<> more usable
src/hb-ft.cc | 7 +++---
- src/hb-machinery-private.hh | 57
- +++++++++++++++++++++++++++------------------
+ src/hb-machinery-private.hh | 57 +++++++++++++++++++++++++++------------------
2 files changed, 37 insertions(+), 27 deletions(-)
commit bb905e9afcc3eb28a22ba78c09e661a814d04c1f
Date: Sun Aug 12 16:30:39 2018 -0700
[icu] Use get_relaxed for normalizer access
-
- We've had the proper barriers already. No need for more with
- every access.
+
+ We've had the proper barriers already. No need for more with every access.
src/hb-icu.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[lazy] Use for ft_library
- src/hb-ft.cc | 61
- ++++++++++++++++++++++-----------------------
+ src/hb-ft.cc | 61 ++++++++++++++++++++++-----------------------
src/hb-glib.cc | 2 +-
src/hb-icu.cc | 2 +-
src/hb-machinery-private.hh | 2 +-
[ot/ft] Port font_funcs statis to lazy-loader
- src/hb-ft.cc | 56
- ++++++++++++++++++++++-----------------------
+ src/hb-ft.cc | 56 ++++++++++++++++++++++-----------------------
src/hb-machinery-private.hh | 14 ++++++++++++
src/hb-ot-font.cc | 49 +++++++++++++++++----------------------
3 files changed, 62 insertions(+), 57 deletions(-)
[ucdn/glib/icu] Port unicode_funcs statics to lazy-loader
src/hb-glib.cc | 50 ++++++++++++++++++--------------------
- src/hb-icu.cc | 59
- ++++++++++++++++-----------------------------
+ src/hb-icu.cc | 59 ++++++++++++++++-----------------------------
src/hb-machinery-private.hh | 28 ++++++++++++++++-----
src/hb-ucdn.cc | 51 +++++++++++++++++----------------------
4 files changed, 88 insertions(+), 100 deletions(-)
[lazy] More
- src/hb-machinery-private.hh | 45
- +++++++++++++++++++++++++++++++++++++--------
+ src/hb-machinery-private.hh | 45 +++++++++++++++++++++++++++++++++++++--------
1 file changed, 37 insertions(+), 8 deletions(-)
commit 5abdf5eebadf9a4fbd50c1a893c9654de74d22ac
[lazy] More shuffle
- src/hb-machinery-private.hh | 80
- +++++++++++++++++++--------------------------
+ src/hb-machinery-private.hh | 80 +++++++++++++++++++--------------------------
1 file changed, 34 insertions(+), 46 deletions(-)
commit 5d9863be6ecf873033cbab732207dd420f3866e7
Date: Sun Aug 12 12:21:56 2018 -0700
Add explicit_operator
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1127
src/hb-iter-private.hh | 2 +-
Date: Fri Aug 10 12:55:22 2018 -0700
fixed inclusion of excluded Private & local Subrs
-
+
It was bloating a multi-FD subset font unnecessarily
defined a wrapper struct FDMap for fdmap
src/hb-ot-cff-common-private.hh | 34 ++++++++++++++++++++-----
src/hb-subset-cff-common-private.cc | 6 ++---
src/hb-subset-cff-common-private.hh | 4 +--
- src/hb-subset-cff.cc | 48
- +++++++++++++++++++----------------
- src/hb-subset-cff2.cc | 50
- ++++++++++++++++++++-----------------
+ src/hb-subset-cff.cc | 48 +++++++++++++++++++----------------
+ src/hb-subset-cff2.cc | 50 ++++++++++++++++++++-----------------
5 files changed, 87 insertions(+), 55 deletions(-)
commit 64c541226457907ec1801a5766050ee64feb67e8
Date: Fri Aug 10 11:07:07 2018 -0700
Added CFF support
-
+
Added sources hb-ot-cff-table.hh, hb-subset-cff.cc & hh
Templatized Index because CFF uses 16-bit count while CFF2 uses 32-bit
Misc code cleanup & bug fixes
src/Makefile.sources | 9 +-
src/hb-ot-cff-common-private.hh | 477 ++++++++++++-------
- src/hb-ot-cff-table.hh | 919
- ++++++++++++++++++++++++++++++++++++
+ src/hb-ot-cff-table.hh | 919 ++++++++++++++++++++++++++++++++++++
src/hb-ot-cff2-table.hh | 235 ++++-----
src/hb-ot-font.cc | 1 +
src/hb-subset-cff-common-private.cc | 6 +-
Date: Thu Aug 9 00:56:28 2018 -0700
Revert "[iter] Make operator bool explicit"
-
+
This reverts commit 66920a6bace7c54c8166c4ed938b6ffc5fabcf2b.
-
+
Some of our bots (Oracle Studio and Apple gcc 4.2) do not allow
explicit except for constructors.
-
+
https://github.com/harfbuzz/harfbuzz/issues/1127
src/hb-iter-private.hh | 2 +-
Date: Thu Aug 9 00:28:40 2018 -0700
Fix lazy_loader fini()
-
+
Was creating object even if wasn't there.
src/hb-machinery-private.hh | 2 +-
Date: Thu Aug 9 00:22:37 2018 -0700
[atomic] Add hb_atomic_ptr_t<> and port all uses
-
+
Found and fixed a couple bugs.
-
+
Found a couple multithreading issues. Marked them with "XXX-MT-bug".
src/hb-atomic-private.hh | 34 +++++++++++++++++++++++++++++++---
Date: Wed Aug 8 22:45:49 2018 -0700
[atomic] Unify typedef
-
+
Removes volatile from fallback implementation. That was handwavy
anyway.
Date: Wed Aug 8 22:43:53 2018 -0700
[atomic] Change Mac atomic int type to int
-
+
If ever int is not 32bit, we'll fix this...
src/hb-atomic-private.hh | 2 +-
Date: Wed Aug 8 21:42:18 2018 -0700
Fix assertion failure
-
+
https://bugzilla.mozilla.org/show_bug.cgi?id=1476334
src/hb-machinery-private.hh | 3 ++-
Date: Tue Aug 7 09:52:06 2018 -0700
Add +hb_font_get_glyph_advances_for_direction
-
+
New API:
+hb_font_get_glyph_advances_for_direction
Date: Tue Aug 7 09:47:00 2018 -0700
Actually add hb_font_get_glyph_[hv]_advances
-
+
New API:
+hb_font_get_glyph_h_advances
+hb_font_get_glyph_v_advances
Date: Mon Aug 6 15:32:13 2018 -0700
[iter] Make operator bool explicit
-
+
We would need to write:
-
+
for (Iter<T> it (...); bool (t); t++)
-
+
instead of:
-
+
for (Iter<T> it (...); t; t++)
-
+
But I think it's an improvement in code readability in the long term.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1127
src/hb-iter-private.hh | 2 +-
Date: Mon Aug 6 10:04:53 2018 -0700
subset FDSelect and FDArray
-
- Added a set of sources hb-subset-cff-common-private.cc & .hh for
- FDSelect subseting code.
- Added FDSelect format 4 (CFF2 only) support. Shared its implementation
- with format 3 as a template.
+
+ Added a set of sources hb-subset-cff-common-private.cc & .hh for FDSelect subseting code.
+ Added FDSelect format 4 (CFF2 only) support. Shared its implementation with format 3 as a template.
src/Makefile.sources | 2 +
src/hb-ot-cff-common-private.hh | 130 ++++++++++++++++-------
src/hb-ot-cff2-table.hh | 71 ++++++++++++-
- src/hb-subset-cff-common-private.cc | 200
- ++++++++++++++++++++++++++++++++++++
+ src/hb-subset-cff-common-private.cc | 200 ++++++++++++++++++++++++++++++++++++
src/hb-subset-cff-common-private.hh | 54 ++++++++++
src/hb-subset-cff2.cc | 71 ++++++++++---
6 files changed, 476 insertions(+), 52 deletions(-)
Date: Mon Aug 6 09:45:17 2018 -0700
Add batch advance width callback function
-
+
New API:
+hb_font_funcs_set_glyph_h_advances_func
+hb_font_funcs_set_glyph_v_advances_func
docs/harfbuzz-sections.txt | 6 +
src/hb-font-private.hh | 41 +++++--
- src/hb-font.cc | 299
- +++++++++++++++++++++++++++------------------
+ src/hb-font.cc | 299 +++++++++++++++++++++++++++------------------
src/hb-font.h | 53 ++++++--
src/hb-ot-shape.cc | 3 +-
5 files changed, 255 insertions(+), 147 deletions(-)
Date: Mon Aug 6 06:17:48 2018 -0700
Port _nil objects to Null() machinery
-
+
Finally, unified!
src/hb-blob-private.hh | 1 +
src/hb-face-private.hh | 6 +--
src/hb-face.cc | 5 ++-
src/hb-font-private.hh | 10 +++--
- src/hb-font.cc | 66
- ++++++++++++++++--------------
+ src/hb-font.cc | 66 ++++++++++++++++--------------
src/hb-null.hh | 11 ++++-
src/hb-ot-shape-complex-arabic-fallback.hh | 11 +++--
src/hb-shape-plan-private.hh | 1 +
[BASE] Rename horzi/vert to h/v
- src/hb-ot-layout-base-table.hh | 68
- +++++++++++++++++++++---------------------
+ src/hb-ot-layout-base-table.hh | 68 +++++++++++++++++++++---------------------
1 file changed, 34 insertions(+), 34 deletions(-)
commit da48aca1be89efbb8b3ca4471f542aa54aff17c4
Date: Mon Aug 6 05:52:12 2018 -0700
[BASE] Misc fixes
-
+
The code was badly broken. In better shape now, but still, needs
a full review before ever working.
- src/hb-ot-layout-base-table.hh | 163
- +++++++++++++++++------------------------
+ src/hb-ot-layout-base-table.hh | 163 +++++++++++++++++------------------------
1 file changed, 68 insertions(+), 95 deletions(-)
commit f9cfa5cb0e70203279e74fb6adb0cd4570238ff8
Move Null system to hb-null.hh
src/Makefile.sources | 1 +
- src/hb-null.hh | 97
- ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-null.hh | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-private.hh | 65 +----------------------------------
3 files changed, 99 insertions(+), 64 deletions(-)
Move hb_vector_t to hb-vector-private.hh
src/Makefile.sources | 1 +
- src/hb-dsalgs.hh | 297
- -----------------------------------------------
+ src/hb-dsalgs.hh | 297 -----------------------------------------------
src/hb-object-private.hh | 109 ++++++++++++++++-
src/hb-vector-private.hh | 239 ++++++++++++++++++++++++++++++++++++++
4 files changed, 346 insertions(+), 300 deletions(-)
Move some more code around
src/hb-dsalgs.hh | 43 +++++++++++++++++++++++++++++++++++++++++++
- src/hb-private.hh | 51
- +--------------------------------------------------
+ src/hb-private.hh | 51 +--------------------------------------------------
2 files changed, 44 insertions(+), 50 deletions(-)
commit 92806ee055c8efb68fcbe9e1750ce2532a1f8ab3
Date: Sun Aug 5 21:41:52 2018 -0700
Move null data definitions to hb-static.cc
-
+
Also remove " " null data for Tag. Just use zeroes.
src/hb-open-type-private.hh | 3 +--
Date: Fri Aug 3 17:03:32 2018 -0700
[ot] Add misc tables to tables_t
-
+
Most unused.
src/hb-ot-layout-private.hh | 36 ++++++++++++++++++++++--------------
src/hb-ot-layout-gpos-table.hh | 4 ++--
src/hb-ot-layout-gsub-table.hh | 4 ++--
src/hb-ot-layout-private.hh | 7 ++----
- src/hb-ot-layout.cc | 49
- +++++++++++++++++++-----------------------
+ src/hb-ot-layout.cc | 49 +++++++++++++++++++-----------------------
5 files changed, 30 insertions(+), 40 deletions(-)
commit f73d2775cf649d148ace7c2593da9666d60fc1be
Date: Fri Aug 3 16:34:25 2018 -0700
[ot] More shuffling
-
+
Misc. table loading now properly automated.
- src/hb-ot-layout-private.hh | 67
- +++++++++++++++++++++++++++++----------------
+ src/hb-ot-layout-private.hh | 67 +++++++++++++++++++++++++++++----------------
src/hb-ot-layout.cc | 25 +++++++++++------
src/hb-ot-math.cc | 2 +-
3 files changed, 61 insertions(+), 33 deletions(-)
Date: Fri Aug 3 14:35:09 2018 -0700
Removed parsed hint fields from CFF2PrivateDictValues
-
- Instead moved & stored uniformly in values vector (renamed from
- opstrs)
- This should be fine as we aren't likely going to use them as hints
- after all
+
+ Instead moved & stored uniformly in values vector (renamed from opstrs)
+ This should be fine as we aren't likely going to use them as hints after all
Templatized DictValues whether to parse them out
For subsetter, they aren't parsed
src/hb-ot-cff-common-private.hh | 113 ++++++++++++++----------
- src/hb-ot-cff2-table.hh | 185
- ++++++++++++----------------------------
+ src/hb-ot-cff2-table.hh | 185 ++++++++++++----------------------------
src/hb-subset-cff2.cc | 2 +-
3 files changed, 120 insertions(+), 180 deletions(-)
[ot] Move code around
- src/hb-ot-layout.cc | 211
- ++++++++++++++++++++++++++--------------------------
+ src/hb-ot-layout.cc | 211 ++++++++++++++++++++++++++--------------------------
1 file changed, 106 insertions(+), 105 deletions(-)
commit 5e718a751efdda89511c9f30238b500125193499
Date: Thu Aug 2 23:04:42 2018 -0700
[ot] Use switch for checking for blacklisted GDEF tables
-
+
Faster / more compact code.
- src/hb-ot-layout.cc | 107
- +++++++++++++++++++++++++++++-----------------------
+ src/hb-ot-layout.cc | 107 +++++++++++++++++++++++++++++-----------------------
1 file changed, 59 insertions(+), 48 deletions(-)
commit b5cdf5280d5b00df5356cc5c3236844ca0576bd0
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Aug 2 22:56:42 2018 -0700
- [ot] In GDEF blacklisting logic, remove the glyph index check
- for Times
-
+ [ot] In GDEF blacklisting logic, remove the glyph index check for Times
+
Just blacklist based on table sizes like we do for other fonts.
src/hb-ot-layout.cc | 12 ------------
Author: Michiharu Ariza <ariza@adobe.com>
Date: Thu Aug 2 16:28:10 2018 -0700
- templatized CFF2 accelerator for lean Private dict interpretting
- for subset
-
+ templatized CFF2 accelerator for lean Private dict interpretting for subset
+
also fixed local subrs serialization
src/hb-ot-cff-common-private.hh | 8 ++-
- src/hb-ot-cff2-table.hh | 119
- ++++++++++++++++++++++++++++++++--------
+ src/hb-ot-cff2-table.hh | 119 ++++++++++++++++++++++++++++++++--------
src/hb-subset-cff2.cc | 13 +++--
3 files changed, 109 insertions(+), 31 deletions(-)
Reduce storage by sharing face amongst lazy_loaders
- src/hb-machinery-private.hh | 113
- ++++++++++++++++++++++++--------------------
+ src/hb-machinery-private.hh | 113 ++++++++++++++++++++++++--------------------
src/hb-ot-font.cc | 19 ++++----
src/hb-ot-layout-private.hh | 11 +++--
src/hb-ot-layout.cc | 9 ++--
Internal templatization of lazy-loaders
- src/hb-machinery-private.hh | 74
- ++++++++++++++++++++-------------------------
+ src/hb-machinery-private.hh | 74 ++++++++++++++++++++-------------------------
1 file changed, 32 insertions(+), 42 deletions(-)
commit ed7b2e58fc9afb547656cf28eb4a253d989de43c
Rename
- src/hb-coretext.cc | 46
- +++++++++++++++++++++++-----------------------
+ src/hb-coretext.cc | 46 +++++++++++++++++++++++-----------------------
src/hb-directwrite.cc | 28 ++++++++++++++--------------
src/hb-fallback-shape.cc | 24 ++++++++++++------------
src/hb-graphite2.cc | 26 +++++++++++++-------------
Date: Wed Aug 1 16:32:27 2018 -0700
fixed Index::serialize
-
+
The bug was causing CharString of the last glyph corrupt
src/hb-ot-cff-common-private.hh | 4 +++-
Date: Wed Aug 1 16:06:52 2018 -0700
fixed CFF2VariationStore::serialize
-
+
also get_size
src/hb-ot-cff2-table.hh | 7 ++++---
[atomic] Fix Solaris ones to add proper barriers
- src/hb-atomic-private.hh | 52
- +++++++++++++++++++++++++++++++++---------------
+ src/hb-atomic-private.hh | 52 +++++++++++++++++++++++++++++++++---------------
1 file changed, 36 insertions(+), 16 deletions(-)
commit 19dfaa351568887a74cee2c46d6acfcc3fa718ff
Date: Wed Aug 1 11:30:38 2018 -0700
Implemented hb_subset_cff2
-
+
Added serialize functions to CFF2 structs
Fixed issues & bugs & code cleanup
Now subsetting CFF2 table outputs something
- src/hb-ot-cff-common-private.hh | 428
- +++++++++++++++++++++++++++++++++++-----
+ src/hb-ot-cff-common-private.hh | 428 +++++++++++++++++++++++++++++++++++-----
src/hb-ot-cff2-table.hh | 237 +++++++++++++++++-----
src/hb-private.hh | 2 +-
- src/hb-subset-cff2.cc | 392
- +++++++++++++++++++++++++++++++-----
+ src/hb-subset-cff2.cc | 392 +++++++++++++++++++++++++++++++-----
4 files changed, 914 insertions(+), 145 deletions(-)
commit 1a7fed631880fff8a947ebec9c7427efff581916
Author: Ebrahim Byagowi <ebrahim@gnu.org>
Date: Wed Aug 1 12:15:44 2018 +0430
- Revert "Add a new API, hb_ot_layout_get_feature_name_ids (#976)"
- (#1121)
-
+ Revert "Add a new API, hb_ot_layout_get_feature_name_ids (#976)" (#1121)
+
This reverts commit 0c1b287b72e91e0898d75acb5d5acf1c6b9a7498.
docs/harfbuzz-sections.txt | 1 -
src/hb-ot-layout-common-private.hh | 14 -------
- src/hb-ot-layout.cc | 86
- --------------------------------------
+ src/hb-ot-layout.cc | 86 --------------------------------------
src/hb-ot-layout.h | 8 ----
4 files changed, 109 deletions(-)
Date: Tue Jul 31 23:01:05 2018 -0700
[atomic] On IBM, use light-weight sync for everything
-
+
lwsync() is a full read/write-barrier. That's all we need, never
need sync(). I'm not sure why an isync() was used in fetch_and_add,
but since that's a read-modify-write, I just changed it to have
Date: Tue Jul 31 23:00:15 2018 -0700
[atomic] Add XXX items around Solaris ops
-
+
Since add_int and cas are both read-modify-write, I wonder if we
also need a barrier after them.
Date: Tue Jul 31 22:51:38 2018 -0700
[atomic] Fix get() impl
-
- Originally, glib's atomic_get was implemented as "memory_barrier;
- load".
+
+ Originally, glib's atomic_get was implemented as "memory_barrier; load".
I copied this into cairo, fontconfig, and harfbuzz. However, that's
wrong. Correct way is "load; memory_barrier". The details are long
and hard to fully grasp. Best to read:
-
+
https://www.kernel.org/doc/Documentation/memory-barriers.txt
-
+
Also see my report against GNOME:
-
+
https://gitlab.gnome.org/GNOME/glib/issues/1449
-
+
Note that this is irrelevant if C++11-like atomic ops are available.
src/hb-atomic-private.hh | 28 +++++++++++++++++-----------
Date: Tue Jul 31 21:05:51 2018 -0700
[atomic] Add get_relaxed / set_relaxed
-
+
To help TSan and be more "correct".
src/hb-atomic-private.hh | 37 ++++++++++++++++++++++-------------
src/hb-common.cc | 4 ++--
- src/hb-debug.hh | 42
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-debug.hh | 42 ++++++++++++++++++++++++++++++++++++++++
src/hb-object-private.hh | 12 ++++++------
src/hb-ot-shape-complex-indic.cc | 22 +++++++++++----------
src/hb-private.hh | 28 ---------------------------
Date: Tue Jul 31 19:33:37 2018 -0700
[atomic] Use CONSUME, not ACQUIRE, memory-order for get()
-
+
Although, all implementations just elevate that to ACQUIRE.
But requirement for us is just CONSUME.
Date: Tue Jul 31 19:29:49 2018 -0700
Revert "[atomic] Make pointer get op relaxed instead of acquire"
-
+
This reverts commit b1e5650c67266dc158f22355fed206cd1c413f70.
-
+
After lots of head-scratching and finally finding the only truly
readable source to be the good old:
-
+
https://www.kernel.org/doc/Documentation/memory-barriers.txt
-
+
I've convinced myself that we need consume memory-ordering on get().
The location of memory-barrier in a load should be after, not before
the load. That needs fixing. I'll do that separately.
Date: Tue Jul 31 17:44:02 2018 -0700
[subset] limit the max codepoint value to the unicode limit.
- When collecting all codepoints in the cmap avoid using large amount
- of memory for fonts that declare coverage over all 32 bit integers.
+ When collecting all codepoints in the cmap avoid using large amount of memory for fonts that declare coverage over all 32 bit integers.
src/hb-ot-cmap-table.hh | 9 +++++++--
- ...mized-hb-subset-get-codepoints-fuzzer-5973295416475648 | Bin 0 ->
- 109 bytes
+ ...mized-hb-subset-get-codepoints-fuzzer-5973295416475648 | Bin 0 -> 109 bytes
2 files changed, 7 insertions(+), 2 deletions(-)
commit 7278d9df3093a87f99cec9b4cea38bd688c5d020
Add the fuzzer test case for feature collection timeout.
docs/harfbuzz-sections.txt | 1 +
- ...estcase-minimized-hb-subset-fuzzer-5542653037903872 | Bin 0 ->
- 160249 bytes
+ ...estcase-minimized-hb-subset-fuzzer-5542653037903872 | Bin 0 -> 160249 bytes
2 files changed, 1 insertion(+)
commit 89733755a48feef0a663e1ea7b8294949581ce7e
This is much faster then calling a bunch of individual add()'s.
src/hb-ot-layout-common-private.hh | 7 +++++++
- src/hb-ot-layout.cc | 40
- +++++++++++++++++++-------------------
+ src/hb-ot-layout.cc | 40 +++++++++++++++++++-------------------
2 files changed, 27 insertions(+), 20 deletions(-)
commit 7d92bef9c5afb319d125f60b0fce4763afeaa686
[subset] collect features first, then use those to collect lookups.
- src/hb-ot-layout.cc | 148
- +++++++++++++++++++++++++---------------------------
+ src/hb-ot-layout.cc | 148 +++++++++++++++++++++++++---------------------------
src/hb-ot-layout.h | 7 +++
2 files changed, 78 insertions(+), 77 deletions(-)
Date: Tue Jul 31 15:27:29 2018 -0700
[indic] Flip default logic for double-halants in old-school
-
+
Oriya went down from 9 to 2.
-
+
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707311 out of 707394 tests passed. 83 failed (0.0117332%)
GUJARATI: 366355 out of 366457 tests passed. 102 failed (0.0278341%)
GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%)
KANNADA: 951300 out of 951913 tests passed. 613 failed (0.0643966%)
- MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed
- (0.0188871%)
+ MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
MYANMAR: 1115830 out of 1123883 tests passed. 8053 failed (0.716534%)
ORIYA: 42327 out of 42329 tests passed. 2 failed (0.00472489%)
SINHALA: 271596 out of 271847 tests passed. 251 failed (0.0923313%)
Date: Tue Jul 31 15:19:32 2018 -0700
[indic] Allow double-halant in old-spec Devanagari
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1071
- src/hb-ot-shape-complex-indic.cc | 18
- ++++++++++++------
- .../b722a7d09e60421f3efbc706ad348ab47b88567b.ttf | Bin 0 ->
- 4672 bytes
+ src/hb-ot-shape-complex-indic.cc | 18 ++++++++++++------
+ .../b722a7d09e60421f3efbc706ad348ab47b88567b.ttf | Bin 0 -> 4672 bytes
test/shaping/data/in-house/tests/indic-old-spec.tests | 2 ++
3 files changed, 14 insertions(+), 6 deletions(-)
Date: Tue Jul 31 14:20:31 2018 -0700
[test] Add Khmer tests, with NotoSansKhmer-Regular.ttf
-
+
Note that there's minor positioning differences, and ONE reordering
difference between what we get for these and what Uniscribe gets.
Probably same as what's described in commit message for
1a96cc825dc9c8e3b6eef1403fe0864a1cfc0245
.../3998336402905b8be8301ef7f47cf7e050cbb1bd.ttf | Bin 0 -> 24392 bytes
- test/shaping/data/in-house/tests/khmer-misc.tests | 89
- +++++++++++++++++++++
+ test/shaping/data/in-house/tests/khmer-misc.tests | 89 +++++++++++++++++++++
2 files changed, 89 insertions(+)
commit 5772edc0ea8f697c6123e439c5d0c3e813ebeb45
[test] Add Khmer test texts from recent bugs
- test/shaping/texts/in-house/shaper-khmer/misc.txt | 66
- +++++++++++++++++++++++
+ test/shaping/texts/in-house/shaper-khmer/misc.txt | 66 +++++++++++++++++++++++
1 file changed, 66 insertions(+)
commit df26a32c8fd22cbd486e2a1014d30b9f38f51cd1
[test] Move things around for shaper updates
- .../texts/in-house/shaper-indic/{indic => }/script-assamese/utrrs/LICENSE
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-assamese/utrrs/README
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-assamese/utrrs/SOURCES
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt
- | 0
- .../script-assamese/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt
- | 0
- .../script-assamese/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt
- | 0
- .../script-assamese/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt
- | 0
- .../{indic => }/script-assamese/utrrs/gsub/IndicFontFeatureGSUB.txt
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-bengali/misc/misc.txt
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-bengali/misc/reph.txt
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-bengali/utrrs/LICENSE
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-bengali/utrrs/README
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-bengali/utrrs/SOURCES
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt
- | 0
- .../script-bengali/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt
- | 0
- .../script-bengali/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt
- | 0
- .../script-bengali/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt
- | 0
- .../script-bengali/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt
- | 0
- .../{indic => }/script-bengali/utrrs/gsub/IndicFontFeatureGSUB.txt
- | 0
- .../shaper-indic/{indic => }/script-devanagari/misc/dottedcircle.txt
- | 0
- .../in-house/shaper-indic/{indic => }/script-devanagari/misc/eyelash.txt
- | 0
- .../in-house/shaper-indic/{indic => }/script-devanagari/misc/joiners.txt
- | 0
- .../in-house/shaper-indic/{indic => }/script-devanagari/misc/misc.txt
- | 0
- .../shaper-indic/{indic => }/script-devanagari/misc/spec-deviations.txt
- | 0
- .../shaper-indic/{indic => }/script-devanagari/misc/tricky-reordering.txt
- | 0
- .../in-house/shaper-indic/{indic => }/script-devanagari/utrrs/LICENSE
- | 0
- .../in-house/shaper-indic/{indic => }/script-devanagari/utrrs/README
- | 0
- .../in-house/shaper-indic/{indic => }/script-devanagari/utrrs/SOURCES
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalConsonants.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt
- | 0
- .../codepoint/IndicFontFeatureCodepoint-DevnagariSpecificAddition.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-GenericPunctuation.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt
- | 0
- .../script-devanagari/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt
- | 0
- .../script-devanagari/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt
- | 0
- .../{indic => }/script-devanagari/utrrs/gsub/IndicFontFeatureGSUB.txt
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-gujarati/utrrs/LICENSE
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-gujarati/utrrs/README
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-gujarati/utrrs/SOURCES
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt
- | 0
- .../script-gujarati/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt
- | 0
- .../script-gujarati/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt
- | 0
- .../script-gujarati/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt
- | 0
- .../{indic => }/script-gujarati/utrrs/gsub/IndicFontFeatureGSUB.txt
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-gurmukhi/misc/misc.txt
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-gurmukhi/utrrs/LICENSE
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-gurmukhi/utrrs/README
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-gurmukhi/utrrs/SOURCES
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt
- | 0
- .../script-gurmukhi/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-GurmukhiSpecific.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt
- | 0
- .../script-gurmukhi/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt
- | 0
- .../script-gurmukhi/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt
- | 0
- .../{indic => }/script-gurmukhi/utrrs/gsub/IndicFontFeatureGSUB.txt
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-kannada/misc/misc.txt
- | 0
- .../shaper-indic/{indic => }/script-kannada/misc/right-matras.txt
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-kannada/utrrs/LICENSE
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-kannada/utrrs/README
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-kannada/utrrs/SOURCES
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalConsonants.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt
- | 0
- .../script-kannada/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt
- | 0
- .../script-kannada/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt
- | 0
- .../script-kannada/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt
- | 0
- .../{indic => }/script-kannada/utrrs/gsub/IndicFontFeatureGSUB.txt
- | 0
- .../in-house/shaper-indic/{indic => }/script-malayalam/misc/cibu.txt
- | 0
- .../in-house/shaper-indic/{indic => }/script-malayalam/misc/dot-reph.txt
- | 0
- .../in-house/shaper-indic/{indic => }/script-malayalam/misc/misc.txt
- | 0
- .../in-house/shaper-indic/{indic => }/script-malayalam/utrrs/LICENSE
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-malayalam/utrrs/README
- | 0
- .../in-house/shaper-indic/{indic => }/script-malayalam/utrrs/SOURCES
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt
- | 0
- .../script-malayalam/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt
- | 0
- .../{indic => }/script-malayalam/utrrs/gsub/IndicFontFeatureGSUB.txt
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-oriya/misc/bindu.txt
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-oriya/misc/misc.txt
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-oriya/utrrs/LICENSE
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-oriya/utrrs/README
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-oriya/utrrs/SOURCES
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalConsonants.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt
- | 0
- .../script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt
- | 0
- .../script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-OriyaSpecific.txt
- | 0
- .../script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt
- | 0
- .../{indic => }/script-oriya/utrrs/gsub/IndicFontFeatureGSUB.txt
- | 0
- .../in-house/shaper-indic/{indic => }/script-sinhala/misc/extensive.txt
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-sinhala/misc/misc.txt
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-sinhala/misc/reph.txt
- | 0
- .../shaper-indic/{indic => }/script-sinhala/misc/split-matras.txt
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-sinhala/utrrs/LICENSE
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-sinhala/utrrs/README
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-sinhala/utrrs/SOURCES
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-Punctuation.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt
- | 0
- .../{indic => }/script-sinhala/utrrs/gpos/IndicFontFeatureGPOS.txt
- | 0
- .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Conjunct.txt
- | 0
- .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Rakaaraansaya.txt
- | 0
- .../{indic => }/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Repaya.txt
- | 0
- .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Special-Cases.txt
- | 0
- .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-TouchingLetters.txt
- | 0
- .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Yansaya.txt
- | 0
- .../{indic => }/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB.txt
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-tamil/misc/misc.txt
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-tamil/utrrs/LICENSE
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-tamil/utrrs/README
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-tamil/utrrs/SOURCES
- | 0
- .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-CurrencySymbols.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt
- | 0
- .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt
- | 0
- .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Numerics.txt
- | 0
- .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt
- | 0
- .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Symbols.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-TamilSymbol.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt
- | 0
- .../script-tamil/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt
- | 0
- .../script-tamil/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt
- | 0
- .../{indic => }/script-tamil/utrrs/gsub/IndicFontFeatureGSUB.txt
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-telugu/misc/misc.txt
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-telugu/utrrs/LICENSE
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-telugu/utrrs/README
- | 0
- .../texts/in-house/shaper-indic/{indic => }/script-telugu/utrrs/SOURCES
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt
- | 0
- .../script-telugu/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt
- | 0
- .../script-telugu/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt
- | 0
- .../script-telugu/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt
- | 0
- .../{indic => }/script-telugu/utrrs/gsub/IndicFontFeatureGSUB.txt
- | 0
- .../south-east-asian/script-khmer/misc => shaper-khmer}/misc.txt
- | 0
- .../script-khmer/misc => shaper-khmer}/other-marks-invalid.txt
- | 0
- .../south-east-asian/script-khmer/misc => shaper-khmer}/other-marks.txt
- | 0
- .../south-east-asian => shaper-use}/script-javanese/misc.txt
- | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-assamese/utrrs/LICENSE | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-assamese/utrrs/README | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-assamese/utrrs/SOURCES | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0
+ .../script-assamese/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0
+ .../script-assamese/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0
+ .../script-assamese/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0
+ .../{indic => }/script-assamese/utrrs/gsub/IndicFontFeatureGSUB.txt | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-bengali/misc/misc.txt | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-bengali/misc/reph.txt | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-bengali/utrrs/LICENSE | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-bengali/utrrs/README | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-bengali/utrrs/SOURCES | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0
+ .../script-bengali/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0
+ .../script-bengali/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0
+ .../script-bengali/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0
+ .../script-bengali/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0
+ .../{indic => }/script-bengali/utrrs/gsub/IndicFontFeatureGSUB.txt | 0
+ .../shaper-indic/{indic => }/script-devanagari/misc/dottedcircle.txt | 0
+ .../in-house/shaper-indic/{indic => }/script-devanagari/misc/eyelash.txt | 0
+ .../in-house/shaper-indic/{indic => }/script-devanagari/misc/joiners.txt | 0
+ .../in-house/shaper-indic/{indic => }/script-devanagari/misc/misc.txt | 0
+ .../shaper-indic/{indic => }/script-devanagari/misc/spec-deviations.txt | 0
+ .../shaper-indic/{indic => }/script-devanagari/misc/tricky-reordering.txt | 0
+ .../in-house/shaper-indic/{indic => }/script-devanagari/utrrs/LICENSE | 0
+ .../in-house/shaper-indic/{indic => }/script-devanagari/utrrs/README | 0
+ .../in-house/shaper-indic/{indic => }/script-devanagari/utrrs/SOURCES | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalConsonants.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0
+ .../codepoint/IndicFontFeatureCodepoint-DevnagariSpecificAddition.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-GenericPunctuation.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0
+ .../script-devanagari/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0
+ .../script-devanagari/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0
+ .../{indic => }/script-devanagari/utrrs/gsub/IndicFontFeatureGSUB.txt | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-gujarati/utrrs/LICENSE | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-gujarati/utrrs/README | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-gujarati/utrrs/SOURCES | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0
+ .../script-gujarati/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0
+ .../script-gujarati/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0
+ .../script-gujarati/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0
+ .../{indic => }/script-gujarati/utrrs/gsub/IndicFontFeatureGSUB.txt | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-gurmukhi/misc/misc.txt | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-gurmukhi/utrrs/LICENSE | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-gurmukhi/utrrs/README | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-gurmukhi/utrrs/SOURCES | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0
+ .../script-gurmukhi/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-GurmukhiSpecific.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0
+ .../script-gurmukhi/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0
+ .../script-gurmukhi/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0
+ .../{indic => }/script-gurmukhi/utrrs/gsub/IndicFontFeatureGSUB.txt | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-kannada/misc/misc.txt | 0
+ .../shaper-indic/{indic => }/script-kannada/misc/right-matras.txt | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-kannada/utrrs/LICENSE | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-kannada/utrrs/README | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-kannada/utrrs/SOURCES | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalConsonants.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0
+ .../script-kannada/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0
+ .../script-kannada/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0
+ .../script-kannada/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0
+ .../{indic => }/script-kannada/utrrs/gsub/IndicFontFeatureGSUB.txt | 0
+ .../in-house/shaper-indic/{indic => }/script-malayalam/misc/cibu.txt | 0
+ .../in-house/shaper-indic/{indic => }/script-malayalam/misc/dot-reph.txt | 0
+ .../in-house/shaper-indic/{indic => }/script-malayalam/misc/misc.txt | 0
+ .../in-house/shaper-indic/{indic => }/script-malayalam/utrrs/LICENSE | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-malayalam/utrrs/README | 0
+ .../in-house/shaper-indic/{indic => }/script-malayalam/utrrs/SOURCES | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0
+ .../script-malayalam/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0
+ .../{indic => }/script-malayalam/utrrs/gsub/IndicFontFeatureGSUB.txt | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-oriya/misc/bindu.txt | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-oriya/misc/misc.txt | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-oriya/utrrs/LICENSE | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-oriya/utrrs/README | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-oriya/utrrs/SOURCES | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalConsonants.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0
+ .../script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0
+ .../script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-OriyaSpecific.txt | 0
+ .../script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0
+ .../{indic => }/script-oriya/utrrs/gsub/IndicFontFeatureGSUB.txt | 0
+ .../in-house/shaper-indic/{indic => }/script-sinhala/misc/extensive.txt | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-sinhala/misc/misc.txt | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-sinhala/misc/reph.txt | 0
+ .../shaper-indic/{indic => }/script-sinhala/misc/split-matras.txt | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-sinhala/utrrs/LICENSE | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-sinhala/utrrs/README | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-sinhala/utrrs/SOURCES | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-Punctuation.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0
+ .../{indic => }/script-sinhala/utrrs/gpos/IndicFontFeatureGPOS.txt | 0
+ .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Conjunct.txt | 0
+ .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Rakaaraansaya.txt | 0
+ .../{indic => }/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Repaya.txt | 0
+ .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Special-Cases.txt | 0
+ .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-TouchingLetters.txt | 0
+ .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Yansaya.txt | 0
+ .../{indic => }/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB.txt | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-tamil/misc/misc.txt | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-tamil/utrrs/LICENSE | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-tamil/utrrs/README | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-tamil/utrrs/SOURCES | 0
+ .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-CurrencySymbols.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0
+ .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0
+ .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Numerics.txt | 0
+ .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0
+ .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Symbols.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-TamilSymbol.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0
+ .../script-tamil/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0
+ .../script-tamil/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0
+ .../{indic => }/script-tamil/utrrs/gsub/IndicFontFeatureGSUB.txt | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-telugu/misc/misc.txt | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-telugu/utrrs/LICENSE | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-telugu/utrrs/README | 0
+ .../texts/in-house/shaper-indic/{indic => }/script-telugu/utrrs/SOURCES | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0
+ .../script-telugu/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0
+ .../script-telugu/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0
+ .../script-telugu/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0
+ .../{indic => }/script-telugu/utrrs/gsub/IndicFontFeatureGSUB.txt | 0
+ .../south-east-asian/script-khmer/misc => shaper-khmer}/misc.txt | 0
+ .../script-khmer/misc => shaper-khmer}/other-marks-invalid.txt | 0
+ .../south-east-asian/script-khmer/misc => shaper-khmer}/other-marks.txt | 0
+ .../south-east-asian => shaper-use}/script-javanese/misc.txt | 0
174 files changed, 0 insertions(+), 0 deletions(-)
commit 6ddd669e205cf2c1c3b0a362330b686386f68519
Date: Tue Jul 31 13:38:07 2018 -0700
[khmer] Clear syllables before presentation features
-
+
Probably not what Uniscribe does, but good idea?
src/hb-ot-shape-complex-khmer.cc | 3 +--
Date: Tue Jul 31 13:35:10 2018 -0700
[khmer] Revert previous change, and remove pauses
-
+
This makes test suite happy again (at 44) while fixing the sequences
we were fixing, which were the following with KhmerUI.ttf:
-
+
U+1789,U+17BC
U+1789,U+17D2,U+1789
U+1789,U+17D2,U+1789,U+17BC
-
+
Fixes rest of https://github.com/harfbuzz/harfbuzz/issues/974
src/hb-ot-shape-complex-khmer.cc | 23 ++++++++++-------------
Date: Tue Jul 31 12:49:02 2018 -0700
[khmer] Apply ccmp after basic features
-
+
Part of https://github.com/harfbuzz/harfbuzz/issues/974
src/hb-ot-shape-complex-khmer.cc | 22 +++++++++++++++++-----
Date: Tue Jul 31 11:45:32 2018 -0700
[khmer] Rewrite most of shaper to better follow spec
-
+
Khmer spec has only one reordering phase, and only simple prebase
matra and Coeng-Ro reordering. Implement that. Specifically,
this was done to address recognizing different orders of the matra
reordered differently from Uniscribe. Not clear if that's intended
or a bug in Uniscribe. The following two sequences render the same
in Uniscribe whereas we reorder them differently:
-
+
U+17A0,U+17D2,U+179A,U+17C2
U+17A0,U+17C2,U+17D2,U+179A
-
+
For that reason, our test suite numbers regressed slightly. Used
to be at 34 for fails, now at:
-
+
KHMER: 299080 out of 299124 tests passed. 44 failed (0.0147096%)
-
+
But generally a good change, and removed lots of code.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1026
src/hb-ot-shape-complex-indic-private.hh | 4 +-
- src/hb-ot-shape-complex-khmer.cc | 460
- ++++---------------------------
+ src/hb-ot-shape-complex-khmer.cc | 460 ++++---------------------------
src/hb-ot-shape-complex-private.hh | 13 -
3 files changed, 64 insertions(+), 413 deletions(-)
Date: Tue Jul 31 01:02:31 2018 -0700
[atomic] Make pointer get op relaxed instead of acquire
-
+
We only use it before cmpexch, so relaxed is fine and faster for
common case.
Date: Mon Jul 30 17:03:06 2018 -0700
[serialize] Increase stage count from 8 to 32
-
+
Indic shaper uses many stages. Now we are provably not limiting
functionality whereas the previous limit of 8 was assuming real-world
practices.
Date: Mon Jul 30 14:28:40 2018 -0700
Added sanitize functions & calls
-
+
Added sanitize functions to FDSelect
Added satnitize calls for FDSelect, VariationStore, FDArray, TopDict
- src/hb-ot-cff-common-private.hh | 67
- ++++++++++++++++++++++++++++++++---------
+ src/hb-ot-cff-common-private.hh | 67 ++++++++++++++++++++++++++++++++---------
src/hb-ot-cff2-table.hh | 26 +++++++++++-----
src/hb-subset-cff2.cc | 2 +-
3 files changed, 72 insertions(+), 23 deletions(-)
Author: Garret Rieger <grieger@google.com>
Date: Thu Jul 26 17:42:02 2018 -0700
- [subset] During lookup collection remember the features we've
- already processed.
+ [subset] During lookup collection remember the features we've already processed.
- src/hb-ot-layout.cc | 26
- +++++++++++++++++----
+ src/hb-ot-layout.cc | 26 +++++++++++++++++----
...ase-minimized-hb-subset-fuzzer-5670861909524480 | Bin 0 -> 1298 bytes
...b-subset-get-codepoints-fuzzer-6136125075750912 | Bin 0 -> 65816 bytes
3 files changed, 21 insertions(+), 5 deletions(-)
Date: Wed Jul 25 17:07:17 2018 -0700
Add hb-iter-private.hh
-
+
Unused so far.
src/Makefile.sources | 1 +
- src/hb-iter-private.hh | 147
- ++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-iter-private.hh | 147 ++++++++++++++++++++++++++++++++++++++++++++
src/hb-machinery-private.hh | 1 +
3 files changed, 149 insertions(+)
Move some code from hb-open-type-private.hh to hb-machinery-private.hh
src/Makefile.sources | 1 +
- src/hb-machinery-private.hh | 702
- ++++++++++++++++++++++++++++++++++++++++++++
- src/hb-open-type-private.hh | 669
- +----------------------------------------
+ src/hb-machinery-private.hh | 702 ++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-open-type-private.hh | 669 +----------------------------------------
3 files changed, 706 insertions(+), 666 deletions(-)
commit 6b11fea99716e22522b563d919ef7c72fe9a3c45
Date: Tue Jul 24 09:43:27 2018 -0700
[closure] Separate in and out glyphs
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1107
src/hb-ot-layout-gsub-table.hh | 26 ++++++++++++++++++--------
Date: Mon Jul 23 15:01:39 2018 -0700
Fix visibility on mingw32
-
+
Should fix bots again.
src/hb-private.hh | 6 +++++-
Date: Mon Jul 23 13:24:26 2018 -0700
One more visibility trick
-
+
Should fix Windows build again.
src/hb-common.cc | 9 +++++++++
Date: Mon Jul 23 11:46:46 2018 -0700
Set num glyphs on sanitizer reference_table()
-
+
Move out-of-class definitions of two methods to hb-static so they
are accessible in libharfbuzz-subset.
Date: Sun Jul 22 22:24:31 2018 -0700
Add sanitizer reference_table, also fix clang build
-
+
Clang is being really peculiar. Fix with:
-
- - inline hb_blob_t *sanitize (hb_blob_t *blob) { return
- c->sanitize<Type> (blob); }
- + inline hb_blob_t *sanitize (hb_blob_t *blob) { return
- c[0].template/*clang idiosyncrasy*/sanitize_blob<Type> (blob); }
+
+ - inline hb_blob_t *sanitize (hb_blob_t *blob) { return c->sanitize<Type> (blob); }
+ + inline hb_blob_t *sanitize (hb_blob_t *blob) { return c[0].template/*clang idiosyncrasy*/sanitize_blob<Type> (blob); }
src/hb-open-type-private.hh | 10 ++++++++--
src/hb-ot-post-table.hh | 2 +-
Date: Fri Apr 13 18:45:37 2018 -0400
Order Chakma split vowels in accordance with NFC
-
+
Fixes #1105.
src/gen-use-table.py | 10 ++++++++++
src/hb-ot-shape-complex-use-table.cc | 4 ++--
- src/hb-ot-shape-complex-use.cc | 21
- +--------------------
+ src/hb-ot-shape-complex-use.cc | 21 +--------------------
.../2a670df15b73a5dc75a5cc491bde5ac93c5077dc.ttf | Bin 0 -> 1344 bytes
test/shaping/data/in-house/tests/use.tests | 5 +++++
5 files changed, 18 insertions(+), 22 deletions(-)
Date: Sat Jul 21 21:14:48 2018 +0430
Add a new API, hb_ot_layout_get_feature_name_ids (#976)
-
+
This new API returns cvXX and ssXX related NameId, things like
- featUiLabelNameId, featUiTooltipTextNameId, sampleTextNameId,
- ... of cvXX
+ featUiLabelNameId, featUiTooltipTextNameId, sampleTextNameId, ... of cvXX
and UINameId of ssXX, in a unified way.
-
- However HarfBuzz currently doesn't expose an API for retrieving
- the actual
- information associated with NameId from the `name` table and that
- should be
+
+ However HarfBuzz currently doesn't expose an API for retrieving the actual
+ information associated with NameId from the `name` table and that should be
done separately.
docs/harfbuzz-sections.txt | 1 +
src/hb-ot-layout-common-private.hh | 14 +++++++
- src/hb-ot-layout.cc | 86
- ++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout.cc | 86 ++++++++++++++++++++++++++++++++++++++
src/hb-ot-layout.h | 8 ++++
4 files changed, 109 insertions(+)
Date: Wed Jul 18 14:17:52 2018 -0700
first push of CFF/CFF2 work
-
+
Index, Dict structs
hooked up to hb-subset (takes CFF2, outputs empty CFF2)
src/Makefile.sources | 4 +
- src/hb-ot-cff-common-private.hh | 475
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-cff-common-private.hh | 475 ++++++++++++++++++++++++++++++++++++++++
src/hb-ot-cff2-table.hh | 386 ++++++++++++++++++++++++++++++++
src/hb-ot-font.cc | 2 +
src/hb-subset-cff2.cc | 121 ++++++++++
Date: Tue Jul 17 23:29:16 2018 +0430
Remove dump-fon (#1100)
-
+
It had interesting stuffs like EXE parsing and
big-endian parsers but added in an attempt to find
a solution for #681 which later found not related.
src/Makefile.am | 4 -
- src/dump-fon.cc | 555
- --------------------------------------------------------
+ src/dump-fon.cc | 555 --------------------------------------------------------
2 files changed, 559 deletions(-)
commit d5cd47a69c40966b4d5b5aed87dd7ac6f070c37a
Date: Tue Jul 17 22:32:37 2018 +0430
Remove AAT's gcid/fmtx (#1099)
-
+
We are not going to use them, at least in the foreseeable future
src/Makefile.sources | 2 --
- src/hb-aat-fmtx-table.hh | 67
- --------------------------------------------
- src/hb-aat-gcid-table.hh | 73
- ------------------------------------------------
+ src/hb-aat-fmtx-table.hh | 67 --------------------------------------------
+ src/hb-aat-gcid-table.hh | 73 ------------------------------------------------
src/hb-aat-layout.cc | 2 --
4 files changed, 144 deletions(-)
Date: Tue Jul 17 19:09:03 2018 +0200
Remove TODO that is not gonna be done
-
+
Previously the idea was to cache sanitize results externally (think,
in Fontconfig) and avoid resanitizing every time. That's, not a good
idea.
Move sanitizer code around a bit
src/hb-aat-layout-common-private.hh | 4 +-
- src/hb-open-type-private.hh | 95
- ++++++++++++++++++++-----------------
+ src/hb-open-type-private.hh | 95 ++++++++++++++++++++-----------------
src/hb-ot-color-sbix-table.hh | 12 ++---
src/hb-ot-layout-common-private.hh | 3 --
4 files changed, 58 insertions(+), 56 deletions(-)
Date: Tue Jul 17 18:14:45 2018 +0200
[aat] Update for blob changes
+
+ Also, uncomment code again, just "if (0)" it out, so it doesn't get stale again.
- Also, uncomment code again, just "if (0)" it out, so it doesn't get
- stale again.
-
- src/hb-aat-layout.cc | 58
- ++-------------------------------------------
+ src/hb-aat-layout.cc | 58 ++-------------------------------------------
src/hb-open-type-private.hh | 27 +++++++++++++--------
src/hb-ot-layout-private.hh | 1 +
src/hb-ot-layout.cc | 2 ++
Date: Tue Jul 17 10:57:01 2018 +0200
Reland "Implement C++11-style GCC builtin atomic ops"
-
+
Fixed the crasher in it.
src/hb-atomic-private.hh | 22 +++++++++++++++++++---
Date: Tue Jul 17 10:50:01 2018 +0200
Revert "Implement C++11-style GCC builtin atomic ops"
-
+
This reverts commit 21fa170f0bfb0109c506ed17f5aff8b062564ffa.
-
+
Is crashing. Oops.
src/hb-atomic-private.hh | 22 +++-------------------
Date: Mon Jul 16 17:58:02 2018 +0200
Implement C++11-style GCC builtin atomic ops
-
+
Hopefully fixes bots.
src/hb-atomic-private.hh | 22 +++++++++++++++++++---
Date: Mon Jul 16 15:41:09 2018 +0200
Implement C++11 <atomic> operations
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/345
src/hb-atomic-private.hh | 27 ++++++++++++++++++++++++---
Date: Mon Jul 16 14:42:43 2018 +0200
Merge pull request #1094 from anthrotype/fix-appveyor-msys2
-
+
appveyor.yml: try updating msys2 to fix failing mingw-w64-x86_64 build
commit 269eb45650be66901627da7f1014339065a948a5
Author: Cosimo Lupo <cosimo@anthrotype.com>
Date: Mon Jul 16 14:14:42 2018 +0200
- appveyor.yml: try only updating msys2 core, not the rest of the
- packages
-
+ appveyor.yml: try only updating msys2 core, not the rest of the packages
+
maybe it'll get a bit faster
appveyor.yml | 1 -
Date: Mon Jul 16 12:57:27 2018 +0200
appveyor.yml: pass --needed option to pacman
-
+
so it won't attempt reinstalling packages which are already installed
appveyor.yml | 2 +-
Date: Mon Jul 16 12:41:59 2018 +0200
appveyor.yml: try updating msys2 to fix failing mingw-w64-x86_64 build
-
+
https://github.com/harfbuzz/harfbuzz/pull/1093#issuecomment-405201903
https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/job/ky7lao1ii1bi7ew4#L71
Date: Wed Jul 11 17:27:23 2018 +0200
Move _hb_alignof later again
-
+
It uses constexpr...
src/hb-private.hh | 26 +++++++++++++-------------
Align NullPool and CrapPool to HB_VECTOR_SIZE
src/hb-dsalgs.hh | 3 +--
- src/hb-private.hh | 64
- ++++++++++++++++++++++++++++++++-----------------------
+ src/hb-private.hh | 64 ++++++++++++++++++++++++++++++++-----------------------
src/hb-static.cc | 4 ++--
3 files changed, 40 insertions(+), 31 deletions(-)
Move more stuff from hb-private.hh to hb-dsalgs.hh
src/hb-debug.hh | 1 +
- src/hb-dsalgs.hh | 237
- ++++++++++++++++++++++++++++++++++++++++++++++++++++
- src/hb-private.hh | 246
- +-----------------------------------------------------
+ src/hb-dsalgs.hh | 237 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-private.hh | 246 +-----------------------------------------------------
3 files changed, 240 insertions(+), 244 deletions(-)
commit f477765661c196ac17b2c86731881a3da36a5ae6
Move more stuff to hb-dsalgs.hh
- src/hb-dsalgs.hh | 83
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++
- src/hb-private.hh | 81
- -----------------------------------------------------
+ src/hb-dsalgs.hh | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-private.hh | 81 -----------------------------------------------------
2 files changed, 83 insertions(+), 81 deletions(-)
commit be7f664f723fb4e7bcf15c1c2b7c6bec46f90393
Move hb_vector_t and hb_lockable_set_t to hb-dsalgs.hh
- src/hb-dsalgs.hh | 311
- +++++++++++++++++++++++++++++++++++++++++++++++++++++
- src/hb-private.hh | 315
- ------------------------------------------------------
+ src/hb-dsalgs.hh | 311 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-private.hh | 315 ------------------------------------------------------
2 files changed, 311 insertions(+), 315 deletions(-)
commit 9e53b083295ad910a87e778ebd16cbe69ebe2130
Date: Tue Jul 10 14:03:58 2018 +0200
Move hb_stable_sort to hb-dsalgs.hh
-
+
Also, include hb-dsalgs.hh from end of hb-pricate.hh
- src/hb-dsalgs.hh | 51
- +++++++++++++++++++++++++++++++++++++++++
+ src/hb-dsalgs.hh | 51 +++++++++++++++++++++++++++++++++++++++++
src/hb-ot-os2-unicode-ranges.hh | 1 -
src/hb-ot-post-table.hh | 1 -
- src/hb-private.hh | 51
- ++---------------------------------------
+ src/hb-private.hh | 51 ++---------------------------------------
4 files changed, 53 insertions(+), 51 deletions(-)
commit 39f11d8e72c6b2568f3b70847c6c9d1f374cd49c
Date: Tue Jul 10 13:47:41 2018 +0200
Fix syntax
-
+
Oops.
src/hb-private.hh | 2 +-
Date: Tue Jul 10 13:16:52 2018 +0200
Always compile (but not use) alignof() and round() fallback codes
-
+
Catches compile-errors in them better.
src/hb-private.hh | 23 ++++++++++++-----------
Date: Mon Jul 9 20:24:22 2018 +0200
Merge pull request #1091 from anthrotype/fix-gen-def-py
-
- gen-def.py: pass headers as arguments so that msys2 can convert
- posix paths
+
+ gen-def.py: pass headers as arguments so that msys2 can convert posix paths
commit 53f73409a91241765ae6a0cadf7600676988b6af
Author: Cosimo Lupo <cosimo@anthrotype.com>
Date: Mon Jul 9 18:54:23 2018 +0100
- CMakeLists.txt: don't pass header args as single space-separated
- string
-
+ CMakeLists.txt: don't pass header args as single space-separated string
+
let python's parse command-line args as usual
CMakeLists.txt | 3 +--
Author: Cosimo Lupo <cosimo@anthrotype.com>
Date: Mon Jul 9 18:48:20 2018 +0100
- CMakeLists.txt: pass headers as arguments to gen-def.py; call using
- PYTHON_EXECUTABLE
+ CMakeLists.txt: pass headers as arguments to gen-def.py; call using PYTHON_EXECUTABLE
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Author: Cosimo Lupo <cosimo@anthrotype.com>
Date: Mon Jul 9 18:11:29 2018 +0100
- gen-def.py: pass headers as arguments so that msys2 can convert
- posix paths
-
- When one is not using the msys2 python, the header files that are
- passed in as environment
+ gen-def.py: pass headers as arguments so that msys2 can convert posix paths
+
+ When one is not using the msys2 python, the header files that are passed in as environment
variable cannot be found.
-
+
https://ci.appveyor.com/project/fonttools/ttfautohint-py/build/1.0.65/job/rkremny4jjid9nl2#L803
-
- This is because msys2 shell and make use POSIX paths
- (e.g. /c/Users/clupo/...)
- whereas non-msys2 python.exe uses native Windows paths
- (e.g. C:\Users\clupo\...).
-
- Msys2 will automatically convert command line arguments (but not
- environment variables) from
- POSIX to Windows paths when calling a native win32 executable,
- so we pass the header paths
+
+ This is because msys2 shell and make use POSIX paths (e.g. /c/Users/clupo/...)
+ whereas non-msys2 python.exe uses native Windows paths (e.g. C:\Users\clupo\...).
+
+ Msys2 will automatically convert command line arguments (but not environment variables) from
+ POSIX to Windows paths when calling a native win32 executable, so we pass the header paths
as arguments instead of environment variables.
-
- This way the gen-def.py script can support both mingw python running
- in an MSYS2 shell, and
+
+ This way the gen-def.py script can support both mingw python running in an MSYS2 shell, and
native win32 python.
src/gen-def.py | 12 +++++++++---
Date: Fri Jul 6 15:47:03 2018 -0400
Do not enforce a native direction of LTR for Runic
-
+
Fixes #481
src/hb-common.cc | 1 +
Date: Sat Jul 7 11:08:17 2018 -0400
Regenerate the USE table for Grantha and Bhaiksuki (#1090)
-
+
Completes #1037 and fixes #1035.
src/hb-ot-shape-complex-use-table.cc | 4 ++--
Date: Thu Jul 5 14:04:13 2018 +0430
Disable vectorization
-
+
Disable vectorization for now. To correctly use them, we should
use posix_memalign() to allocate them. Otherwise, can cause
misaligned access.
-
+
https://bugs.chromium.org/p/chromium/issues/detail?id=860184
src/hb-private.hh | 12 ++++++++++++
Date: Thu Jul 5 14:03:48 2018 +0430
Fix warning
-
- ../../src/hb-ot-layout-gsubgpos-private.hh:391:18: warning:
- missed loop optimization, the loop counter may overflow
- [-Wunsafe-loop-optimizations]
+
+ ../../src/hb-ot-layout-gsubgpos-private.hh:391:18: warning: missed loop optimization, the loop counter may overflow [-Wunsafe-loop-optimizations]
src/hb-ot-layout-gsubgpos-private.hh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Tue Jul 3 14:29:25 2018 +0430
[indic] Adjust left-matra repositioning and Halant,ZWJ sequence
-
+
From the new code (first paragraph is from the OT Devanagari spec.):
-
+
/* o Reorder matras:
*
- * If a pre-base matra character had been reordered before
- applying basic
- * features, the glyph can be moved closer to the main consonant
- based on
- * whether half-forms had been formed. Actual position for
- the matra is
- * defined as “after last standalone halant glyph, after
- initial matra
- * position and before the main consonant”. If ZWJ or ZWNJ
- follow this
+ * If a pre-base matra character had been reordered before applying basic
+ * features, the glyph can be moved closer to the main consonant based on
+ * whether half-forms had been formed. Actual position for the matra is
+ * defined as “after last standalone halant glyph, after initial matra
+ * position and before the main consonant”. If ZWJ or ZWNJ follow this
* halant, position is moved after it.
*
* IMPLEMENTATION NOTES:
*
- * It looks like the last sentence is wrong. Testing, with Windows
- 7 Uniscribe
+ * It looks like the last sentence is wrong. Testing, with Windows 7 Uniscribe
* and Devanagari shows that the behavior is best described as:
*
- * "If ZWJ follows this halant, matra is NOT repositioned after
- this halant.
+ * "If ZWJ follows this halant, matra is NOT repositioned after this halant.
* If ZWNJ follows this halant, position is moved after it."
*
* Test case, with Adobe Devanagari or Nirmala UI:
*
* U+091F,U+094D,U+200D,U+092F,U+093F
* (Matra does NOT move, stays to the left.)
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1070
-
+
Test case added with Adobe Devanagari.
- src/hb-ot-shape-complex-indic.cc | 37
- +++++++++++++++++++++
+ src/hb-ot-shape-complex-indic.cc | 37 +++++++++++++++++++++
.../8116e5d8fedfbec74e45dc350d2416d810bed8c4.ttf | Bin 0 -> 4364 bytes
.../data/in-house/tests/indic-joiners.tests | 4 +++
3 files changed, 41 insertions(+)
Date: Tue Jul 3 12:38:21 2018 +0430
Disable .dfont code for now
-
+
The get_table imple was wrong, as table offsets in a dfont are
relative to the resource. We were treating them as relative to
the big blob itself. To be fixed.
-
+
Part of https://github.com/harfbuzz/harfbuzz/pull/1085
src/hb-open-file-private.hh | 6 +++---
Date: Sun Jul 1 15:32:43 2018 +0430
Fix trak table apply logic
-
+
In collaboration with Behdad
src/hb-aat-layout-trak-table.hh | 4 ++--
Support dfont font files (#949)
- src/hb-open-file-private.hh | 196
- ++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-open-file-private.hh | 196 ++++++++++++++++++++++++++++++++++++++++++++
src/hb-open-type-private.hh | 1 +
src/main.cc | 3 +
3 files changed, 200 insertions(+)
Author: Ebrahim Byagowi <ebrahim@gnu.org>
Date: Sun Jul 1 01:54:14 2018 +0430
- Improve nommap naming and use C style comments on create_from_file
- (#1084)
+ Improve nommap naming and use C style comments on create_from_file (#1084)
.circleci/config.yml | 2 +-
src/hb-blob.cc | 16 ++++++++--------
Date: Sat Jun 30 15:59:25 2018 +0430
Adjust MarkBasePos heuristic in presence of MultipleSubst
-
+
From the issue:
- "In this font, the virama,ya first forms a ligature, then decomposes
- back to
+ "In this font, the virama,ya first forms a ligature, then decomposes back to
virama,ya. This causes those two to be marked parts of a MultipleSubst
- sequence. When attaching the matra, we look for the first of the
- MultipleSubst
- sequence because that's where we attach to (because of eg #740). In
- this case,
- the first glyph in the MultipleSubst sequence is a mark, so we skip
- it and
+ sequence. When attaching the matra, we look for the first of the MultipleSubst
+ sequence because that's where we attach to (because of eg #740). In this case,
+ the first glyph in the MultipleSubst sequence is a mark, so we skip it and
attach to the base char before it."
-
+
Font in question is Nirmala UI from Windows 10. Test sequence:
-
+
U+0926,U+094D,U+092F,U+0941
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1020
src/hb-ot-layout-gpos-table.hh | 5 ++++-
Date: Sat Jun 30 12:28:03 2018 +0430
[indic] Tweak for old-spec Bengali and halant-ya-halant
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1073
src/hb-ot-shape-complex-indic.cc | 13 ++++++++++---
Author: punchcutter <zarijoscha@gmail.com>
Date: Sun Jun 24 22:54:57 2018 -0700
- Rebase and update USE overrides for Bhaiksuki Gap Fillers and
- Grantha Anusvara
+ Rebase and update USE overrides for Bhaiksuki Gap Fillers and Grantha Anusvara
src/gen-use-table.py | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
Date: Sat Jun 30 09:16:54 2018 +0430
[khmer] Fix infinite-loop in cluster merging
-
+
Indic shaper already had this check. We removed it when forking
Khmer shaper by mistake.
-
+
Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1464623
src/hb-ot-shape-complex-khmer.cc | 31 +++++++++++++++++--------------
Date: Thu Jun 28 14:32:36 2018 +0430
armcc compatibility, don't use EINTR if doesn't exist
-
+
Fixes #1081
src/hb-blob.cc | 2 ++
Date: Thu Jun 28 13:22:21 2018 +0430
Minor on hb_blob_create_from_file, reuse ferror result
-
+
Oops
src/hb-blob.cc | 2 +-
Date: Wed Jun 27 14:13:26 2018 +0430
Minor touches on hb_blob_create_from_file (#1079)
-
+
* Handle EINTR on fallback reader
* Increase fallback reader limitation size limitation to 2 << 28
* Ensure _O_BINARY does exist if MMAP is used on Windows
Date: Tue Jun 26 18:00:58 2018 -0400
Make round() fallback portable to systems that do have round()
-
+
Makes compiling without HAVE_ROUND on systems that do have it work.
src/hb-private.hh | 3 ++-
Date: Tue Jun 26 10:46:10 2018 +0430
Minor on hb_blob_create_from_file
-
- Add one more "unlikely" annotation and use explicit nullptr check
- for more consistency.
+
+ Add one more "unlikely" annotation and use explicit nullptr check for more consistency.
src/hb-blob.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[subset] Add fuzzer test case that caused a timeout to the corpus.
- ...testcase-minimized-hb-subset-fuzzer-5750092395970560 | Bin 0 ->
- 72435 bytes
+ ...testcase-minimized-hb-subset-fuzzer-5750092395970560 | Bin 0 -> 72435 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit 35ce8f31d37cf7c2a1f8265d36ba4c2c9a3efb2c
Date: Mon Jun 25 22:23:43 2018 +0430
Unify our pipe reader with the fallback reader (#1068)
-
- And assign one bot to use the path always using NOMMAPFILEREADER
- token.
-
+
+ And assign one bot to use the path always using NOMMAPFILEREADER token.
+
It's limited to 200mb so no more fun with using /dev/zero on hb-view!
.circleci/config.yml | 6 +-
- src/hb-blob.cc | 152
- ++++++++++++++++++++++-----------------------------
+ src/hb-blob.cc | 152 ++++++++++++++++++++++-----------------------------
2 files changed, 68 insertions(+), 90 deletions(-)
commit f57804a8a596e88843ddc8b88afac7526349b89b
Resolve ttx absolute path before use (#1075)
- test/subset/run-tests.py | 101
- ++++++++++++++++++++++++++---------------------
+ test/subset/run-tests.py | 101 ++++++++++++++++++++++++++---------------------
1 file changed, 57 insertions(+), 44 deletions(-)
commit 159ddb872986f121818e816d2ea75d271075ba1f
Date: Sat Jun 23 10:32:28 2018 -0400
In Coverage iterator, bail out if table smells
-
+
In particular, if CoverageFormat2 has unsorted ranges, bail out.
Otherwise, 64k ranges of each 64k glyphs can DoS closure() method.
-
+
We can do the same for CoverageFormat1, but that one does not expose
the quadratic behavior, so, fine.
Date: Mon Jun 18 20:35:40 2018 +0430
Support pipe and friends on hb_blob_create_from_file (#1061)
-
- With this hb-view/hb-shape support pipes and possibly socket and
- named pipe
+
+ With this hb-view/hb-shape support pipes and possibly socket and named pipe
also, anything fails just on mmap.
-
+
We can later do the same for Windows also.
-
- This however reveals two issues, the fact most of our bots don't
- have HAVE_MMAP and using
- this instead the other fread/fopen reader can make failure on CI. I
- should look at them separately
+
+ This however reveals two issues, the fact most of our bots don't have HAVE_MMAP and using
+ this instead the other fread/fopen reader can make failure on CI. I should look at them separately
this change however is very low risk I believe.
src/hb-blob.cc | 44 +++++++++++++++++++++++++++++++++++++++++++-
Date: Mon Jun 18 19:59:33 2018 +0430
Revert file blob sanitization and index checking (#1062)
-
- As
- https://github.com/harfbuzz/harfbuzz/pull/1059#issuecomment-397912812
- we
- like to still work with blobs that harfbuzz itself can't handle
- directly that are failing sanitization
+
+ As https://github.com/harfbuzz/harfbuzz/pull/1059#issuecomment-397912812 we
+ like to still work with blobs that harfbuzz itself can't handle directly that are failing sanitization
currently apparently.
util/options.cc | 12 ++----------
Author: Ebrahim Byagowi <ebrahim@gnu.org>
Date: Sun Jun 17 17:04:55 2018 +0430
- Verbose fail when something is wrong with hb-shape/hb-view input
- font file (#1059)
-
+ Verbose fail when something is wrong with hb-shape/hb-view input font file (#1059)
+
This checks if the blob isn't empty and uses `hb_face_count`
to see if the font file passes the simple font file sanitization
so can detect if the input is actually a font and checks also
Date: Sun Jun 17 16:49:34 2018 +0430
Fix reading fonts from stdin (#1060)
-
+
We were passing the font path directly to freetype so rendering
was broken when we are getting the font from stdin.
-
+
This fixes it by using FT_New_Memory_Face instead.
-
+
This fixes:
* build/util/hb-view /dev/stdin text < font.ttf
* build/util/hb-view - text < font.ttf
* cat font.ttf | build/util/hb-view - text
-
+
but doesn't work on
* cat font.ttf | build/util/hb-view /dev/stdin text
-
+
which I will try to fix separately.
util/helper-cairo.cc | 14 ++++++++++----
Date: Tue Jun 12 19:20:20 2018 -0400
Move hb-version.h generation to Makefile
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/864
-
- Unfortunately 1.7.7 and 1.8.0 went out with the wrong hb-version.h
- contents.
+
+ Unfortunately 1.7.7 and 1.8.0 went out with the wrong hb-version.h contents.
configure.ac | 1 -
src/Makefile.am | 21 ++++++++++++++++-----
Date: Tue Jun 12 18:24:54 2018 -0400
[subset] Remove HB_SUBSET_BUILTIN
-
+
Just include hb-static.cc in libharfbuzz-subset.so source list as
well. Those building it built-in will include hb-static.cc once
already. No need for any gymnastics.
Date: Mon Jun 11 20:55:14 2018 -0700
[hb-set] Don't shrink vectors until after processing their contents.
-
+
Fixes #1054.
src/hb-set-private.hh | 10 +++++++---
Date: Mon Jun 11 03:47:43 2018 +0430
Fetch the updated dwrite_1.h header from a better place
-
- Following to
- https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/1.0.1693/job/mfkjdhcdykjuqdfc
+
+ Following to https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/1.0.1693/job/mfkjdhcdykjuqdfc
appveyor.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Sun Jun 10 17:22:38 2018 -0400
More fixes for SunStudio 12.6 build
-
+
Followup to https://github.com/harfbuzz/harfbuzz/pull/1053
src/hb-ft.cc | 8 ++++----
test/api/fonts/Roboto-Regular.gsub.fi.ttf | Bin 0 -> 2652 bytes
test/api/fonts/Roboto-Regular.gsub.fil.ttf | Bin 0 -> 3228 bytes
test/api/fonts/Roboto-Regular.nogsub.fi.ttf | Bin 0 -> 1856 bytes
- test/api/test-subset-glyf.c | 52
- ++++++++++++++++++++++++++++
+ test/api/test-subset-glyf.c | 52 ++++++++++++++++++++++++++++
4 files changed, 52 insertions(+)
commit 37eab27be3b88079614f66e484c700bb2d40af10
Author: Garret Rieger <grieger@google.com>
Date: Wed Jun 6 16:02:51 2018 -0700
- [subset] add a new closure call to hb-ot-layout that can compute
- the closure over multiple lookups.
+ [subset] add a new closure call to hb-ot-layout that can compute the closure over multiple lookups.
src/hb-ot-layout.cc | 26 ++++++++++++++++++++++++++
src/hb-ot-layout.h | 6 ++++++
Date: Wed Jun 6 16:46:50 2018 -0700
[set] Add is_subset
-
+
New API:
+hb_set_is_subset()
Date: Wed Jun 6 15:23:35 2018 -0700
Compiler gymnastics
-
+
Part of https://github.com/harfbuzz/harfbuzz/issues/630
src/hb-private.hh | 3 +++
Date: Wed Jun 6 14:55:30 2018 -0700
Move prime_for back into map
-
- This was causing problem on systems without visibility when map
- was used
+
+ This was causing problem on systems without visibility when map was used
from both libharfbuzz and libharfbuzz-subset. Sigh.
-
+
https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/1.0.1669/job/dey47nmff0770vp3
- src/hb-map-private.hh | 53
- ++++++++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-map-private.hh | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++-
src/hb-private.hh | 3 ---
- src/hb-static.cc | 51
- -------------------------------------------------
+ src/hb-static.cc | 51 -------------------------------------------------
3 files changed, 52 insertions(+), 55 deletions(-)
commit a2a1484ef93d5b5c3748b15219eca669d866b0a9
Date: Wed Jun 6 12:57:28 2018 -0400
Convert Consonant_Initial_Postfixed to CONS_FINAL
-
- Consonant_Initial_Postfixed was split off of
- Consonant_Succeeding_Repha,
+
+ Consonant_Initial_Postfixed was split off of Consonant_Succeeding_Repha,
so it should correspond to the same USE class, CONS_FINAL.
src/gen-use-table.py | 5 +++--
Date: Tue Jun 5 17:59:31 2018 -0700
[ucdn] Update to Unicode 11
-
+
https://github.com/grigorig/ucdn/issues/19
src/hb-ucdn.cc | 7 +
- src/hb-ucdn/ucdn_db.h | 2754
- ++++++++++++++++++++++++++-----------------------
+ src/hb-ucdn/ucdn_db.h | 2754 ++++++++++++++++++++++++++-----------------------
2 files changed, 1479 insertions(+), 1282 deletions(-)
commit 060e6b4a13a4224de885214d374b079610224123
Date: Tue Jun 5 17:31:46 2018 -0700
Update to Unicode 11.0.0
-
+
UCDN is not updated yet.
src/gen-use-table.py | 13 +++--
src/hb-ot-shape-complex-indic-table.cc | 77 ++++++++++++++-------------
src/hb-ot-shape-complex-private.hh | 9 ++++
src/hb-ot-shape-complex-use-machine.rl | 2 +-
- src/hb-ot-shape-complex-use-table.cc | 94
- +++++++++++++++++++++------------
+ src/hb-ot-shape-complex-use-table.cc | 94 +++++++++++++++++++++------------
8 files changed, 170 insertions(+), 84 deletions(-)
commit 105a3b5e2d2ff228cdc1fbe8618f6c8fdfdabe9e
Date: Mon Jun 4 16:47:45 2018 -0700
[khmer] Fix Coeng vs Halant confusion
-
+
Test suite results are unchanged (34).
src/hb-ot-shape-complex-khmer.cc | 6 +++---
Date: Tue Jun 5 22:50:53 2018 +0430
Fix hb_face_count build issue
-
+
I should've rebased #1002 before the merge, my bad
src/hb-face.cc | 2 +-
Date: Tue Jun 5 18:56:26 2018 +0430
Add hb_face_count, a new API (#1002)
-
+
Simply, it returns the number of faces on a font blob.
-
+
To be used on hb-sanitizer tool but other clients also
can benefit from it.
TODO | 2 -
docs/harfbuzz-sections.txt | 1 +
- src/hb-face.cc | 95
- ++++++++++++++++++++++++++++------------------
+ src/hb-face.cc | 95 ++++++++++++++++++++++++++++------------------
src/hb-face.h | 4 ++
4 files changed, 64 insertions(+), 38 deletions(-)
Date: Mon Jun 4 15:40:43 2018 -0700
[sinhala] Move reph to after post-consonants
-
+
Apparently this changed between Win 7 and Win 10.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/967
-
+
To be continued in https://github.com/harfbuzz/harfbuzz/issues/1044
src/hb-ot-shape-complex-indic.cc | 2 +-
test/shaping/data/in-house/Makefile.sources | 1 +
- .../fonts/5af5361ed4d1e8305780b100e1730cb09132f8d1.ttf | Bin 0 ->
- 3152 bytes
+ .../fonts/5af5361ed4d1e8305780b100e1730cb09132f8d1.ttf | Bin 0 -> 3152 bytes
test/shaping/data/in-house/tests/sinhala.tests | 1 +
4 files changed, 3 insertions(+), 1 deletion(-)
Date: Mon Jun 4 15:38:05 2018 -0700
[test] Fix record-test to use gids not glyph-names
-
+
as those might not match what FontTools think of the glyphs if font
does NOT have glyph names.
Date: Sat Jun 2 20:30:09 2018 -0700
Remove DISALLOW_* from vector, set, and map
-
- Some of the build bots, still fail on this. I suppose mine pass
- because
+
+ Some of the build bots, still fail on this. I suppose mine pass because
I enable C++11...
-
+
Anyway, remove these again.
src/hb-map-private.hh | 3 ---
Date: Sat Jun 2 15:30:59 2018 -0700
Fix fallout from 975bdd5ef562e37655067b703b2b9ca7481f4985
-
+
Ouch!
src/hb-ot-map-private.hh | 40 ++++++++++++++++++++++------------------
Date: Fri Jun 1 17:32:07 2018 -0700
Another attempt at making every compiler happy...
-
+
Sigh.
src/hb-private.hh | 6 +++---
[map] Move prime_for to hb-static
- src/hb-map-private.hh | 53
- +--------------------------------------------------
+ src/hb-map-private.hh | 53 +--------------------------------------------------
src/hb-private.hh | 2 ++
- src/hb-static.cc | 51
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-static.cc | 51 +++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 54 insertions(+), 52 deletions(-)
commit 33d6f46bbbb4fdee110f1cb024a37ed2e46e5e22
Author: Garret Rieger <grieger@google.com>
Date: Thu May 31 16:47:39 2018 -0700
- [subset] Have the subset fuzzer pull the text string to subset to
- from the end of the fuzzer provided data.
+ [subset] Have the subset fuzzer pull the text string to subset to from the end of the fuzzer provided data.
- test/fuzzing/hb-subset-fuzzer.cc | 54
- +++++++++++++++++++++++++---------------
+ test/fuzzing/hb-subset-fuzzer.cc | 54 +++++++++++++++++++++++++---------------
1 file changed, 34 insertions(+), 20 deletions(-)
commit bb6f4adac70a161505953414aa85ba78cd993c65
Date: Fri Jun 1 16:07:55 2018 -0700
Revert "Remove HB_DISALLOW_COPY_AND_ASSIGN"
-
+
This reverts commit ff92de766bf775bfdd3a01bda94de699180ff86a.
-
+
Revert that and remove ASSERT_POD. Let's see which bots are
unhappy with this configuration...
Date: Thu May 31 20:03:00 2018 -0700
Rename in_error to !successful
-
+
Towards possibly using Null pool for some nil objects.
- src/hb-buffer-deserialize-json.hh | 758
- +++++++++++++++++------------------
+ src/hb-buffer-deserialize-json.hh | 758 +++++++++++++++++------------------
src/hb-buffer-deserialize-json.rl | 2 +-
src/hb-buffer-deserialize-text.hh | 510 +++++++++++------------
src/hb-buffer-deserialize-text.rl | 2 +-
Date: Thu May 31 19:52:16 2018 -0700
Fix a whitespace inconsistency
-
+
Null() and Crap() are only places that there's no space before '('...
src/dump-fon.cc | 12 ++++++------
Date: Thu May 31 19:28:04 2018 -0700
Use 0 as inert object reference value instead of -1
-
+
Towards using Null object for nil objects.
src/hb-object-private.hh | 2 +-
Date: Thu May 31 17:58:40 2018 -0700
Add const OffsetTo<> dereference
-
+
Unused, but now that we have CrapPool, implement it.
src/hb-open-type-private.hh | 6 ++++++
Date: Thu May 31 12:27:31 2018 +0430
Fix symbol export issue of prime_mod on Alpine bot
-
- Apparently our gcc-6.4.0 on Alpine Linux distribution doesn't like
- defining static const
+
+ Apparently our gcc-6.4.0 on Alpine Linux distribution doesn't like defining static const
inside a method, lets put that on outside the classes.
- src/hb-map-private.hh | 89
- ++++++++++++++++++++++++++-------------------------
+ src/hb-map-private.hh | 89 ++++++++++++++++++++++++++-------------------------
1 file changed, 45 insertions(+), 44 deletions(-)
commit 54800f8322e8ab106d801fc332b7e813c58138ac
Date: Wed May 30 16:26:50 2018 -0700
[map] Mark prime_for HB_INTERNAL
-
+
Trying to see if it fixes gcc-4.2 bots.
src/hb-map-private.hh | 2 +-
src/hb-ot-os2-table.hh | 35 +++--------
src/hb-ot-post-table.hh | 2 +-
src/hb-subset-glyf.cc | 9 ++-
- src/hb-subset-plan.cc | 159
- ++++++++++++++++--------------------------------
+ src/hb-subset-plan.cc | 159 ++++++++++++++++--------------------------------
src/hb-subset-plan.hh | 68 +++++++++++++--------
src/hb-subset.cc | 2 +-
11 files changed, 139 insertions(+), 188 deletions(-)
Date: Wed May 30 14:02:49 2018 -0700
[map] Fix size calculation
-
+
Don't know why I thought I should subtract one there...
src/hb-map-private.hh | 2 +-
Date: Tue May 29 18:48:45 2018 -0700
Remove HB_DISALLOW_COPY_AND_ASSIGN
-
+
llvm-gcc-4.2 bot had this problem:
- hb-private.hh:812: error: initializer specified for non-virtual method
- 'void hb_vector_t<Type, StaticSize>::operator=(const hb_vector_t<Type,
- StaticSize>&) [with Type = hb_user_data_array_t::hb_user_data_item_t,
- unsigned int StaticSize = 1u]'
-
- Removing the delete didn't work with a constructor. So, remove
- constructor.
+ hb-private.hh:812: error: initializer specified for non-virtual method 'void hb_vector_t<Type, StaticSize>::operator=(const hb_vector_t<Type, StaticSize>&) [with Type = hb_user_data_array_t::hb_user_data_item_t, unsigned int StaticSize = 1u]'
+
+ Removing the delete didn't work with a constructor. So, remove constructor.
Just disallow assignment. Still better than nothing.
src/hb-map-private.hh | 2 +-
Date: Tue May 29 18:21:55 2018 -0700
Disable use of thread_local
-
+
Clang build was failing with:
-
- /usr/bin/ld: .libs/libharfbuzz_la-hb-blob.o: relocation R_X86_64_PC32
- against undefined hidden symbol `_ZTH12_hb_CrapPool' can not be used
- when making a shared object
-
+
+ /usr/bin/ld: .libs/libharfbuzz_la-hb-blob.o: relocation R_X86_64_PC32 against undefined hidden symbol `_ZTH12_hb_CrapPool' can not be used when making a shared object
+
Instead of fighting it, just disable use of it.
src/hb-private.hh | 4 ++--
[map] Move prime_mod to header to avoid linkage issues in subset.so
- src/hb-map-private.hh | 53
- +++++++++++++++++++++++++++++++++++++++++++++++++--
- src/hb-map.cc | 52
- --------------------------------------------------
+ src/hb-map-private.hh | 53 +++++++++++++++++++++++++++++++++++++++++++++++++--
+ src/hb-map.cc | 52 --------------------------------------------------
2 files changed, 51 insertions(+), 54 deletions(-)
commit 6baebc5d559e15c7903a81f21be08b45537e7903
Date: Tue May 29 16:45:06 2018 -0700
Revert "[map] Return bool from set()"
-
+
This reverts commit face7cf55d4895ffca314c8448c0a749a26cc182.
src/hb-map-private.hh | 7 +++----
Date: Tue May 29 16:44:55 2018 -0700
Revert "[map] Make hb_map_set() return bool"
-
+
This reverts commit 7bf1980146cfc081b06264ac367b23ae9397adf1.
src/hb-map.cc | 4 ++--
Date: Tue May 29 16:28:48 2018 -0700
[map] First try at implementing an integer-to-integer hashmap
-
+
Fully untested.
src/Makefile.sources | 3 +
src/hb-map-private.hh | 180 ++++++++++++++++++++++++++++++++
- src/hb-map.cc | 279
- ++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-map.cc | 279 ++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-map.h | 110 ++++++++++++++++++++
src/hb.h | 1 +
5 files changed, 573 insertions(+)
Date: Sat May 26 23:50:10 2018 +0430
[blob] Use MAP_NORESERVE if available (#1039)
-
+
MAP_NORESERVE is not available on macOS for example so set the flag
to zero if not defined on the headers.
Date: Thu May 24 14:09:04 2018 -0700
Fix Uniscribe build
-
+
If a pointer type was passed to Null(), reinterpret_cast<> was
- complaining about qualifiers being removed. Turns out I need the
- const on
+ complaining about qualifiers being removed. Turns out I need the const on
the other side of "Type" to fix that. Also remove unused const from
NullPool type.
Date: Thu May 24 11:46:57 2018 -0700
Mark CrapPool thread_local
-
+
Not sure if I like to keep it. For now, aim for correctness.
src/dump-emoji.cc | 2 +-
Date: Thu May 24 11:33:15 2018 -0700
Add CrapPool
-
+
Common Regoin for Access Protection. Like the NullPool, but writable.
src/dump-emoji.cc | 1 +
Move code around
- src/hb-private.hh | 91
- ++++++++++++++++++++++++++++++-------------------------
+ src/hb-private.hh | 91 ++++++++++++++++++++++++++++++-------------------------
1 file changed, 49 insertions(+), 42 deletions(-)
commit 65aeabd62275b37c6bb6715f3341e45625f4ba6e
Date: Wed May 23 16:15:28 2018 -0700
Add hb_vector_t::push(const Type &v)
-
+
Makes for cleaner code.
src/hb-coretext.cc | 3 +--
Date: Wed May 23 13:37:57 2018 +0430
[ci] Revive the SunCC bot
-
+
* Adds libnsl to the bot as it is now needed apparently
- * Disables hb-icu, apparently the newer ICU itself is not compatible
- with SunCC
+ * Disables hb-icu, apparently the newer ICU itself is not compatible with SunCC
.circleci/config.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Date: Tue May 22 22:00:05 2018 -0700
Actually enable vectorized operations
-
+
Fixup for previous commit. Was accidentally turned off.
src/hb-private.hh | 2 +-
Date: Tue May 22 21:36:07 2018 -0700
Another try at smart vectorization
-
+
Make clang happy. Also, don't use anonymous union.
src/hb-private.hh | 36 +++++++++++++++++++++++++-----------
Date: Tue May 22 21:06:22 2018 -0700
Try enabling vectorization smartly
-
+
We'll see if this sticks to the bots.
src/hb-private.hh | 25 +++++++++++++++++--------
test/shaping/data/text-rendering-tests/DISABLED | 2 ++
test/shaping/data/text-rendering-tests/Makefile.sources | 2 ++
- .../text-rendering-tests/fonts/TestMORXTwentyeight.ttf | Bin 0 ->
- 2660 bytes
- .../text-rendering-tests/fonts/TestMORXTwentyseven.ttf | Bin 0 ->
- 2432 bytes
- .../data/text-rendering-tests/fonts/TestShapeKndaV3.ttf | Bin 0 ->
- 89400 bytes
+ .../text-rendering-tests/fonts/TestMORXTwentyeight.ttf | Bin 0 -> 2660 bytes
+ .../text-rendering-tests/fonts/TestMORXTwentyseven.ttf | Bin 0 -> 2432 bytes
+ .../data/text-rendering-tests/fonts/TestShapeKndaV3.ttf | Bin 0 -> 89400 bytes
.../data/text-rendering-tests/tests/MORX-27.tests | 3 +++
.../data/text-rendering-tests/tests/MORX-28.tests | 5 +++++
7 files changed, 12 insertions(+)
Date: Fri May 11 22:44:44 2018 +0430
Minor, make CreateFile compatible with the disabled writable flag
-
- "writable" is not in use and probably we can go in the reverse
- direction
- and remove the flags that are useful for enabled writable, this
- is just
+
+ "writable" is not in use and probably we can go in the reverse direction
+ and remove the flags that are useful for enabled writable, this is just
for the sake of completeness however.
src/hb-blob.cc | 5 +++--
Date: Fri May 11 14:36:41 2018 +0430
Remove unnecessary headers and definitions of hb-blob (#1028)
-
+
It removes io.h and other polyfills which we no longer need as 7e76d74
src/hb-blob.cc | 22 ++++------------------
Date: Fri May 11 13:40:33 2018 +0430
Make hb_blob_create_from_file more portable (#1027)
-
+
This makes it compatible with ARMCC which I had access in
a collaboration with @imgtec, thanks!
-
+
Basically hb_blob_create_from_file features three code paths,
mmap, Win32 and fallback.
-
+
We had fallback implementation even before this but it was relied
to "open" which is not available on some environments. This change
improved the situtation by using only fopen and friends for
fallback path.
-
+
Interestingly we could use "open" on Windows but in fact it was
emulated by MSVCRT so I've completely split that from Unix path
now that we have a distinct path for fallback path also.
- src/hb-blob.cc | 64
- +++++++++++++++++++++++++++++++++++++++-------------------
+ src/hb-blob.cc | 64 +++++++++++++++++++++++++++++++++++++++-------------------
1 file changed, 43 insertions(+), 21 deletions(-)
commit e99d75ea9c4fe1f64d7f8408093741a682ed5243
Date: Wed May 9 15:27:17 2018 -0700
Reinstante DEFINE_NULL_DATA
-
+
Seems like I messed up; buffer overrun got reported.
src/hb-open-type-private.hh | 2 ++
Author: Ebrahim Byagowi <ebrahim@gnu.org>
Date: Wed May 9 23:24:17 2018 +0430
- Use arrayZ on hb-coretext and hb-uniscribe and fix macOS/Win bots
- (#1024)
-
+ Use arrayZ on hb-coretext and hb-uniscribe and fix macOS/Win bots (#1024)
+
Following to 63f57f4
src/hb-coretext.cc | 2 +-
src/hb-ot-color-cbdt-table.hh | 10 +++---
src/hb-ot-layout-common-private.hh | 12 +++----
src/hb-ot-layout-gsub-table.hh | 16 ++++-----
- src/hb-ot-layout-gsubgpos-private.hh | 64
- ++++++++++++++++++------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 64 ++++++++++++++++++------------------
src/hb-ot-post-table.hh | 4 +--
src/hb-ot-var-avar-table.hh | 26 +++++++--------
src/hb-private.hh | 54 +++++++++++++++---------------
Date: Tue May 8 16:42:45 2018 -0700
Use UnsizedArrayOf<> in one place where [VAR] was used
-
+
Trying to see how many can converted meaningfully.
src/hb-ot-layout-common-private.hh | 10 +++++-----
Date: Tue May 8 15:21:09 2018 -0700
Merge pull request #1018 from googlefonts/cmap4
-
+
[subset] Add cmap format 4 subsetting.
commit 2a2e28e701319b4053a5c95f06c68f859e4ce99b
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue May 8 02:47:42 2018 -0700
- Always lock blob in sanitize. Remove blob->lock_as() in favor of
- blob->lock()
+ Always lock blob in sanitize. Remove blob->lock_as() in favor of blob->lock()
src/dump-emoji.cc | 4 ++--
src/dump-fon.cc | 2 +-
src/dump-emoji.cc | 6 ++---
src/dump-fon.cc | 14 +++++------
src/hb-aat-layout.cc | 8 +++----
- src/hb-open-type-private.hh | 48
- +++-----------------------------------
+ src/hb-open-type-private.hh | 48 +++-----------------------------------
src/hb-ot-cmap-table.hh | 4 ++--
src/hb-ot-color.cc | 4 ++--
src/hb-ot-layout-common-private.hh | 13 ++++++++---
Date: Tue May 8 01:47:05 2018 -0700
Allocate user-data-array on the heap
-
- This saves each object allocation 72 bytes. Now object overhead
- is just
+
+ This saves each object allocation 72 bytes. Now object overhead is just
16 bytes (on x86) instead of 88 bytes. Neat.
src/hb-object-private.hh | 36 ++++++++++++++++++++++++++++--------
Date: Tue May 8 01:28:19 2018 -0700
Oops
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1023
- src/hb-blob-private.hh | 77
- ++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-blob-private.hh | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 77 insertions(+)
commit f673cfbd64d0c9d97123500a7b851b9cfc09deb3
Date: Mon May 7 13:58:32 2018 -0700
Support scripts that are written both LTR and RTL
-
+
Right now only Old Italic is marked as such.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/1000
src/hb-buffer.cc | 4 ++++
src/hb-ot-shape.cc | 7 +++++--
test/api/test-common.c | 1 +
test/shaping/data/in-house/Makefile.sources | 1 +
- .../fonts/73e84dac2fc6a2d1bc9250d1414353661088937d.ttf | Bin 0 ->
- 1136 bytes
+ .../fonts/73e84dac2fc6a2d1bc9250d1414353661088937d.ttf | Bin 0 -> 1136 bytes
test/shaping/data/in-house/tests/none-directional.tests | 3 +++
7 files changed, 20 insertions(+), 2 deletions(-)
Move some blob functions to methods
- src/hb-blob.cc | 80
- +++++++++++++++++++++++++---------------------------------
+ src/hb-blob.cc | 80 +++++++++++++++++++++++++---------------------------------
1 file changed, 34 insertions(+), 46 deletions(-)
commit 5c64d61475f15d7f8de8993a52639735b2bcf750
Date: Thu May 3 21:10:57 2018 -0400
Add hb-blob-private.hh
-
+
Towards making blob more memory-allocation-friendly
src/Makefile.sources | 1 +
Date: Thu May 3 21:03:27 2018 -0400
[ot-layout] Remove unused members
-
- We should hang those off somewhere else. For now, the unused ones
- can go.
+
+ We should hang those off somewhere else. For now, the unused ones can go.
src/hb-aat-layout-common-private.hh | 2 +-
src/hb-aat-layout.cc | 6 ++++++
Date: Tue May 8 01:05:15 2018 +0430
Set inline hidden flag only on shared library building
-
- To avoid need of CMP0063 which is not available on older CMake
- versions
+
+ To avoid need of CMP0063 which is not available on older CMake versions
CMakeLists.txt | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
Author: Garret Rieger <grieger@google.com>
Date: Thu May 3 13:00:19 2018 -0700
- [subset] Switch to a non-log using implementation of caculating
- searchRangeZ, entrySelectorZ, and rangeShiftZ in cmap4.
+ [subset] Switch to a non-log using implementation of caculating searchRangeZ, entrySelectorZ, and rangeShiftZ in cmap4.
src/hb-ot-cmap-table.hh | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
Author: Garret Rieger <grieger@google.com>
Date: Thu May 3 11:22:51 2018 -0700
- [subset] Updated expected files for japanese subset integration
- tests to include cmap4.
-
- ...gular.default.3042,3044,3046,3048,304A,304B.ttf | Bin 3032 ->
- 3112 bytes
- ...gular.default.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 3268 ->
- 3356 bytes
- .../Mplus1p-Regular.default.61,63,65,6B.ttf | Bin 2584 ->
- 2656 bytes
- ...gular.default.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 3564 ->
- 3652 bytes
- .../japanese/Mplus1p-Regular.default.660E.ttf | Bin 2348 ->
- 2396 bytes
- ...ar.drop-hints.3042,3044,3046,3048,304A,304B.ttf | Bin 2304 ->
- 2384 bytes
- ...ar.drop-hints.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 2540 ->
- 2628 bytes
- .../Mplus1p-Regular.drop-hints.61,63,65,6B.ttf | Bin 1856 ->
- 1928 bytes
- ...ar.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 2836 ->
- 2924 bytes
- .../japanese/Mplus1p-Regular.drop-hints.660E.ttf | Bin 1620 ->
- 1668 bytes
- test/subset/data/fonts/Mplus1p-Regular.ttf | Bin 1758820 ->
- 1757292 bytes
+ [subset] Updated expected files for japanese subset integration tests to include cmap4.
+
+ ...gular.default.3042,3044,3046,3048,304A,304B.ttf | Bin 3032 -> 3112 bytes
+ ...gular.default.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 3268 -> 3356 bytes
+ .../Mplus1p-Regular.default.61,63,65,6B.ttf | Bin 2584 -> 2656 bytes
+ ...gular.default.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 3564 -> 3652 bytes
+ .../japanese/Mplus1p-Regular.default.660E.ttf | Bin 2348 -> 2396 bytes
+ ...ar.drop-hints.3042,3044,3046,3048,304A,304B.ttf | Bin 2304 -> 2384 bytes
+ ...ar.drop-hints.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 2540 -> 2628 bytes
+ .../Mplus1p-Regular.drop-hints.61,63,65,6B.ttf | Bin 1856 -> 1928 bytes
+ ...ar.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 2836 -> 2924 bytes
+ .../japanese/Mplus1p-Regular.drop-hints.660E.ttf | Bin 1620 -> 1668 bytes
+ test/subset/data/fonts/Mplus1p-Regular.ttf | Bin 1758820 -> 1757292 bytes
11 files changed, 0 insertions(+), 0 deletions(-)
commit 79479273170275447042aa50912acee74bbacdf6
Author: Garret Rieger <grieger@google.com>
Date: Thu May 3 11:18:02 2018 -0700
- [subset] Update expected files for subset integration tests to
- include cmap4.
-
- .../basics/Roboto-Regular.abc.default.61,62,63.ttf | Bin 2120 ->
- 2168 bytes
- .../basics/Roboto-Regular.abc.default.61,63.ttf | Bin 1932 ->
- 1988 bytes
- .../expected/basics/Roboto-Regular.abc.default.61.ttf | Bin 1744 ->
- 1792 bytes
- .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1692 ->
- 1740 bytes
- .../expected/basics/Roboto-Regular.abc.default.63.ttf | Bin 1668 ->
- 1716 bytes
- .../basics/Roboto-Regular.abc.drop-hints.61,62,63.ttf | Bin 876 ->
- 924 bytes
- .../basics/Roboto-Regular.abc.drop-hints.61,63.ttf | Bin 792 ->
- 848 bytes
- .../basics/Roboto-Regular.abc.drop-hints.61.ttf | Bin 684 ->
- 732 bytes
- .../basics/Roboto-Regular.abc.drop-hints.62.ttf | Bin 652 ->
- 700 bytes
- .../basics/Roboto-Regular.abc.drop-hints.63.ttf | Bin 656 ->
- 704 bytes
- .../Roboto-Regular.default.1FC,21,41,20,62,63.ttf | Bin 3700 ->
- 3772 bytes
- .../full-font/Roboto-Regular.default.61,62,63.ttf | Bin 3320 ->
- 3368 bytes
- .../Roboto-Regular.default.D7,D8,D9,DA,DE.ttf | Bin 3668 ->
- 3732 bytes
- .../Roboto-Regular.drop-hints.1FC,21,41,20,62,63.ttf | Bin 2152 ->
- 2224 bytes
- .../full-font/Roboto-Regular.drop-hints.61,62,63.ttf | Bin 1968 ->
- 2016 bytes
- .../Roboto-Regular.drop-hints.D7,D8,D9,DA,DE.ttf | Bin 2188 ->
- 2252 bytes
+ [subset] Update expected files for subset integration tests to include cmap4.
+
+ .../basics/Roboto-Regular.abc.default.61,62,63.ttf | Bin 2120 -> 2168 bytes
+ .../basics/Roboto-Regular.abc.default.61,63.ttf | Bin 1932 -> 1988 bytes
+ .../expected/basics/Roboto-Regular.abc.default.61.ttf | Bin 1744 -> 1792 bytes
+ .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1692 -> 1740 bytes
+ .../expected/basics/Roboto-Regular.abc.default.63.ttf | Bin 1668 -> 1716 bytes
+ .../basics/Roboto-Regular.abc.drop-hints.61,62,63.ttf | Bin 876 -> 924 bytes
+ .../basics/Roboto-Regular.abc.drop-hints.61,63.ttf | Bin 792 -> 848 bytes
+ .../basics/Roboto-Regular.abc.drop-hints.61.ttf | Bin 684 -> 732 bytes
+ .../basics/Roboto-Regular.abc.drop-hints.62.ttf | Bin 652 -> 700 bytes
+ .../basics/Roboto-Regular.abc.drop-hints.63.ttf | Bin 656 -> 704 bytes
+ .../Roboto-Regular.default.1FC,21,41,20,62,63.ttf | Bin 3700 -> 3772 bytes
+ .../full-font/Roboto-Regular.default.61,62,63.ttf | Bin 3320 -> 3368 bytes
+ .../Roboto-Regular.default.D7,D8,D9,DA,DE.ttf | Bin 3668 -> 3732 bytes
+ .../Roboto-Regular.drop-hints.1FC,21,41,20,62,63.ttf | Bin 2152 -> 2224 bytes
+ .../full-font/Roboto-Regular.drop-hints.61,62,63.ttf | Bin 1968 -> 2016 bytes
+ .../Roboto-Regular.drop-hints.D7,D8,D9,DA,DE.ttf | Bin 2188 -> 2252 bytes
16 files changed, 0 insertions(+), 0 deletions(-)
commit a8e7f9b958dcb4e00226f78d0ff83f031bc1323d
Author: Garret Rieger <grieger@google.com>
Date: Thu May 3 10:53:20 2018 -0700
- [subset] Write out a format 4, plat 0 encoding record to match
- fontTools.
+ [subset] Write out a format 4, plat 0 encoding record to match fontTools.
src/hb-ot-cmap-table.hh | 24 +++++++++++++++---------
test/api/test-subset-cmap.c | 2 +-
[subset] A few bug fixes for cmap format 4 subsetting.
- src/hb-ot-cmap-table.hh | 57
- ++++++++++++++++++++++++++++---------------------
+ src/hb-ot-cmap-table.hh | 57 ++++++++++++++++++++++++++++---------------------
1 file changed, 33 insertions(+), 24 deletions(-)
commit 81ea75f5c860ef682184bd2c9d0ff8b48251e3ce
[subset] WIP cmap format 4 subsetting.
- src/hb-ot-cmap-table.hh | 104
- ++++++++++++++++++++++++++++++++++++++++--------
+ src/hb-ot-cmap-table.hh | 104 ++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 88 insertions(+), 16 deletions(-)
commit 0053d13283458996372f04bd501001d450523605
Author: Garret Rieger <grieger@google.com>
Date: Wed May 2 15:42:43 2018 -0700
- [subset] Refactor cmap subsetting to make it possible to add support
- for more sub tables.
+ [subset] Refactor cmap subsetting to make it possible to add support for more sub tables.
- src/hb-ot-cmap-table.hh | 161
- ++++++++++++++++++++++++++++++------------------
+ src/hb-ot-cmap-table.hh | 161 ++++++++++++++++++++++++++++++------------------
1 file changed, 102 insertions(+), 59 deletions(-)
commit 03b27548123756dfd9988a8fc74bc78733fb2c44
Author: Garret Rieger <grieger@google.com>
Date: Wed May 2 15:42:08 2018 -0700
- [subset] Add const to the hb_subset_plan_t input to a couple functions
- in hb-subset-plan.
+ [subset] Add const to the hb_subset_plan_t input to a couple functions in hb-subset-plan.
src/hb-subset-plan.cc | 4 ++--
src/hb-subset-plan.hh | 18 +++++++++---------
Date: Wed May 2 14:59:14 2018 -0400
Rename some X-terminated members to Z-terminated
-
+
X-terminated means don't access this, it's not located correctly.
Z-terminated means this is a C array with no bound checking.
Date: Wed May 2 12:56:21 2018 -0400
[set] Fix init/fini of set on the stack to call object init/fini
-
+
Part of https://github.com/harfbuzz/harfbuzz/issues/1017
src/hb-set-private.hh | 14 ++++++++++++--
Date: Tue May 1 19:09:00 2018 -0400
Remove hb_auto_array_t
-
+
Part of https://github.com/harfbuzz/harfbuzz/issues/1017
src/hb-coretext.cc | 8 ++++----
Date: Tue May 1 19:07:04 2018 -0400
s/hb_prealloced_array_t/hb_vector_t/g
-
+
Part of https://github.com/harfbuzz/harfbuzz/issues/1017
src/hb-ot-cmap-table.hh | 6 +++---
Date: Tue May 1 19:05:58 2018 -0400
Add hb_auto_t
-
+
Part of https://github.com/harfbuzz/harfbuzz/issues/1017
src/hb-private.hh | 11 ++++++++---
Date: Tue May 1 19:01:25 2018 -0400
s/finish/fini
-
+
For consistency.
src/hb-common.cc | 8 ++++----
Date: Tue May 1 18:27:41 2018 -0400
[set] Cache population
-
+
Part of https://github.com/harfbuzz/harfbuzz/issues/1017
src/hb-set-private.hh | 24 +++++++++++++++++++++++-
Date: Sat Apr 28 20:29:13 2018 +0200
[subset] Do not compare ttx progress output in the tests
-
- Suppress progress messages of ttx. This avoids comparing this output
- to the reference file which lets the test fail.
+
+ Suppress progress messages of ttx. This avoids comparing this output to the reference file which lets the test fail.
test/subset/run-tests.py | 1 +
1 file changed, 1 insertion(+)
Date: Fri Apr 13 12:43:29 2018 +0430
Don't decompose Bengali Rra and Rha
-
+
Fixes #779 and follow up to b01d9b3d90e892341ee4463f2eda4600850b97d8
src/hb-ot-shape-complex-indic.cc | 3 +++
test/shaping/data/in-house/Makefile.sources | 1 +
- .../fonts/932ad5132c2761297c74e9976fe25b08e5ffa10b.ttf | Bin 0 ->
- 22980 bytes
+ .../fonts/932ad5132c2761297c74e9976fe25b08e5ffa10b.ttf | Bin 0 -> 22980 bytes
test/shaping/data/in-house/tests/indic-decompose.tests | 1 +
4 files changed, 5 insertions(+)
Date: Wed Apr 25 16:44:04 2018 +0430
Minor, improve file reading failing condition comment
-
+
https://bugzilla.gnome.org/show_bug.cgi?id=659212 for more context
src/hb-blob.cc | 3 ++-
Author: Ebrahim Byagowi <ebrahim@gnu.org>
Date: Tue Apr 24 09:04:15 2018 +0430
- Minor, re-add unused mark to some of ragel defined state machines
- (#1005)
+ Minor, re-add unused mark to some of ragel defined state machines (#1005)
src/hb-ot-shape-complex-indic-machine.hh | 2 +-
src/hb-ot-shape-complex-indic-machine.rl | 2 +-
Date: Tue Apr 24 08:11:13 2018 +0430
Minor, re-add unused mark for two TRACE_ macros
-
+
To revive Travis CI bot
src/hb-debug.hh | 4 ++--
[aat/kerx] Minor (#1003)
- src/hb-aat-layout-kerx-table.hh | 46
- +++++++++++++++++++++--------------------
+ src/hb-aat-layout-kerx-table.hh | 46 +++++++++++++++++++++--------------------
1 file changed, 24 insertions(+), 22 deletions(-)
commit ce17340b23d96f543cd88e400e631bdb5656331c
docs/harfbuzz-sections.txt | 1 +
src/dump-emoji.cc | 33 +----------
src/dump-fon.cc | 11 +---
- src/hb-blob.cc | 131
- ++++++++++++++++++++++++++++++++++++++++---
+ src/hb-blob.cc | 131 ++++++++++++++++++++++++++++++++++++++++---
src/hb-blob.h | 2 +
src/main.cc | 26 +--------
src/test-buffer-serialize.cc | 42 +-------------
Author: Garret Rieger <grieger@google.com>
Date: Thu Apr 19 15:30:35 2018 -0700
- [subset] Check instruction offsets in glyph to ensure they are
- in bounds.
+ [subset] Check instruction offsets in glyph to ensure they are in bounds.
src/hb-ot-glyf-table.hh | 18 ++++++++++--
.../oom-ccc61c92d589f895174cdef6ff2e3b20e9999a1a | Bin 0 -> 63302 bytes
- test/api/test-subset-glyf.c | 31
- +++++++++++++++++++++
+ test/api/test-subset-glyf.c | 31 +++++++++++++++++++++
3 files changed, 47 insertions(+), 2 deletions(-)
commit 3c97614598ecd0bbccb2c90a8e0e99f010952b76
Author: Garret Rieger <grieger@google.com>
Date: Thu Apr 19 13:39:57 2018 -0700
- [subset] In subset fuzzer run through drop hints and keep hints
- pathways.
+ [subset] In subset fuzzer run through drop hints and keep hints pathways.
test/fuzzing/hb-subset-fuzzer.cc | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
Date: Thu Apr 19 23:41:37 2018 +0300
[util] Check all specified shapers are known (#993)
-
+
A bit brute force and requires all shapers to be known, not just one.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/956
util/options.cc | 22 ++++++++++++++++++++--
[subset] Add integration tests for cmap breakge.
- .../full-font/Roboto-Regular.default.D7,D8,D9,DA,DE.ttf | Bin 0 ->
- 3668 bytes
- .../Roboto-Regular.drop-hints.D7,D8,D9,DA,DE.ttf | Bin 0 ->
- 2188 bytes
+ .../full-font/Roboto-Regular.default.D7,D8,D9,DA,DE.ttf | Bin 0 -> 3668 bytes
+ .../Roboto-Regular.drop-hints.D7,D8,D9,DA,DE.ttf | Bin 0 -> 2188 bytes
test/subset/data/tests/full-font.tests | 1 +
3 files changed, 1 insertion(+)
[subset] Add a test for previous cmap breakage.
test/api/fonts/Roboto-Regular.D7,D8,D9,DA,DE.ttf | Bin 0 -> 2972 bytes
- test/api/test-subset-cmap.c | 23
- +++++++++++++++++++++++
+ test/api/test-subset-cmap.c | 23 +++++++++++++++++++++++
2 files changed, 23 insertions(+)
commit 5e318e09ba590eef7b7ec047d7857f7f1eb7d787
Date: Wed Apr 18 17:13:37 2018 -0700
[subset] Fix broken cmap creation.
- It was ignoring the restriction that gids must be consecutive to be
- placed into a single group.
+ It was ignoring the restriction that gids must be consecutive to be placed into a single group.
src/hb-ot-cmap-table.hh | 23 ++++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
Author: Garret Rieger <grieger@google.com>
Date: Tue Apr 17 08:21:22 2018 -0600
- [subset] add a fuzzer target for subset_get_all_codepoints
- method. (#987)
+ [subset] add a fuzzer target for subset_get_all_codepoints method. (#987)
test/fuzzing/CMakeLists.txt | 7 ++++++-
test/fuzzing/Makefile.am | 16 ++++++++++++++++
- test/fuzzing/hb-subset-get-codepoints-fuzzer.cc | 24
- ++++++++++++++++++++++++
+ test/fuzzing/hb-subset-get-codepoints-fuzzer.cc | 24 ++++++++++++++++++++++++
test/fuzzing/run-subset-fuzzer-tests.py | 19 ++++++++++++++++++-
4 files changed, 64 insertions(+), 2 deletions(-)
Author: Garret Rieger <grieger@google.com>
Date: Tue Apr 17 07:00:23 2018 -0600
- [subset] Add implementation of cmap format 12 codepoint
- listing. (#988)
+ [subset] Add implementation of cmap format 12 codepoint listing. (#988)
src/hb-ot-cmap-table.hh | 21 +++++++++++-
test/api/fonts/Roboto-Regular.abc.format12.ttf | Bin 0 -> 2412 bytes
- test/api/test-subset-codepoints.c | 44
- +++++++++++++++++++++++++
+ test/api/test-subset-codepoints.c | 44 +++++++++++++++++++++++++
3 files changed, 64 insertions(+), 1 deletion(-)
commit 6771e79bcc2166b5c03ca615d271c8508d692416
Date: Tue Apr 17 09:36:52 2018 +0430
Add pre-opentype font pages detection code (#986)
-
- As Khaled's finding on #981 this is the way Uniscribe detects those
- fonts. This is its detection part.
+
+ As Khaled's finding on #981 this is the way Uniscribe detects those fonts. This is its detection part.
src/hb-ot-os2-table.hh | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
Date: Tue Apr 17 09:13:35 2018 +0430
Make some of implicit header uses explicit (#989)
-
- Splitted from #950 and #986 IIRC Chromium had a policy about this
- encouraging it,
- not sure about automated way to detect and add them but for now lets
- have the needed
+
+ Splitted from #950 and #986 IIRC Chromium had a policy about this encouraging it,
+ not sure about automated way to detect and add them but for now lets have the needed
ones of them.
src/hb-aat-layout-morx-table.hh | 1 +
Date: Tue Apr 17 09:13:03 2018 +0430
Add round to F2DOT14 inner store setter (#990)
-
- It uses floor implicitly without it but explicit use of round will
- be more correct.
+
+ It uses floor implicitly without it but explicit use of round will be more correct.
src/hb-open-type-private.hh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Author: Garret Rieger <grieger@google.com>
Date: Mon Apr 16 15:09:27 2018 -0700
- [subset] Don't assume the last segment in cmap 4 can be skipped,
- actually check it.
+ [subset] Don't assume the last segment in cmap 4 can be skipped, actually check it.
src/hb-ot-cmap-table.hh | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
Author: Garret Rieger <grieger@google.com>
Date: Tue Apr 10 15:40:24 2018 -0700
- [subset] sketch out support for a call that lists all codepoints
- present in a font. Implement support for it in format 4 cmap sub
- table.
+ [subset] sketch out support for a call that lists all codepoints present in a font. Implement support for it in format 4 cmap sub table.
src/hb-ot-cmap-table.hh | 37 ++++++++++++++--
src/hb-subset.cc | 14 ++++++
src/hb-subset.h | 5 ++-
test/api/Makefile.am | 2 +
test/api/fonts/Roboto-Regular.abc.format4.ttf | Bin 0 -> 2424 bytes
- test/api/test-subset-codepoints.c | 59
- ++++++++++++++++++++++++++
+ test/api/test-subset-codepoints.c | 59 ++++++++++++++++++++++++++
6 files changed, 113 insertions(+), 4 deletions(-)
commit aef96e246cb695c4c83b8b6daed06a0d14fe1d32
Further improvements on dump-fon (#985)
- src/dump-fon.cc | 153
- +++++++++++++++++++++++++++++++++++++++++++++-----------
+ src/dump-fon.cc | 153 +++++++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 123 insertions(+), 30 deletions(-)
commit 67dfb1937b703b3f1dc45251f4f884abf35c8576
Add dump-fon, a prototype on how to work with .fon/.fnt files (#981)
src/Makefile.am | 4 +
- src/dump-fon.cc | 475
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/dump-fon.cc | 475 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 479 insertions(+)
commit ce99dd04de830c8426af14c11dbee45f8bcc9e60
Date: Fri Apr 13 23:19:19 2018 +0430
Merge pull request #979 from ebraminio/msvc05
-
+
Reinstate support for Visual Studio 2005
commit 8f4c12308a8d9e61922fb352e913acae46b28a88
Date: Thu Apr 12 14:17:03 2018 +0430
Always enable atexit on Android (#971)
-
+
Obviously one can use a newer NDK for building an updated HarfBuzz
instead that now pretty old version however I am concerned if that
version checking is working with clang that is used with the newer
src/hb-open-type-private.hh | 1 -
src/hb-ot-color-cbdt-table.hh | 10 +++++-----
src/hb-ot-color-cpal-table.hh | 4 ++--
- src/hb-ot-color-sbix-table.hh | 41
- ++++++++++++++++++++---------------------
+ src/hb-ot-color-sbix-table.hh | 41 ++++++++++++++++++++---------------------
src/hb-ot-color-svg-table.hh | 37 +++++++++++++++++++------------------
5 files changed, 46 insertions(+), 47 deletions(-)
[colr/cpal] Improvements and add a sample renderer (#927)
src/Makefile.am | 13 ++-
- src/dump-emoji.cc | 181
- +++++++++++++++++++++++++++++++++++++++---
+ src/dump-emoji.cc | 181 +++++++++++++++++++++++++++++++++++++++---
src/hb-ot-color-colr-table.hh | 43 +++++++++-
src/hb-ot-color-cpal-table.hh | 70 +++++++++-------
4 files changed, 259 insertions(+), 48 deletions(-)
Date: Tue Apr 10 00:51:57 2018 +0430
[ci] Don't fail on brew warnings
-
- Not the best fix but it works and we don't care about brew warnings,
- so
+
+ Not the best fix but it works and we don't care about brew warnings, so
.travis.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[aat] Further improvements on feat (#948)
src/Makefile.sources | 2 +-
- ...t-feat-table.hh => hb-aat-layout-feat-table.hh} | 48
- +++++++++++-----------
+ ...t-feat-table.hh => hb-aat-layout-feat-table.hh} | 48 +++++++++++-----------
src/hb-aat-layout.cc | 2 +-
3 files changed, 25 insertions(+), 27 deletions(-)
[aat] Implement feat table parsing (#947)
src/Makefile.sources | 3 +-
- src/hb-aat-feat-table.hh | 122
- +++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-aat-feat-table.hh | 122 +++++++++++++++++++++++++++++++++++++++++++++++
src/hb-aat-layout.cc | 1 +
3 files changed, 125 insertions(+), 1 deletion(-)
Date: Sat Mar 31 12:15:50 2018 +0200
Another try at fixing linker issue
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/880
configure.ac | 11 +++++++++--
[aat] Implement gcid table parsing (#944)
src/Makefile.sources | 1 +
- src/hb-aat-gcid-table.hh | 73
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-aat-gcid-table.hh | 73 ++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-aat-layout.cc | 1 +
3 files changed, 75 insertions(+)
[aat] Implement bsln table parsing (#943)
src/Makefile.sources | 1 +
- src/hb-aat-layout-bsln-table.hh | 156
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-aat-layout-bsln-table.hh | 156 ++++++++++++++++++++++++++++++++++++++++
src/hb-aat-layout.cc | 3 +-
3 files changed, 159 insertions(+), 1 deletion(-)
Make atexit callbacks threadsafe (#930)
- src/hb-common.cc | 60
- +++++++++++++++++++++++++++++------------------------
+ src/hb-common.cc | 60 +++++++++++++++++++++++++++++------------------------
src/hb-ft.cc | 44 ++++++++++++++++++++++++---------------
src/hb-glib.cc | 7 ++++++-
src/hb-icu.cc | 7 ++++++-
Make more gen-* scripts py3 compatible (#940)
src/Makefile.am | 2 +-
- src/gen-arabic-table.py | 163
- +++++++++++----------
+ src/gen-arabic-table.py | 163 +++++++++++----------
src/gen-def.py | 2 +-
src/gen-indic-table.py | 120 +++++++--------
src/gen-unicode-ranges.py | 8 +-
Makefile.am | 3 ++-
README.python => README.python.md | 12 +++++++++---
- README.wine.md | 40
- +++++++++++++++++++++++++++++++++++++++
+ README.wine.md | 40 +++++++++++++++++++++++++++++++++++++++
RELEASING.md | 25 +++++++++++++-----------
4 files changed, 65 insertions(+), 15 deletions(-)
Date: Wed Mar 28 15:33:51 2018 -0700
[atexit] Make hb_languate_item_t *langs freeing threadsafe
-
+
Part of https://github.com/harfbuzz/harfbuzz/issues/923
src/hb-common.cc | 15 ++++++++++-----
Date: Wed Mar 28 14:06:58 2018 -0700
Fix one UBSan warning
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/935
src/hb-font-private.hh | 6 +++++-
Date: Wed Mar 28 13:38:51 2018 -0700
[uniscribe] Fixup for previous commit
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/934
src/hb-uniscribe.cc | 5 +++--
Date: Wed Mar 28 10:44:52 2018 -0700
[uniscribe] Fix assertion fail in checksum calc
-
- Program:
- Z:\Users\ebrahim\Desktop\harfbuzz\winbuild\util\.libs\hb-shape.exe
+
+ Program: Z:\Users\ebrahim\Desktop\harfbuzz\winbuild\util\.libs\hb-shape.exe
File: ../../src/hb-open-type-private.hh, Line 769
-
+
Expression: 0 == (Length & 3)
-
+
abnormal program termination
src/hb-uniscribe.cc | 2 +-
Make gen-use-table.py py3 compatible (#932)
- src/gen-use-table.py | 105
- ++++++++++++++++++++++++++-------------------------
+ src/gen-use-table.py | 105 ++++++++++++++++++++++++++-------------------------
1 file changed, 53 insertions(+), 52 deletions(-)
commit 1c3372786c503f3f9108971dfa8956e4cb95f65d
Author: Garret Rieger <grieger@google.com>
Date: Tue Mar 27 10:42:19 2018 -0700
- [subset] fix infinite loop bug in looping through tables for
- subsetting.
+ [subset] fix infinite loop bug in looping through tables for subsetting.
src/hb-subset.cc | 2 +-
...ase-minimized-hb-subset-fuzzer-5521982557782016 | Bin 0 -> 1228 bytes
- test/api/test-subset.c | 23
- +++++++++++++++++++++
+ test/api/test-subset.c | 23 +++++++++++++++++++++
3 files changed, 24 insertions(+), 1 deletion(-)
commit 8fd55422c3fa2279991d93875d912fca4ee89cf5
Date: Tue Mar 27 16:57:09 2018 +0430
Implement an internal emojis dumper tool (#909)
-
- Later to be expanded to a more general tool but for now it only
- supports CBDT, SVG and CBDT.
+
+ Later to be expanded to a more general tool but for now it only supports CBDT, SVG and CBDT.
CMakeLists.txt | 2 +-
src/Makefile.am | 4 ++
- src/dump-emoji.cc | 141
- ++++++++++++++++++++++++++++++++++++++++++
+ src/dump-emoji.cc | 141 ++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-color-cbdt-table.hh | 71 +++++++++++++++++++++
src/hb-ot-color-sbix-table.hh | 79 ++++++++++++++---------
src/hb-ot-color-svg-table.hh | 56 ++++++++++++-----
Date: Mon Mar 26 20:56:56 2018 -0600
[subset] Couple of fixes for fuzzer discovered issues. (#924)
-
- * [subset] sanitize individual DeviceRecord's as part of hdmx
- sanitization.
-
+
+ * [subset] sanitize individual DeviceRecord's as part of hdmx sanitization.
+
* [subset] Fix out of bounds read with non-two byte align glyphs.
-
+
* [subset] Just use size_device_record >= DeviceRecord::min_size.
-
+
* [subset] Add TODO.
-
+
* [subset] Re-order checks in hdmx sanitize.
src/hb-ot-hdmx-table.hh | 1 +
src/hb-subset.cc | 6 +++++-
...ase-minimized-hb-subset-fuzzer-5609911946838016 | Bin 0 -> 313 bytes
...ase-minimized-hb-subset-fuzzer-6651660668502016 | Bin 0 -> 15229 bytes
- test/api/test-subset-hdmx.c | 23
- +++++++++++++++++++++
+ test/api/test-subset-hdmx.c | 23 +++++++++++++++++++++
6 files changed, 32 insertions(+), 4 deletions(-)
commit 6f46883f5b74b206a3b77246891ab2ac57a27c4e
Date: Mon Mar 26 15:09:54 2018 -0700
Fix previous commit
-
+
Automake has this stupid behavior where if your Makefile.am has
syntactic error, it can get to a state that make succeeds but just
ignores broken Makefile.am. Ouch.
Date: Mon Mar 26 14:26:45 2018 -0700
Try fixing linking again
-
- Before 1.7.5, we were setting -fno-exceptions etc on CXXFLAGS. In
- 1.7.6
+
+ Before 1.7.5, we were setting -fno-exceptions etc on CXXFLAGS. In 1.7.6
we set it as CPPFLAGS. Try fixing. Also, I'm fairly sure it's safe to
set these unconditionally.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/880 (or so I hope)
src/Makefile.am | 19 +++++++------------
Date: Mon Mar 26 14:09:29 2018 -0700
Add HB_SUBSET_BUILTIN
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/865
src/hb-subset.cc | 2 +-
src/Makefile.sources | 2 ++
src/hb-aat-layout-fmtx-table.hh | 6 ++--
src/hb-aat-layout-kerx-table.hh | 4 +--
- src/hb-aat-layout-ltag-table.hh | 80
- +++++++++++++++++++++++++++++++++++++++++
+ src/hb-aat-layout-ltag-table.hh | 80 +++++++++++++++++++++++++++++++++++++++++
src/hb-aat-layout-morx-table.hh | 4 +--
src/hb-aat-layout-trak-table.hh | 4 +--
src/hb-aat-layout.cc | 3 +-
[aat/fmtx] Implement the table parsing (#910)
- src/hb-aat-layout-fmtx-table.hh | 67
- +++++++++++++++++++++++++++++++++++++++++
+ src/hb-aat-layout-fmtx-table.hh | 67 +++++++++++++++++++++++++++++++++++++++++
src/hb-aat-layout-trak-table.hh | 4 +--
src/hb-aat-layout.cc | 1 +
3 files changed, 70 insertions(+), 2 deletions(-)
[dwrite] minor
src/dev-run.sh | 5 ++-
- src/hb-directwrite.cc | 118
- ++++++++++++++++++++------------------------------
+ src/hb-directwrite.cc | 118 ++++++++++++++++++++------------------------------
2 files changed, 50 insertions(+), 73 deletions(-)
commit ebccd019749e24e6c045518ee1ffbfc947744204
Date: Sat Mar 24 17:51:55 2018 -0700
More ULL fixes
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/901
src/hb-private.hh | 12 ++++++------
Date: Sat Mar 24 14:12:12 2018 -0700
Define uint64_t constants with ULL suffix
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/901
src/hb-private.hh | 2 +-
Date: Mon Mar 12 13:33:03 2018 +0800
hb-private.hh: Add fallback implementation for round()
-
+
For pre-C99 compilers that do not support round(), we need to have a
simplistic implementation for it, when it is not detected during build
configuration, either via CMake or autotools, by using floor() and
ceil(), which are provided in the pre-C99 compilers.
-
+
Please see discussion at commit 86a0ac2 for more details for re-adding
this patch.
Date: Fri Mar 23 19:38:11 2018 +0000
Policy 0063 must be enabled to have hidden inline visibility... (#900)
-
+
...on static builds.
CMakeLists.txt | 2 ++
[dwrite] Replace rest of 'malloc/free's with 'new/delete' (#897)
- src/hb-directwrite.cc | 251
- +++++++++++++++++++++++++-------------------------
+ src/hb-directwrite.cc | 251 +++++++++++++++++++++++++-------------------------
1 file changed, 127 insertions(+), 124 deletions(-)
commit 3f55e0e74680c246819233a7250df612821698d7
Author: Garret Rieger <grieger@google.com>
Date: Tue Mar 20 17:36:52 2018 -0700
- [subset] Check for the Null table and not nullptr to detect failure
- to find a table in glyf accelerator.
+ [subset] Check for the Null table and not nullptr to detect failure to find a table in glyf accelerator.
src/hb-ot-glyf-table.hh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
Author: Garret Rieger <grieger@google.com>
Date: Tue Mar 20 16:55:42 2018 -0700
- [subset] don't use pointers returned from push after array has
- resized in hb-subset-glyf.cc
+ [subset] don't use pointers returned from push after array has resized in hb-subset-glyf.cc
src/hb-subset-glyf.cc | 9 +++++++--
- .../crash-b577db318b30f2851828a4c9ef97cb30678b1b54 | Bin 0 ->
- 22473 bytes
+ .../crash-b577db318b30f2851828a4c9ef97cb30678b1b54 | Bin 0 -> 22473 bytes
2 files changed, 7 insertions(+), 2 deletions(-)
commit 3531efdb4c641ef543ea0686fef9289307d52096
[subset] Fixed out of bounds read when subsetting hdmx.
- src/hb-ot-hdmx-table.hh | 30
- ++++++++++++++++-----
+ src/hb-ot-hdmx-table.hh | 30 ++++++++++++++++-----
.../crash-ccc61c92d589f895174cdef6ff2e3b20e9999a1a | Bin 0 -> 63302 bytes
test/api/test-subset-hdmx.c | 23 ++++++++++++++++
3 files changed, 47 insertions(+), 6 deletions(-)
Author: Garret Rieger <grieger@google.com>
Date: Tue Mar 20 13:00:49 2018 -0700
- [subset] Disable glyf accelerator_t methods if it didn't successfully
- init.
+ [subset] Disable glyf accelerator_t methods if it didn't successfully init.
src/hb-ot-glyf-table.hh | 7 ++++++-
.../crash-4b60576767ee4d9fe1cc10959d89baf73d4e8249 | Bin 0 -> 3140 bytes
- test/api/test-subset.c | 23
- +++++++++++++++++++++
+ test/api/test-subset.c | 23 +++++++++++++++++++++
3 files changed, 29 insertions(+), 1 deletion(-)
commit 7251181b56af564e2a9444f002f8ac03f98c7ee3
src/hb-subset.cc | 1 +
test/api/Makefile.am | 1 +
.../oom-6ef8c96d3710262511bcc730dce9c00e722cb653 | Bin 0 -> 24233 bytes
- test/api/test-subset.c | 62
- +++++++++++++++++++++
+ test/api/test-subset.c | 62 +++++++++++++++++++++
4 files changed, 64 insertions(+)
commit 1a94804d35d533d39849d21a177039c4cbfade98
[subset] Add a test demonstrating a seg fault while subsetting hmtx.
.../crash-e4e0bb1458a91b692eba492c907ae1f94e635480 | Bin 0 -> 63302 bytes
- test/api/test-subset-hmtx.c | 22
- +++++++++++++++++++++
+ test/api/test-subset-hmtx.c | 22 +++++++++++++++++++++
2 files changed, 22 insertions(+)
commit b5c7d6cffc2098dafa06822b28a5fd4f6218b60c
Author: Ebrahim Byagowi <ebrahim@gnu.org>
Date: Fri Mar 16 22:45:09 2018 +0330
- Do feature test before adding -Bsymbolic-functions, autotools part
- (#892)
+ Do feature test before adding -Bsymbolic-functions, autotools part (#892)
configure.ac | 2 +-
- m4/ax_check_link_flag.m4 | 74
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ m4/ax_check_link_flag.m4 | 74 ++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 75 insertions(+), 1 deletion(-)
commit d68f00e4d8b061f56d3bd46d5ed1bc51406a4f1a
Date: Fri Mar 16 22:39:58 2018 +0330
[cmake] Don't hide symbols by default (#891)
-
+
But keep use of cmake idiomatic way of making inlines hidden
CMakeLists.txt | 17 ++---------------
Author: Garret Rieger <grieger@google.com>
Date: Thu Mar 15 18:27:01 2018 -0700
- [subset] Test not linking libharfbuzz-subset-fuzzing into
- hb-subset-fuzzer.
+ [subset] Test not linking libharfbuzz-subset-fuzzing into hb-subset-fuzzer.
test/fuzzing/Makefile.am | 2 +-
test/fuzzing/hb-subset-fuzzer.cc | 2 ++
Author: Garret Rieger <grieger@google.com>
Date: Thu Mar 15 16:12:00 2018 -0700
- [subset] Fix run-shape-fuzzer-tests.py. It was generating incorrect
- paths for input fonts.
+ [subset] Fix run-shape-fuzzer-tests.py. It was generating incorrect paths for input fonts.
test/fuzzing/run-shape-fuzzer-tests.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
[subset] Rename hb-fuzzer -> hb-shape-fuzzer.
- test/fuzzing/CMakeLists.txt | 16
- ++++++++--------
- test/fuzzing/Makefile.am | 16
- ++++++++--------
+ test/fuzzing/CMakeLists.txt | 16 ++++++++--------
+ test/fuzzing/Makefile.am | 16 ++++++++--------
test/fuzzing/{hb-fuzzer.cc => hb-shape-fuzzer.cc} | 0
- .../{run-fuzzer-tests.py => run-shape-fuzzer-tests.py} | 12
- ++++++------
+ .../{run-fuzzer-tests.py => run-shape-fuzzer-tests.py} | 12 ++++++------
4 files changed, 22 insertions(+), 22 deletions(-)
commit 1e9bd6d5ff0af0189b6398c5e13cff11ee70762b
Author: Garret Rieger <grieger@google.com>
Date: Wed Mar 14 19:15:33 2018 -0700
- [subset] Add a test runner for hb-subset-fuzzer and cmake build
- config.
+ [subset] Add a test runner for hb-subset-fuzzer and cmake build config.
test/fuzzing/CMakeLists.txt | 9 +++++++++
test/fuzzing/Makefile.am | 3 ++-
- test/fuzzing/run-subset-fuzzer-tests.py | 31
- +++++++++++++++++++++++++++++++
+ test/fuzzing/run-subset-fuzzer-tests.py | 31 +++++++++++++++++++++++++++++++
3 files changed, 42 insertions(+), 1 deletion(-)
commit aa9612d35f59f7f269fba4797c8da491844c56ec
src/Makefile.am | 24 +++++++++++++++++++++++-
test/fuzzing/Makefile.am | 15 +++++++++++++++
- test/fuzzing/hb-subset-fuzzer.cc | 37
- +++++++++++++++++++++++++++++++++++++
+ test/fuzzing/hb-subset-fuzzer.cc | 37 +++++++++++++++++++++++++++++++++++++
3 files changed, 75 insertions(+), 1 deletion(-)
commit 127096e4748d6381339342fc2750dd540e815fa5
Date: Thu Mar 15 13:23:27 2018 -0700
[util] Remove line buffering
-
+
Something weird seems to be going on. Just kill it.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/888
configure.ac | 2 +-
Date: Thu Mar 15 09:05:22 2018 -0700
Remove extra stdbool includes
-
+
They are handled in our common header.
test/api/test-subset-post.c | 2 --
[color/COLR] Simplify
- src/hb-ot-color-colr-table.hh | 48
- +++----------------------------------------
+ src/hb-ot-color-colr-table.hh | 48 +++----------------------------------------
1 file changed, 3 insertions(+), 45 deletions(-)
commit 6418ae4e8a3f4681cb4e7d54c589562930bc0678
[color/COLR] Clean up
- src/hb-aat-layout-common-private.hh | 84
- -------------------------------------
- src/hb-open-type-private.hh | 84
- +++++++++++++++++++++++++++++++++++++
+ src/hb-aat-layout-common-private.hh | 84 -------------------------------------
+ src/hb-open-type-private.hh | 84 +++++++++++++++++++++++++++++++++++++
src/hb-ot-color-colr-table.hh | 30 ++++++-------
3 files changed, 99 insertions(+), 99 deletions(-)
Date: Wed Mar 14 16:08:12 2018 +0100
[color/COLR] Fix bad sanitize
-
- Bad bad bad bad code. Don't do that. If compiler's not happy,
- understand why.
+
+ Bad bad bad bad code. Don't do that. If compiler's not happy, understand why.
src/hb-ot-color-colr-table.hh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[color/cbdt] Clean up
- src/hb-ot-color-cbdt-table.hh | 112
- ++++++++++++++++++++----------------------
+ src/hb-ot-color-cbdt-table.hh | 112 ++++++++++++++++++++----------------------
1 file changed, 54 insertions(+), 58 deletions(-)
commit 86a0ac284fc4c2ce96354bfdf32878b6db5c77bd
Date: Wed Mar 14 15:51:33 2018 +0100
Revert "hb-private.hh: Add fallback implementation for round()"
-
+
This reverts commit b9dcbb1f8312d8606b230f75594d40b7d4087004.
-
- This is gross. Should be only done if a specific macro is defined. Not
- the other way
- around. This fails my build as autotools companions where not
- added anyway.
+
+ This is gross. Should be only done if a specific macro is defined. Not the other way
+ around. This fails my build as autotools companions where not added anyway.
src/hb-private.hh | 13 -------------
1 file changed, 13 deletions(-)
Date: Thu Mar 15 11:40:52 2018 +0330
Merge pull request #886 from madig/only-export-visible-symbols
-
+
CMake: hide symbols by default on non-MSVC, define export attribute
commit 22de9bf56d80dbf6a13a06beafd21711bdab78af
Date: Wed Mar 14 10:29:24 2018 +0000
Enable implicit symbol hiding for all libraries, static and shared
-
+
This covers all built libraries now and both static and shared builds.
CMakeLists.txt | 35 +++++++++++++++++++++++------------
Date: Wed Mar 14 00:50:32 2018 +0000
CMake: hide symbols by default on non-MSVC, define export attribute
-
+
This change makes sure that non-MSVC builds using CMake properly hide
non-exported functions.
Date: Wed Mar 14 02:54:07 2018 +0330
Merge pull request #877 from fanc999/master.msvc
-
+
Fix CMake builds on Windows, MSVC in particular
commit 7c43adab6deb9302a24cc857c4aaa9b6b62215d2
Date: Mon Mar 12 16:43:53 2018 +0800
CMake: Fix utility program installation
-
- Put in the utility program that was missed in installation by
- replacing
+
+ Put in the utility program that was missed in installation by replacing
the one that was duplicated.
CMakeLists.txt | 2 +-
Date: Mon Mar 12 16:23:57 2018 +0800
CMake: Fix introspection on Windows
-
+
The list of source files to pass to g-ir-scanner is becoming too
- long for Windows, as Windows imposes a 8192-character limit for
- command
- lines, so we need to first transform that list into a listings
- file, and
+ long for Windows, as Windows imposes a 8192-character limit for command
+ lines, so we need to first transform that list into a listings file, and
then use the --filelist option for g-ir-scanner to build the
introspection files.
Date: Mon Mar 12 13:48:55 2018 +0800
test/api: Fix building subset tests
-
+
Include stdbool.h in hb-setset-test.h instead of in the individual
sources, if it is found; otherwise use a simplistic fallback for it if
it is not found.
-
+
Also declare variables at the top of the block, to build on pre-C99
compiliers.
Date: Mon Mar 12 13:38:01 2018 +0800
CMake: Fix running tests on Windows
-
+
For the API tests, output the test programs at $(TOP_BUILDDIR) so that
the freshly-built DLLs will be available for the test programs. For
those that are run through the Python wrapper scripts, use
Date: Mon Mar 12 13:33:03 2018 +0800
hb-private.hh: Add fallback implementation for round()
-
- Add a simplistic round() implementation for our purposes, used
- when the
+
+ Add a simplistic round() implementation for our purposes, used when the
compiler does not support round() directly.
src/hb-private.hh | 13 +++++++++++++
Date: Mon Mar 12 13:27:38 2018 +0800
configure.ac/CMake: Check for round() and stdbool.h
-
- Not all the compilers that HarfBuzz is buildable on supports round()
- and
- has the header stdbool.h, so we check for them and define HAVE_ROUND
- and
+
+ Not all the compilers that HarfBuzz is buildable on supports round() and
+ has the header stdbool.h, so we check for them and define HAVE_ROUND and
HAVE_STDBOOL_H repsectively in our CFLAGS so that we include them only
when they are found, or use fallback implementations when necessary.
-
- Also include FindPythonInterp earlier as we need PYTHON_EXECUTABLE
- to be
+
+ Also include FindPythonInterp earlier as we need PYTHON_EXECUTABLE to be
set for running the tests.
CMakeLists.txt | 12 ++++++++++--
[sbix] Clean up
- src/hb-ot-color-sbix-table.hh | 70
- +++++++++++++++++++++++--------------------
+ src/hb-ot-color-sbix-table.hh | 70 +++++++++++++++++++++++--------------------
1 file changed, 37 insertions(+), 33 deletions(-)
commit 218fa7166e9626f2036d08882854a86d753e4192
[ot-color] SVG table implementation (#874)
src/Makefile.sources | 3 +-
- src/hb-ot-color-svg-table.hh | 111
- +++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-color-svg-table.hh | 111 +++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-layout.cc | 1 +
3 files changed, 114 insertions(+), 1 deletion(-)
[ot-color] sbix table implementation (#870)
src/Makefile.sources | 1 +
- src/hb-ot-color-sbix-table.hh | 128
- ++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-color-sbix-table.hh | 128 ++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-layout.cc | 1 +
3 files changed, 130 insertions(+)
Date: Fri Mar 9 12:06:52 2018 -0700
Merge pull request #872 from googlefonts/drop-tables
-
+
[subset] Drop the same tables by default as fontTools does.
commit 9206762bbd4033e97d6d35ef1cce1b7940fbc935
Date: Fri Mar 9 15:43:03 2018 +0330
Make subset test runner compatible with py3
-
+
Fixes #873
test/subset/run-tests.py | 4 ++--
Date: Fri Mar 9 15:25:59 2018 +0330
[ci] Enable subset tests on ArchLinux to test
-
+
This makes ArchLinux bots fail, a starting point to #873
.circleci/config.yml | 7 ++++---
Date: Thu Mar 8 15:50:25 2018 -0700
Merge pull request #871 from googlefonts/mplus
-
+
[subset] Add a Japanese font to the subset integration tests.
commit 8548fa152241d6c5b020146f97aac15934ba0065
[subset] Drop cmap 12, platform 0 tables from Mplus1p expected files.
- ...-Regular.default.3042,3044,3046,3048,304A,304B.ttf | Bin 3040 ->
- 3032 bytes
- ...-Regular.default.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 3276 ->
- 3268 bytes
- .../japanese/Mplus1p-Regular.default.61,63,65,6B.ttf | Bin 2592 ->
- 2584 bytes
- ...-Regular.default.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 3572 ->
- 3564 bytes
- .../japanese/Mplus1p-Regular.default.660E.ttf | Bin 2356 ->
- 2348 bytes
- ...gular.drop-hints.3042,3044,3046,3048,304A,304B.ttf | Bin 2312 ->
- 2304 bytes
- ...gular.drop-hints.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 2548 ->
- 2540 bytes
- .../Mplus1p-Regular.drop-hints.61,63,65,6B.ttf | Bin 1864 ->
- 1856 bytes
- ...gular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 2844 ->
- 2836 bytes
- .../japanese/Mplus1p-Regular.drop-hints.660E.ttf | Bin 1628 ->
- 1620 bytes
+ ...-Regular.default.3042,3044,3046,3048,304A,304B.ttf | Bin 3040 -> 3032 bytes
+ ...-Regular.default.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 3276 -> 3268 bytes
+ .../japanese/Mplus1p-Regular.default.61,63,65,6B.ttf | Bin 2592 -> 2584 bytes
+ ...-Regular.default.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 3572 -> 3564 bytes
+ .../japanese/Mplus1p-Regular.default.660E.ttf | Bin 2356 -> 2348 bytes
+ ...gular.drop-hints.3042,3044,3046,3048,304A,304B.ttf | Bin 2312 -> 2304 bytes
+ ...gular.drop-hints.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 2548 -> 2540 bytes
+ .../Mplus1p-Regular.drop-hints.61,63,65,6B.ttf | Bin 1864 -> 1856 bytes
+ ...gular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 2844 -> 2836 bytes
+ .../japanese/Mplus1p-Regular.drop-hints.660E.ttf | Bin 1628 -> 1620 bytes
10 files changed, 0 insertions(+), 0 deletions(-)
commit 9b00b9a10d5fdfd2d9deb1b0e847695797b7e09b
Author: Garret Rieger <grieger@google.com>
Date: Tue Mar 6 17:47:40 2018 -0800
- [subset] Fix deadlock waiting for process output in subset test
- runner.
+ [subset] Fix deadlock waiting for process output in subset test runner.
test/subset/run-tests.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
test/subset/data/Makefile.am | 1 +
test/subset/data/Makefile.sources | 1 +
- ...-Regular.default.3042,3044,3046,3048,304A,304B.ttf | Bin 0 ->
- 3040 bytes
- ...-Regular.default.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 0 ->
- 3276 bytes
- .../japanese/Mplus1p-Regular.default.61,63,65,6B.ttf | Bin 0 ->
- 2592 bytes
- ...-Regular.default.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 0 ->
- 3572 bytes
- .../japanese/Mplus1p-Regular.default.660E.ttf | Bin 0 ->
- 2356 bytes
- ...gular.drop-hints.3042,3044,3046,3048,304A,304B.ttf | Bin 0 ->
- 2312 bytes
- ...gular.drop-hints.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 0 ->
- 2548 bytes
- .../Mplus1p-Regular.drop-hints.61,63,65,6B.ttf | Bin 0 ->
- 1864 bytes
- ...gular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 0 ->
- 2844 bytes
- .../japanese/Mplus1p-Regular.drop-hints.660E.ttf | Bin 0 ->
- 1628 bytes
- test/subset/data/fonts/Mplus1p-Regular.ttf | Bin 0 ->
- 1758820 bytes
- test/subset/data/tests/japanese.tests | 16
- ++++++++++++++++
+ ...-Regular.default.3042,3044,3046,3048,304A,304B.ttf | Bin 0 -> 3040 bytes
+ ...-Regular.default.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 0 -> 3276 bytes
+ .../japanese/Mplus1p-Regular.default.61,63,65,6B.ttf | Bin 0 -> 2592 bytes
+ ...-Regular.default.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 0 -> 3572 bytes
+ .../japanese/Mplus1p-Regular.default.660E.ttf | Bin 0 -> 2356 bytes
+ ...gular.drop-hints.3042,3044,3046,3048,304A,304B.ttf | Bin 0 -> 2312 bytes
+ ...gular.drop-hints.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 0 -> 2548 bytes
+ .../Mplus1p-Regular.drop-hints.61,63,65,6B.ttf | Bin 0 -> 1864 bytes
+ ...gular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 0 -> 2844 bytes
+ .../japanese/Mplus1p-Regular.drop-hints.660E.ttf | Bin 0 -> 1628 bytes
+ test/subset/data/fonts/Mplus1p-Regular.ttf | Bin 0 -> 1758820 bytes
+ test/subset/data/tests/japanese.tests | 16 ++++++++++++++++
14 files changed, 18 insertions(+)
commit 2ebf4c69b18452caa0c871aebec9785e80348166
Date: Thu Mar 8 14:41:59 2018 -0700
Merge pull request #868 from googlefonts/post
-
+
[subset] Drop glyph names from post when subsetting.
commit 869ccac5ab69060f2db2893014b5538539fd4f45
Author: Garret Rieger <grieger@google.com>
Date: Thu Mar 8 11:06:49 2018 -0800
- [subset] use create_sub_blob instead of manually copying the post
- table.
+ [subset] use create_sub_blob instead of manually copying the post table.
src/hb-ot-post-table.hh | 20 +++++++-------------
1 file changed, 7 insertions(+), 13 deletions(-)
[subset] Unit test to check that post subsetting drops glyph names.
test/api/Makefile.am | 2 +
- ...lus1p-Regular.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 3572 ->
- 3724 bytes
- test/api/test-subset-post.c | 61
- +++++++++++++++++++++
+ ...lus1p-Regular.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 3572 -> 3724 bytes
+ test/api/test-subset-post.c | 61 +++++++++++++++++++++
3 files changed, 63 insertions(+)
commit dd107699938740e261948e4b525fa0ad501beb03
Date: Wed Mar 7 12:36:00 2018 -0700
Merge pull request #867 from googlefonts/vmtx
-
+
[subset] Add vmtx subsetting.
commit 362f28240683fde395ff52f4fc1216fbc7131452
test/api/Makefile.am | 2 +
...lus1p-Regular.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 0 -> 3572 bytes
test/api/fonts/Mplus1p-Regular.660E.ttf | Bin 0 -> 2356 bytes
- test/api/test-subset-vmtx.c | 100
- +++++++++++++++++++++
+ test/api/test-subset-vmtx.c | 100 +++++++++++++++++++++
4 files changed, 102 insertions(+)
commit 0e8f9430c83c076993a0c7a320713bb484051343
Date: Wed Mar 7 15:51:42 2018 +0100
Remove hb-ot-color.h
-
+
So I can make a release.
src/Makefile.sources | 1 -
src/hb-ot-color-cpal-table.hh | 48 +++++++++++++++++++++++++
- src/hb-ot-color.h | 81
- -------------------------------------------
+ src/hb-ot-color.h | 81 -------------------------------------------
src/hb-ot.h | 1 -
4 files changed, 48 insertions(+), 83 deletions(-)
Date: Wed Mar 7 15:31:15 2018 +0100
[ot] Remove hb-ot-base.h
-
+
BASE table API will go into hb-ot-layout.h.
src/Makefile.sources | 1 -
- src/hb-ot-base.h | 56
- ------------------------------------------
+ src/hb-ot-base.h | 56 ------------------------------------------
src/hb-ot-layout-base-table.hh | 1 -
src/hb-ot-layout.h | 16 ++++++++++++
src/hb-ot.h | 1 -
Date: Wed Mar 7 10:49:26 2018 +0100
[set] Fix algebra
-
+
Was totally b0rked. Ouch!
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/863
src/hb-set-private.hh | 20 +++++++++++++++++---
Date: Wed Mar 7 09:55:22 2018 +0100
[set] Minor
-
+
In preparation to fix https://github.com/harfbuzz/harfbuzz/issues/863
-
+
Binary operations are sets are completely broken. Ouch.
src/hb-set-private.hh | 21 ++++++++++++++-------
Date: Tue Mar 6 16:41:08 2018 +0330
[ot-color] Further improvements on COLR/CPAL implementation (#859)
-
+
* Implemented a bsearch on get_base_glyph_record
* Made get_color_record_argb actually work
src/hb-ot-color-colr-table.hh | 35 ++++++++++++++-----------
- src/hb-ot-color-cpal-table.hh | 59
- +++++++++++++++----------------------------
+ src/hb-ot-color-cpal-table.hh | 59 +++++++++++++++----------------------------
src/hb-ot-color.h | 12 ++-------
3 files changed, 42 insertions(+), 64 deletions(-)
Enable coverage test on autotools (#857)
configure.ac | 1 +
- m4/ax_code_coverage.m4 | 264
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ m4/ax_code_coverage.m4 | 264 +++++++++++++++++++++++++++++++++++++++++++++++++
src/Makefile.am | 6 +-
3 files changed, 269 insertions(+), 2 deletions(-)
[COLR/CPAL] Provide enough helper for rasterization (#855)
- src/hb-ot-colr-table.hh | 47
- ++++++++++++++++++++++++++++++++++++++++++++---
+ src/hb-ot-colr-table.hh | 47 ++++++++++++++++++++++++++++++++++++++++++++---
src/hb-ot-cpal-table.hh | 18 +++++++++++++++---
2 files changed, 59 insertions(+), 6 deletions(-)
Date: Sat Mar 3 01:05:59 2018 +0330
[COLR] Revert previous sanitization on the table
-
- That sanitization wasn't right, firstLayerIndex is an index from
- beginning of the Layer Records
+
+ That sanitization wasn't right, firstLayerIndex is an index from beginning of the Layer Records
not the table itself.
src/hb-ot-colr-table.hh | 23 ++++++-----------------
[aat/kerx] Make parsing of the table actually work (#850)
- src/hb-aat-layout-kerx-table.hh | 298
- +++++++++++++++++-----------------------
+ src/hb-aat-layout-kerx-table.hh | 298 +++++++++++++++++-----------------------
1 file changed, 124 insertions(+), 174 deletions(-)
commit a570edcde2f89e59b5ccd4867a8c0eed084bf35d
Date: Wed Feb 28 16:31:46 2018 -0800
[test] Add test suite for Brahmi Number Joiners
-
+
https://github.com/harfbuzz/harfbuzz/pull/660
- .../fonts/1ed7e9064f008f62de6ff0207bb4dd29409597a5.ttf | Bin 0 ->
- 2768 bytes
+ .../fonts/1ed7e9064f008f62de6ff0207bb4dd29409597a5.ttf | Bin 0 -> 2768 bytes
test/shaping/data/in-house/tests/use-syllable.tests | 1 +
test/shaping/record-test.sh | 2 +-
3 files changed, 2 insertions(+), 1 deletion(-)
Author: Garret Rieger <grieger@google.com>
Date: Wed Feb 28 15:44:00 2018 -0800
- [subset] In subset integration test pass output through ots-sanitize
- if present.
+ [subset] In subset integration test pass output through ots-sanitize if present.
test/subset/run-tests.py | 25 +++++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
Date: Wed Feb 28 13:52:29 2018 -0800
Merge pull request #845 from googlefonts/drophints
-
+
[subset] drop hints from composites
commit b3f1a045a8b86747afce6bc154f2a166ea678efb
Date: Wed Feb 28 15:43:23 2018 +0330
Use old project location of coverity
-
+
https://github.com/harfbuzz/harfbuzz/commit/8089711a61687d565f207c56d3d2b658f514d7ab#commitcomment-27835452
.travis.yml | 4 ++--
Date: Wed Feb 28 13:30:17 2018 +0330
Merge pull request #847 from ebraminio/colr
-
+
[colr] Implement
commit f671f7f0a8caa7b5763e00146e1ec4b9a7258227
src/Makefile.sources | 1 +
src/hb-ot-color.cc | 9 +++++
src/hb-ot-color.h | 9 -----
- src/hb-ot-colr-table.hh | 98
- +++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-colr-table.hh | 98 +++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-cpal-table.hh | 6 +--
src/hb-ot-layout-private.hh | 6 ++-
src/hb-ot-layout.cc | 11 +++--
Date: Wed Feb 28 12:05:49 2018 +0330
Merge pull request #841 from ebraminio/color
-
+
Support CPAL table
commit 0eec33154a418fba97a08be7169b59e748b7e785
[cmake] cleanup (#846)
- CMakeLists.txt | 70
- ++++++++++++++++++++-----------------------------
+ CMakeLists.txt | 70 ++++++++++++++++++++-----------------------------
test/api/CMakeLists.txt | 2 +-
2 files changed, 30 insertions(+), 42 deletions(-)
src/Makefile.am | 1 -
src/hb-ot-color.cc | 70 +++----------
src/hb-ot-color.h | 31 +++---
- src/hb-ot-cpal-table.hh | 116
- +++++++++++++++------
+ src/hb-ot-cpal-table.hh | 116 +++++++++++++++------
src/hb-ot-layout-private.hh | 3 +-
src/hb-ot-layout.cc | 5 +-
test/api/hb-test.h | 2 +
Author: Rod Sheeter <rsheeter@google.com>
Date: Tue Feb 27 20:51:12 2018 -0800
- [subset] remove WE_HAVE_INSTRUCTIONS from composites when dropping
- hints
+ [subset] remove WE_HAVE_INSTRUCTIONS from composites when dropping hints
src/hb-subset-glyf.cc | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
[subset] update the test file for composite, fix an offset calculation
src/hb-ot-glyf-table.hh | 2 +-
- test/api/fonts/Roboto-Regular.components.1fc.nohints.ttf | Bin 0 ->
- 932 bytes
+ test/api/fonts/Roboto-Regular.components.1fc.nohints.ttf | Bin 0 -> 932 bytes
test/api/test-subset-glyf.c | 5 ++---
3 files changed, 3 insertions(+), 4 deletions(-)
Author: Rod Sheeter <rsheeter@google.com>
Date: Tue Feb 27 17:25:32 2018 -0800
- Merge branch 'expand-tests' of github.com:googlefonts/harfbuzz
- into drophints
+ Merge branch 'expand-tests' of github.com:googlefonts/harfbuzz into drophints
commit 904dd7beea756fd7429fad36f5c37321aedb4e81
Author: Garret Rieger <grieger@google.com>
[subset] Add drop hinting profile to full-font.tests
- .../Roboto-Regular.drop-hints.1FC,21,41,20,62,63.ttf | Bin 0 ->
- 2152 bytes
- .../full-font/Roboto-Regular.drop-hints.61,62,63.ttf | Bin 0 ->
- 1968 bytes
+ .../Roboto-Regular.drop-hints.1FC,21,41,20,62,63.ttf | Bin 0 -> 2152 bytes
+ .../full-font/Roboto-Regular.drop-hints.61,62,63.ttf | Bin 0 -> 1968 bytes
test/subset/data/tests/full-font.tests | 1 +
3 files changed, 1 insertion(+)
[subset] Add a drop hints profile to basics.tests
- .../basics/Roboto-Regular.abc.drop-hints.61,62,63.ttf | Bin 0 ->
- 876 bytes
- .../basics/Roboto-Regular.abc.drop-hints.61,63.ttf | Bin 0 ->
- 792 bytes
- .../expected/basics/Roboto-Regular.abc.drop-hints.61.ttf | Bin 0 ->
- 684 bytes
- .../expected/basics/Roboto-Regular.abc.drop-hints.62.ttf | Bin 0 ->
- 652 bytes
- .../expected/basics/Roboto-Regular.abc.drop-hints.63.ttf | Bin 0 ->
- 656 bytes
+ .../basics/Roboto-Regular.abc.drop-hints.61,62,63.ttf | Bin 0 -> 876 bytes
+ .../basics/Roboto-Regular.abc.drop-hints.61,63.ttf | Bin 0 -> 792 bytes
+ .../expected/basics/Roboto-Regular.abc.drop-hints.61.ttf | Bin 0 -> 684 bytes
+ .../expected/basics/Roboto-Regular.abc.drop-hints.62.ttf | Bin 0 -> 652 bytes
+ .../expected/basics/Roboto-Regular.abc.drop-hints.63.ttf | Bin 0 -> 656 bytes
test/subset/data/profiles/drop-hints.txt | 1 +
test/subset/data/tests/basics.tests | 1 +
7 files changed, 2 insertions(+)
Author: Garret Rieger <grieger@google.com>
Date: Tue Feb 27 13:15:40 2018 -0800
- [subset] apply subset profiles (flags) to the subset integration
- tests.
+ [subset] apply subset profiles (flags) to the subset integration tests.
test/subset/generate-expected-outputs.py | 27 ++++++++++++++-------------
test/subset/run-tests.py | 3 ++-
[subset] Add subset integration tests using the full roboto font.
test/subset/data/Makefile.sources | 1 +
- .../Roboto-Regular.default.1FC,21,41,20,62,63.ttf | Bin 0 ->
- 3700 bytes
- .../full-font/Roboto-Regular.default.61,62,63.ttf | Bin 0 ->
- 3320 bytes
- test/subset/data/fonts/Roboto-Regular.ttf | Bin 0 ->
- 171676 bytes
+ .../Roboto-Regular.default.1FC,21,41,20,62,63.ttf | Bin 0 -> 3700 bytes
+ .../full-font/Roboto-Regular.default.61,62,63.ttf | Bin 0 -> 3320 bytes
+ test/subset/data/fonts/Roboto-Regular.ttf | Bin 0 -> 171676 bytes
test/subset/data/tests/full-font.tests | 10 ++++++++++
test/subset/generate-expected-outputs.py | 12 ++++++++----
6 files changed, 19 insertions(+), 4 deletions(-)
[subset] Add some more variations of the basic test.
- .../basics/Roboto-Regular.abc.default.61,62,63.ttf | Bin 0 ->
- 2120 bytes
- .../expected/basics/Roboto-Regular.abc.default.61,63.ttf | Bin 0 ->
- 1932 bytes
- .../expected/basics/Roboto-Regular.abc.default.61.ttf | Bin 0 ->
- 1744 bytes
- .../expected/basics/Roboto-Regular.abc.default.63.ttf | Bin 0 ->
- 1668 bytes
+ .../basics/Roboto-Regular.abc.default.61,62,63.ttf | Bin 0 -> 2120 bytes
+ .../expected/basics/Roboto-Regular.abc.default.61,63.ttf | Bin 0 -> 1932 bytes
+ .../expected/basics/Roboto-Regular.abc.default.61.ttf | Bin 0 -> 1744 bytes
+ .../expected/basics/Roboto-Regular.abc.default.63.ttf | Bin 0 -> 1668 bytes
test/subset/data/tests/basics.tests | 4 ++++
5 files changed, 4 insertions(+)
Date: Tue Feb 27 17:06:27 2018 -0700
Merge pull request #842 from googlefonts/maxp
-
+
[subset] when dropping hints, clear hint related fields in maxp.
commit 921b65cbc29f0c2c9c13e9fb272dafe4c8a14591
Author: Garret Rieger <grieger@google.com>
Date: Tue Feb 27 14:11:36 2018 -0800
- [subset] Add maxpV1Tail instead of defining a struct inside maxp
- for v1 data.
+ [subset] Add maxpV1Tail instead of defining a struct inside maxp for v1 data.
- src/hb-ot-maxp-table.hh | 81
- ++++++++++++++++++++++++++++++-------------------
+ src/hb-ot-maxp-table.hh | 81 ++++++++++++++++++++++++++++++-------------------
1 file changed, 49 insertions(+), 32 deletions(-)
commit f14d1b64c2d148ffdec95c17adbee3f185d5d436
[subset] when dropping hints, clear hint related fields in maxp.
- src/hb-ot-maxp-table.hh | 43
- ++++++++++++++++++++++++++++++++++++++++---
+ src/hb-ot-maxp-table.hh | 43 ++++++++++++++++++++++++++++++++++++++++---
test/api/test-subset-glyf.c | 30 +++++++++++++++++++++++-------
2 files changed, 63 insertions(+), 10 deletions(-)
[BASE] More
- src/hb-ot-layout-base-table.hh | 153
- ++++-------------------------------------
+ src/hb-ot-layout-base-table.hh | 153 ++++-------------------------------------
1 file changed, 12 insertions(+), 141 deletions(-)
commit 7a70c20fec6ece9e729dc2634e2896a8d8eb9962
[BASE] Clean up first 29%
- src/hb-ot-layout-base-table.hh | 262
- +++++++++++++++++++----------------------
+ src/hb-ot-layout-base-table.hh | 262 +++++++++++++++++++----------------------
src/hb-ot-layout-gsub-table.hh | 2 +-
2 files changed, 125 insertions(+), 139 deletions(-)
Date: Tue Feb 27 11:41:12 2018 +0330
Merge pull request #838 from harfbuzz/BASE
-
+
BASE table
commit 0ad8c663e0b4602e2a413e77a8158bf8a46755d5
src/hb-ot-base.h | 4 ++--
src/hb-ot-layout-base-table.hh | 20 +++++++++---------
- src/hb-ot-layout.cc | 48
- ++++++++++++++++++++----------------------
+ src/hb-ot-layout.cc | 48 ++++++++++++++++++++----------------------
3 files changed, 35 insertions(+), 37 deletions(-)
commit 4a1d51ef15a423706406f784a146078073147885
Date: Mon Feb 26 20:23:41 2018 -0800
Merge pull request #818 from googlefonts/drophints
-
+
[subset] Drop hints
commit 903771b6c7689b9eee9a11bac128c42f39833b2e
Author: Rod Sheeter <rsheeter@google.com>
Date: Mon Feb 26 19:50:06 2018 -0800
- [subset] clearer name for trim() and better comment about composite
- handling, per review feedback
+ [subset] clearer name for trim() and better comment about composite handling, per review feedback
src/hb-ot-glyf-table.hh | 8 +++++---
src/hb-subset-glyf.cc | 17 ++++++++---------
Date: Mon Feb 26 19:24:18 2018 -0700
Merge pull request #840 from googlefonts/os2
-
+
[subset] During os2 subsetting update ulUnicodeRange[]c
commit 44dc36dd82fc948a15e2ad0d605eb4a466b3553d
Author: Garret Rieger <grieger@google.com>
Date: Mon Feb 26 17:47:10 2018 -0800
- [subset] Move util/generated-unicode-ranges.py to
- src/gen-unicode-ranges.py
+ [subset] Move util/generated-unicode-ranges.py to src/gen-unicode-ranges.py
util/generate-unicode-ranges.py => src/gen-unicode-ranges.py | 0
1 file changed, 0 insertions(+), 0 deletions(-)
Author: Garret Rieger <grieger@google.com>
Date: Mon Feb 26 15:59:32 2018 -0800
- [subset] Add python util that was used to generated
- hb-ot-os2-unicode-ranges.hh
+ [subset] Add python util that was used to generated hb-ot-os2-unicode-ranges.hh
- util/generate-unicode-ranges.py | 50
- +++++++++++++++++++++++++++++++++++++++++
+ util/generate-unicode-ranges.py | 50 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
commit f757757eda5f00a89a156e3427bdf8c4313611ef
src/Makefile.sources | 1 -
src/hb-ot-os2-table.hh | 23 ++++-
- src/hb-ot-os2-unicode-ranges.cc | 221
- ++--------------------------------------
- src/hb-ot-os2-unicode-ranges.hh | 210
- +++++++++++++++++++++++++++++++++++++-
+ src/hb-ot-os2-unicode-ranges.cc | 221 ++--------------------------------------
+ src/hb-ot-os2-unicode-ranges.hh | 210 +++++++++++++++++++++++++++++++++++++-
4 files changed, 236 insertions(+), 219 deletions(-)
commit a570142d0c6d819feeeeb9e209fc90a33c1c2b48
Author: Garret Rieger <grieger@google.com>
Date: Mon Feb 26 15:20:23 2018 -0800
- [subset] Move hb-ot-os2-unicode-ranges into a cc file with a helper
- methods and tests.
+ [subset] Move hb-ot-os2-unicode-ranges into a cc file with a helper methods and tests.
src/Makefile.am | 9 +-
src/Makefile.sources | 2 +
- src/hb-ot-os2-unicode-ranges.cc | 279
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-os2-unicode-ranges.cc | 279 ++++++++++++++++++++++++++++++++++++++++
src/hb-ot-os2-unicode-ranges.hh | 189 +--------------------------
4 files changed, 292 insertions(+), 187 deletions(-)
[subset] Add hb-ot-os2-unicode-ranges.hh, a map of os2 unicode ranges.
- src/hb-ot-os2-unicode-ranges.hh | 220
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-os2-unicode-ranges.hh | 220 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 220 insertions(+)
commit 6c844ae8e89f52f5f40eace66bb987544fc316e3
Date: Mon Feb 26 01:04:16 2018 -0800
[aat/ankr] Minor
-
- DEFINE_SIZE_MIN is to be used only in rare cases. For fixed-size
- structs
+
+ DEFINE_SIZE_MIN is to be used only in rare cases. For fixed-size structs
we want DEFINE_SIZE_STATIC.
src/hb-aat-layout-ankr-table.hh | 2 +-
[aat/trak] Simplify sanitize()
- src/hb-aat-layout-trak-table.hh | 67
- ++++++++++-------------------------------
+ src/hb-aat-layout-trak-table.hh | 67 ++++++++++-------------------------------
1 file changed, 16 insertions(+), 51 deletions(-)
commit f0bc6c0992c4302ae1a20f155ad256bfa331087c
Date: Mon Feb 26 00:18:17 2018 -0800
[aat/trak] Clean up
-
+
We always just used "unsigned int" for counter values. There's
no use for uint16_t outside of a struct.
-
+
Also, no need for explict casting where implicit does.
src/hb-aat-layout-trak-table.hh | 12 ++++++------
[aat] trak sanitization
src/dev-run.sh | 4 +-
- src/hb-aat-layout-trak-table.hh | 95
- ++++++++++++++++++++++++++++++++---------
+ src/hb-aat-layout-trak-table.hh | 95 ++++++++++++++++++++++++++++++++---------
src/hb-aat-layout.cc | 2 +-
util/options.hh | 2 +-
4 files changed, 78 insertions(+), 25 deletions(-)
Date: Mon Feb 26 11:29:48 2018 +0330
[aat] minor
-
+
Ops, this was done for testing
src/hb-aat-layout-ankr-table.hh | 2 +-
Date: Sun Feb 25 18:54:52 2018 -0800
[aat/trak] Minor
-
+
Maybe we should make DEFINE_* make structs uncopyable.
- src/hb-aat-layout-trak-table.hh | 56
- +++++++++++++++++++++++------------------
+ src/hb-aat-layout-trak-table.hh | 56 +++++++++++++++++++++++------------------
1 file changed, 32 insertions(+), 24 deletions(-)
commit ae14dd0fb0a176f6f0143690907b51626999d248
[aat] Implement ankr
src/Makefile.sources | 3 +-
- src/hb-aat-layout-ankr-table.hh | 86
- +++++++++++++++++++++++++++++++++++++++++
+ src/hb-aat-layout-ankr-table.hh | 86 +++++++++++++++++++++++++++++++++++++++++
src/hb-aat-layout-kerx-table.hh | 2 +-
src/hb-aat-layout.cc | 37 +++++++++++++-----
src/hb-ot-layout-private.hh | 6 ++-
src/Makefile.sources | 1 -
src/hb-ot-base.cc | 58 -----------------------
- src/hb-ot-layout-base-table.hh | 103
- ++++++++++++++++++++++++++++-------------
+ src/hb-ot-layout-base-table.hh | 103 ++++++++++++++++++++++++++++-------------
src/hb-ot-layout.cc | 34 ++++++++++++++
src/hb-ot-layout.h | 1 +
5 files changed, 105 insertions(+), 92 deletions(-)
Date: Sat Feb 24 00:44:07 2018 +0200
Workaround for old automake on Travis Linux images
-
+
https://github.com/harfbuzz/harfbuzz/pull/821#issuecomment-368116538
.ci/fail.sh | 10 ++++++++--
src/hb-aat-layout-kerx-table.hh | 7 ++++
src/hb-aat-layout-private.hh | 3 ++
- src/hb-aat-layout-trak-table.hh | 78
- +++++++++++++++++++++++++++++++++++++++--
+ src/hb-aat-layout-trak-table.hh | 78 +++++++++++++++++++++++++++++++++++++++--
src/hb-aat-layout.cc | 46 ++++++++++++++++++++++++
src/hb-open-type-private.hh | 4 +--
src/hb-ot-layout-private.hh | 22 ++++++++++++
CMakeLists.txt | 36 ++++++++++++++--------------
src/Makefile.am | 8 +++----
src/Makefile.sources | 3 ---
- src/hb-version.h | 66
- ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-version.h | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 87 insertions(+), 26 deletions(-)
commit 5267520e078ed413df78f3a6781fd5370b6da63a
Author: Rod Sheeter <rsheeter@google.com>
Date: Fri Feb 23 17:53:26 2018 -0800
- Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into
- drophints
+ Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into drophints
commit 1454d82a9d3d9a47901b3d92ff7f2c05c596c0d5
Author: Rod Sheeter <rsheeter@google.com>
Author: Rod Sheeter <rsheeter@google.com>
Date: Fri Feb 23 17:43:00 2018 -0800
- [subset] zero glyf and loca memory before writing so pads are
- clean. Test just the part of maxp we care about
+ [subset] zero glyf and loca memory before writing so pads are clean. Test just the part of maxp we care about
src/hb-ot-glyf-table.hh | 6 +++---
src/hb-subset-glyf.cc | 4 ++--
Date: Fri Feb 23 18:33:25 2018 -0700
Merge pull request #829 from googlefonts/test-checksum
-
+
[subset] Caclculate head table checksum adjustment
commit dc5c7927e75ea09461e46fe6e56897091b4b4f00
Date: Fri Feb 23 16:42:06 2018 -0800
[subset] Caclculate head table checksum adjustment
-
+
Test still fails, because we do not serialize tables in the same
order that fonttools subsetter does.
- src/hb-open-file-private.hh | 51
- ++++++++++++++++++++++++++++++++++-----------
+ src/hb-open-file-private.hh | 51 ++++++++++++++++++++++++++++++++++-----------
src/hb-ot-head-table.hh | 2 ++
src/hb-subset.cc | 2 ++
3 files changed, 43 insertions(+), 12 deletions(-)
Date: Fri Feb 23 17:59:08 2018 -0700
Merge pull request #828 from googlefonts/mem-fixes
-
+
[subset] Fix several memory leaks in subsetting.
commit ec2538c8803be254b6e09ca0ea724b07c35126da
configure.ac | 2 ++
src/Makefile.am | 4 ++-
- src/harfbuzz-config.cmake.in | 82
- ++++++++++++++++++++++++++++++++++++++++++++
+ src/harfbuzz-config.cmake.in | 82 ++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 87 insertions(+), 1 deletion(-)
commit e0939d811f1fdeda9c5763e7e53887b3d3cb21eb
Date: Fri Feb 23 13:19:34 2018 -0800
Clean up check-defs and check-symbols (#821)
-
+
Also, call c++filt on their results.
-
+
Also build and fix and check harfbuzz-gobject.def
-
+
Also changes harfbuzz-gobject to distribute generated enum sources.
CMakeLists.txt | 3 +--
src/Makefile.am | 33 ++++++++++++++++------------
src/Makefile.sources | 9 +++++---
- src/check-defs.sh | 52
- ---------------------------------------------
+ src/check-defs.sh | 52 ---------------------------------------------
src/check-symbols.sh | 30 ++++++++++++++++++++------
src/hb-gobject-enums.h.tmpl | 3 ++-
src/hb-gobject-structs.h | 45 ++++++++++++++++++++++++++-------------
[subset] clone trim logic from fonttools glyf handling
- src/hb-ot-glyf-table.hh | 92
- ++++++++++++++++++++++++++-
+ src/hb-ot-glyf-table.hh | 92 ++++++++++++++++++++++++++-
src/hb-subset-glyf.cc | 26 ++++----
src/hb-subset-plan.cc | 3 +
src/hb-subset.cc | 13 ++--
Date: Fri Feb 23 12:32:18 2018 -0700
Merge pull request #823 from googlefonts/hdmx
-
+
[subset] Add hdmx subsetting.
commit e15e41ef12e146333e355defef8db210378b5be0
Author: Garret Rieger <grieger@google.com>
Date: Thu Feb 22 18:38:44 2018 -0800
- [subset] Update expected files for subsetting integration test to
- not include cmap 4.
+ [subset] Update expected files for subsetting integration test to not include cmap 4.
- .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1740 ->
- 1692 bytes
+ .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1740 -> 1692 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit a88504c601ac95601730bd602861c13e5ac4fdd8
Author: Garret Rieger <grieger@google.com>
Date: Thu Feb 22 14:28:18 2018 -0800
- [subset] Fix checksum clearning in subset test diff. Add an updated
- expected file (has cmap4 restored).
+ [subset] Fix checksum clearning in subset test diff. Add an updated expected file (has cmap4 restored).
- .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1692 ->
- 1740 bytes
+ .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1692 -> 1740 bytes
test/subset/run-tests.py | 7 +++++--
2 files changed, 5 insertions(+), 2 deletions(-)
Author: Garret Rieger <grieger@google.com>
Date: Thu Feb 22 14:07:52 2018 -0800
- [subset] Don't compare actual to itself in Fix
- test/subset/run-tests. Print a diff on failure.
+ [subset] Don't compare actual to itself in Fix test/subset/run-tests. Print a diff on failure.
test/subset/run-tests.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
Date: Fri Feb 23 10:34:26 2018 -0800
[hdmx] Move DeviceRecord to toplevel again
-
+
More readable.
- src/hb-ot-hdmx-table.hh | 112
- ++++++++++++++++++++++++------------------------
+ src/hb-ot-hdmx-table.hh | 112 ++++++++++++++++++++++++------------------------
1 file changed, 57 insertions(+), 55 deletions(-)
commit 96d7805a9235443972c6b6c5cd9502283c8836e9
[subset] Add a unit test for hdmx subsetting.
test/api/Makefile.am | 2 ++
- test/api/test-subset-hdmx.c | 81
- +++++++++++++++++++++++++++++++++++++++++++++
+ test/api/test-subset-hdmx.c | 81 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 83 insertions(+)
commit aa4aa2353c52f86fd56446de6b7ff86a9e990b9c
[subset] Move DeviceRecord inside of hdmx.
- src/hb-ot-hdmx-table.hh | 98
- +++++++++++++++++++++++++------------------------
+ src/hb-ot-hdmx-table.hh | 98 +++++++++++++++++++++++++------------------------
1 file changed, 50 insertions(+), 48 deletions(-)
commit 6704cded65985b2de262bdd3bb0887929e5a3b0b
Author: Garret Rieger <grieger@google.com>
Date: Wed Feb 21 15:36:09 2018 -0800
- [subset] When serializing a DeviceRecord in hdmx pad to make 32
- bit aligned.
+ [subset] When serializing a DeviceRecord in hdmx pad to make 32 bit aligned.
src/hb-ot-hdmx-table.hh | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
[subset] Begin implementing serialize for hdmx.
- src/hb-ot-hdmx-table.hh | 79
- +++++++++++++++++++++++++++++++++++++++++++++++--
+ src/hb-ot-hdmx-table.hh | 79 +++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 77 insertions(+), 2 deletions(-)
commit fe42862ab30d17483a1d0c2e2b1d859d01bbaff1
[subset] Sketch out a basic hb-ot-hdmx.hh.
src/Makefile.sources | 1 +
- src/hb-ot-hdmx-table.hh | 77
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-hdmx-table.hh | 77 +++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-subset.cc | 1 +
3 files changed, 79 insertions(+)
Author: Rod Sheeter <rsheeter@google.com>
Date: Wed Feb 21 22:23:05 2018 -0800
- [subset] sketch out dropping in-glyf instructions. Sometimes yields
- differnet size glyphs than fonttools, possibly due to padding not
- being corrected
+ [subset] sketch out dropping in-glyf instructions. Sometimes yields differnet size glyphs than fonttools, possibly due to padding not being corrected
src/hb-ot-glyf-table.hh | 45 ++++++++++++++++
- src/hb-subset-glyf.cc | 78
- +++++++++++++++++++++------
+ src/hb-subset-glyf.cc | 78 +++++++++++++++++++++------
src/hb-subset-input.cc | 6 +++
src/hb-subset.h | 2 +
test/api/fonts/Roboto-Regular.ac.nohints.ttf | Bin 0 -> 1128 bytes
Date: Wed Feb 21 14:38:02 2018 -0800
Add two more ragel-generated headers
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/817
- src/hb-buffer-deserialize-json.hh | 643
- ++++++++++++++++++++++++++++++++++++++
+ src/hb-buffer-deserialize-json.hh | 643 ++++++++++++++++++++++++++++++++++++++
src/hb-buffer-deserialize-text.hh | 571 +++++++++++++++++++++++++++++++++
2 files changed, 1214 insertions(+)
Author: Rod Sheeter <rsheeter@google.com>
Date: Wed Feb 21 11:19:18 2018 -0800
- [subset] drop hint tables if so flagged. Still need to dump glyf
- instructions.
+ [subset] drop hint tables if so flagged. Still need to dump glyf instructions.
src/hb-subset-plan.cc | 1 +
src/hb-subset-plan.hh | 2 ++
Date: Wed Feb 21 22:13:58 2018 +0330
Add .editorconfig (#810)
-
+
More information: http://editorconfig.org/
.editorconfig | 18 ++++++++++++++++++
Author: Garret Rieger <grieger@google.com>
Date: Tue Feb 20 18:13:41 2018 -0800
- [subset] fix calculation of range shiftz. Should be 16 * len -
- searchRange not 16 * (len - searchRange).
+ [subset] fix calculation of range shiftz. Should be 16 * len - searchRange not 16 * (len - searchRange).
src/hb-open-type-private.hh | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Author: Garret Rieger <grieger@google.com>
Date: Tue Feb 20 17:36:54 2018 -0800
- [subset] Reverse table order for font serialization to match what
- OTS expects.
+ [subset] Reverse table order for font serialization to match what OTS expects.
src/hb-open-file-private.hh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Author: Garret Rieger <grieger@google.com>
Date: Tue Feb 20 16:48:52 2018 -0800
- [subset] sanity check glyph data writes during glyph subsetting to
- ensure they are inbounds.
+ [subset] sanity check glyph data writes during glyph subsetting to ensure they are inbounds.
src/hb-subset-glyf.cc | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
[subset] Sanity check that loca writes are inbounds.
- src/hb-subset-glyf.cc | 55
- ++++++++++++++++++++++++++++++++++++++-------------
+ src/hb-subset-glyf.cc | 55 ++++++++++++++++++++++++++++++++++++++-------------
1 file changed, 41 insertions(+), 14 deletions(-)
commit 73e20ec6e9ad86bea023fc8b6fc10287889ed048
Date: Tue Feb 20 17:34:59 2018 -0700
Merge pull request #812 from googlefonts/cleanup
-
+
Clean up of glyf subsetting.
commit 6ae4013f2e53d6496507a58b715298fee4eadcee
Date: Tue Feb 20 14:34:16 2018 -0800
Add Ragel-generated files to git
-
+
I know it's bad form; I know I've said no to this multiple times...
- But this is part of an experiment to see if we can make rolling
- HarfBuzz
+ But this is part of an experiment to see if we can make rolling HarfBuzz
into Chrome much faster. That will give us a lot more testing exposure
that currently Chrome does.
-
+
Doing this while those files are still considered ignored by our
gitignore rules; will see how that flies.
autogen.sh | 10 +-
src/Makefile.am | 3 +-
- src/hb-ot-shape-complex-indic-machine.hh | 1319
- ++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-indic-machine.hh | 1319 ++++++++++++++++++++++++++++
src/hb-ot-shape-complex-khmer-machine.hh | 294 +++++++
src/hb-ot-shape-complex-myanmar-machine.hh | 413 +++++++++
src/hb-ot-shape-complex-use-machine.hh | 502 +++++++++++
[subset] Move glyf subsetting code into hb-ot-glyf-table.hh
- src/hb-ot-glyf-table.hh | 49
- +++++++++++++++++++++++++++++++++++++++++++++++-
- src/hb-subset.cc | 50
- +------------------------------------------------
+ src/hb-ot-glyf-table.hh | 49 +++++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-subset.cc | 50 +------------------------------------------------
2 files changed, 49 insertions(+), 50 deletions(-)
commit d1f16fce963092404bf0b59e449a3215ca031b54
Date: Tue Feb 20 10:32:09 2018 -0800
Don't use %zu
-
- Some of our bots / compilers don't like it. Wasn't caught by bots
- because this
+
+ Some of our bots / compilers don't like it. Wasn't caught by bots because this
is only in debug code.
-
+
https://github.com/harfbuzz/harfbuzz/pull/809/commits/825ad378e0f0e6e6bb690894a0d5d25f198be21b
src/hb-ot-cmap-table.hh | 2 +-
Date: Tue Feb 20 10:26:07 2018 +0200
Use %zu format specifier for size_t to fix cross platform build
-
+
Fixes Chromium Android builds, compare
https://ci.chromium.org/buildbot/tryserver.chromium.android/linux_android_rel_ng/491787
[aat] First dig on 'trak'
src/Makefile.sources | 3 +-
- src/hb-aat-layout-trak-table.hh | 100
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-aat-layout-trak-table.hh | 100 ++++++++++++++++++++++++++++++++++++++++
src/hb-aat-layout.cc | 3 +-
src/hb-ot-layout-private.hh | 6 ++-
4 files changed, 108 insertions(+), 4 deletions(-)
Date: Mon Feb 19 11:06:13 2018 +0330
Test debug builds on ArchLinux bot
-
+
Fixes #805
.circleci/config.yml | 6 +++---
Date: Sun Feb 18 17:28:53 2018 -0800
Limit how much work sanitize() can do
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6022
src/Makefile.am | 2 ++
- src/hb-open-type-private.hh | 16
- ++++++++++++++--
- .../233c1e252e737ca79e03a9fd56b71aaa4a230f2b.ttf | Bin 0 ->
- 1048576 bytes
+ src/hb-open-type-private.hh | 16 ++++++++++++++--
+ .../233c1e252e737ca79e03a9fd56b71aaa4a230f2b.ttf | Bin 0 -> 1048576 bytes
test/shaping/data/in-house/tests/fuzzed.tests | 1 +
4 files changed, 17 insertions(+), 2 deletions(-)
Date: Sun Feb 18 16:27:59 2018 -0800
Fix debug build
-
+
Context needs to be called 'c'. The TRACE_* rely on that.
src/hb-ot-cmap-table.hh | 22 +++++++++++-----------
Date: Sun Feb 18 15:57:09 2018 -0800
Readjust mark attachment heuristic a bit more
-
+
Previously adjusted logic could fail if nothing around was ligated,
and something moved. This should take care of that.
-
+
CC https://github.com/harfbuzz/harfbuzz/issues/740
src/hb-ot-layout-gpos-table.hh | 5 ++++-
[test] Add test for https://github.com/harfbuzz/harfbuzz/issues/740
- .../fonts/573d3a3177c9a8646e94c8a0d7b224334340946a.ttf | Bin 0 ->
- 5680 bytes
+ .../fonts/573d3a3177c9a8646e94c8a0d7b224334340946a.ttf | Bin 0 -> 5680 bytes
test/shaping/data/in-house/tests/use.tests | 1 +
2 files changed, 1 insertion(+)
[aat] First dig on 'kerx' (#704)
src/Makefile.sources | 1 +
- src/hb-aat-layout-kerx-table.hh | 377
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-aat-layout-kerx-table.hh | 377 ++++++++++++++++++++++++++++++++++++++++
src/hb-aat-layout.cc | 1 +
src/hb-ot-layout-private.hh | 2 +
4 files changed, 381 insertions(+)
Date: Sun Feb 18 14:04:33 2018 -0800
Merge pull request #796 from ebraminio/dev-run
-
+
Add a continuous builder using fswatch
commit e91644786bf7c278e75962b851d5d47011ff175c
Date: Sun Feb 18 23:25:15 2018 +0330
Another attempt on fixing coverity
-
+
I hope I am in a correct direction at least
.travis.yml | 5 ++---
Date: Sun Feb 18 11:35:51 2018 -0800
Merge pull request #800 from harfbuzz/bitops
-
+
Optimize set through optimized bit operations
commit 97a71102153d28982297a190739c7d82e76b109e
Date: Sun Feb 18 10:50:24 2018 -0800
Fix BitScanForward() usage
-
+
Should fix Win64 bot.
src/hb-private.hh | 4 ++--
Date: Fri Feb 16 12:08:55 2018 -0500
Do not mark the first glyph as unsafe to break
-
+
Fixes #791.
src/hb-buffer-private.hh | 3 +--
Date: Fri Feb 16 16:58:17 2018 -0800
Misc fixes
-
+
Should bring bag djgpp bot.
- src/hb-ot-os2-table.hh | 54
- +++++++++++++++++++++++++-------------------------
+ src/hb-ot-os2-table.hh | 54 +++++++++++++++++++++++++-------------------------
src/hb-subset-plan.cc | 16 +++++++--------
2 files changed, 34 insertions(+), 36 deletions(-)
.../api/fonts/Roboto-Regular.components.subset.ttf | Bin 0 -> 2052 bytes
test/api/fonts/Roboto-Regular.components.ttf | Bin 0 -> 2572 bytes
- test/api/test-subset-glyf.c | 21
- +++++++++++++++++++++
+ test/api/test-subset-glyf.c | 21 +++++++++++++++++++++
3 files changed, 21 insertions(+)
commit c36d015b0e9c363431cd9d228b776ad419fde474
Author: Garret Rieger <grieger@google.com>
Date: Fri Feb 16 17:01:00 2018 -0700
- [subset] Add support for updating reference gids in components to
- their new values.
+ [subset] Add support for updating reference gids in components to their new values.
src/hb-subset-glyf.cc | 38 +++++++++++++++++++++++++++++++++-----
1 file changed, 33 insertions(+), 5 deletions(-)
Author: Garret Rieger <grieger@google.com>
Date: Fri Feb 16 16:56:15 2018 -0700
- [subset] Refactor composite glyf iteration code into an Iterator
- outside of the accelerator.
+ [subset] Refactor composite glyf iteration code into an Iterator outside of the accelerator.
- src/hb-ot-glyf-table.hh | 110
- +++++++++++++++++++++++++-----------------------
+ src/hb-ot-glyf-table.hh | 110 +++++++++++++++++++++++++-----------------------
src/hb-subset-plan.cc | 6 +--
2 files changed, 60 insertions(+), 56 deletions(-)
Author: Garret Rieger <grieger@google.com>
Date: Fri Feb 16 15:20:14 2018 -0700
- [subset] Use gids_to_retain_sorted to produce old gid -> new gid
- mapping since it now has the more complete set.
+ [subset] Use gids_to_retain_sorted to produce old gid -> new gid mapping since it now has the more complete set.
src/hb-subset-plan.cc | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
Author: Garret Rieger <grieger@google.com>
Date: Fri Feb 16 11:20:38 2018 -0700
- [subset] add constant to get_composite and in_table methods in
- hb-ot-glyf-table
+ [subset] add constant to get_composite and in_table methods in hb-ot-glyf-table
src/hb-ot-glyf-table.hh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Author: Garret Rieger <grieger@google.com>
Date: Thu Feb 15 14:03:34 2018 -0800
- [subset] add helper methods to glyf accelerator for reading composite
- glyph information.
+ [subset] add helper methods to glyf accelerator for reading composite glyph information.
- src/hb-ot-glyf-table.hh | 115
- ++++++++++++++++++++++++++++++++++++++++++++++--
+ src/hb-ot-glyf-table.hh | 115 ++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 112 insertions(+), 3 deletions(-)
commit cd11107bb44ac719709e10264e9e6ba6a1cfae0c
Date: Fri Feb 16 18:28:58 2018 -0800
Another bitops fallback fix
-
+
I'm confident that all bugs are hashed out now.
src/hb-private.hh | 4 ++--
[set] Implement iteration using bitop intrinsics
- src/hb-set-private.hh | 55
- ++++++++++++++++++---------------------------------
+ src/hb-set-private.hh | 55 ++++++++++++++++++---------------------------------
1 file changed, 19 insertions(+), 36 deletions(-)
commit 6a91a2eb04951f6e33706c2b8e9cd987b429fce9
Flesh out other bit ops some more for 128bit as well
- src/hb-private.hh | 165
- +++++++++++++++++++++++++++++++++++++++++-------------
+ src/hb-private.hh | 165 +++++++++++++++++++++++++++++++++++++++++-------------
1 file changed, 126 insertions(+), 39 deletions(-)
commit 864a2dddae9eb1303c59d0d3717fce307a72a524
Date: Fri Feb 16 14:21:40 2018 -0800
Clean up bit functions
-
+
Compile all code-paths possible, to better catch errors.
Also enable MSVC ones on mingw which seems to support them.
Date: Fri Feb 16 16:06:17 2018 -0800
Improve _hb_popcount()
-
+
Support 128bit type.
configure.ac | 3 ++-
src/hb-ot-layout-gpos-table.hh | 2 +-
src/hb-ot-map.cc | 2 +-
- src/hb-private.hh | 61
- +++++++++++++++++++++++++++---------------
+ src/hb-private.hh | 61 +++++++++++++++++++++++++++---------------
4 files changed, 44 insertions(+), 24 deletions(-)
commit 7b5ce7404716a17f91ff86d374c7b76ee7ce3247
Date: Fri Feb 16 15:36:20 2018 -0800
Enable C99 if available
-
- Hopefully we can now mix-and-match code and declaration in the C
- test files.
+
+ Hopefully we can now mix-and-match code and declaration in the C test files.
configure.ac | 1 +
1 file changed, 1 insertion(+)
Date: Fri Feb 16 15:27:29 2018 -0800
Merge pull request #792 from googlefonts/master
-
+
Support more tables in subsetter
commit 882a3bf4abcdac60414db41d54dbbb7d2368c908
Date: Fri Feb 16 21:45:08 2018 +0300
Remove checking macros __OPTIMIZE__ for MSVC
-
- Visual C++ compiler doesn't define macros __OPTIMIZE__ when
- optimizations enabled
+
+ Visual C++ compiler doesn't define macros __OPTIMIZE__ when optimizations enabled
src/hb-private.hh | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
Date: Thu Feb 15 02:52:15 2018 +0200
Move collect_logs to .ci dir
-
+
Next to other CI scripts.
.collect_logs => .ci/collect-logs.sh | 0
[subset] cmap space bracket
- src/hb-ot-cmap-table.hh | 72
- ++++++++++++++++++++++++-------------------------
+ src/hb-ot-cmap-table.hh | 72 ++++++++++++++++++++++++-------------------------
1 file changed, 36 insertions(+), 36 deletions(-)
commit e158739bfb9e5d60989e179fcc8744f3125e2067
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Wed Feb 14 18:43:53 2018 -0800
- [test] Reinstate
- test/shaping/data/in-house/tests/myanmar-syllable.tests
+ [test] Reinstate test/shaping/data/in-house/tests/myanmar-syllable.tests
test/shaping/data/in-house/tests/myanmar-syllable.tests | 1 +
1 file changed, 1 insertion(+)
Author: Garret Rieger <grieger@google.com>
Date: Wed Feb 14 17:00:18 2018 -0800
- [subset] Don't fail on different checksum adjustment in subsetting
- tests.
+ [subset] Don't fail on different checksum adjustment in subsetting tests.
- .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1740 ->
- 1692 bytes
+ .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1740 -> 1692 bytes
test/subset/run-tests.py | 8 ++++++++
2 files changed, 8 insertions(+)
Author: Garret Rieger <grieger@google.com>
Date: Wed Feb 14 16:05:39 2018 -0800
- [subset] Add missing face reference in hb-subset-plan plus ensure
- all struct members are cleaned up on destroy.
+ [subset] Add missing face reference in hb-subset-plan plus ensure all struct members are cleaned up on destroy.
src/hb-subset-plan.cc | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
Author: Garret Rieger <grieger@google.com>
Date: Wed Feb 14 16:01:08 2018 -0800
- [subset] In hb-subset-test use hb_set_union instead of manually
- copying set.
+ [subset] In hb-subset-test use hb_set_union instead of manually copying set.
test/api/hb-subset-test.h | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
Date: Wed Feb 14 15:46:27 2018 -0800
Another linker tweaking
-
+
Trying to fix this warning:
- cc1: warning: command line option ‘-fno-threadsafe-statics’ is
- valid for C++/ObjC++ but not for C
-
+ cc1: warning: command line option ‘-fno-threadsafe-statics’ is valid for C++/ObjC++ but not for C
+
Let's see what the clang bots think of it.
src/Makefile.am | 4 ++--
Date: Wed Feb 14 15:44:48 2018 -0800
[set] Tune size again
-
+
Switch from a 128+64 hierarchy, to 32+32. New page size is 1024.
This should make set iteration faster, without affecting other op
performances much.
Author: Rod Sheeter <rsheeter@google.com>
Date: Wed Feb 14 15:20:43 2018 -0800
- [subset] Use a supplier instead of memcpy and fix a few unnecessary
- {}s for cmap
+ [subset] Use a supplier instead of memcpy and fix a few unnecessary {}s for cmap
src/hb-ot-cmap-table.hh | 24 ++++++------------------
1 file changed, 6 insertions(+), 18 deletions(-)
src/hb-ot-cmap-table.hh | 19 +--
src/hb-ot-hhea-table.hh | 6 +-
- src/hb-ot-hmtx-table.hh | 163
- ++++++++++++++++++---
+ src/hb-ot-hmtx-table.hh | 163 ++++++++++++++++++---
src/hb-ot-maxp-table.hh | 8 +-
src/hb-ot-os2-table.hh | 8 +-
src/hb-subset-glyf.cc | 5 +-
test/api/fonts/Inconsolata-Regular.ac.ttf | Bin 0 -> 4940 bytes
test/api/fonts/Inconsolata-Regular.ac.widerc.ttf | Bin 0 -> 4944 bytes
test/api/fonts/README | 2 +
- test/api/test-subset-hmtx.c | 164
- ++++++++++++++++++++++
+ test/api/test-subset-hmtx.c | 164 ++++++++++++++++++++++
19 files changed, 422 insertions(+), 79 deletions(-)
commit 20022575c658b29796db80c387641309d0c49586
Author: Ebrahim Byagowi <ebrahim@gnu.org>
Date: Thu Feb 15 01:15:39 2018 +0330
- Redirect email notifications to another mailing list dedicated for
- this (#790)
+ Redirect email notifications to another mailing list dedicated for this (#790)
.travis.yml | 4 ++--
appveyor.yml | 5 +++++
Date: Wed Feb 14 10:55:25 2018 -0800
[subset] Allow linking to libstdc++
-
+
We want to use it.
src/Makefile.am | 2 +-
Author: Garret Rieger <grieger@google.com>
Date: Mon Feb 12 18:15:58 2018 -0800
- [subset] Drop GSUB, GDEF, GPOS, and DSIG from subsetter expected
- test outputs.
+ [subset] Drop GSUB, GDEF, GPOS, and DSIG from subsetter expected test outputs.
- .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 2460 ->
- 1740 bytes
+ .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 2460 -> 1740 bytes
test/subset/generate-expected-outputs.py | 1 +
2 files changed, 1 insertion(+)
test/api/Makefile.am | 2 ++
test/api/fonts/Roboto-Regular.b.ttf | Bin 0 -> 1996 bytes
- test/api/test-subset-os2.c | 59
- ++++++++++++++++++++++++++++++++++++
+ test/api/test-subset-os2.c | 59 ++++++++++++++++++++++++++++++++++++
3 files changed, 61 insertions(+)
commit 343dfe89655683966836e44afb4fd32c47377844
Author: Garret Rieger <grieger@google.com>
Date: Mon Feb 12 17:31:01 2018 -0800
- [subset] Correct usFirstCharIndex and usLastCharIndex in OS2 table
- when subsetting.
+ [subset] Correct usFirstCharIndex and usLastCharIndex in OS2 table when subsetting.
src/hb-ot-os2-table.hh | 45 +++++++++++++++++++++++++++++++++++++++++++++
src/hb-subset.cc | 16 ++++++++++------
Date: Wed Feb 14 01:00:10 2018 -0800
[set] Add backwards iterator
-
+
New API:
- hb_set_previous()
- hb_set_previous_range()
docs/harfbuzz-sections.txt | 2 ++
- src/hb-set-private.hh | 79
- +++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-set-private.hh | 79 +++++++++++++++++++++++++++++++++++++++++++++-
src/hb-set.cc | 49 +++++++++++++++++++++++++++-
src/hb-set.h | 19 ++++++++---
test/api/test-set.c | 53 +++++++++++++++++++++++++++++--
Date: Tue Feb 13 22:12:36 2018 -0800
Add hb_blob_copy_writable_or_fail()
-
+
New API:
- hb_blob_copy_writable_or_fail()
Date: Tue Feb 13 22:07:12 2018 -0800
[subset] Rename constructor to hb_subset_input_create_or_fail()
-
+
To signify that unlike rest of library, returns nullptr on failure.
src/hb-subset-input.cc | 6 ++----
[use] Add dump-use-data
src/Makefile.am | 4 ++++
- src/dump-use-data.cc | 38
- ++++++++++++++++++++++++++++++++++
+ src/dump-use-data.cc | 38 ++++++++++++++++++++++++++++++++++
src/gen-use-table.py | 2 +-
src/hb-ot-shape-complex-use-private.hh | 2 +-
src/hb-ot-shape-complex-use-table.cc | 2 +-
src/Makefile.am | 4 +
src/Makefile.sources | 1 +
src/dump-khmer-data.cc | 43 +++++++++++
- src/hb-ot-shape-complex-khmer-private.hh | 124
- +++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-khmer-private.hh | 124 +++++++++++++++++++++++++++++++
src/hb-ot-shape-complex-khmer.cc | 98 +-----------------------
5 files changed, 173 insertions(+), 97 deletions(-)
src/Makefile.sources | 1 +
src/dump-myanmar-data.cc | 43 ++++++++
src/hb-ot-shape-complex-indic-private.hh | 8 +-
- src/hb-ot-shape-complex-myanmar-private.hh | 171
- +++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-myanmar-private.hh | 171 +++++++++++++++++++++++++++++
src/hb-ot-shape-complex-myanmar.cc | 138 +----------------------
6 files changed, 225 insertions(+), 140 deletions(-)
Date: Tue Feb 13 21:23:38 2018 -0800
[indic] Rename print-indic-table to dump-indic-data
-
+
Makes more sense given what this prints, err, dumps.
src/Makefile.am | 8 ++++----
Date: Tue Feb 13 21:22:47 2018 -0800
[indic] Explicitly number indic_position_t
-
+
So it's easier to cross-reference from output of print-indic-table.
- src/hb-ot-shape-complex-indic-private.hh | 32
- ++++++++++++++++----------------
+ src/hb-ot-shape-complex-indic-private.hh | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
commit 8634846a0a1049c42ea84ca34402957c981b4c73
[indic] Share some copy/pasta code
- src/hb-ot-shape-complex-indic-private.hh | 29
- +++++++++++++++++++++++++++--
+ src/hb-ot-shape-complex-indic-private.hh | 29 +++++++++++++++++++++++++++--
src/hb-ot-shape-complex-indic.cc | 27 ---------------------------
- src/hb-ot-shape-complex-khmer.cc | 30
- ++++++++----------------------
+ src/hb-ot-shape-complex-khmer.cc | 30 ++++++++----------------------
src/hb-ot-shape-complex-myanmar.cc | 19 ++-----------------
4 files changed, 37 insertions(+), 68 deletions(-)
[indic] Add print-indic-table
src/Makefile.am | 14 ++-
- src/hb-ot-shape-complex-indic-private.hh | 185
- ++++++++++++++++++++++++++++++
- src/hb-ot-shape-complex-indic.cc | 187
- -------------------------------
+ src/hb-ot-shape-complex-indic-private.hh | 185 ++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-indic.cc | 187 -------------------------------
src/print-indic-table.cc | 43 +++++++
4 files changed, 239 insertions(+), 190 deletions(-)
Date: Tue Feb 13 16:35:30 2018 -0800
[subset] Fix loca offsets
-
+
Was writing source font's offsets. Ouch.
src/hb-subset-glyf.cc | 30 +++++++++++-------------------
Date: Tue Feb 13 14:02:59 2018 -0800
Another tweak at libstdc++ things
-
+
To fix this warning:
-
- cc1: warning: command line option ‘-fno-threadsafe-statics’ is
- valid for C++/ObjC++ but not for C
+
+ cc1: warning: command line option ‘-fno-threadsafe-statics’ is valid for C++/ObjC++ but not for C
src/Makefile.am | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
src/Makefile.sources | 1 +
src/hb-face.h | 1 -
src/hb-set.cc | 14 +++---
- src/hb-subset-input.cc | 109
- ++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-subset-input.cc | 109 ++++++++++++++++++++++++++++++++++++++++++++
src/hb-subset-plan.cc | 2 +-
src/hb-subset-private.hh | 11 ++++-
src/hb-subset.cc | 40 ++--------------
Date: Tue Feb 13 13:39:50 2018 -0800
Disable threadsafe static's for all libraries
-
+
Even in libharfbuzz-subset, we still will handle our own threadsafety
for statics.
Date: Mon Feb 12 18:51:10 2018 -0800
[subset] Allocate bulk memory with malloc(), not calloc()
-
+
We use calloc() to allocate simple structs and set them to zero.
For bulk memory, use malloc() that doesn't zero.
Date: Mon Feb 12 18:48:51 2018 -0800
Use hb_face_get_upem() instead of face->get_upem()
-
+
Such that hmtx accelerator can be used from libharfbuzz-subset.
src/hb-ot-cbdt-table.hh | 2 +-
Date: Mon Feb 12 18:43:42 2018 -0800
[subset] Remove unreachable code
-
+
sanitizer.sanitize never return nullptr.
src/hb-subset.cc | 4 ----
Date: Mon Feb 12 18:41:36 2018 -0800
Allow libharfbuzz-subset to link to libstdc++
-
+
We want to use it instead of reinventing hashmap...
-
+
Also, don't change linker for ICU since libicu also uses libstdc++.
src/Makefile.am | 2 --
.../Roboto-Regular.abc.cmap-format12-only.ttf | Bin 0 -> 2412 bytes
.../fonts/Roboto-Regular.ac.cmap-format12-only.ttf | Bin 0 -> 2212 bytes
test/api/hb-subset-test.h | 3 +-
- test/api/test-subset-cmap.c | 82
- +++++++++++++++++++++
+ test/api/test-subset-cmap.c | 82 +++++++++++++++++++++
test/api/test-subset-glyf.c | 5 +-
.../data/in-house/tests/myanmar-syllable.tests | 1 -
8 files changed, 87 insertions(+), 7 deletions(-)
Author: Garret Rieger <grieger@google.com>
Date: Mon Feb 12 13:40:42 2018 -0800
- [subset] Remove test-subset, testing is planned to be done at the
- table level here with test/subset covering the complete subsetting
- operation.
+ [subset] Remove test-subset, testing is planned to be done at the table level here with test/subset covering the complete subsetting operation.
test/api/Makefile.am | 1 -
- test/api/test-subset.c | 73
- --------------------------------------------------
+ test/api/test-subset.c | 73 --------------------------------------------------
2 files changed, 74 deletions(-)
commit 4cdd1b16c99f2681eb11d626c4408eebcc1672be
Author: Garret Rieger <grieger@google.com>
Date: Mon Feb 12 13:35:17 2018 -0800
- [subset] re-enable test-subset-glyf. Refactor to use common functions
- in hb-subset-test.h
+ [subset] re-enable test-subset-glyf. Refactor to use common functions in hb-subset-test.h
- test/api/test-subset-glyf.c | 109
- +++++++++++---------------------------------
+ test/api/test-subset-glyf.c | 109 +++++++++++---------------------------------
1 file changed, 27 insertions(+), 82 deletions(-)
commit d8d8bd8405ec0db781c4c2bbb7ebd6ff520b3c2d
Author: Garret Rieger <grieger@google.com>
Date: Mon Feb 12 13:33:55 2018 -0800
- [subset] Add some helper functions for writing tests around
- subsetting.
+ [subset] Add some helper functions for writing tests around subsetting.
test/api/Makefile.am | 2 +-
- test/api/hb-subset-test.h | 123
- ++++++++++++++++++++++++++++++++++++++++++++++
+ test/api/hb-subset-test.h | 123 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 124 insertions(+), 1 deletion(-)
commit e8318188c0e53a267a01c45b0fc8d29ad775738a
Author: Garret Rieger <grieger@google.com>
Date: Mon Feb 12 11:38:28 2018 -0800
- [subset] Fix loca generation, was previously writing the original
- glyph starting offset.
+ [subset] Fix loca generation, was previously writing the original glyph starting offset.
src/hb-subset-glyf.cc | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
Date: Mon Feb 12 16:45:36 2018 +0200
Rename --with-stdcpp → --with-libstdc++
-
+
Also improve wording a bit and fix make check in --with-libstdc++=yes.
configure.ac | 11 ++++++-----
Author: Ebrahim Byagowi <ebrahim@gnu.org>
Date: Mon Feb 12 17:20:12 2018 +0330
- Fix symbol exporting issue on msys2 and ✅ bringing all the bots
- (#781)
+ Fix symbol exporting issue on msys2 and ✅ bringing all the bots (#781)
src/Makefile.am | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
Date: Sun Feb 11 19:12:52 2018 -0800
Remove linker selection from hb-ucdn
-
- Since this is a convenience library, it's not actually linked. Or
- so I think.
+
+ Since this is a convenience library, it's not actually linked. Or so I think.
Hoping this might fix this Appveyor failure:
-
+
https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/job/9884jyb5vryja9pw
-
+
Making all in hb-ucdn
make[4]: Entering directory '/c/projects/harfbuzz/src/hb-ucdn'
CC libhb_ucdn_la-ucdn.lo
Date: Sun Feb 11 18:28:10 2018 -0800
Add Sun compiler to no-visibility as well
-
+
Fixes https://github.com/harfbuzz/harfbuzz/pull/776
src/hb-private.hh | 2 +-
Date: Sun Feb 11 18:24:22 2018 -0800
Another try at fixing multiple-defintion of NullPool
-
+
This one might do it...
src/hb-open-type-private.hh | 6 +++++-
Date: Sun Feb 11 19:46:06 2018 -0600
[subset] Another fixup
-
+
I broke this in c31fcf4c58d96eb7d9781a986991b1a79ac7be44
src/hb-ot-cmap-table.hh | 2 +-
Date: Sun Feb 11 19:34:05 2018 -0600
Try at fixing multiple-definition of NullPool
-
+
If we don't have visibility, make NullPool static.
src/hb-open-type-private.hh | 8 +++++++-
Date: Sun Feb 11 19:01:44 2018 -0600
[subset] Use auto_array_t where it does make sense
-
+
Better fix for https://github.com/harfbuzz/harfbuzz/pull/775
src/hb-subset-plan.cc | 3 +--
Date: Sat Feb 10 21:50:26 2018 -0600
[gpos] Adjust mark attachment heuristic
-
+
Hopefully it...
fixes https://github.com/harfbuzz/harfbuzz/issues/740
Date: Sat Feb 10 15:40:03 2018 -0600
More fixes
-
+
test-subset-glyf still failing. No idea why :(
src/hb-subset.cc | 3 +--
Date: Sat Feb 10 15:17:28 2018 -0600
Fix more build issues
-
+
Hopefully most bots come back with this...
src/check-libstdc++.sh | 5 +++--
Date: Sat Feb 10 14:20:10 2018 -0600
[subset] Replace auto_array with prealloced_array
-
- auto_array has constructor/destructor. Cannot be used in POD object,
- as the clang
+
+ auto_array has constructor/destructor. Cannot be used in POD object, as the clang
bots all noticed...
src/hb-ot-cmap-table.hh | 8 ++++----
Date: Sat Feb 10 12:45:28 2018 -0600
[util] Use setlinebuf() if present
-
+
To work around mysterious bug on OS X.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/727
configure.ac | 6 ++----
Author: Garret Rieger <grieger@google.com>
Date: Fri Feb 9 18:41:21 2018 -0800
- In glyf subsetting add suport for writing out a short loca table
- when possible.
+ In glyf subsetting add suport for writing out a short loca table when possible.
src/hb-subset-glyf.cc | 42 +++++++++++++++++++++++++++++++++---------
1 file changed, 33 insertions(+), 9 deletions(-)
First pass at building a cmap
- src/hb-ot-cmap-table.hh | 103
- ++++++++++++++++++++++++++++++++++++++++++++----
+ src/hb-ot-cmap-table.hh | 103 ++++++++++++++++++++++++++++++++++++++++++++----
src/hb-subset.cc | 37 +++++++++--------
2 files changed, 115 insertions(+), 25 deletions(-)
Author: Garret Rieger <grieger@google.com>
Date: Fri Feb 9 16:22:09 2018 -0800
- Keep a second set of glyph ids in subset plan which is sorted by
- glyph id and always has gid 0
+ Keep a second set of glyph ids in subset plan which is sorted by glyph id and always has gid 0
src/hb-subset-glyf.cc | 2 +-
src/hb-subset-plan.cc | 34 +++++++++++++++++++++++++---------
Formatting for hb-subset-plan.
- src/hb-subset-plan.cc | 51
- +++++++++++++++++++++++++++------------------------
+ src/hb-subset-plan.cc | 51 +++++++++++++++++++++++++++------------------------
1 file changed, 27 insertions(+), 24 deletions(-)
commit 8cef3a61995317d3a5724221108647d7e66fe24a
Date: Fri Feb 9 16:04:23 2018 -0600
Try fixing build with Sun Studio
-
+
Trying to fix:
https://circleci.com/gh/harfbuzz/harfbuzz/6635
-
+
Also part of:
https://github.com/harfbuzz/harfbuzz/issues/630
Author: Garret Rieger <grieger@google.com>
Date: Fri Feb 9 13:54:43 2018 -0800
- Return empty face on hb_subset failure instead of null. Plus some
- minor cleanups for _add_head_and_set_loca_version
+ Return empty face on hb_subset failure instead of null. Plus some minor cleanups for _add_head_and_set_loca_version
src/hb-subset.cc | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
Date: Thu Feb 1 13:31:25 2018 -0500
Documentation for HB_GLYPH_FLAG_UNSAFE_TO_BREAK.
-
- HB_GLYPH_FLAG_UNSAFE_TO_BREAK means that the glyph with this flag is
- somehow affected by the previous logical glyph (the previous index
- in the buffer if ltr and the next index if the buffer is rtl). If
- these two glyphs are separated by a break (line or otherwise) then the
- underlying text should be re-shaped on both sides up to corresponding
- position in the text of some glyph not marked with this flag.
+
+ HB_GLYPH_FLAG_UNSAFE_TO_BREAK means that the glyph with this flag is somehow affected by the previous logical glyph (the previous index in the buffer if ltr and the next index if the buffer is rtl). If these two glyphs are separated by a break (line or otherwise) then the underlying text should be re-shaped on both sides up to corresponding position in the text of some glyph not marked with this flag.
src/hb-buffer.h | 6 ++++++
1 file changed, 6 insertions(+)
[test/text-rendering-tests] Update from upstream
- .../text-rendering-tests/fonts/TestMORXTwentysix.ttf | Bin 3260 ->
- 3252 bytes
+ .../text-rendering-tests/fonts/TestMORXTwentysix.ttf | Bin 3260 -> 3252 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit 1cd98d05e07498653ba60a68b6342d1a90429eba
Author: Rod Sheeter <rsheeter@google.com>
Date: Thu Feb 8 19:39:57 2018 -0800
- Create the groups for a cmap format12. Does not yet build the
- actual table.
+ Create the groups for a cmap format12. Does not yet build the actual table.
src/hb-ot-cmap-table.hh | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
Author: Rod Sheeter <rsheeter@google.com>
Date: Thu Feb 8 19:22:47 2018 -0800
- capture codepoints sorted so we can use them for cmap later. one
- day we will have a map
+ capture codepoints sorted so we can use them for cmap later. one day we will have a map
src/hb-ot-cmap-table.hh | 14 ---------
src/hb-private.hh | 61 +++++++++++++++++++++++++---------------
src/hb-subset-glyf.cc | 16 +++++------
- src/hb-subset-plan.cc | 75
- ++++++++++++++++++++++++++++++++++---------------
+ src/hb-subset-plan.cc | 75 ++++++++++++++++++++++++++++++++++---------------
src/hb-subset-plan.hh | 8 ++++--
src/hb-subset.cc | 29 ++++++++++++-------
6 files changed, 123 insertions(+), 80 deletions(-)
Author: Garret Rieger <grieger@google.com>
Date: Thu Feb 8 18:32:24 2018 -0800
- Add an extra entry to the end of the loca table to identify the end
- of the last glyph's data.
+ Add an extra entry to the end of the loca table to identify the end of the last glyph's data.
src/hb-subset-glyf.cc | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
Apply per table subsetting while building the new face in hb_subset.
src/hb-subset-glyf.cc | 1 +
- src/hb-subset.cc | 105
- ++++++++++++++++++++++++++++++--------------------
+ src/hb-subset.cc | 105 ++++++++++++++++++++++++++++++--------------------
2 files changed, 65 insertions(+), 41 deletions(-)
commit 3e81832432a1cae0dc28242bb6ff279753effd27
Author: Garret Rieger <grieger@google.com>
Date: Thu Feb 8 15:11:15 2018 -0800
- Fix include gaurds and include order in hb-subset-glyf and
- hb-subset-plan
+ Fix include gaurds and include order in hb-subset-glyf and hb-subset-plan
src/hb-subset-glyf.hh | 6 ++++--
src/hb-subset-plan.cc | 2 +-
Author: Garret Rieger <grieger@google.com>
Date: Thu Feb 8 11:30:36 2018 -0800
- In the hb-subset to fontTools comparison, use ttx to compare the
- fonts. This allows for some binary differences such as re-ordered
- tables.
+ In the hb-subset to fontTools comparison, use ttx to compare the fonts. This allows for some binary differences such as re-ordered tables.
test/subset/run-tests.py | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
Implement basic loca (long version only) subsetting.
- src/hb-subset-glyf.cc | 66
- +++++++++++++++++++++++++++++++++++----------------
+ src/hb-subset-glyf.cc | 66 +++++++++++++++++++++++++++++++++++----------------
1 file changed, 46 insertions(+), 20 deletions(-)
commit f9c665fed1347f7af6d36ba129f9d174f4ac54dc
Author: Garret Rieger <grieger@google.com>
Date: Wed Feb 7 16:47:31 2018 -0800
- Comment out failing assert in test-subset-glyf for now. Should be
- re-enabled once hb_subset is writing out a new face.
+ Comment out failing assert in test-subset-glyf for now. Should be re-enabled once hb_subset is writing out a new face.
test/api/test-subset-glyf.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
test/api/Makefile.am | 4 +
test/api/fonts/Roboto-Regular.abc.ttf | Bin 0 -> 2460 bytes
test/api/fonts/Roboto-Regular.ac.ttf | Bin 0 -> 2268 bytes
- test/api/test-subset-glyf.c | 134
- ++++++++++++++++++++++++++++++++++
+ test/api/test-subset-glyf.c | 134 ++++++++++++++++++++++++++++++++++
4 files changed, 138 insertions(+)
commit 217ed5e3c885532fa8b332cc0d0f9cb4eef32e2b
Author: Rod Sheeter <rsheeter@google.com>
Date: Wed Feb 7 15:59:36 2018 -0800
- sketch a subset<T> and call it for cmap. Add subset to cmap, albeit
- not working even for the msot basic case just yet
+ sketch a subset<T> and call it for cmap. Add subset to cmap, albeit not working even for the msot basic case just yet
src/hb-ot-cmap-table.hh | 18 ++++++++++++++++--
src/hb-subset.cc | 30 ++++++++++++++++++++++++++++++
Date: Thu Feb 8 17:22:07 2018 -0600
Fix overflow in space fallback shaping
-
+
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=657466
src/hb-ot-shape-fallback.cc | 2 +-
Date: Thu Feb 8 17:14:52 2018 -0600
Avoid undefined-behavior in fallback mark positioning
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5584
src/hb-ot-shape-fallback.cc | 11 ++++++-----
test/shaping/data/text-rendering-tests/DISABLED | 2 ++
test/shaping/data/text-rendering-tests/Makefile.sources | 2 ++
- .../text-rendering-tests/fonts/TestMORXTwentyfive.ttf | Bin 0 ->
- 3260 bytes
- .../text-rendering-tests/fonts/TestMORXTwentysix.ttf | Bin 0 ->
- 3260 bytes
+ .../text-rendering-tests/fonts/TestMORXTwentyfive.ttf | Bin 0 -> 3260 bytes
+ .../text-rendering-tests/fonts/TestMORXTwentysix.ttf | Bin 0 -> 3260 bytes
.../data/text-rendering-tests/tests/MORX-25.tests | 9 +++++++++
.../data/text-rendering-tests/tests/MORX-26.tests | 2 ++
6 files changed, 15 insertions(+)
[subset] Assemble font
- src/hb-open-file-private.hh | 50
- +++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-open-file-private.hh | 50 +++++++++++++++++++++++++++++++++++++++++++-
src/hb-open-type-private.hh | 33 +++++++++++++++++++++++------
src/hb-ot-map-private.hh | 10 ++++-----
src/hb-private.hh | 20 +++++++++++-------
src/hb-set-private.hh | 8 +++----
- src/hb-subset.cc | 51
- +++++++++++++++++++++++++++++++++++++++------
+ src/hb-subset.cc | 51 +++++++++++++++++++++++++++++++++++++++------
test/api/test-subset.c | 9 ++++++--
7 files changed, 150 insertions(+), 31 deletions(-)
Date: Wed Feb 7 18:07:45 2018 -0600
[set] Respect stride
-
+
Ouch!
src/hb-set-private.hh | 4 ++--
Date: Wed Feb 7 16:44:52 2018 -0600
[subset] Create new face and copy all tables to it
-
- test-subset fails now because subset-face does not know how to
- compile itself.
+
+ test-subset fails now because subset-face does not know how to compile itself.
src/hb-subset.cc | 37 ++++++++++++++++++++++++++-----------
1 file changed, 26 insertions(+), 11 deletions(-)
Refactor subset glyf to remove multiple calls to glyf.fini()
- src/hb-subset-glyf.cc | 52
- +++++++++++++++++++++++++++++----------------------
+ src/hb-subset-glyf.cc | 52 +++++++++++++++++++++++++++++----------------------
1 file changed, 30 insertions(+), 22 deletions(-)
commit 0a5d1440f829f07454592adde9dd3aa93ad74442
Add implementation of glyf subsetting.
- src/hb-subset-glyf.cc | 81
- +++++++++++++++++++++++++++++++++++++++++++++++----
+ src/hb-subset-glyf.cc | 81 +++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 76 insertions(+), 5 deletions(-)
commit 05d65baa1bb64664ba838993fd35f3899d52eb8d
Date: Wed Feb 7 14:09:56 2018 -0600
Fix two undefined-behavior issues
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/761
Fixes https://github.com/harfbuzz/harfbuzz/issues/762
Date: Wed Feb 7 13:47:35 2018 -0500
[subset] Add hb_subset_face
-
+
It's a hb_face_t that has add_table() and in the future knows how to
compile itself into a font blob.
src/hb-private.hh | 9 ++++++
- src/hb-subset.cc | 88
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-subset.cc | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 97 insertions(+)
commit af02812fc51812a7e2265a1100bbca1a5bf8af45
src/hb-subset-plan.cc | 12 ++++++++---
src/hb-subset-plan.hh | 2 +-
src/hb-subset-private.hh | 10 ----------
- src/hb-subset.cc | 52
- ++++++++----------------------------------------
+ src/hb-subset.cc | 52 ++++++++----------------------------------------
src/hb-subset.h | 25 ++++++-----------------
test/api/test-subset.c | 9 +++++----
util/hb-subset.cc | 12 ++++++-----
Date: Wed Feb 7 12:44:35 2018 -0500
Remove NullPool visibility hack
-
+
We keep a separate private NullPool in libharfbuzz-subset.so
- This can fire back later since now there are two separate null
- objects,
+ This can fire back later since now there are two separate null objects,
and comparisons to the null pool can be confused. Something to deal
with when it comes up. Ouch!
Author: Rod Sheeter <rsheeter@google.com>
Date: Wed Feb 7 09:37:06 2018 -0800
- glyph ids to retain should most likely keep the glyph id not the
- codepoint
+ glyph ids to retain should most likely keep the glyph id not the codepoint
src/hb-subset-plan.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Author: Rod Sheeter <rsheeter@google.com>
Date: Tue Feb 6 16:58:35 2018 -0800
- Resolve codepoints:glyph ids. Does not compile; undefined reference
- to OT::_hb_NullPool
+ Resolve codepoints:glyph ids. Does not compile; undefined reference to OT::_hb_NullPool
src/hb-subset-plan.cc | 25 +++++++++++++++++++------
src/hb-subset-plan.hh | 2 +-
Make hb-subset-plan private.
src/Makefile.sources | 2 +-
- src/hb-subset-plan.cc | 27
- ++++++++++++++++-----------
+ src/hb-subset-plan.cc | 27 ++++++++++++++++-----------
src/{hb-subset-plan.h => hb-subset-plan.hh} | 22 +++++++++++++---------
3 files changed, 30 insertions(+), 21 deletions(-)
Add a basic sketch of hb-subset-plan.
src/Makefile.sources | 2 ++
- src/hb-subset-plan.cc | 72
- +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-subset-plan.cc | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-subset-plan.h | 49 +++++++++++++++++++++++++++++++++++
3 files changed, 123 insertions(+)
Date: Tue Feb 6 20:40:42 2018 +0330
[test] Fix test-subset on old distros (#758)
-
+
https://developer.gnome.org/glib/stable/glib-Testing.html#g-assert-cmpmem
test/api/test-subset.c | 4 ++++
Date: Tue Feb 6 11:48:04 2018 -0500
[aat] Adjust unsafe-to-break logic some more
-
+
I believe I'm happy with it now.
src/hb-aat-layout-common-private.hh | 8 ++++----
Date: Tue Feb 6 10:20:48 2018 -0500
[buffer] Tweak diff re glyph_flags again
-
+
We expect the buffer to have no flags that the reference doesn't...
Meh. Makes MORX tests pass now. Need to better define the behavior.
Date: Mon Feb 5 19:51:09 2018 -0500
Fix fallthrough compiler warning with gcc >= 7
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/755
src/hb-private.hh | 3 +++
Date: Mon Feb 5 15:35:13 2018 -0800
Merge pull request #754 from googlefonts/master
-
+
Fix build for subsetting code.
commit 2ea228935d41b55fed45b7423b69bc15b42e3abc
Author: Garret Rieger <grieger@google.com>
Date: Mon Feb 5 14:35:32 2018 -0800
- Switch to fopen() instead of open() in subset test. open wasn't
- compiling on windows.
+ Switch to fopen() instead of open() in subset test. open wasn't compiling on windows.
util/hb-subset.cc | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
Author: Garret Rieger <grieger@google.com>
Date: Mon Feb 5 11:12:33 2018 -0800
- Rename HB_SUBSET_sources -> HB_SUBSET_CLI_sources to match what
- cmake is looking for.
+ Rename HB_SUBSET_sources -> HB_SUBSET_CLI_sources to match what cmake is looking for.
util/Makefile.am | 3 +--
util/Makefile.sources | 2 +-
Date: Sun Feb 4 20:01:35 2018 -0500
Merge pull request #745 from googlefonts/master
-
- Interface for hb_subset, skeleton for the hb-subset cli, and basic
- testing rigging.
+
+ Interface for hb_subset, skeleton for the hb-subset cli, and basic testing rigging.
commit 3615f344ec00059972d8ce75522022b5294764a7
Author: Behdad Esfahbod <behdad@behdad.org>
test/shaping/data/text-rendering-tests/DISABLED | 1 +
test/shaping/data/text-rendering-tests/Makefile.sources | 3 ++-
- .../text-rendering-tests/fonts/TestMORXTwentythree.ttf | Bin 0 ->
- 1836 bytes
+ .../text-rendering-tests/fonts/TestMORXTwentythree.ttf | Bin 0 -> 1836 bytes
.../data/text-rendering-tests/tests/MORX-23.tests | 1 +
4 files changed, 4 insertions(+), 1 deletion(-)
Date: Sun Feb 4 14:58:02 2018 -0500
[aat] Fix unsafe-to-break
-
+
At any position, if state is not zero, mark unsafe-to-break before,
unless we can reason it safe.
-
+
At any position, if there's an action entry for end-of-text, mark
unsafe to break.
-
+
Also changes buffer diff impl to allow for flag differences as long
as the buffer glyph flags are superset of reference glyph flags.
-
+
With this, all MORX tests pass.
src/hb-aat-layout-common-private.hh | 31 +++++++++++++++++++++++++------
- src/hb-aat-layout-morx-table.hh | 35
- +++++++++++++++++++++++------------
+ src/hb-aat-layout-morx-table.hh | 35 +++++++++++++++++++++++------------
src/hb-buffer.cc | 2 +-
3 files changed, 49 insertions(+), 19 deletions(-)
Actually call hb_subset
- util/hb-subset.cc | 51
- ++++++++++++++++++++++++++++++++++-----------------
+ util/hb-subset.cc | 51 ++++++++++++++++++++++++++++++++++-----------------
1 file changed, 34 insertions(+), 17 deletions(-)
commit 7b01761adef6f64f1139b30c985aa5f52314073a
test/subset/run-tests.py | 15 +++---
util/Makefile.sources | 3 ++
- util/hb-subset.cc | 131
- +++++++++++++++++++++++++----------------------
+ util/hb-subset.cc | 131 +++++++++++++++++++++++++----------------------
3 files changed, 82 insertions(+), 67 deletions(-)
commit ede84ffa426edb950c4ec4f89833c85475a1c64f
Author: Garret Rieger <grieger@google.com>
Date: Wed Jan 31 14:53:09 2018 -0800
- Add a basic implementation of hb-subset to enable compilation of
- test-subset.
+ Add a basic implementation of hb-subset to enable compilation of test-subset.
- src/hb-subset.cc | 146
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-subset.cc | 146 +++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-subset.h | 5 +-
test/api/Makefile.am | 1 +
test/api/test-subset.c | 12 ++--
Author: Garret Rieger <grieger@google.com>
Date: Wed Jan 31 11:32:23 2018 -0800
- Make the expected output for subsetting basics test be equal to the
- input file for now.
+ Make the expected output for subsetting basics test be equal to the input file for now.
- .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1996 ->
- 2460 bytes
+ .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1996 -> 2460 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit b59c08eb045db2b6c952de81510b8159a4f72fb1
Add the beginning of a unit test for hb-subset
- test/api/test-subset.c | 67
- ++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/api/test-subset.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
commit e9d154ac8ddd2712a34c53c95a17e469f95e5b30
Author: Rod Sheeter <rsheeter@google.com>
Date: Tue Jan 30 19:27:11 2018 -0800
- tweak test failure output. write to a temp file not stdout. test
- still fails because expected is not just an identical copy of input
+ tweak test failure output. write to a temp file not stdout. test still fails because expected is not just an identical copy of input
test/subset/run-tests.py | 41 +++++++++++++++++++++++++++----------
- util/hb-subset.cc | 53
- +++++++++++++++++++++++++++++++++---------------
+ util/hb-subset.cc | 53 +++++++++++++++++++++++++++++++++---------------
2 files changed, 67 insertions(+), 27 deletions(-)
commit cf403e1a53381f293aceac5cdbe031bbb2a7af77
WIP test runner for subset tests.
- test/subset/run-tests.py | 64
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ test/subset/run-tests.py | 64 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 64 insertions(+)
commit cc46cd88a1b84b02694fa6d88c4286e93336f096
Author: Garret Rieger <grieger@google.com>
Date: Fri Jan 26 14:25:39 2018 -0800
- In generate-expected-outputs read the test definition with utf8
- encoding.
+ In generate-expected-outputs read the test definition with utf8 encoding.
test/subset/generate-expected-outputs.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Author: Garret Rieger <grieger@google.com>
Date: Fri Jan 26 13:57:48 2018 -0800
- Add basic directory structure for subsetter integration tests. Plus
- a utility for generating expected output files.
+ Add basic directory structure for subsetter integration tests. Plus a utility for generating expected output files.
.../basics/Roboto-Regular.abc.default.62.ttf | Bin 0 -> 1996 bytes
test/subset/data/fonts/Roboto-Regular.abc.ttf | Bin 0 -> 2460 bytes
test/subset/data/profiles/default.txt | 0
test/subset/data/tests/basics.txt | 8 ++
test/subset/generate-expected-outputs.py | 40 ++++++++++
- test/subset/subset_test_suite.py | 82
- +++++++++++++++++++++
+ test/subset/subset_test_suite.py | 82 +++++++++++++++++++++
6 files changed, 130 insertions(+)
commit 9ccb8366f603a9e4a7a3c3f96420a19d4f6fb390
src/Makefile.am | 2 ++
src/Makefile.sources | 4 +++
src/hb-subset.cc | 0
- src/hb-subset.h | 88
- +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-subset.h | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++
util/Makefile.am | 3 ++
util/Makefile.sources | 4 +++
util/hb-subset.cc | 61 +++++++++++++++++++++++++++++++++++
Date: Sun Feb 4 14:45:02 2018 -0500
[aat] More adjustment to ContextualSubtable
-
+
See comment.
-
+
With this, MORX-20 passes if I turn --verify off. Our unsafe-to-break
logic is currently broken in presence of end-of-text actions. That's,
ugh, extra work to fix. Let me try...
Date: Sun Feb 4 12:38:18 2018 -0500
[configure] Fix wording
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/741
configure.ac | 4 ++--
Date: Fri Feb 2 16:08:50 2018 -0500
[aat] In ContextualSubtable, mark mark after substituting mark
-
+
Fixes MORX-21.
src/hb-aat-layout-morx-table.hh | 16 ++++++++--------
Date: Fri Feb 2 15:53:25 2018 -0500
[aat] Fix ContextualSubtable sanitization
-
+
Fixes MORX-18, MORX-19, and MORX-22.
src/hb-aat-layout-morx-table.hh | 6 ++++--
Date: Sun Feb 4 12:05:12 2018 +0200
Correctly show documentation build status
-
- Correctly show if building documentation is enabled or not in
- configure
+
+ Correctly show if building documentation is enabled or not in configure
summary.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/741
configure.ac | 2 +-
Date: Sun Feb 4 01:26:57 2018 +0700
Enable use of atexit() on macOS and related platforms.
-
+
The atexit() man page indicates that this is expected to behave
in the expected way on unloading of shared libraries.
src/hb-ot-shape-complex-myanmar.cc | 5 +++++
test/shaping/README.md | 10 +++++-----
test/shaping/data/in-house/Makefile.sources | 1 +
- .../fonts/af3086380b743099c54a3b11b96766039ea62fcd.ttf | Bin 0 ->
- 1536 bytes
+ .../fonts/af3086380b743099c54a3b11b96766039ea62fcd.ttf | Bin 0 -> 1536 bytes
test/shaping/data/in-house/tests/myanmar-syllable.tests | 1 +
6 files changed, 13 insertions(+), 6 deletions(-)
Date: Wed Jan 31 22:24:51 2018 +0700
[ot-layout] Fix nullptr dereference.
-
+
If the `calloc` for `gsub_accels` or `gpos_accels` fails, then the
unlikely branch afterwards can be taken, which frees up the
`hb_ot_layout_t`, but since those fields can now be `nullptr`, then
Date: Wed Jan 31 20:24:27 2018 +0700
[coretext] Fix memory leaks.
-
+
In `reference_table`, if the data is empty and we return early,
we still need to release the data object.
-
+
In `hb_coretext_shape`, there two edge cases where an early
return should release the attributed string.
Date: Tue Jan 30 10:58:44 2018 -0800
[aat] Limit number of DontAdvance transitions
-
+
Remove the faulty loop-detection logic. Use max-ops for breaking
out of infinite loops or heavy work.
-
+
https://twitter.com/behdadesfahbod/status/958065026262183936
- src/hb-aat-layout-common-private.hh | 33
- ++-------------------------------
+ src/hb-aat-layout-common-private.hh | 33 ++-------------------------------
1 file changed, 2 insertions(+), 31 deletions(-)
commit e00743b47d25a2487b7f232a514a042e2962a089
test/shaping/data/text-rendering-tests/DISABLED | 7 +++++++
test/shaping/data/text-rendering-tests/Makefile.sources | 7 +++++++
- .../data/text-rendering-tests/fonts/TestMORXEighteen.ttf | Bin 0 ->
- 3256 bytes
- .../text-rendering-tests/fonts/TestMORXSeventeen.ttf | Bin 0 ->
- 1788 bytes
- .../data/text-rendering-tests/fonts/TestMORXSixteen.ttf | Bin 0 ->
- 1812 bytes
- .../data/text-rendering-tests/fonts/TestMORXTwenty.ttf | Bin 0 ->
- 3232 bytes
- .../text-rendering-tests/fonts/TestMORXTwentyone.ttf | Bin 0 ->
- 3244 bytes
- .../text-rendering-tests/fonts/TestMORXTwentytwo.ttf | Bin 0 ->
- 3256 bytes
+ .../data/text-rendering-tests/fonts/TestMORXEighteen.ttf | Bin 0 -> 3256 bytes
+ .../text-rendering-tests/fonts/TestMORXSeventeen.ttf | Bin 0 -> 1788 bytes
+ .../data/text-rendering-tests/fonts/TestMORXSixteen.ttf | Bin 0 -> 1812 bytes
+ .../data/text-rendering-tests/fonts/TestMORXTwenty.ttf | Bin 0 -> 3232 bytes
+ .../text-rendering-tests/fonts/TestMORXTwentyone.ttf | Bin 0 -> 3244 bytes
+ .../text-rendering-tests/fonts/TestMORXTwentytwo.ttf | Bin 0 -> 3256 bytes
.../data/text-rendering-tests/tests/MORX-14.tests | 1 +
.../data/text-rendering-tests/tests/MORX-16.tests | 1 +
.../data/text-rendering-tests/tests/MORX-17.tests | 1 +
Date: Fri Jan 26 18:14:05 2018 -0800
Misc warning fixes
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/712
src/hb-ot-layout-gsubgpos-private.hh | 9 ++++-----
Date: Fri Jan 26 13:38:06 2018 -0500
Use KernSubTableFormat2::rightClassTable
-
+
Issue originally reported at http://cppfiles.com/chromium.txt .
-
+
This fixes what appears to be a copy - paste issue which causes both
KernSubTableFormat2::rightClassTable and the 'right' argument to
KernSubTableFormat2::get_kerning to go unused.
Date: Fri Jan 19 18:36:39 2018 -0800
[aat] Fix Ligature matching
-
- I hope... Makes "ffi" work with Zapfino. I'm not sure if doing it
- correctly though...
+
+ I hope... Makes "ffi" work with Zapfino. I'm not sure if doing it correctly though...
src/hb-aat-layout-morx-table.hh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Date: Fri Jan 19 18:08:56 2018 -0800
[aat] Implement LigatureSubtable
-
+
We form the Zapfino ligature now. Yay! No further testing done.
src/hb-aat-layout-common-private.hh | 25 ++++++---
- src/hb-aat-layout-morx-table.hh | 108
- +++++++++++++++++++++++++++++++++---
+ src/hb-aat-layout-morx-table.hh | 108 +++++++++++++++++++++++++++++++++---
2 files changed, 115 insertions(+), 18 deletions(-)
commit f07ce661a2056965c573c99bdb721c065563ea7b
Date: Fri Jan 19 16:52:01 2018 -0800
[aat] Embed a sanitizer context in hb_aat_apply_context_t
-
+
For run-time checking.
src/hb-aat-layout-common-private.hh | 22 ++++++++++++++++------
src/hb-aat-layout.cc | 2 +-
src/hb-ot-layout-gpos-table.hh | 48 ++++++++++++-------------
src/hb-ot-layout-gsub-table.hh | 24 ++++++-------
- src/hb-ot-layout-gsubgpos-private.hh | 58
- +++++++++++++++---------------
+ src/hb-ot-layout-gsubgpos-private.hh | 58 +++++++++++++++---------------
src/hb-ot-layout-private.hh | 4 +--
src/hb-ot-layout.cc | 16 ++++-----
src/hb-ot-shape-complex-arabic-fallback.hh | 2 +-
Date: Thu Jan 18 22:49:40 2018 +0100
hb-common.cc: Hatran script is right-to-left (#714)
-
+
"Hatran is written from right to left horizontally"
-
+
http://www.unicode.org/L2/L2012/12312-n4324-hatran.pdf
-
+
This ancient script was added with Unicode 8.0.
-
+
Also this spreadsheet (referenced in an inline comment in the
source code) has it as RTL: http://goo.gl/x9ilM
Author: Ebrahim Byagowi <ebrahim@gnu.org>
Date: Fri Jan 19 01:12:31 2018 +0330
- Improve avoiding C++ linkage, definition creation and cmake tests
- (#710)
+ Improve avoiding C++ linkage, definition creation and cmake tests (#710)
.circleci/config.yml | 4 ++--
CMakeLists.txt | 46 ++++++++++++++++++++++++++--------------------
Date: Wed Jan 17 09:47:50 2018 -0800
Typo
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/711
util/options.cc | 2 +-
Date: Mon Jan 15 20:46:58 2018 -0500
Disable MORX-13/14
-
+
Really, need better way to catch these :(.
test/shaping/data/text-rendering-tests/DISABLED | 2 ++
Date: Mon Jan 15 20:44:10 2018 -0500
Disallow sanitize recursing into Extension subtables multiple times
-
+
Fixes https://oss-fuzz.com/v2/testcase-detail/5216838347653120
which is a stack overflow, not by way of infinite recursion, just
being deep. That's disallowed anyway, so catch it as it happens,
[aat] Towards implementing LigatureSubtable
- src/hb-aat-layout-morx-table.hh | 61
- +++++++++++++++++++++++++++++++++++++++--
+ src/hb-aat-layout-morx-table.hh | 61 +++++++++++++++++++++++++++++++++++++++--
1 file changed, 58 insertions(+), 3 deletions(-)
commit c9e12a2b9b34d73d37def2261a5c1a7ef20b8349
[test/text-rendering-tests] Update from upstream
test/shaping/data/text-rendering-tests/Makefile.sources | 2 ++
- .../data/text-rendering-tests/fonts/TestMORXFourteen.ttf | Bin 0 ->
- 1816 bytes
- .../data/text-rendering-tests/fonts/TestMORXThirteen.ttf | Bin 0 ->
- 1820 bytes
+ .../data/text-rendering-tests/fonts/TestMORXFourteen.ttf | Bin 0 -> 1816 bytes
+ .../data/text-rendering-tests/fonts/TestMORXThirteen.ttf | Bin 0 -> 1820 bytes
.../data/text-rendering-tests/tests/MORX-13.tests | 1 +
.../data/text-rendering-tests/tests/MORX-14.tests | 1 +
5 files changed, 4 insertions(+)
Date: Fri Jan 12 12:04:53 2018 +0100
[aat] Fix some struct sizes
-
- I hate it that with my compiler at least, it doesn't catch totally
- uncompilable
+
+ I hate it that with my compiler at least, it doesn't catch totally uncompilable
statements in templates if they are not used...
src/hb-aat-layout-common-private.hh | 2 +-
Date: Fri Jan 12 11:31:20 2018 +0100
[aat] Fix symbol visibility
-
+
Not sure why only one of the bots sees this as visible...
src/hb-aat-layout-morx-table.hh | 2 +-
[aat] Detect infinite-loops in state machine
- src/hb-aat-layout-common-private.hh | 36
- +++++++++++++++++++++++++++++-------
+ src/hb-aat-layout-common-private.hh | 36 +++++++++++++++++++++++++++++-------
1 file changed, 29 insertions(+), 7 deletions(-)
commit d514f1480cffb81850ef212155c66ee9e0383350
Date: Fri Jan 12 09:46:38 2018 +0100
Disable C++11
-
+
To better catch errors locally.
configure.ac | 2 +-
Date: Fri Jan 12 09:45:42 2018 +0100
[aat] Fix more builds
-
- Maybe I should disable C++11 detection such that my compiler also
- catches
+
+ Maybe I should disable C++11 detection such that my compiler also catches
these. Doesn't look like we can switch to it for a while anyway...
src/hb-aat-layout-common-private.hh | 2 +-
Date: Fri Jan 12 15:33:16 2018 +0800
Update _POSIX_C_SOURCE to the latest version
-
+
Defining _POSIX_C_SOURCE to an old version on FreeBSD can cause C99 to
be disabled in libc.
[aat] Port RearrangementSubtable to StateTableDriver
- src/hb-aat-layout-morx-table.hh | 91
- ++++++++++++++++++++---------------------
+ src/hb-aat-layout-morx-table.hh | 91 ++++++++++++++++++++---------------------
1 file changed, 44 insertions(+), 47 deletions(-)
commit 117cfe7bb7cef682eb151b94f1eb12363ba3af67
[aat] Add StateTableDriver and convert ContextualSubtable to it
src/hb-aat-layout-common-private.hh | 51 ++++++++++++++++++++
- src/hb-aat-layout-morx-table.hh | 93
- ++++++++++++++++++-------------------
+ src/hb-aat-layout-morx-table.hh | 93 ++++++++++++++++++-------------------
2 files changed, 95 insertions(+), 49 deletions(-)
commit 0d39ac224c680b1f0134b58e78391497fbe47370
Date: Thu Jan 11 22:46:19 2018 +0100
[test] Disable MORX-12
-
+
Ouch. I need a better workflow for this.
test/shaping/data/text-rendering-tests/Makefile.sources | 1 -
Date: Thu Jan 11 22:43:57 2018 +0100
[aat] Remove 'mort' support
-
+
It's dead, Jim!
src/hb-aat-layout-common-private.hh | 55 +++++-----------
- src/hb-aat-layout-morx-table.hh | 122
- ++++++++++--------------------------
+ src/hb-aat-layout-morx-table.hh | 122 ++++++++++--------------------------
2 files changed, 46 insertions(+), 131 deletions(-)
commit 7e2fed6d73f89986e5777028cdcd24e3baf2f86c
Date: Thu Jan 11 19:25:21 2018 +0100
[aat] Allow DontAdvance
-
+
Apparently CoreText does allow these. To be done: detect infinite
loops.
-
+
Fixes MORX-12 test.
src/hb-aat-layout-morx-table.hh | 4 ++--
test/shaping/data/text-rendering-tests/DISABLED | 1 +
test/shaping/data/text-rendering-tests/Makefile.sources | 2 ++
- .../data/text-rendering-tests/fonts/TestMORXTwelve.ttf | Bin 0 ->
- 2200 bytes
+ .../data/text-rendering-tests/fonts/TestMORXTwelve.ttf | Bin 0 -> 2200 bytes
.../data/text-rendering-tests/tests/MORX-12.tests | 3 +++
4 files changed, 6 insertions(+)
[aat] Sanitize ContextualSubtable
src/hb-aat-layout-common-private.hh | 23 +++++++++++++++++++----
- src/hb-aat-layout-morx-table.hh | 34
- ++++++++++++++++++++++++----------
+ src/hb-aat-layout-morx-table.hh | 34 ++++++++++++++++++++++++----------
2 files changed, 43 insertions(+), 14 deletions(-)
commit 9b82aa19d812e70b7fade4b7669a9ce27855951e
[aat] Sanitize StateTable
- src/hb-aat-layout-common-private.hh | 43
- ++++++++++++++++++++++++++++++++++---
+ src/hb-aat-layout-common-private.hh | 43 ++++++++++++++++++++++++++++++++++---
1 file changed, 40 insertions(+), 3 deletions(-)
commit 0e3b3379a04a67a22e44e17d6bf849359f4fca68
Date: Thu Jan 11 17:57:46 2018 +0100
[buffer] Fix compiler warnings
-
+
line 323: Warning: info hides hb_buffer_t::info
...
Date: Thu Jan 11 17:41:34 2018 +0100
[aat] Make bots happy
-
- Don't know why this is not caught by my compiler. Looks like clang
- catches it
+
+ Don't know why this is not caught by my compiler. Looks like clang catches it
while gcc doesn't.
-
+
In file included from ../src/hb-aat-layout-morx-table.hh:31:
- ../src/hb-aat-layout-common-private.hh:523:30: error: no member named
- 'static_size' in 'AAT::ContextualSubtable<AAT::MorxTypes>::EntryData'
+ ../src/hb-aat-layout-common-private.hh:523:30: error: no member named 'static_size' in 'AAT::ContextualSubtable<AAT::MorxTypes>::EntryData'
DEFINE_SIZE_STATIC (4 + T::static_size);
~~~^
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Jan 11 15:23:24 2018 +0100
- [aat] In NoncontextualSubtable, handle MarkLast with end-of-line
- transition
-
+ [aat] In NoncontextualSubtable, handle MarkLast with end-of-line transition
+
Fixes MORX-11 test.
src/hb-aat-layout-morx-table.hh | 4 ++--
test/shaping/data/text-rendering-tests/DISABLED | 3 ++-
test/shaping/data/text-rendering-tests/Makefile.sources | 3 ++-
- .../data/text-rendering-tests/fonts/TestMORXEleven.ttf | Bin 0 ->
- 1624 bytes
+ .../data/text-rendering-tests/fonts/TestMORXEleven.ttf | Bin 0 -> 1624 bytes
.../data/text-rendering-tests/tests/MORX-11.tests | 1 +
4 files changed, 5 insertions(+), 2 deletions(-)
Date: Thu Jan 11 15:15:07 2018 +0100
[aat] Implement ContextualSubtable
-
+
Tested with Zapfino and text "2nd". Sascha will create tests later.
- src/hb-aat-layout-morx-table.hh | 70
- ++++++++++++++++++++++++++++++++++++++---
+ src/hb-aat-layout-morx-table.hh | 70 ++++++++++++++++++++++++++++++++++++++---
1 file changed, 66 insertions(+), 4 deletions(-)
commit 335a9c1fe489db53549801b4996dd0f6f5eded62
[aat] Towards implementing ContextualSubtable
src/hb-aat-layout-common-private.hh | 58 ++++++++++++++++++++++--
- src/hb-aat-layout-morx-table.hh | 88
- ++++++++++++++++++++++++++-----------
+ src/hb-aat-layout-morx-table.hh | 88 ++++++++++++++++++++++++++-----------
2 files changed, 117 insertions(+), 29 deletions(-)
commit 62348f647f7b1604e008dbed46a54eff245fc106
Date: Thu Jan 11 12:00:28 2018 +0100
[aat] Implement end-of-text in state machine
-
+
Passes MORX-10 test now.
src/hb-aat-layout-morx-table.hh | 10 ++++++----
[test/text-rendering-tests] Update from upstream
test/shaping/data/text-rendering-tests/DISABLED | 1 +
- test/shaping/data/text-rendering-tests/Makefile.sources | 11
- ++++++-----
- .../data/text-rendering-tests/fonts/TestMORXTen.ttf | Bin 0 ->
- 1620 bytes
+ test/shaping/data/text-rendering-tests/Makefile.sources | 11 ++++++-----
+ .../data/text-rendering-tests/fonts/TestMORXTen.ttf | Bin 0 -> 1620 bytes
.../data/text-rendering-tests/tests/MORX-10.tests | 1 +
4 files changed, 8 insertions(+), 5 deletions(-)
Date: Thu Jan 11 11:49:07 2018 +0100
[aat] Generate finegrained unsafe-to-break in state-machine!
-
+
Neato.
src/hb-aat-layout-morx-table.hh | 11 +++++++++--
[test/in-house] Add Makefile.sources
- test/shaping/data/in-house/Makefile.am | 46
- ++---------------------------
- test/shaping/data/in-house/Makefile.sources | 46
- +++++++++++++++++++++++++++++
+ test/shaping/data/in-house/Makefile.am | 46 ++---------------------------
+ test/shaping/data/in-house/Makefile.sources | 46 +++++++++++++++++++++++++++++
2 files changed, 48 insertions(+), 44 deletions(-)
commit 7c32e01d04deaab511d41f5dec0dfd9fc0469f39
Date: Thu Jan 11 10:30:22 2018 +0100
[test/text-rendering-tests] Update from upstream
-
+
Also adds an update.sh script that does this automatically.
- test/shaping/data/text-rendering-tests/Makefile.am | 52
- +++------------------
- .../data/text-rendering-tests/Makefile.sources | 51
- ++++++++++++++++++++
+ test/shaping/data/text-rendering-tests/Makefile.am | 52 +++------------------
+ .../data/text-rendering-tests/Makefile.sources | 51 ++++++++++++++++++++
.../text-rendering-tests/fonts/TestMORXEight.ttf | Bin 0 -> 2184 bytes
.../text-rendering-tests/fonts/TestMORXNine.ttf | Bin 0 -> 1624 bytes
.../data/text-rendering-tests/tests/MORX-5.tests | 25 ++++++++++
.../data/text-rendering-tests/tests/MORX-7.tests | 1 +
.../data/text-rendering-tests/tests/MORX-8.tests | 3 ++
.../data/text-rendering-tests/tests/MORX-9.tests | 1 +
- test/shaping/data/text-rendering-tests/update.sh | 48
- +++++++++++++++++++
+ test/shaping/data/text-rendering-tests/update.sh | 48 +++++++++++++++++++
10 files changed, 136 insertions(+), 46 deletions(-)
commit c861daacc4255d41d2358868b917277422949dc9
Date: Thu Jan 11 09:57:55 2018 +0100
[aat] Mark state-machine-based lookup as completely unsafe-to-break
-
+
To be improved later.
src/hb-aat-layout-morx-table.hh | 2 ++
[aat] Implement RearrangementSubtable
src/hb-aat-layout-common-private.hh | 89 ++++++++++++++++-
- src/hb-aat-layout-morx-table.hh | 192
- +++++++++++++++++++++++++++++++-----
+ src/hb-aat-layout-morx-table.hh | 192 +++++++++++++++++++++++++++++++-----
src/hb-open-type-private.hh | 2 -
src/hb-private.hh | 7 +-
4 files changed, 254 insertions(+), 36 deletions(-)
Date: Thu Jan 11 12:33:22 2018 +0330
Move the #define of _GNU_SOURCE to the top of hb-private.hh (#697)
-
+
This fixes the build on Cygwin.
src/hb-private.hh | 4 ++--
Date: Thu Jan 11 08:48:22 2018 +0330
[test] Better tests output by converting stderr to stdout (#696)
-
+
https://gitlab.kitware.com/cmake/cmake/issues/17630
test/shaping/run-tests.py | 18 +++++++++---------
[cmake] Another try on making sure feature testing is working (#691)
- .circleci/config.yml | 131
- ++++++++++++++++++++++++++++-----------------------
+ .circleci/config.yml | 131 ++++++++++++++++++++++++++++-----------------------
CMakeLists.txt | 17 ++++---
2 files changed, 79 insertions(+), 69 deletions(-)
Date: Wed Jan 10 13:54:36 2018 +0100
[util] Set stdio files to line buffering
-
+
So we can stream lines to hb-shape and read output.
util/options.cc | 4 ++++
Date: Wed Jan 10 11:09:53 2018 +0100
[aat] Add Class subtable thingy
-
+
From old 'mort' table.
src/hb-aat-layout-common-private.hh | 24 ++++++++++++++++++++++++
[cmake] Add header existence tests (#685)
.circleci/config.yml | 4 ++--
- CMakeLists.txt | 53
- ++++++++++++++++++++++++++++++---------------
+ CMakeLists.txt | 53 ++++++++++++++++++++++++++++++---------------
test/shaping/CMakeLists.txt | 1 -
3 files changed, 37 insertions(+), 21 deletions(-)
Date: Wed Jan 10 07:12:07 2018 +0200
Improve HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES docs
-
+
Add the note about absolute glyph positions from the commit message.
src/hb-buffer.h | 3 ++-
[test] Move test handling to sundirectories
configure.ac | 3 +
- test/shaping/Makefile.am | 98
- +---------------------
+ test/shaping/Makefile.am | 98 +---------------------
test/shaping/data/Makefile.am | 9 ++
test/shaping/data/in-house/Makefile.am | 58 +++++++++++++
test/shaping/data/text-rendering-tests/Makefile.am | 60 +++++++++++++
Date: Wed Jan 10 05:13:47 2018 +0100
Calculate anchor positions in float, then round
-
+
Hoping to reduce rounding error, to make tests happier...
No luck.
src/hb-font-private.hh | 6 ++++++
- src/hb-ot-layout-gpos-table.hh | 44
- +++++++++++++++++++++---------------------
+ src/hb-ot-layout-gpos-table.hh | 44 +++++++++++++++++++++---------------------
2 files changed, 28 insertions(+), 22 deletions(-)
commit 0b28e1199d62765db4e855756b96022e423dcc17
Date: Wed Jan 10 04:33:08 2018 +0100
Round, instead of floor, when applying variations
-
+
Hoping this would fix remaining text-rendering-tests failures,
but so far no luck.
Date: Wed Jan 10 03:49:32 2018 +0100
[test] Another try
-
+
Making cmake happy this time.
test/shaping/Makefile.am | 4 +++-
Date: Wed Jan 10 03:48:09 2018 +0100
[test] Fix text disabling
-
+
Ouch, make!
test/shaping/Makefile.am | 27 ++++++++++++++-------------
Date: Wed Jan 10 03:35:20 2018 +0100
Add HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES
-
+
New API:
HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES
hb-shape / hb-view --remove-default-ignorables
-
+
One more text-rendering-tests test passing. Eleven failing.
src/hb-buffer.h | 17 ++++--
.../data/text-rendering-tests/tests/SHBALI-1.tests | 44 +++++++-------
.../data/text-rendering-tests/tests/SHBALI-2.tests | 24 ++++----
.../data/text-rendering-tests/tests/SHBALI-3.tests | 18 +++---
- .../data/text-rendering-tests/tests/SHKNDA-1.tests | 68
- +++++++++++-----------
+ .../data/text-rendering-tests/tests/SHKNDA-1.tests | 68 +++++++++++-----------
.../data/text-rendering-tests/tests/SHKNDA-2.tests | 32 +++++-----
- .../data/text-rendering-tests/tests/SHKNDA-3.tests | 62
- ++++++++++----------
+ .../data/text-rendering-tests/tests/SHKNDA-3.tests | 62 ++++++++++----------
util/options.cc | 1 +
util/options.hh | 14 +++--
46 files changed, 435 insertions(+), 419 deletions(-)
Date: Wed Jan 10 03:22:08 2018 +0100
[test/text-rendering-tests] Hook up font variations
-
+
Six more passing. Twelve failing now.
.../data/text-rendering-tests/extract-tests.py | 6 +++-
- .../data/text-rendering-tests/tests/AVAR-1.tests | 34
- +++++++++++-----------
+ .../data/text-rendering-tests/tests/AVAR-1.tests | 34 +++++++++++-----------
.../data/text-rendering-tests/tests/CFF2-1.tests | 18 ++++++------
.../data/text-rendering-tests/tests/CVAR-1.tests | 6 ++--
.../data/text-rendering-tests/tests/CVAR-2.tests | 6 ++--
Date: Wed Jan 10 03:16:56 2018 +0100
[test] Add tests from text-rendering-tests repo
-
+
https://github.com/unicode-org/text-rendering-tests
test/shaping/Makefile.am | 44 ++++++++++++++-
.../fonts/AdobeVFPrototype-Subset.otf | Bin 0 -> 7096 bytes
- .../text-rendering-tests/fonts/FDArrayTest257.otf | Bin 0 -> 145212
- bytes
- .../fonts/FDArrayTest65535.otf | Bin 0 -> 492740
- bytes
+ .../text-rendering-tests/fonts/FDArrayTest257.otf | Bin 0 -> 145212 bytes
+ .../fonts/FDArrayTest65535.otf | Bin 0 -> 492740 bytes
.../fonts/NotoSansBalinese-Regular.ttf | Bin 0 -> 32304 bytes
.../fonts/NotoSansKannada-Regular.ttf | Bin 0 -> 83868 bytes
.../fonts/NotoSerifKannada-Regular.ttf | Bin 0 -> 96936 bytes
- .../text-rendering-tests/fonts/Selawik-README.md | 60
- +++++++++++++++++++++
- .../fonts/Selawik-variable.ttf | Bin 0 -> 481504
- bytes
+ .../text-rendering-tests/fonts/Selawik-README.md | 60 +++++++++++++++++++++
+ .../fonts/Selawik-variable.ttf | Bin 0 -> 481504 bytes
.../data/text-rendering-tests/fonts/TestAVAR.ttf | Bin 0 -> 1608 bytes
.../data/text-rendering-tests/fonts/TestCMAP14.otf | Bin 0 -> 1628 bytes
.../fonts/TestCMAPMacTurkish.ttf | Bin 0 -> 19644 bytes
.../text-rendering-tests/fonts/TestCVARGVAROne.ttf | Bin 0 -> 12336 bytes
.../text-rendering-tests/fonts/TestCVARGVARTwo.ttf | Bin 0 -> 12256 bytes
.../text-rendering-tests/fonts/TestGLYFOne.ttf | Bin 0 -> 1516 bytes
- .../text-rendering-tests/fonts/TestGPOSFour.ttf | Bin 0 -> 315020
- bytes
+ .../text-rendering-tests/fonts/TestGPOSFour.ttf | Bin 0 -> 315020 bytes
.../text-rendering-tests/fonts/TestGPOSOne.ttf | Bin 0 -> 10384 bytes
.../text-rendering-tests/fonts/TestGPOSThree.ttf | Bin 0 -> 3500 bytes
.../text-rendering-tests/fonts/TestGPOSTwo.otf | Bin 0 -> 1680 bytes
.../text-rendering-tests/fonts/TestMORXOne.ttf | Bin 0 -> 2404 bytes
.../text-rendering-tests/fonts/TestMORXThree.ttf | Bin 0 -> 4104 bytes
.../text-rendering-tests/fonts/TestMORXTwo.ttf | Bin 0 -> 4960 bytes
- .../text-rendering-tests/fonts/TestShapeAran.ttf | Bin 0 -> 116044
- bytes
+ .../text-rendering-tests/fonts/TestShapeAran.ttf | Bin 0 -> 116044 bytes
.../text-rendering-tests/fonts/TestShapeEthi.ttf | Bin 0 -> 5292 bytes
.../data/text-rendering-tests/fonts/Zycon.ttf | Bin 0 -> 21036 bytes
.../data/text-rendering-tests/tests/AVAR-1.tests | 17 ++++++
Date: Wed Jan 10 03:07:30 2018 +0100
Prefix int types with HB
-
+
Such a headache that Windows defines UINT8, ...; Just prefix it.
src/hb-aat-layout-common-private.hh | 29 +++---
src/hb-ot-layout-gdef-table.hh | 22 ++---
src/hb-ot-layout-gpos-table.hh | 94 +++++++++----------
src/hb-ot-layout-gsub-table.hh | 30 +++---
- src/hb-ot-layout-gsubgpos-private.hh | 172
- +++++++++++++++++------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 172 +++++++++++++++++------------------
src/hb-ot-math-table.hh | 26 +++---
src/hb-ot-maxp-table.hh | 2 +-
src/hb-ot-name-table.hh | 16 ++--
Date: Wed Jan 10 02:56:29 2018 +0100
[aat] Try fixing VC bots
-
- c:\projects\harfbuzz\src\hb-aat-layout-common-private.hh(51):
- error C2872: 'UINT16': ambiguous symbol
- [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
- C:\Program Files (x86)\Windows
- Kits\10\Include\10.0.14393.0\shared\basetsd.h(80): note: could be
- 'unsigned short UINT16'
- c:\projects\harfbuzz\src\hb-open-type-private.hh(648): note: or
- 'OT::UINT16'
+
+ c:\projects\harfbuzz\src\hb-aat-layout-common-private.hh(51): error C2872: 'UINT16': ambiguous symbol [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
+ C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\shared\basetsd.h(80): note: could be 'unsigned short UINT16'
+ c:\projects\harfbuzz\src\hb-open-type-private.hh(648): note: or 'OT::UINT16'
src/hb-aat-layout-common-private.hh | 3 +++
src/hb-aat-layout-morx-table.hh | 3 +++
Date: Wed Jan 10 02:49:36 2018 +0100
Disable processing of morx table in ot shaper
-
+
So I can merge this to master...
src/hb-ot-shape.cc | 4 ++--
Date: Wed Jan 10 02:48:04 2018 +0100
[util] Add hb-shape --ned
-
- For not displaying extra data: no clusters, no advance. Just data
- pertaining
+
+ For not displaying extra data: no clusters, no advance. Just data pertaining
to where glyphs end up on the screen.
test/shaping/data/text-rendering-tests/extract-tests.py | 2 +-
- util/options.cc | 13
- +++++++++++++
+ util/options.cc | 13 +++++++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
commit 7020130665316365c288d0960fc288faa8f5bdf7
Date: Wed Jan 10 02:20:14 2018 +0100
Add option to buffer serialization to not output glyph advances
-
+
When advances are not printed, glyph offsets reflect absolute glyph
positions.
-
+
New API:
HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES
hb-shape --no-advances
Date: Wed Jan 10 01:54:12 2018 +0100
[test] Add script for extracting tests from text-rendering-tests
-
+
Work in progress...
-
+
https://github.com/unicode-org/text-rendering-tests
- .../data/text-rendering-tests/extract-tests.py | 45
- ++++++++++++++++++++++
+ .../data/text-rendering-tests/extract-tests.py | 45 ++++++++++++++++++++++
1 file changed, 45 insertions(+)
commit 6b4d63f295f419f55983a8fc72f582802f55b09f
Date: Tue Jan 9 23:15:54 2018 +0100
[test] Simplify test runner
-
+
Always pass hb-shape as first argument to run-tests.py.
-
+
Also require automake 1.13.
configure.ac | 3 +--
Date: Tue Jan 9 21:58:57 2018 +0100
[test] Reorganize test suite
-
+
In anticipation of importing more test suites.
test/fuzzing/run-fuzzer-tests.py | 2 +-
- test/shaping/Makefile.am | 86
- +++++++++---------
+ test/shaping/Makefile.am | 86 +++++++++---------
test/shaping/{fonts => data/in-house}/COPYING | 7 +-
.../0509e80afb379d16560e9e47bdd7d888bebdebc6.ttf | Bin
.../051d92f8bc6ff724511b296c27623f824de256e9.ttf | Bin
test/shaping/data/in-house/tests/use-marchen.tests | 35 ++++++++
.../shaping/data/in-house/tests/use-syllable.tests | 7 ++
test/shaping/data/in-house/tests/use.tests | 4 +
- .../data/in-house/tests/variations-rvrn.tests | 100
- +++++++++++++++++++++
+ .../data/in-house/tests/variations-rvrn.tests | 100 +++++++++++++++++++++
test/shaping/data/in-house/tests/vertical.tests | 3 +
.../data/in-house/tests/zero-width-marks.tests | 11 +++
test/shaping/run-tests.py | 48 ++++------
test/shaping/tests/misc/use-marchen.tests | 35 --------
test/shaping/tests/misc/use-syllable.tests | 7 --
test/shaping/tests/misc/use.tests | 4 -
- test/shaping/tests/misc/variations-rvrn.tests | 100
- ---------------------
+ test/shaping/tests/misc/variations-rvrn.tests | 100 ---------------------
test/shaping/tests/misc/vertical.tests | 3 -
test/shaping/tests/misc/zero-width-marks.tests | 11 ---
.../script-arabic/language-persian/mehran.txt | 14 +--
.../script-tibetan/misc/contractions.txt | 0
.../shaper-tibetan/script-tibetan/misc/misc.txt | 0
.../shaper-use/script-batak/misc.txt | 0
- .../shaper-use/script-buginese/misc.txt | 92
- +++++++++----------
+ .../shaper-use/script-buginese/misc.txt | 92 +++++++++----------
.../shaper-use/script-cham/misc.txt | 0
.../shaper-use/script-kaithi/misc.txt | 0
.../shaper-use/script-kharoshti/misc.txt | 0
[test] Move test files around
test/fuzzing/run-fuzzer-tests.py | 2 +-
- test/shaping/Makefile.am | 82
- +++++++++++-----------
+ test/shaping/Makefile.am | 82 +++++++++++-----------
.../tests/{ => misc}/arabic-fallback-shaping.tests | 0
.../tests/{ => misc}/arabic-feature-order.tests | 0
.../tests/{ => misc}/arabic-like-joining.tests | 0
Date: Tue Jan 9 17:55:17 2018 +0100
[aat/morx] Implement NoncontextualSubtables
-
- Also makes hb-ot-shape call morx for now instead of GSUB... Just
- for testing.
+
+ Also makes hb-ot-shape call morx for now instead of GSUB... Just for testing.
src/hb-aat-layout-common-private.hh | 34 +++++++--------
- src/hb-aat-layout-morx-table.hh | 82
- ++++++++++++++++++++++++++++++++++---
+ src/hb-aat-layout-morx-table.hh | 82 ++++++++++++++++++++++++++++++++++---
src/hb-aat-layout-private.hh | 3 ++
src/hb-aat-layout.cc | 13 +++++-
src/hb-ot-shape.cc | 6 +++
Date: Tue Jan 9 15:48:51 2018 +0100
[aat] Implement Lookup table
-
+
Untested, but compiles.
- src/hb-aat-layout-common-private.hh | 308
- +++++++++++++++++++++++++++++++++++-
+ src/hb-aat-layout-common-private.hh | 308 +++++++++++++++++++++++++++++++++++-
src/hb-aat-layout-morx-table.hh | 9 +-
src/hb-aat-layout.cc | 14 ++
src/hb-face.cc | 6 +-
[aat] Start implementing common table formats
src/Makefile.sources | 2 +
- src/hb-aat-layout-common-private.hh | 134
- ++++++++++++++++++++++++++++++++++++
+ src/hb-aat-layout-common-private.hh | 134 ++++++++++++++++++++++++++++++++++++
src/hb-aat-layout-morx-table.hh | 1 +
src/hb-aat-layout-private.hh | 37 ++++++++++
src/hb-aat-layout.cc | 1 +
[aat] Start implementing Apple AAT morx table
src/Makefile.sources | 2 +
- src/hb-aat-layout-morx-table.hh | 275
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-aat-layout-morx-table.hh | 275 ++++++++++++++++++++++++++++++++++++++++
src/hb-aat-layout.cc | 42 ++++++
src/hb-open-type-private.hh | 5 +
src/hb-ot-layout-private.hh | 5 +
Date: Fri Jan 5 18:09:29 2018 +0000
[khmer] Relax!
-
+
Apparently we don't use OT_A either.
src/hb-ot-shape-complex-khmer-machine.rl | 3 +--
Date: Fri Jan 5 18:03:00 2018 +0000
[khmer] Simplify grammar some more
-
+
Numbers down (from 38):
-
+
KHMER: 299090 out of 299124 tests passed. 34 failed (0.0113665%)
src/hb-ot-shape-complex-khmer-machine.rl | 2 +-
Date: Fri Jan 5 17:57:39 2018 +0000
[khmer] Relax number of consonants / matras allowed
-
+
New numbers (down from 39):
-
+
KHMER: 299086 out of 299124 tests passed. 38 failed (0.0127038%)
src/hb-ot-shape-complex-khmer-machine.rl | 6 +++---
Date: Fri Jan 5 17:52:24 2018 +0000
[khmer] Allow Independent Vowels where stacked consonants are allowed
-
+
New numbers (down from 44):
-
+
KHMER: 299085 out of 299124 tests passed. 39 failed (0.0130381%)
src/hb-ot-shape-complex-khmer-machine.rl | 4 ++--
[khmer] Shave off some more from the grammar
src/hb-ot-shape-complex-khmer-machine.rl | 9 ++-------
- src/hb-ot-shape-complex-khmer.cc | 34
- ++------------------------------
+ src/hb-ot-shape-complex-khmer.cc | 34 ++------------------------------
2 files changed, 4 insertions(+), 39 deletions(-)
commit 014494d5c0469fe6b3112db3fdb3f2f262673ba1
Date: Fri Jan 5 17:06:29 2018 +0000
[khmer] Better fix for dangling final Coeng
-
+
This is how 1471cfee3bb2734dc44c58471362851ad27e8bd8 should have
been done.
Date: Fri Jan 5 17:01:37 2018 +0000
[khmer] Remove forced_rakar from grammar
-
+
Used by Sinhala only.
src/hb-ot-shape-complex-khmer-machine.rl | 3 +--
Date: Fri Jan 5 16:34:20 2018 +0000
[khmer] Allow a dangling final Coeng after matras
-
+
Uniscribe seems to allow that. New numbers:
-
+
KHMER: 299080 out of 299124 tests passed. 44 failed (0.0147096%)
src/hb-ot-shape-complex-khmer-machine.rl | 2 +-
[khmer] Remove some more unused code
- src/hb-ot-shape-complex-khmer.cc | 49
- ++--------------------------------------
+ src/hb-ot-shape-complex-khmer.cc | 49 ++--------------------------------------
1 file changed, 2 insertions(+), 47 deletions(-)
commit bfad6ab897a38aedc82de694ee1a17132f90b25e
[khmer] Remove features not used by Khmer
- src/hb-ot-shape-complex-khmer.cc | 60
- ++++------------------------------------
+ src/hb-ot-shape-complex-khmer.cc | 60 ++++------------------------------------
1 file changed, 5 insertions(+), 55 deletions(-)
commit 92a99ce084b19dff32d434de446144f0c4796803
[khmer] Remove non-Khmer matra positioning code
- src/hb-ot-shape-complex-khmer.cc | 76
- +++++++---------------------------------
+ src/hb-ot-shape-complex-khmer.cc | 76 +++++++---------------------------------
1 file changed, 12 insertions(+), 64 deletions(-)
commit f8553c898a414298403c335f8d2ed6c588a1189f
[khmer] Remove indic_config->reph_pos
- src/hb-ot-shape-complex-khmer.cc | 333
- ++-------------------------------------
+ src/hb-ot-shape-complex-khmer.cc | 333 ++-------------------------------------
1 file changed, 10 insertions(+), 323 deletions(-)
commit ffcd6c7efd21bf89b41ddbf148b05672a42ecadd
[khmer] Remove indic_config->base_pos
- src/hb-ot-shape-complex-khmer.cc | 229
- ++-------------------------------------
+ src/hb-ot-shape-complex-khmer.cc | 229 ++-------------------------------------
1 file changed, 7 insertions(+), 222 deletions(-)
commit 0c91638d48d6fb86d1e30fb94c15785707395b42
[khmer] Remove other scripts
- src/hb-ot-shape-complex-khmer.cc | 131
- ++++++++++-----------------------------
+ src/hb-ot-shape-complex-khmer.cc | 131 ++++++++++-----------------------------
1 file changed, 34 insertions(+), 97 deletions(-)
commit 4c0199c573f79be5f40e7d4f8433ef6a1c9c24b2
[khmer] Remove indic_config->has_old_spec
- src/hb-ot-shape-complex-khmer.cc | 157
- ++++++---------------------------------
+ src/hb-ot-shape-complex-khmer.cc | 157 ++++++---------------------------------
1 file changed, 21 insertions(+), 136 deletions(-)
commit 961ebf85f1e7d417e056c3927ee73857f6f4cde6
src/hb-ot-shape-complex-indic-private.hh | 1 -
src/hb-ot-shape-complex-khmer-machine.rl | 7 +++----
- src/hb-ot-shape-complex-khmer.cc | 32
- ++++++++++++++++----------------
+ src/hb-ot-shape-complex-khmer.cc | 32 ++++++++++++++++----------------
3 files changed, 19 insertions(+), 21 deletions(-)
commit 9761f9d78214323b9ad58dd0b8ba41851c9e2d54
Date: Fri Jan 5 15:33:11 2018 +0000
[indic] Remove more Khmer-specific stuff from Indic shaper
-
+
No numbers changed.
src/hb-ot-shape-complex-indic-machine.rl | 8 ++---
- src/hb-ot-shape-complex-indic.cc | 57
- ++++++++++++--------------------
+ src/hb-ot-shape-complex-indic.cc | 57 ++++++++++++--------------------
2 files changed, 25 insertions(+), 40 deletions(-)
commit 075895364435ee88936696bcb5457283c4bb1a29
[indic] Remove main Khmer stuff
- src/hb-ot-shape-complex-indic.cc | 73
- ++--------------------------------------
+ src/hb-ot-shape-complex-indic.cc | 73 ++--------------------------------------
1 file changed, 2 insertions(+), 71 deletions(-)
commit dcf4d95fea45e19fbb3b39f0211b2aa96a907473
Date: Fri Jan 5 14:54:31 2018 +0000
[khmer] Split off Khmer shaper from Indic
-
+
Towards fixing https://github.com/harfbuzz/harfbuzz/issues/667
The Khmer spec is different enough from other Indic ones to require
its own grammar.
-
+
No change in functionality. Test numbers are:
-
+
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366355 out of 366457 tests passed. 102 failed (0.0278341%)
GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%)
KANNADA: 951300 out of 951913 tests passed. 613 failed (0.0643966%)
KHMER: 299071 out of 299124 tests passed. 53 failed (0.0177184%)
- MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed
- (0.0188871%)
+ MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
src/Makefile.sources | 3 +
src/hb-ot-shape-complex-khmer-machine.rl | 130 +++
- src/hb-ot-shape-complex-khmer.cc | 1867
- ++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-khmer.cc | 1867 ++++++++++++++++++++++++++++++
src/hb-ot-shape-complex-private.hh | 5 +-
4 files changed, 2003 insertions(+), 2 deletions(-)
Date: Fri Jan 5 13:20:21 2018 +0000
[ot] Fix VariationStore evaluation algorithm
-
+
Ouch! Missing coords should still be evaluated as coord=0, which
most of the time results in a factor of 0. We were skipping these,
which was equivalent to a factor of 1.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/652
src/hb-ot-layout-common-private.hh | 5 +++--
Add test font for previous commit
- .../sha1sum/21b7fb9c1eeae260473809fbc1fe330f66a507cd.ttf | Bin 0 ->
- 4816 bytes
+ .../sha1sum/21b7fb9c1eeae260473809fbc1fe330f66a507cd.ttf | Bin 0 -> 4816 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit 127bcc6ece4da64e807f652dd84a17c6a8c5e300
Date: Fri Jan 5 12:46:12 2018 +0000
Improve CGJ skipping logic
-
+
Previously we made CGJ unskippable. Now, if CGJ did NOT prevent
any reordering, allow skipping over it. To make this work we
had to make changes to the Arabic mark reordering algorithm
implementation to renumber moved MCM marks. See comments.
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/554
src/hb-buffer-private.hh | 1 +
src/hb-ot-layout-private.hh | 11 ++++++++-
- src/hb-ot-shape-complex-arabic.cc | 37
- ++++++++++++++++++++++--------
+ src/hb-ot-shape-complex-arabic.cc | 37 ++++++++++++++++++++++--------
src/hb-ot-shape-normalize.cc | 30 +++++++++++++-----------
test/shaping/tests/arabic-mark-order.tests | 4 ++++
5 files changed, 58 insertions(+), 25 deletions(-)
Improve tests (#679)
.circleci/config.yml | 2 +-
- CMakeLists.txt | 52
- +++++++++++++++++++++++++++++++++++----------
+ CMakeLists.txt | 52 +++++++++++++++++++++++++++++++++++----------
autogen.sh | 6 ++++--
src/Makefile.am | 3 +--
src/check-defs.sh | 2 +-
Date: Thu Jan 4 18:40:10 2018 +0700
atomics: Favor compiler primitives over macOS APIs. (#676)
-
+
In macOS 10.12, the `OSMemoryBarrier` and related APIs were deprecated
- in favor of using `std::atomic`. On the way to supporting
- `std::atomic`,
+ in favor of using `std::atomic`. On the way to supporting `std::atomic`,
we can favor using the "Intel primitives" which are also available on
macOS.
- src/hb-atomic-private.hh | 46
- +++++++++++++++++++++++-----------------------
+ src/hb-atomic-private.hh | 46 +++++++++++++++++++++++-----------------------
1 file changed, 23 insertions(+), 23 deletions(-)
commit 4f80078eb035054db0f6e33cf4f7345c6c85cb12
Date: Thu Jan 4 18:37:35 2018 +0700
[cmake] Colorize output when using cmake + ninja. (#674)
-
+
Due to how ninja runs clang and gcc, it doesn't colorize the output
like make does. This forces color output in this situation.
[use] Simplify more
src/gen-use-table.py | 11 +------
- src/hb-ot-shape-complex-use-table.cc | 62
- +++++++++++++++++++++---------------
+ src/hb-ot-shape-complex-use-table.cc | 62 +++++++++++++++++++++---------------
2 files changed, 38 insertions(+), 35 deletions(-)
commit 877d15e73c24159b26bb7cc6d2f62045d445d0fc
Date: Wed Jan 3 14:24:44 2018 +0000
[use] Simplify
-
+
Fixes https://github.com/harfbuzz/harfbuzz/pull/661
src/gen-use-table.py | 2 +-
Date: Wed Jan 3 14:22:07 2018 +0000
[use] Fix Brahmi Number Joiner 1107F
-
+
Fixes https://github.com/harfbuzz/harfbuzz/pull/660
src/gen-indic-table.py | 6 +++---
[cmake] Run fuzzing and shaping tests (#666)
.circleci/config.yml | 2 +-
- CMakeLists.txt | 59
- ++++++++++++++++++++++++----------------
+ CMakeLists.txt | 59 ++++++++++++++++++++++++----------------
appveyor.yml | 4 +--
test/CMakeLists.txt | 5 ++++
test/api/CMakeLists.txt | 48 +++++++++++++-------------------
[cmake] Use GNUInstallDirs values (#665)
- CMakeLists.txt | 170
- ++++++++++++++++++++++++++++-----------------------------
+ CMakeLists.txt | 170 ++++++++++++++++++++++++++++-----------------------------
1 file changed, 85 insertions(+), 85 deletions(-)
commit 7d397c5d5ca684fae824a61dabf5bc422d0a516b
src/gen-use-table.py | 3 +++
src/hb-ot-shape-complex-use-table.cc | 2 +-
- .../sha1sum/59a585a63b3df608fbeef00956c8c108deec7de6.ttf | Bin 0 ->
- 1164 bytes
+ .../sha1sum/59a585a63b3df608fbeef00956c8c108deec7de6.ttf | Bin 0 -> 1164 bytes
test/shaping/tests/use-syllable.tests | 1 +
4 files changed, 5 insertions(+), 1 deletion(-)
Date: Sun Dec 24 16:05:07 2017 -0500
[use] Allow ZWJ before/after Halant
-
+
https://github.com/harfbuzz/harfbuzz/issues/542#issuecomment-353169729
src/hb-ot-shape-complex-use-machine.rl | 3 ++-
Date: Tue Dec 19 14:48:26 2017 -0500
[set] Handle nil set in add_range() / add_sorted_array()
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/657
src/hb-set-private.hh | 5 +++--
Date: Sun Dec 17 12:32:33 2017 -0500
[coretext] In hb_coretext_font_create() set ptem
-
+
Otherwise setting the CTFont was ineffective as it would have been
recreated anyway unless font size was set to 18 CSS points.
Date: Sat Dec 16 11:11:18 2017 -0500
[collect_glyphs] Bail if input data looks like garbage
-
- Specificaly, when a range or sorted array has unexpected order,
- we take that as
- font data being garbage and bail out. This fixes significant slowdown
- on a bad
+
+ Specificaly, when a range or sorted array has unexpected order, we take that as
+ font data being garbage and bail out. This fixes significant slowdown on a bad
version of Chandas font which has a 600KB GPOS with garbage inside.
-
- Later on, I like to add a maximum-work counter for collect_glyphs
- to protect
+
+ Later on, I like to add a maximum-work counter for collect_glyphs to protect
against malicious fonts as well.
-
+
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=794896
src/hb-ot-layout-common-private.hh | 14 +++++++-------
Date: Sat Dec 16 11:36:16 2017 -0500
[set] Optimize add_array() / add_sorted_array()
-
+
Does page lookup as needed.
- src/hb-set-private.hh | 54
- ++++++++++++++++++++++++++++++++++++---------------
+ src/hb-set-private.hh | 54 ++++++++++++++++++++++++++++++++++++---------------
1 file changed, 38 insertions(+), 16 deletions(-)
commit 71e6adf1e2d65eb905a0ba247672fe36169955ef
[collect_glyphs] handle ClassDef better
- src/hb-ot-layout-common-private.hh | 63
- ++++++++++++++++++++++++++++++------
+ src/hb-ot-layout-common-private.hh | 63 ++++++++++++++++++++++++++++++------
src/hb-ot-layout-gdef-table.hh | 2 +-
src/hb-ot-layout-gpos-table.hh | 5 +--
src/hb-ot-layout-gsubgpos-private.hh | 2 +-
Date: Sat Dec 16 06:18:07 2017 -0800
[collect_glyphs] In PairPosFornat2 do not collect classDef1
-
+
The coverage already covered that.
src/hb-ot-layout-gpos-table.hh | 8 ++------
Date: Sat Dec 16 06:12:06 2017 -0800
More work towards improving collect_glyphs() against bad input
-
- The three "XXXXX"'s should be switched to false. Doing that
- separately for ease
+
+ The three "XXXXX"'s should be switched to false. Doing that separately for ease
of bisecting...
src/hb-ot-layout-common-private.hh | 7 +++----
src/hb-ot-layout-gpos-table.hh | 25 ++++++++++---------------
- src/hb-ot-layout-gsub-table.hh | 35
- +++++++++++++----------------------
+ src/hb-ot-layout-gsub-table.hh | 35 +++++++++++++----------------------
src/hb-set-digest-private.hh | 6 ++++--
- src/hb-set-private.hh | 36
- ++++++++++++++++++------------------
+ src/hb-set-private.hh | 36 ++++++++++++++++++------------------
5 files changed, 48 insertions(+), 61 deletions(-)
commit 5d02572034e3dafbe87000fd0aa34b858bd95075
Date: Thu Dec 14 19:33:55 2017 -0800
[set] Add add_sorted_array()
-
- Not optimized to use sortedness yet. Also start putting in place
- infra
+
+ Not optimized to use sortedness yet. Also start putting in place infra
to faster reject bad data.
-
+
A version of Chandas.ttf found on some Chrome bots has 660kb of GPOS,
mostly junk. That is causing 48 million of set->add() calls in
collect_glyphs(), which is insane.
-
+
In the upcoming commits, I'll be speeding that up by optimizing
add_sorted_array(), while also reducing work by rejecting out-of-sort
arrays quickly and propagate the rejection.
-
+
Part of https://bugs.chromium.org/p/chromium/issues/detail?id=794896
- src/hb-ot-layout-common-private.hh | 51
- +++++++++++++++++++++++-------------
+ src/hb-ot-layout-common-private.hh | 51 +++++++++++++++++++++++-------------
src/hb-ot-layout-gdef-table.hh | 2 +-
src/hb-ot-layout-gpos-table.hh | 10 +++----
src/hb-ot-layout-gsubgpos-private.hh | 2 +-
Date: Thu Dec 14 19:04:55 2017 -0800
[set] Reduce number of preallocated pages from 8 to 1
-
+
Now that pagesize is 8192, this feels better.
src/hb-set-private.hh | 2 +-
Date: Thu Dec 14 13:30:38 2017 -0800
[set] Change pagesize from 512 bits to 8192 bits
-
+
Fixes perf regression on some heavy fonts in Chrome's FT+HB
interaction.
-
+
See:
https://bugs.chromium.org/p/chromium/issues/detail?id=782220
-
+
More work to be done:
https://bugs.chromium.org/p/chromium/issues/detail?id=794896
Date: Wed Dec 13 13:12:20 2017 -0800
[set] Add add_array()
-
- To be used to optimize adding a whole bunch of (sorted) items at
- the same time,
+
+ To be used to optimize adding a whole bunch of (sorted) items at the same time,
as in CoverageFormat1.
src/hb-ot-layout-common-private.hh | 4 +---
Rewrite run-tests in python (#647)
test/shaping/Makefile.am | 4 +-
- test/shaping/run-tests.py | 115
- ++++++++++++++++++++++++++++++++++++++++++++++
+ test/shaping/run-tests.py | 115 ++++++++++++++++++++++++++++++++++++++++++++++
test/shaping/run-tests.sh | 65 --------------------------
3 files changed, 117 insertions(+), 67 deletions(-)
Date: Wed Dec 6 21:08:20 2017 +0200
[ci] Sort out Travis configuration
-
+
Use a matrix to avoid a gazillion if's.
.ci/deploy-docs.sh | 2 ++
.ci/run-coveralls.sh | 14 +++++++++++
- .travis.yml | 69
- ++++++++++++++++++++++++++++++++--------------------
+ .travis.yml | 69 ++++++++++++++++++++++++++++++++--------------------
3 files changed, 58 insertions(+), 27 deletions(-)
commit 5a6d2b986a02fc47fa9dcbb330e6949af8e375ff
Date: Tue Dec 5 13:12:11 2017 -0800
[debug] Use %p to print pointers
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/640
src/hb-debug.hh | 2 +-
Date: Tue Dec 5 09:01:28 2017 -0800
Silence unused-variables warning on MSVC
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/635
src/hb-private.hh | 2 ++
Author: Olivier Blin <olivier.blin@softathome.com>
Date: Mon Dec 4 18:58:41 2017 +0100
- [hb-ft] Fix build when Multiple Master font support is disabled
- in freetype
-
+ [hb-ft] Fix build when Multiple Master font support is disabled in freetype
+
FT_Set_Var_Blend_Coordinates() is not available when "Multiple Master
font interface" is disabled in freetype's modules.cfg
Date: Sat Dec 2 15:14:26 2017 -0800
[set] Fix recent changes
-
+
Ouch!
-
+
Add tests.
test/api/test-set.c | 24 ++++++++++++++++++++++++
Date: Tue Nov 28 23:11:34 2017 -0800
[coretext] Add hb_coretext_font_create()
-
+
Fixes https://github.com/harfbuzz/harfbuzz/issues/628
-
+
New API:
hb_coretext_font_create()
- src/hb-coretext.cc | 55
- ++++++++++++++++++++++++++++++++++--------------------
+ src/hb-coretext.cc | 55 ++++++++++++++++++++++++++++++++++--------------------
src/hb-coretext.h | 3 +++
2 files changed, 38 insertions(+), 20 deletions(-)
Date: Fri Dec 1 13:56:06 2017 -0800
[set] Optimize add_range() some more
-
- It's as good as it gets, and seems to be on par with previous set
- implementation
+
+ It's as good as it gets, and seems to be on par with previous set implementation
in my benchmark.
-
+
Would be great if someone can double-check my bitops.
src/hb-set-private.hh | 16 +++++++++++++---
Date: Fri Dec 1 13:34:14 2017 -0800
[set] Optimize add_range()
-
+
With new set implementation, this became really costy. Optimize it.
There's more to be done, but this shaves off most of the fat.
+
+ Part of fixing https://bugs.chromium.org/p/chromium/issues/detail?id=782220
- Part of fixing
- https://bugs.chromium.org/p/chromium/issues/detail?id=782220
-
- src/hb-set-private.hh | 56
- +++++++++++++++++++++++++++++++++++++--------------
+ src/hb-set-private.hh | 56 +++++++++++++++++++++++++++++++++++++--------------
1 file changed, 41 insertions(+), 15 deletions(-)
commit be9e307a889e04d198042ad39949d3971232ab26
Date: Wed Nov 29 16:18:18 2017 -0800
Add another test for previous commit
-
+
From https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4273
- .../sha1sum/bbf4a308c402f0678c3e82844892a4da2ebe598f.ttf | Bin 0 ->
- 204 bytes
+ .../sha1sum/bbf4a308c402f0678c3e82844892a4da2ebe598f.ttf | Bin 0 -> 204 bytes
test/shaping/tests/fuzzed.tests | 1 +
2 files changed, 1 insertion(+)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Wed Nov 29 16:08:11 2017 -0800
- [ot] Fix Extension type recurse to disallow recursing to another
- Extension
-
- Particularly hazardous if the second layer mixes forward and backward
- lookups.
-
+ [ot] Fix Extension type recurse to disallow recursing to another Extension
+
+ Particularly hazardous if the second layer mixes forward and backward lookups.
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4336
src/hb-ot-layout-gsub-table.hh | 6 ++++--
- .../sha1sum/9d8a94a67932a3ab75a596fc8b5c6d0392ca9e49.ttf | Bin 0 ->
- 4545 bytes
- .../sha1sum/ef2511f215aa3ca847cbfffbf861793b42170875.ttf | Bin 0 ->
- 1152 bytes
+ .../sha1sum/9d8a94a67932a3ab75a596fc8b5c6d0392ca9e49.ttf | Bin 0 -> 4545 bytes
+ .../sha1sum/ef2511f215aa3ca847cbfffbf861793b42170875.ttf | Bin 0 -> 1152 bytes
test/shaping/tests/fuzzed.tests | 2 ++
4 files changed, 6 insertions(+), 2 deletions(-)
Date: Wed Nov 29 14:20:09 2017 -0800
Try fixing Mac build with 10.12
-
+
Related
https://github.com/harfbuzz/harfbuzz/issues/345
https://github.com/harfbuzz/harfbuzz/pull/629
Date: Tue Nov 21 16:36:07 2017 -0800
[doc] Optimize HarfBuzz.png; add HarfBuzz.svg
-
+
SVG is unused. Just keeping it here.
docs/HarfBuzz.png | Bin 14203 -> 8814 bytes
- docs/HarfBuzz.svg | 277
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ docs/HarfBuzz.svg | 277 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 277 insertions(+)
commit 77efdecadddbd68bbbc0ff85ac84e24976ad4d4f
src/gen-use-table.py | 3 +++
src/hb-ot-shape-complex-use-table.cc | 2 +-
- .../sha1sum/373e67bf41ca264e260a9716162b71a23549e885.ttf | Bin 0 ->
- 1164 bytes
+ .../sha1sum/373e67bf41ca264e260a9716162b71a23549e885.ttf | Bin 0 -> 1164 bytes
test/shaping/tests/use-syllable.tests | 1 +
4 files changed, 5 insertions(+), 1 deletion(-)
Author: ebraminio <ebrahim@gnu.org>
Date: Tue Nov 21 01:07:26 2017 -0500
- [ci] Add Oracle Developer Studio (former Sun Studio) based compiler
- (#621)
+ [ci] Add Oracle Developer Studio (former Sun Studio) based compiler (#621)
.circleci/config.yml | 11 +++++++++++
1 file changed, 11 insertions(+)
Date: Mon Nov 20 19:43:22 2017 -0800
Fix fallback positioning of double diacritic marks
-
+
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=787284
src/hb-ot-shape-fallback.cc | 4 ++--
- .../sha1sum/856ff9562451293cbeff6f396d4e3877c4f0a436.ttf | Bin 0 ->
- 892 bytes
+ .../sha1sum/856ff9562451293cbeff6f396d4e3877c4f0a436.ttf | Bin 0 -> 892 bytes
test/shaping/tests/fallback-positioning.tests | 1 +
3 files changed, 3 insertions(+), 2 deletions(-)
docs/harfbuzz-docs.xml | 2 +-
...anual-buffers-language-script-and-direction.xml | 10 +++----
docs/usermanual-fonts-and-faces.xml | 2 +-
- docs/usermanual-hello-harfbuzz.xml | 34
- +++++++++++-----------
+ docs/usermanual-hello-harfbuzz.xml | 34 +++++++++++-----------
docs/usermanual-install-harfbuzz.xml | 2 +-
docs/usermanual-what-is-harfbuzz.xml | 20 ++++++-------
6 files changed, 35 insertions(+), 35 deletions(-)
Categorize U+0C80 as Consonant_Placeholder
src/hb-ot-shape-complex-indic.cc | 1 +
- .../sha1sum/81c368a33816fb20e9f647e8f24e2180f4720263.ttf | Bin 0 ->
- 1152 bytes
+ .../sha1sum/81c368a33816fb20e9f647e8f24e2180f4720263.ttf | Bin 0 -> 1152 bytes
test/shaping/tests/indic-syllable.tests | 1 +
3 files changed, 2 insertions(+)
Date: Tue Nov 14 21:53:48 2017 -0800
Limit how much recursion GSUB/GPOS does
-
+
This only counts recursions right now. Good start.
-
+
Hopefully...
Fixes https://github.com/behdad/harfbuzz/issues/429
src/hb-ot-layout-gdef-table.hh | 22 ++--
src/hb-ot-layout-gpos-table.hh | 94 ++++++++--------
src/hb-ot-layout-gsub-table.hh | 30 +++---
- src/hb-ot-layout-gsubgpos-private.hh | 172
- +++++++++++++++---------------
+ src/hb-ot-layout-gsubgpos-private.hh | 172 +++++++++++++++---------------
src/hb-ot-math-table.hh | 26 ++---
src/hb-ot-maxp-table.hh | 2 +-
src/hb-ot-name-table.hh | 16 +--
Date: Tue Nov 14 20:25:29 2017 -0800
[glyf] Try fixing undefined-behavior
-
+
Might fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1463
src/hb-ot-glyf-table.hh | 17 ++++++++---------
Date: Tue Nov 14 20:22:05 2017 -0800
[ot] Remove unneeded TODO item
-
+
Looks like hb-ot-font is complete after all!
-
+
CFF font names and CFF glyph metrics don't work though...
src/hb-ot-font.cc | 2 +-
Date: Tue Nov 14 20:16:45 2017 -0800
[hmtx] Use curiously recurring template pattern
-
+
https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern
src/hb-ot-font.cc | 11 ++++-------
[ot] Move hb_ot_face_cmap_accelerator_t
- src/hb-ot-cmap-table.hh | 149
- +++++++++++++++++++++++++++++++++++++++++++++---
+ src/hb-ot-cmap-table.hh | 149 +++++++++++++++++++++++++++++++++++++++++++++---
src/hb-ot-font.cc | 130 +-----------------------------------------
2 files changed, 142 insertions(+), 137 deletions(-)
Shuffle
- src/hb-ot-hmtx-table.hh | 76
- ++++++++++++++++++++++++-------------------------
+ src/hb-ot-hmtx-table.hh | 76 ++++++++++++++++++++++++-------------------------
1 file changed, 38 insertions(+), 38 deletions(-)
commit a85d7ead04aff81d2f9df9110316892dbbefe1c2
[ot] Move hb_ot_face_metrics_accelerator_t
- src/hb-ot-font.cc | 108
- +-----------------------------------------------
- src/hb-ot-hmtx-table.hh | 108
- +++++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-ot-font.cc | 108 +-----------------------------------------------
+ src/hb-ot-hmtx-table.hh | 108 +++++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 109 insertions(+), 107 deletions(-)
commit f00a94e1ec73c08d4bde1f50bff57d2dc9583ca8
[ot] Move hb_ot_face_glyf_accelerator_t
src/hb-ot-font.cc | 75 +----------------------------------
- src/hb-ot-glyf-table.hh | 103
- +++++++++++++++++++++++++++++++++++++++++-------
+ src/hb-ot-glyf-table.hh | 103 +++++++++++++++++++++++++++++++++++++++++-------
2 files changed, 90 insertions(+), 88 deletions(-)
commit c4e18e54dc5ffecac7b327bde9f52dd0927d6a08
[ot] Move hb_ot_face_cbdt_accelerator_t
- src/hb-ot-cbdt-table.hh | 85
- +++++++++++++++++++++++++++++++++++++++++++++++
- src/hb-ot-font.cc | 87
- +------------------------------------------------
+ src/hb-ot-cbdt-table.hh | 85 +++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-font.cc | 87 +------------------------------------------------
src/hb-ot-post-table.hh | 1 +
3 files changed, 87 insertions(+), 86 deletions(-)
Date: Tue Nov 14 15:56:21 2017 -0800
Add test for previous commit
-
+
At some point we should run tests under valgrind...
- .../sha1sum/dd9f0c7c7c36f75a18be0cab1cddf8f3ab0f366b.ttf | Bin 0 ->
- 2786 bytes
+ .../sha1sum/dd9f0c7c7c36f75a18be0cab1cddf8f3ab0f366b.ttf | Bin 0 -> 2786 bytes
test/shaping/tests/fuzzed.tests | 3 ++-
2 files changed, 2 insertions(+), 1 deletion(-)
Date: Tue Nov 14 15:47:55 2017 -0800
Fix invalid buffer access in OOM times
-
+
Hopefully fully fixes
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1856
Allow U+20F0 in USE clusters
src/gen-use-table.py | 4 +++
- src/hb-ot-shape-complex-use-table.cc | 34
- +++++++++++++--------
+ src/hb-ot-shape-complex-use-table.cc | 34 +++++++++++++--------
.../074a5ae6b19de8f29772fdd5df2d3d833f81f5e6.ttf | Bin 0 -> 2296 bytes
test/shaping/tests/use-syllable.tests | 1 +
4 files changed, 26 insertions(+), 13 deletions(-)
Date: Tue Nov 14 10:59:54 2017 -0800
Revert "[glib/ucdn/icu/ft/ot] Make returned funcs inert"
-
+
This reverts commit 5daf3bd4494cce6b4fb074533be9e99c4d9e0edd.
-
+
If other atexit callbacks try to destruct the objects we destruct
in atexit callbacks, bad things will happen.
-
+
I'll come up with some other way to catch premature destruction
of HB-owned objects.
-
+
Fixes https://github.com/behdad/harfbuzz/issues/618
src/hb-ft.cc | 3 ---
Date: Mon Nov 13 20:25:02 2017 -0800
Clean up GlyphID
-
+
After 4a27c17ea0234dfe33e62f5830d9f92c26d48d30 we do not need
the special GlyphID.cmp(hb_codepoint_t), so just make GlyphID
a typedef.
-
+
Fixes https://github.com/behdad/harfbuzz/issues/612
src/hb-open-type-private.hh | 5 +----
Date: Mon Nov 13 15:04:13 2017 -0800
Implement strtod_l() on MSVC
-
+
Patch from Jean Ghali on mailing list.
src/hb-common.cc | 21 +++++++++++++++------
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Fri Nov 10 17:14:27 2017 -0800
- [coretext/uniscribe/directwrite/graphite/fallback] Update for
- unsafe-to-break
-
+ [coretext/uniscribe/directwrite/graphite/fallback] Update for unsafe-to-break
+
Fixes https://github.com/behdad/harfbuzz/issues/615
-
+
We'll see which bots I broke.
src/hb-buffer-private.hh | 17 +++++++++++++++--
Date: Thu Nov 9 18:09:40 2017 -0800
[kern] Fix invalid memory access if offset is zero
-
+
If offset is zero, we return Null() object. Wasn't prepared for that.
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4088
src/hb-ot-kern-table.hh | 9 +++++----
- .../sha1sum/243798dd281c1c77c065958e1ff467420faa9bde.ttf | Bin 0 ->
- 225 bytes
+ .../sha1sum/243798dd281c1c77c065958e1ff467420faa9bde.ttf | Bin 0 -> 225 bytes
test/shaping/tests/fuzzed.tests | 1 +
3 files changed, 6 insertions(+), 4 deletions(-)
Date: Fri Nov 3 14:27:33 2017 +0200
[test] Use glyph ids instead of forcing ft funcs
-
+
We were using ft funcs because these are CFF fonts, but we can avoid
glyph names instead and keep testing both ot and ft.
Date: Thu Nov 2 09:45:06 2017 +0200
[test] Fix another instance of component rounding
-
+
See https://github.com/behdad/harfbuzz/pull/590#issuecomment-341194673
- .../sha1sum/7ef276fc886ea502a03b9b0e5c8b547d5dc2b61c.ttf | Bin 784 ->
- 0 bytes
- .../sha1sum/8228d035fcd65d62ec9728fb34f42c63be93a5d3.ttf | Bin 0 ->
- 784 bytes
+ .../sha1sum/7ef276fc886ea502a03b9b0e5c8b547d5dc2b61c.ttf | Bin 784 -> 0 bytes
+ .../sha1sum/8228d035fcd65d62ec9728fb34f42c63be93a5d3.ttf | Bin 0 -> 784 bytes
test/shaping/tests/fallback-positioning.tests | 3 +--
3 files changed, 1 insertion(+), 2 deletions(-)
Date: Wed Nov 8 17:04:31 2017 -0800
Fix indexing in unsafe-to-break marking for 'stch' feature
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4099
src/hb-ot-shape-complex-arabic.cc | 2 +-
Date: Wed Nov 8 17:03:55 2017 -0800
[tests/arabic-stch.tests] Don't show flags
-
+
We don't need to test the actual flag values. For unsafe-to-break,
the --verify in run-tests.sh checks what we are interested in.
Mark non-initial left matras as unsafe to break
- src/hb-ot-shape-complex-indic.cc | 14
- +++++++++-----
+ src/hb-ot-shape-complex-indic.cc | 14 +++++++++-----
test/shaping/Makefile.am | 1 +
- .../sha1sum/1a3d8f381387dd29be1e897e4b5100ac8b4829e1.ttf | Bin 0 ->
- 1380 bytes
+ .../sha1sum/1a3d8f381387dd29be1e897e4b5100ac8b4829e1.ttf | Bin 0 -> 1380 bytes
test/shaping/tests/indic-init.tests | 1 +
4 files changed, 11 insertions(+), 5 deletions(-)
Date: Mon Nov 6 15:28:24 2017 -0500
[kern] Allow subtables longer than 64kb
-
+
Apparently calibri.ttf does this:
https://github.com/fonttools/fonttools/pull/1094#discussion_r148933791
[kern] Towards implementing format-2
src/hb-open-type-private.hh | 4 +--
- src/hb-ot-kern-table.hh | 69
- +++++++++++++++++++++++++++------------------
+ src/hb-ot-kern-table.hh | 69 +++++++++++++++++++++++++++------------------
2 files changed, 42 insertions(+), 31 deletions(-)
commit 74e82adaea08ced18493e3341823dbd5b6cd493e
src/hb-ot-shape-complex-arabic.cc | 1 +
test/shaping/Makefile.am | 1 +
- .../sha1sum/d9b8bc10985f24796826c29f7ccba3d0ae11ec02.ttf | Bin 0 ->
- 1420 bytes
+ .../sha1sum/d9b8bc10985f24796826c29f7ccba3d0ae11ec02.ttf | Bin 0 -> 1420 bytes
test/shaping/tests/arabic-stch.tests | 1 +
4 files changed, 3 insertions(+)
Date: Fri Nov 3 20:34:11 2017 -0400
[configure] Fix gobject default value in help output
-
+
Fixes https://github.com/behdad/harfbuzz/issues/607
configure.ac | 2 +-
Date: Fri Nov 3 17:16:26 2017 -0400
Simplify tracing code when tracing is disabled
-
+
Fixes https://github.com/behdad/harfbuzz/pull/605
- src/hb-debug.hh | 58
- +++++++++++++++++++++++++++++-------
+ src/hb-debug.hh | 58 +++++++++++++++++++++++++++++-------
src/hb-ot-layout-gsubgpos-private.hh | 10 +++----
2 files changed, 52 insertions(+), 16 deletions(-)
Date: Fri Nov 3 16:57:30 2017 -0400
Consolidate debug stuff into hb-debug.hh
-
+
Part of fixing https://github.com/behdad/harfbuzz/pull/605
src/Makefile.sources | 1 +
src/hb-blob.cc | 7 +-
src/hb-coretext.cc | 8 +-
- src/hb-debug.hh | 383
- +++++++++++++++++++++++++++++++++++
+ src/hb-debug.hh | 383 +++++++++++++++++++++++++++++++++++
src/hb-directwrite.cc | 6 +-
src/hb-ft.cc | 7 +-
src/hb-object-private.hh | 8 +-
Date: Fri Nov 3 09:05:00 2017 -0400
Trivial typos
-
+
Found using `codespell -i 3 -w -I '../harf-whitelist.txt'`
whereas the whitelist contents were:
```
Date: Wed Nov 1 19:41:29 2017 -0600
[ot] Hook up horizontal kerning to kern table
-
+
Seems to work. Yay!
-
+
Still to do: run kerning if GPOS doesn't have 'kern' feature.
src/hb-ot-font.cc | 2 +-
Date: Wed Nov 1 19:33:09 2017 -0600
[kern] More...
-
+
Almost there.
src/hb-ot-font.cc | 14 +++++++++
- src/hb-ot-kern-table.hh | 75
- ++++++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-ot-kern-table.hh | 75 ++++++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 88 insertions(+), 1 deletion(-)
commit 49c0f35580946c74bc64dae2d2c65c7834e46ab2
[kern] Implement Format0
- src/hb-ot-kern-table.hh | 51
- +++++++++++++++++++++++++++++++++++++++++++------
+ src/hb-ot-kern-table.hh | 51 +++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 45 insertions(+), 6 deletions(-)
commit ac3d937c6cb0e2c7e019aa391b02da25aa6970de
[kern] Implement some more
- src/hb-ot-kern-table.hh | 98
- ++++++++++++++++++++++++++++++++++++++-----------
+ src/hb-ot-kern-table.hh | 98 ++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 77 insertions(+), 21 deletions(-)
commit 2a16f647ae4c5115a356ba82245c77e0d01fcebf
Date: Wed Nov 1 17:31:29 2017 -0600
[kern] Start implementing kern table
-
- Pushing this out early to catch bot errors since I'm using template
- tricks
+
+ Pushing this out early to catch bot errors since I'm using template tricks
we were not using in HarfBuzz before.
src/Makefile.sources | 1 +
src/hb-ot-font.cc | 1 +
- src/hb-ot-kern-table.hh | 184
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-kern-table.hh | 184 ++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 186 insertions(+)
commit 292ef2675edb2cb579210183e77ac30335318a21
Date: Wed Nov 1 20:49:42 2017 +0200
[test] Fix difference between ft and ot font funcs
-
- See
- https://github.com/behdad/harfbuzz/pull/590#issuecomment-341194673.
-
+
+ See https://github.com/behdad/harfbuzz/pull/590#issuecomment-341194673.
+
I simply removed the composite glyph and use the referenced simple
glyph directly.
- .../sha1sum/4fac3929fc3332834e93673780ec0fe94342d193.ttf | Bin 0 ->
- 804 bytes
- .../sha1sum/6466d38c62e73a39202435a4f73bf5d6acbb73c0.ttf | Bin 824 ->
- 0 bytes
+ .../sha1sum/4fac3929fc3332834e93673780ec0fe94342d193.ttf | Bin 0 -> 804 bytes
+ .../sha1sum/6466d38c62e73a39202435a4f73bf5d6acbb73c0.ttf | Bin 824 -> 0 bytes
test/shaping/tests/cluster.tests | 2 +-
3 files changed, 1 insertion(+), 1 deletion(-)
Date: Wed Nov 1 20:33:43 2017 +0200
Revert "[test] We don’t care about glyph positions here"
-
+
This reverts commit 70137e2b4b46918d9608f824a4b4b5cef2819158.
test/shaping/tests/cluster.tests | 4 ++--
Date: Wed Nov 1 12:03:39 2017 +0200
[test] We don’t care about glyph positions here
-
- Freetype and OT font functions give different positions for some
- glyphs
+
+ Freetype and OT font functions give different positions for some glyphs
in this font (OT seems to be correct), but that is not what we are
interested in in this test.
-
- See
- https://github.com/behdad/harfbuzz/pull/590#issuecomment-341045223.
+
+ See https://github.com/behdad/harfbuzz/pull/590#issuecomment-341045223.
test/shaping/tests/cluster.tests | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Date: Wed Nov 1 10:34:36 2017 +0200
[test] Use ft functions for this test
-
+
https://github.com/behdad/harfbuzz/pull/590#issuecomment-340967271
test/shaping/tests/vertical.tests | 2 +-
Date: Mon Oct 30 22:02:50 2017 +0200
[test] Always use ft font funcs for these tests
-
- These are CFF fonts and ot functions don’t support CFF glyph
- names yet.
+
+ These are CFF fonts and ot functions don’t support CFF glyph names yet.
The next commit will run all tests with ot functions.
test/shaping/tests/indic-consonant-with-stacker.tests | 8 ++++----
Date: Wed Nov 1 01:15:27 2017 -0600
[CircleCI] Ignore gh-pages branch
-
+
https://github.com/behdad/harfbuzz/pull/592
.circleci/config.yml | 4 ++++
Categorize Grantha candrabindu for use in Tamil
src/hb-ot-shape-complex-indic.cc | 2 +-
- .../sha1sum/b151cfcdaa77585d77f17a42158e0873fc8e2633.ttf | Bin 0 ->
- 1120 bytes
+ .../sha1sum/b151cfcdaa77585d77f17a42158e0873fc8e2633.ttf | Bin 0 -> 1120 bytes
test/shaping/tests/indic-script-extensions.tests | 1 +
3 files changed, 2 insertions(+), 1 deletion(-)
Date: Tue Oct 31 14:25:46 2017 -0600
[CircleCI] Fix build
-
+
Fixes https://github.com/behdad/harfbuzz/issues/589
.circleci/config.yml | 6 +++---
Date: Tue Oct 31 14:02:32 2017 -0600
Simplify hb-sort-r.hh
-
+
See https://github.com/behdad/harfbuzz/pull/592
- src/hb-sort-r.hh | 147
- ++++++-------------------------------------------------
+ src/hb-sort-r.hh | 147 ++++++-------------------------------------------------
1 file changed, 14 insertions(+), 133 deletions(-)
commit b7982c9e65e0b58616cc8264dd52cac37753ef79
[ci] Add CircleCI for cross-compiling (#592)
- .circleci/config.yml | 61
- ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ .circleci/config.yml | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++
README | 1 +
2 files changed, 62 insertions(+)
Date: Tue Oct 31 13:18:21 2017 -0600
Define _GNU_SOURCE
-
+
Might help with https://github.com/behdad/harfbuzz/pull/592
Ie. bringing in qsort_r() prototype always.
Date: Tue Oct 31 11:17:43 2017 -0600
[coretext/uniscribe] Fix build
-
+
https://travis-ci.org/behdad/harfbuzz/jobs/295039536#L3468
https://ci.appveyor.com/project/behdad/harfbuzz/build/1.0.697/job/dr1ujlntxafeqbej#L142
Date: Mon Oct 30 14:11:59 2017 -0600
Fix Windows build
-
+
(And prevent it from happening in the future.)
src/hb-ot-layout.cc | 1 +
Date: Mon Oct 30 13:15:05 2017 -0600
[post] Implement glyph_from_name()
-
+
This concludes https://github.com/behdad/harfbuzz/pull/568
- src/hb-ot-post-table.hh | 119
- ++++++++++++++++++++++++++++++++++++------------
+ src/hb-ot-post-table.hh | 119 ++++++++++++++++++++++++++++++++++++------------
src/hb-private.hh | 10 ++--
src/hb-sort-r.hh | 2 +-
3 files changed, 96 insertions(+), 35 deletions(-)
[post] Minor; towards implementing get_glyph_from_name()
- src/hb-ot-post-table.hh | 56
- +++++++++++++++++++++++++++----------------------
+ src/hb-ot-post-table.hh | 56 +++++++++++++++++++++++++++----------------------
1 file changed, 31 insertions(+), 25 deletions(-)
commit 977679f229a10868dc668294082bd82125e4fe48
Add hb-sort-r, a portable qsort_r() replacement
src/Makefile.sources | 1 +
- src/hb-sort-r.hh | 227
- +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-sort-r.hh | 227 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 228 insertions(+)
commit 923a8f520addba095384b975ba8934e5a18fb696
Date: Sat Oct 28 19:54:04 2017 -0600
[ot] Speed up get_glyph_name()
-
+
get_glyph_from_name() coming soon.
src/hb-ot-font.cc | 13 ++--
- src/hb-ot-post-table.hh | 160
- +++++++++++++++++++------------------------
+ src/hb-ot-post-table.hh | 160 +++++++++++++++++++------------------------
src/test-buffer-serialize.cc | 4 +-
3 files changed, 81 insertions(+), 96 deletions(-)
Date: Sat Oct 28 12:00:49 2017 -0600
More nullptr fix
-
+
Fixes https://github.com/behdad/harfbuzz/issues/585
src/test.cc | 4 +---
Date: Fri Oct 27 16:34:01 2017 -0600
[glib/ucdn/icu/ft/ot] Make returned funcs inert
-
+
Such that client cannot accidentally destroy them, even though that
will be a bug in their code...
Date: Fri Oct 27 16:03:51 2017 -0600
Fix previous commit
-
+
Oops.
src/hb-glib.cc | 2 +-
Date: Fri Oct 27 15:13:50 2017 -0600
Correctly mark NullPool const
-
+
Saves some more code size as well!
src/hb-open-type-private.hh | 2 +-
Date: Fri Oct 27 15:09:22 2017 -0600
Reduce prealloced number of user-data items from 2 to 1
-
+
Even 1 is too many but putting 0 breaks compile. Saves 3k in .so
src/hb-private.hh | 2 +-
Date: Fri Oct 27 15:01:40 2017 -0600
Make the NullPool HB_INTERNAL shared
-
+
Saves 2k of .bss section.
src/hb-open-type-private.hh | 10 ++++++----
Date: Fri Oct 27 14:42:59 2017 -0600
[ot] Remove shaper name
-
+
In ten years we never used them...
src/hb-ot-shape-complex-arabic.cc | 1 -
Date: Fri Oct 27 14:29:12 2017 -0600
Fix IntType.cmp() to avoid narrowing down integer types
-
+
Fixes https://github.com/behdad/harfbuzz/issues/571
src/hb-open-type-private.hh | 5 +++--
Date: Fri Oct 27 10:29:25 2017 -0600
Make c++11 optional
-
+
Fixes https://github.com/behdad/harfbuzz/issues/585
configure.ac | 4 +-
- m4/ax_cxx_compile_stdcxx.m4 | 982
- ++++++++++++++++++++++++++++++++++++++++++++
+ m4/ax_cxx_compile_stdcxx.m4 | 982 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 983 insertions(+), 3 deletions(-)
commit 6c4689704071a76c49be819b8034feaf93e26a42
Date: Fri Oct 27 09:29:20 2017 -0600
Use NULL instead of polyfill, if nullptr is not available
-
+
Part of fixing https://github.com/behdad/harfbuzz/issues/585
src/hb-private.hh | 22 +++-------------------
Date: Fri Oct 27 09:22:30 2017 -0600
Include hb-private.hh more consistently
-
+
Part of fixing https://github.com/behdad/harfbuzz/issues/585
src/test-buffer-serialize.cc | 4 +---
Date: Fri Oct 27 00:25:11 2017 -0600
Towards compiling with pre-C++11 compilers and nullptr fallback
-
+
https://github.com/behdad/harfbuzz/issues/585
src/hb-atomic-private.hh | 4 ++--
[post] Make format1 names array avoid relocations
src/Makefile.sources | 1 +
- src/hb-ot-post-macroman.hh | 294
- +++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-post-macroman.hh | 294 +++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-post-table.hh | 55 ++-------
3 files changed, 305 insertions(+), 45 deletions(-)
Date: Thu Oct 26 19:48:33 2017 -0600
Add hb-string-array.hh
-
+
Used to build static string arrays that use no relocation.
src/Makefile.sources | 1 +
src/hb-private.hh | 6 ++--
- src/hb-string-array.hh | 74
- ++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-string-array.hh | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 79 insertions(+), 2 deletions(-)
commit 6f08b12bc38166dee2f9740d396d617b32e887a3
Date: Thu Oct 26 11:43:33 2017 -0600
Fix warning
-
+
https://github.com/behdad/harfbuzz/commit/49a41dc75931cc2d2f7e74b7801f8cc327039e8e#commitcomment-25203194
test/api/test-set.c | 5 +++--
Date: Thu Oct 26 16:59:50 2017 +0100
[set] Fix page_map[] indexing in backward loop.
-
+
Fixes https://github.com/behdad/harfbuzz/issues/579.
src/hb-set-private.hh | 4 ++--
Date: Thu Oct 26 17:54:55 2017 +0100
[test] Additional coverage in test_set_iter.
-
+
This adds a couple extra entries to the set used, such that iteration
would fail in 1.6.2 due to the bug in hb_set_t::page_t::next().
Date: Wed Oct 25 18:22:47 2017 -0600
[post] Oops!
-
+
https://ci.appveyor.com/project/behdad/harfbuzz/build/1.0.668/job/ikfj8peowgrp059t
src/hb-ot-post-table.hh | 4 ++--
Date: Wed Oct 25 17:40:50 2017 -0600
[post] Touch up and fixes
-
+
The get_glyph_from_name() is incorrect; needs fixing.
src/hb-ot-font.cc | 9 ++--
- src/hb-ot-post-table.hh | 139
- +++++++++++++++++++++++++++---------------------
+ src/hb-ot-post-table.hh | 139 +++++++++++++++++++++++++++---------------------
2 files changed, 81 insertions(+), 67 deletions(-)
commit d9e166f74c3ba3128c9ef3ccd8d7799e67f14eab
[ot-font] Implement hb_ot_get_glyph_from_name
src/hb-ot-font.cc | 22 ++++++++++++++++++-
- src/hb-ot-post-table.hh | 58
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-post-table.hh | 58 +++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 79 insertions(+), 1 deletion(-)
commit 9d4d2fb9af446d5d41058fbb1da8117b3af048d3
Date: Mon Oct 16 10:05:42 2017 +0200
[ot-font] Implement hb_ot_get_glyph_name
-
- Turns out we already have support for “post” table, it just
- needed to be
+
+ Turns out we already have support for “post” table, it just needed to be
activated and put in use.
src/hb-ot-font.cc | 46 ++++++++++++-
- src/hb-ot-post-table.hh | 96
- +++++++++++++++++++++++++++
+ src/hb-ot-post-table.hh | 96 +++++++++++++++++++++++++++
test/shaping/tests/fallback-positioning.tests | 2 +-
test/shaping/tests/indic-syllable.tests | 2 +-
test/shaping/tests/use.tests | 2 +-
Date: Wed Oct 25 16:17:45 2017 -0600
[test] Add more hb-set tests
-
+
https://github.com/behdad/harfbuzz/issues/579
test/api/test-set.c | 40 ++++++++++++++++++++++++++++++++++++++++
Date: Wed Oct 25 12:09:11 2017 -0400
Check for headers in builddir first, in check-*.sh
-
+
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=103346
src/check-c-linkage-decls.sh | 4 ++--
Date: Tue Oct 24 10:06:25 2017 -0400
check-externs.sh: Make output more verbose
-
+
Trying to figure out why this is failing on some Debian bots:
https://bugs.freedesktop.org/show_bug.cgi?id=103346
-
- Maybe I should check for GNU grep specifically now that I'm using
- -n as well.
+
+ Maybe I should check for GNU grep specifically now that I'm using -n as well.
src/check-externs.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Date: Mon Oct 23 14:26:48 2017 -0400
[set] Fix crash
-
- Ouch! That's what happens when one plays with increment/decrement
- operators!
-
+
+ Ouch! That's what happens when one plays with increment/decrement operators!
+
Fixes https://github.com/behdad/harfbuzz/issues/578
src/hb-set-private.hh | 10 ++++++----
[RELEASING] Format
- RELEASING.md | 67
- +++++++++++++++++++++++++++++++++++++++++++-----------------
+ RELEASING.md | 67 +++++++++++++++++++++++++++++++++++++++++++-----------------
1 file changed, 48 insertions(+), 19 deletions(-)
commit 6a2e1649debd992211bf96ef80d075d2d04a49ed
Date: Mon Oct 23 13:01:34 2017 -0400
[doap] Switch to github issues
-
+
https://github.com/behdad/harfbuzz/pull/575#issuecomment-338514596
harfbuzz.doap | 2 +-
Date: Mon Oct 23 13:00:36 2017 -0400
[RELEASING] Minor
-
+
https://github.com/behdad/harfbuzz/pull/575
RELEASING.md | 4 ++--
Date: Mon Oct 23 08:36:40 2017 -0400
[set] Don't use major()
-
+
Fixes https://github.com/behdad/harfbuzz/issues/577
src/hb-set-private.hh | 10 +++++-----
Date: Mon Oct 23 08:34:30 2017 -0400
[set] Don't use PAGE_SIZE
-
+
Fixes https://github.com/behdad/harfbuzz/issues/576
src/hb-set-private.hh | 12 ++++++------
Date: Mon Oct 23 01:48:22 2017 +0330
Merge pull request #575 from behdad/releasing-edit
-
+
Clarify the last step of release
commit 19923279abd4c7615e8b02e05a02ba18f5c0b298
Date: Sat Oct 21 10:19:55 2017 +0330
Merge pull request #572 from fanc999/master.msvc
-
+
builds: Support HarfBuzz-GObject and introspection in CMake builds
commit d8adaa97fbf33071b8a4b5c05c3f2f15f2fd22ea
Date: Fri Oct 20 13:57:43 2017 -0400
Another try at fixing build bots
-
- hb-ot-shape.cc:287:18: error: comparison of constant 32 with
- expression of type 'hb_unicode_general_category_t' is always true
- [-Werror,-Wtautological-constant-out-of-range-compare]
+
+ hb-ot-shape.cc:287:18: error: comparison of constant 32 with expression of type 'hb_unicode_general_category_t' is always true [-Werror,-Wtautological-constant-out-of-range-compare]
src/hb-private.hh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Date: Thu Oct 19 11:39:52 2017 -0700
Remove FLAG_SAFE()
-
+
No flag is safe, over time... See previous commit.
src/hb-ot-shape-complex-arabic.cc | 4 ++--
Date: Thu Oct 19 11:35:51 2017 -0700
[myanmar] Fix unsafe usage of FLAG_SAFE()
-
+
The commit f559c633073f63b9d87cb2440048b4413cfa1c05 caused
"undefined-shift" errors in Myanmar shaper as we changed the
numeric value of type D from 19 to 32 there, making the
"FLAG_SAFE (info.myanmar_category())" wrong.
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3546
src/hb-ot-shape-complex-myanmar.cc | 2 +-
Date: Thu Oct 19 18:36:32 2017 +0800
CMake builds: Support introspection builds
-
- This adds support for introspection builds on Windows that is
- enabled by
- the HB_HAVE_INTROSPECTION option, which will also enable
- HB_HAVE_GOBJECT
+
+ This adds support for introspection builds on Windows that is enabled by
+ the HB_HAVE_INTROSPECTION option, which will also enable HB_HAVE_GOBJECT
(and so HB_HAVE_GLIB) as they are required for introspection.
-
+
In order for this to work one must ensure that the Python installation
listed in PYTHON_EXECUTABLE is the same Python release series that was
used to build _giscanner.pyd (the Python module that is used by
are not in the standard PATH and PKG_CONFIG_PATH, which is actually
in-line with the *NIX builds.
- CMakeLists.txt | 161
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
+ CMakeLists.txt | 161 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 154 insertions(+), 7 deletions(-)
commit 53db221259b5eea4d2244321b2fe96beb39aef7d
Date: Wed Oct 18 15:43:57 2017 +0800
CMake: Support building HarfBuzz-GObject
-
+
This adds support to the CMake build files to support building
HarfBuzz-GObject, which is actually a little bit complicated,
as we need to:
-
+
-Run glib-mkenums, which is a Python (for newer GLib/GObject) or PERL
(for older, pre 2.53.4, GLib/GObject) script. This matters more for
- Visual Studio builds as shebang lines are not supported, so we
- need to
+ Visual Studio builds as shebang lines are not supported, so we need to
test-run it with PERL or Python to determine which is the correct
interpretor to use.
-
+
-Next, we need to replace strings in the sources that we obtain from
- running glib-mkenums. So, the solution here is to use a small
- utility
- CMake script for our purposes here, to maintain maximum
- compatibility.
-
+ running glib-mkenums. So, the solution here is to use a small utility
+ CMake script for our purposes here, to maintain maximum compatibility.
+
-Ensure that things do work in the Visual Studio IDE builds.
- CMakeLists.txt | 128
- +++++++++++++++++++++++++++++++++++++++++++++
+ CMakeLists.txt | 128 +++++++++++++++++++++++++++++++++++++++++++++
Makefile.am | 1 +
replace-enum-strings.cmake | 21 ++++++++
3 files changed, 150 insertions(+)
Date: Wed Oct 18 22:27:28 2017 +0800
CMake builds: Fix builds
-
+
Include the fallback sources in the build, and update
src/Makefile.sources so that it can be read by the CMake build files.
-
+
Fix a typo in the DirectWrite configure option so that we can properly
enable DirectWrite builds.
-
+
Also, when building the utility program, install them as well.
CMakeLists.txt | 21 ++++++++++++++++++++-
Date: Tue Oct 17 15:06:31 2017 -0700
Switch from ICU deprecated unorm_normalize to unorm2_normalize. (#569)
-
+
The new unorm2_normalize has been public API since ICU 4.4, while
the old unorm_normalize has been deprecated since ICU 56.
-
+
Now, beginning with ICU 60, unorm_normalize will also be annotated
- U_DEPRECATED and trigger the compiler -Wdeprecated-declarations
- warning.
+ U_DEPRECATED and trigger the compiler -Wdeprecated-declarations warning.
src/hb-icu.cc | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
Date: Tue Oct 17 11:16:36 2017 -0700
Try fixing build on VC
-
- c:\projects\harfbuzz\src\hb-set-private.hh(151): error C2327:
- 'hb_set_t::page_t::v': is not a type name, static, or enumerator
- [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
+
+ c:\projects\harfbuzz\src\hb-set-private.hh(151): error C2327: 'hb_set_t::page_t::v': is not a type name, static, or enumerator [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
src/hb-set-private.hh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Tue Oct 17 11:14:48 2017 -0700
[coretext] Fix build
-
+
error: static_assert expression is not an integral constant expression
src/hb-coretext.cc | 2 +-
Date: Sun Oct 15 18:20:25 2017 -0400
[set] Disable vectorization
-
+
Fixes clang "non-const reference cannot bind to vector element" error.
src/hb-set-private.hh | 4 +++-
Properly detect vector_size attribute and use fallback otherwise
- src/hb-private.hh | 67
- +++++++++++++++++++++++++++++++++++++++++++++++++++
- src/hb-set-private.hh | 62
- ++---------------------------------------------
+ src/hb-private.hh | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-set-private.hh | 62 ++---------------------------------------------
2 files changed, 69 insertions(+), 60 deletions(-)
commit f8a0ec50e23264fdfe9e3a5a2e0453a87f415b3d
[set] Add fallback implementation of int-vector type
- src/hb-set-private.hh | 64
- ++++++++++++++++++++++++++++++++++++---------------
+ src/hb-set-private.hh | 64 ++++++++++++++++++++++++++++++++++++---------------
1 file changed, 45 insertions(+), 19 deletions(-)
commit deed4a48d15d4a475f8695aa3269547adf63867a
Date: Sun Oct 15 16:53:09 2017 +0200
Faster hb_set_t
-
+
Fixes https://github.com/behdad/harfbuzz/pull/23
src/hb-private.hh | 56 ++++---
- src/hb-set-private.hh | 431
- +++++++++++++++++++++++++++++++++++++++++---------
+ src/hb-set-private.hh | 431 +++++++++++++++++++++++++++++++++++++++++---------
test/api/test-set.c | 6 -
3 files changed, 391 insertions(+), 102 deletions(-)
Remove unused hb_cache_t
src/Makefile.sources | 1 -
- src/hb-cache-private.hh | 74
- -------------------------------------------------
+ src/hb-cache-private.hh | 74 -------------------------------------------------
src/hb-ft.cc | 2 --
3 files changed, 77 deletions(-)
Remove unused hb_frozen_set_t
- src/hb-set-private.hh | 55
- ---------------------------------------------------
+ src/hb-set-private.hh | 55 ---------------------------------------------------
1 file changed, 55 deletions(-)
commit 826a1daf2f2075459ff25a20ed8abec030d95c52
src/Makefile.sources | 1 +
src/hb-ot-layout-private.hh | 2 +-
- src/hb-set-digest-private.hh | 144
- +++++++++++++++++++++++++++++++++++++++++++
+ src/hb-set-digest-private.hh | 144 +++++++++++++++++++++++++++++++++++++++++++
src/hb-set-private.hh | 113 ---------------------------------
4 files changed, 146 insertions(+), 114 deletions(-)
util/hb-shape.cc | 14 ++--
util/helper-cairo.cc | 12 ++--
util/main-font-text.hh | 4 +-
- util/options.cc | 110
- ++++++++++++++---------------
+ util/options.cc | 110 ++++++++++++++---------------
util/options.hh | 56 +++++++--------
util/shape-consumer.hh | 10 +--
65 files changed, 563 insertions(+), 568 deletions(-)
src/hb-ot-shape-complex-arabic-fallback.hh | 6 +++---
src/hb-ot-shape-complex-indic.cc | 2 +-
src/hb-ot-shape-complex-use.cc | 2 +-
- src/hb-private.hh | 34
- +++++++++++++-----------------
+ src/hb-private.hh | 34 +++++++++++++-----------------
src/hb-set-private.hh | 8 +++----
src/hb-uniscribe.cc | 2 +-
util/options.cc | 3 ++-
Date: Sun Oct 15 11:24:35 2017 +0200
Add polyfill for static_assert and nullptr
-
+
Also fix hb_assert_constant_t.
src/hb-private.hh | 38 ++++++++++++++++++++++++++++++++++----
Date: Sun Oct 15 10:55:32 2017 +0200
[util] Include hb-private.hh
-
+
Simplifies compatibility issues by centralizing all boilerplate code
in hb-private.hh.
Date: Sun Oct 15 10:48:19 2017 +0200
Never skip over CGJ
-
+
We might want to tweak this some more. For now, never skipping over
it is better behavior than always skipping.
-
+
Part of https://github.com/behdad/harfbuzz/issues/554
- src/hb-ot-layout-private.hh | 19
- +++++++++++--------
- .../bf962d3202883a820aed019d9b5c1838c2ff69c6.ttf | Bin 0 ->
- 2468 bytes
+ src/hb-ot-layout-private.hh | 19 +++++++++++--------
+ .../bf962d3202883a820aed019d9b5c1838c2ff69c6.ttf | Bin 0 -> 2468 bytes
test/shaping/tests/default-ignorables.tests | 1 +
3 files changed, 12 insertions(+), 8 deletions(-)
Date: Fri Oct 13 10:21:07 2017 +0200
[coretext] Pass correct font size to CoreText
-
+
CoreText "point"s are not typographic points, but CSS pixels. Ie.
they are 96 per inch, not 72 per inch.
Date: Thu Oct 12 14:07:37 2017 +0200
[indic] Special-case Kannada Ra,H,ZWJ sequence
-
+
Fixes https://github.com/behdad/harfbuzz/issues/435
- src/hb-ot-shape-complex-indic.cc | 15
- +++++++++++++++
+ src/hb-ot-shape-complex-indic.cc | 15 +++++++++++++++
test/shaping/Makefile.am | 1 +
- .../sha1sum/3cae6bfe5b57c07ba81ddbd54c02fe4f3a1e3bf6.ttf | Bin 0 ->
- 2984 bytes
+ .../sha1sum/3cae6bfe5b57c07ba81ddbd54c02fe4f3a1e3bf6.ttf | Bin 0 -> 2984 bytes
test/shaping/tests/indic-special-cases.tests | 3 +++
4 files changed, 19 insertions(+)
Author: n8willis <n8willis@users.noreply.github.com>
Date: Thu Oct 12 12:48:48 2017 +0100
- Replacing 'cluster' with 'syllable' when comments describe certain
- Indic shaping behavior (#563)
-
- * Clarified wording of syllable/cluster behavior in Uniscribe in
- final_reordering; changed one other probable typo.
-
- * Additional syllable/cluster swap in comments for final reordering
- and for initial-reordering matra decomposition.
+ Replacing 'cluster' with 'syllable' when comments describe certain Indic shaping behavior (#563)
+
+ * Clarified wording of syllable/cluster behavior in Uniscribe in final_reordering; changed one other probable typo.
+
+ * Additional syllable/cluster swap in comments for final reordering and for initial-reordering matra decomposition.
src/hb-ot-shape-complex-indic.cc | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
Date: Thu Oct 12 11:49:37 2017 +0200
[coretext] Activate tracking for system fonts
-
+
Another attempt at fully fixing
https://github.com/behdad/harfbuzz/issues/360
Date: Thu Oct 12 12:05:08 2017 +0300
CMakelists.txt fix for Freetype builds (#564)
-
- Instead of searching for freetype using pkg-config, use the
- FindFreetype
- feature of CMake. This allows for better integration with other
- projects
+
+ Instead of searching for freetype using pkg-config, use the FindFreetype
+ feature of CMake. This allows for better integration with other projects
that make use of CMake.
-
+
Fixes https://github.com/behdad/harfbuzz/issues/518
CMakeLists.txt | 24 +++++++-----------------
Date: Thu Oct 12 10:46:09 2017 +0200
[coretext] Use fabsf() instead of abs()
-
+
Fixes bots.
-
+
Link libharfbuzz.so with -lm. Surprising that we survived without
it so far!
win32/Makefile.vc | 67 ------------
win32/README.txt | 97 -----------------
win32/build-rules-msvc.mak | 130 -----------------------
- win32/config-msvc.mak | 230
- ----------------------------------------
+ win32/config-msvc.mak | 230 ----------------------------------------
win32/config.h.win32.in | 158 ---------------------------
win32/create-lists-msvc.mak | 147 -------------------------
win32/create-lists.bat | 42 --------
Date: Thu Oct 12 10:33:16 2017 +0200
[ft] Add hb_ft_font_changed()
-
- When the font size or variations settings on underlying FT_Face
- change,
- one can call hb_ft_font_changed() and continue using hb_font
- created using
+
+ When the font size or variations settings on underlying FT_Face change,
+ one can call hb_ft_font_changed() and continue using hb_font created using
hb_ft_font_create().
-
+
Fixes https://github.com/behdad/harfbuzz/issues/559
-
+
New API:
hb_ft_font_changed()
Date: Wed Oct 11 17:22:44 2017 +0200
Add hb_face_get_table_tags()
-
+
New API:
hb_face_get_table_tags()
-
+
Fixes https://github.com/behdad/harfbuzz/issues/560
src/hb-face.cc | 29 +++++++++++++++++++++++++++++
Date: Wed Oct 11 15:51:31 2017 +0200
Remove cast of functions to (hb_destroy_func_t)
-
+
Fixes https://github.com/behdad/harfbuzz/issues/474
src/hb-blob.cc | 8 +++++++-
Date: Wed Oct 11 15:02:48 2017 +0200
[coretext-aat] Also pass through CoreText if font has kerx table
-
+
SFNSText has kerx table which apparently is applied.
src/hb-coretext.cc | 20 +++++++++-----------
Date: Wed Oct 11 13:35:32 2017 +0200
Merge branch 'coretext-optical-sizing'
-
+
Should fix https://github.com/behdad/harfbuzz/issues/360
commit a5ebe1d4aec41bc5e289a7969e5e5f7bb57733b6
Date: Wed Oct 11 13:32:38 2017 +0200
[coretext] Recreate CTFont if pt size changed
-
+
Attempt at fixing #360
src/hb-coretext.cc | 5 +++--
Date: Wed Oct 11 13:05:59 2017 +0200
[coretext] Move CT_Font to font data
-
+
Towards implementing optical sizing. Untested; won't compile.
-
+
https://github.com/behdad/harfbuzz/issues/360
- src/hb-coretext.cc | 85
- ++++++++++++++++++++++++------------------------------
+ src/hb-coretext.cc | 85 ++++++++++++++++++++++++------------------------------
1 file changed, 37 insertions(+), 48 deletions(-)
commit f9b4c6570a4725eec5393f86e6468a189ac8c6be
Date: Wed Oct 11 12:43:46 2017 +0200
Infrastructure for creating CTFont with correct font size
-
+
https://github.com/behdad/harfbuzz/issues/360
src/hb-shaper-private.hh | 12 ++++++++++++
Date: Wed Oct 11 12:23:35 2017 +0200
Remove dirty tracking
-
+
Turns out I don't need this to resolve CoreText optical sizing
issue after all.
-
+
https://github.com/behdad/harfbuzz/issues/360
src/hb-face-private.hh | 9 ---------
Date: Wed Oct 11 11:47:47 2017 +0200
Add hb_font_[sg]et_ptem() to set/get point size on font
-
+
New API:
hb_font_set_ptem()
hb_font_get_ptem()
-
+
Needed for hb-coretext optical sizing:
https://github.com/behdad/harfbuzz/issues/360
Date: Sat Oct 7 12:56:53 2017 +0200
Add check for HB_EXTERNs
-
+
https://github.com/behdad/harfbuzz/pull/555
src/Makefile.am | 1 +
Author: fanc999 <fanc999@yahoo.com.tw>
Date: Sat Oct 7 18:57:14 2017 +0800
- Fix build of HarfBuzz tools and HarfBuzz-GObject on Visual Studio
- (#555)
-
+ Fix build of HarfBuzz tools and HarfBuzz-GObject on Visual Studio (#555)
+
* hb-buffer.h: Mark hb_buffer_diff() for export
-
+
This will fix the tools builds on Visual Studio, as the symbol is used
by the tools.
-
+
* build: Adapt NMake Makefiles for GLib 2.53.4 or later
-
+
glib-mkenums was ported from a PERL script to a Python script, so we
- need to update how we generate the enum sources for HarfBuzz-GObject
- in
- the NMake builds. Let this be known in the build documentation
- for MSVC
+ need to update how we generate the enum sources for HarfBuzz-GObject in
+ the NMake builds. Let this be known in the build documentation for MSVC
builds.
-
- One of the problems with the underlying cmd.exe that the NMake
- Makefiles
+
+ One of the problems with the underlying cmd.exe that the NMake Makefiles
run on is that shebang lines are not recognized, so we need to to test
run the script with Python and see whether it succeeded by outputing a
source file that is larger than 0 in file size (since running the PERL
version of the script will clearly fail and cause an empty file to be
created).
-
- If it succeeds, we then run a small Python utility script that
- makes the
- necessary string replacements, and we are done. If that fails,
- then we
- run the glib-mkenums script with PERL, and do the replacements
- with the
+
+ If it succeeds, we then run a small Python utility script that makes the
+ necessary string replacements, and we are done. If that fails, then we
+ run the glib-mkenums script with PERL, and do the replacements with the
PERL one-liners as we did before.
-
- We need to make replace.py use latin-1 encoding when using Python
- 3.x to
+
+ We need to make replace.py use latin-1 encoding when using Python 3.x to
cope with the copyright sign that is in the generated enum sources.
src/hb-buffer.h | 2 +-
Date: Wed Oct 4 16:59:22 2017 +0200
[ot] Remove 'mal' and 'gle' lang tags
-
+
Fixes https://github.com/behdad/harfbuzz/issues/477
src/hb-ot-tag.cc | 2 --
Date: Wed Oct 4 15:06:48 2017 +0200
Improve performance of ligature component matching
-
- This O(N^2) was introduced in
- 8b2c94c43fd335b944d5e5487265706b8e0f9041.
+
+ This O(N^2) was introduced in 8b2c94c43fd335b944d5e5487265706b8e0f9041.
Make it O(N).
- src/hb-ot-layout-gsubgpos-private.hh | 37
- +++++++++++++++++++++++-------------
+ src/hb-ot-layout-gsubgpos-private.hh | 37 +++++++++++++++++++++++-------------
1 file changed, 24 insertions(+), 13 deletions(-)
commit ab8d70ec7023e51ba6fd7267d2b41c5f95ef0787
Date: Wed Oct 4 14:47:10 2017 +0200
[arabic] Implement Unicode Arabic Mark Ordering Algorithm UTR#53
-
+
Fixes https://github.com/behdad/harfbuzz/issues/509
- src/hb-ot-shape-complex-arabic.cc | 75
- +++++++++++++++++++++
+ src/hb-ot-shape-complex-arabic.cc | 75 +++++++++++++++++++++
src/hb-ot-shape-complex-default.cc | 1 +
src/hb-ot-shape-complex-hangul.cc | 1 +
src/hb-ot-shape-complex-hebrew.cc | 1 +
Date: Wed Oct 4 13:20:33 2017 +0200
Adjust normalizer for out-of-order marks
-
+
We are going to implement Unicode Arabic Mark Ordering Algorithm:
-
+
http://www.unicode.org/reports/tr53/tr53-1.pdf
-
+
which will reorder marks out of their sorted ccc order. Adjust
normalizer to stop combining as soon as dangerous ordering is
detected.
- src/hb-ot-shape-normalize.cc | 62
- ++++++++++++++++++++++++++------------------
+ src/hb-ot-shape-normalize.cc | 62 ++++++++++++++++++++++++++------------------
1 file changed, 37 insertions(+), 25 deletions(-)
commit a252ad61f077c3b7bbfd8335e1b105a57beb58ce
Date: Wed Oct 4 13:06:51 2017 +0200
Revert "Treat HAMZA ABOVE similar to SHADD for sorting purposes"
-
+
This reverts commit 5a330575768f5a213072230b9ec8faabac9c5737.
-
+
Proper fix coming soon.
src/hb-unicode-private.hh | 4 ----
Date: Wed Oct 4 11:33:47 2017 +0200
Shorthand format controls should not be ignored
-
+
Fixes https://github.com/behdad/harfbuzz/issues/503
src/hb-unicode-private.hh | 4 ++--
Date: Wed Oct 4 11:28:04 2017 +0200
Add Chinantec language tags
-
+
Fixes https://github.com/behdad/harfbuzz/issues/516
src/hb-ot-tag.cc | 14 ++++++++++++++
Date: Tue Oct 3 17:22:43 2017 +0200
Fix GPOS v_origin ordering
-
- This should affect mark attachment in vertical text. I have no font
- to test,
+
+ This should affect mark attachment in vertical text. I have no font to test,
but this sounds the right order.
-
+
Noticed while debugging https://github.com/behdad/harfbuzz/issues/532
src/hb-ot-shape.cc | 44 ++++++++++++++++++++------------------------
Date: Tue Oct 3 16:00:18 2017 +0200
[indic] Fix shaping of U+0AFB GUJARATI SIGN SHADDA
-
+
Fixes https://github.com/behdad/harfbuzz/issues/552
src/hb-ot-shape-complex-indic-private.hh | 2 +-
Date: Tue Oct 3 15:20:07 2017 +0200
[indic] Implement Consonent_With_Stacker
-
+
Fixes https://github.com/behdad/harfbuzz/issues/528
src/hb-ot-shape-complex-indic-machine.rl | 5 +++--
Date: Tue Oct 3 14:57:14 2017 +0200
[use] Implement Consonant_With_Stacker
-
+
Related to https://github.com/behdad/harfbuzz/issues/528
src/gen-use-table.py | 7 ++++---
Test Consonant_With_Stacker in Kannada (#530)
test/shaping/Makefile.am | 1 +
- test/shaping/fonts/COPYING | 100
- +++++++++++++++++++++
+ test/shaping/fonts/COPYING | 100 +++++++++++++++++++++
.../341421e629668b1a1242245d39238ca48432d35d.ttf | Bin 0 -> 1084 bytes
.../55c88ebbe938680b08f92c3de20713183e0c7481.ttf | Bin 0 -> 3300 bytes
.../663aef6b019dbf45ffd74089e2b5f2496ceceb18.ttf | Bin 0 -> 1204 bytes
Date: Tue Oct 3 13:46:25 2017 +0200
Tweak mark-base attachment
-
+
Apparently a base glyph can also become an attached component of a
ligature if the ligature-forming lookup used IgnoreBase. This was
being confused with a non-first component of a MultipleSubst and
hence not matched for mark-attachment. Tweak test to fix.
-
+
Fixes https://github.com/behdad/harfbuzz/issues/543
src/hb-ot-layout-gpos-table.hh | 4 +++-
test/shaping/Makefile.am | 1 +
- .../sha1sum/98b7887cff91f722b92a8ff800120954606354f9.ttf | Bin 0 ->
- 1168 bytes
+ .../sha1sum/98b7887cff91f722b92a8ff800120954606354f9.ttf | Bin 0 -> 1168 bytes
test/shaping/tests/mark-attachment.tests | 1 +
4 files changed, 5 insertions(+), 1 deletion(-)
Date: Tue Oct 3 13:22:07 2017 +0200
Make bots happy
-
+
Fixes https://github.com/behdad/harfbuzz/issues/551
test/shaping/tests/indic-syllable.tests | 2 +-
Date: Tue Oct 3 13:14:17 2017 +0200
Tweak input matching some more
-
+
Followup to 8b2c94c43fd335b944d5e5487265706b8e0f9041
-
+
Allow matching sequences of marks attached to different ligatures,
as supposedly the base of the subsequent marks were already jumped
over.
Date: Mon Oct 2 20:28:56 2017 +0200
Add test for U+0A51
-
+
New Indic numbers are:
-
+
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366355 out of 366457 tests passed. 102 failed (0.0278341%)
GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%)
KANNADA: 951201 out of 951913 tests passed. 712 failed (0.0747968%)
KHMER: 299071 out of 299124 tests passed. 53 failed (0.0177184%)
- MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed
- (0.0188871%)
+ MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
-
- Before 71c0a1429db7c7e7e32507be248c9457e1cbfc7d GURMUKHI used to be
- at 15,
- because Uniscribe seems to allow this character standalone, but
- that looks
+
+ Before 71c0a1429db7c7e7e32507be248c9457e1cbfc7d GURMUKHI used to be at 15,
+ because Uniscribe seems to allow this character standalone, but that looks
wrong.
- .../sha1sum/1735326da89f0818cd8c51a0600e9789812c0f94.ttf | Bin 0 ->
- 1008 bytes
+ .../sha1sum/1735326da89f0818cd8c51a0600e9789812c0f94.ttf | Bin 0 -> 1008 bytes
test/shaping/tests/indic-syllable.tests | 2 ++
2 files changed, 2 insertions(+)
Date: Mon Oct 2 20:02:45 2017 +0200
Tweak ligature component matching for ligature formation
-
- If two marks want to ligate and they belong to different components
- of the
- same ligature glyph, and said ligature glyph is to be ignored
- according to
+
+ If two marks want to ligate and they belong to different components of the
+ same ligature glyph, and said ligature glyph is to be ignored according to
mark-filtering rules, then allow.
-
+
Example Burmese senquence:
-
+
U+1004,U+103A,U+1039,U+101B,U+103D,U+102D
-
+
Test font provided by Norbert Lindenberg.
-
+
Fixes https://github.com/behdad/harfbuzz/issues/545
- src/hb-ot-layout-gsubgpos-private.hh | 59
- +++++++++++++++++----
+ src/hb-ot-layout-gsubgpos-private.hh | 59 +++++++++++++++++----
.../a6c76d1bafde4a0b1026ebcc932d2e5c6fd02442.ttf | Bin 0 -> 1384 bytes
test/shaping/tests/ligature-id.tests | 1 +
3 files changed, 51 insertions(+), 9 deletions(-)
Date: Mon Oct 2 18:56:10 2017 +0200
[indic] Fix shaping of U+0A51
-
+
Mark it as matra below to allow the sequence U+0A15, U+0A51, U+0A47.
Oh well...
-
+
Fixes https://github.com/behdad/harfbuzz/issues/524
src/hb-ot-shape-complex-indic.cc | 6 ++++++
- .../sha1sum/85fe0be440c64ac77699e21c2f1bd933a919167e.ttf | Bin 0 ->
- 1224 bytes
+ .../sha1sum/85fe0be440c64ac77699e21c2f1bd933a919167e.ttf | Bin 0 -> 1224 bytes
test/shaping/tests/indic-syllable.tests | 1 +
3 files changed, 7 insertions(+)
[ucdn] Oops!
- src/hb-ucdn/{unicodedata_db.h => ucdn_db.h} | 4324
- ++++++++++++++-------------
+ src/hb-ucdn/{unicodedata_db.h => ucdn_db.h} | 4324 ++++++++++++++-------------
1 file changed, 2175 insertions(+), 2149 deletions(-)
commit cbec0cd65e1787b20ea55dd5583a7444938bd381
Date: Mon Oct 2 18:20:51 2017 +0200
[use] Hack to fix shaping of U+1A7F
-
+
Fixes https://github.com/behdad/harfbuzz/issues/525
src/gen-use-table.py | 3 +++
Date: Mon Oct 2 17:15:46 2017 +0200
[ucdn] Update to Unicode 10
-
+
Update to commit c000ebf79c095a7d58cf90090bde5715592c4834
plus this bug-fix: https://github.com/grigorig/ucdn/issues/18
src/hb-ucdn.cc | 4 +++
src/hb-ucdn/Makefile.sources | 2 +-
- src/hb-ucdn/ucdn.c | 69
- ++++++++++++++++++++++----------------------
+ src/hb-ucdn/ucdn.c | 69 ++++++++++++++++++++++----------------------
src/hb-ucdn/ucdn.h | 7 +++++
4 files changed, 47 insertions(+), 35 deletions(-)
[use] Update to Unicode 10
src/gen-use-table.py | 5 +--
- src/hb-ot-shape-complex-use-table.cc | 69
- ++++++++++++++++++++++++++----------
+ src/hb-ot-shape-complex-use-table.cc | 69 ++++++++++++++++++++++++++----------
2 files changed, 54 insertions(+), 20 deletions(-)
commit 29c244aff6e3c359796bb033496c14ad5537dbe0
[indic] Update table to Unicode 10
- src/hb-ot-shape-complex-indic-table.cc | 70
- +++++++++++++++++-----------------
+ src/hb-ot-shape-complex-indic-table.cc | 70 +++++++++++++++++-----------------
1 file changed, 36 insertions(+), 34 deletions(-)
commit cc79b666bc4a81a0342ed1e706dd7db109739dc5
Date: Mon Oct 2 09:19:15 2017 -0400
[indic] Add test for 1a0a356a0f2b2932581e4fd0437c01c058f4f6d1
-
+
https://github.com/behdad/harfbuzz/issues/538
- .../sha1sum/87f85d17d26f1fe9ad28d7365101958edaefb967.ttf | Bin 0 ->
- 1000 bytes
+ .../sha1sum/87f85d17d26f1fe9ad28d7365101958edaefb967.ttf | Bin 0 -> 1000 bytes
test/shaping/tests/indic-syllable.tests | 1 +
2 files changed, 1 insertion(+)
Date: Mon Oct 2 08:49:23 2017 -0400
[indic] Categorize U+0980 BENGALI ANJI as placeholder
-
+
Fixes https://github.com/behdad/harfbuzz/issues/538
src/hb-ot-shape-complex-indic.cc | 1 +
Author: jfkthame <jfkthame@gmail.com>
Date: Mon Oct 2 13:08:49 2017 +0100
- [shape-plan] Don't look for a cached plan if variation coords are
- specified. Fixes #549. (#550)
-
- This is a temporary hack just to avoid incorrect shaping results,
- pending proper support
+ [shape-plan] Don't look for a cached plan if variation coords are specified. Fixes #549. (#550)
+
+ This is a temporary hack just to avoid incorrect shaping results, pending proper support
for caching shape-plans with variation coordinates.
src/hb-shape-plan.cc | 16 +++++++++-------
Add release checklist (#529)
- RELEASING.md | 96
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ RELEASING.md | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 96 insertions(+)
commit 66128d3cfb12705530141b5a4bd2706f0cbb9fc5
Date: Wed Sep 27 01:29:45 2017 +0700
Fix missing xscale in rtl graphite unpacking (#541)
-
+
* Fix missing xscale in rtl graphite unpacking
-
+
* Oops didn't need to mess with yscale
src/hb-graphite2.cc | 2 +-
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Sep 14 20:50:35 2017 -0400
- Use strtod_l() to correctly parse decimal numbers in French &
- other locales
-
+ Use strtod_l() to correctly parse decimal numbers in French & other locales
+
Test with, eg.:
- $ LC_ALL=fr_FR.utf-8 ./hb-view NotoSansArabic-VF.ttf بهداد
- --variations wght=1.2
+ $ LC_ALL=fr_FR.utf-8 ./hb-view NotoSansArabic-VF.ttf بهداد --variations wght=1.2
configure.ac | 4 ++--
- src/hb-common.cc | 53
- +++++++++++++++++++++++++++++++++++++++++++++++++++--
+ src/hb-common.cc | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++--
2 files changed, 53 insertions(+), 4 deletions(-)
commit 9355218f582a6c2425cadcb868204f81b17d5767
Date: Sat Sep 9 11:21:07 2017 -0700
[util] Add a few shorthand forms for commandline options
-
+
-o, -O, -u, -v, -V
util/options.cc | 10 +++++-----
Date: Mon Sep 4 20:14:13 2017 -0700
Fix buffer_diff for empty buffers
-
+
If buffers are empty, content type should be ignored.
-
+
This fixes last of the failing tests: fuzzed.tests. Green again!
src/hb-buffer.cc | 2 +-
Date: Mon Sep 4 20:04:59 2017 -0700
[unsafe-to-break] Fix unsafe-to-break for cluster-level=1
-
+
Fixes tests/shaping/tests/cluster.tests
src/hb-ot-shape.cc | 17 +++++++++++------
Date: Fri Sep 1 19:09:54 2017 -0700
[util] Add --unicodes to hb-view / hb-shape
-
+
Fixes https://github.com/behdad/harfbuzz/issues/154
test/shaping/hb_test_tools.py | 2 +-
- util/options.cc | 65
- ++++++++++++++++++++++++++++++++++++++++++-
+ util/options.cc | 65 ++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 65 insertions(+), 2 deletions(-)
commit 0e5b475d98dd67e927534508fe2cd8dc9765e24e
Date: Fri Sep 1 10:34:21 2017 -0700
[indic] Treat Consonant_With_Stacker as consonant
-
+
Fixes https://github.com/behdad/harfbuzz/issues/528
"Kannada JIHVAMULIYA and UPADHMANIYA insert dotted circles"
src/hb-ot-shape-complex-indic-private.hh | 2 +-
- .../sha1sum/3d0b77a2360aa6faa1385aaa510509ab70dfbeff.ttf | Bin 0 ->
- 988 bytes
+ .../sha1sum/3d0b77a2360aa6faa1385aaa510509ab70dfbeff.ttf | Bin 0 -> 988 bytes
test/shaping/tests/indic-syllable.tests | 3 ++-
3 files changed, 3 insertions(+), 2 deletions(-)
Date: Wed Aug 30 17:28:22 2017 -0700
[unsafe-to-break] Mark during fraction-slash formation
-
+
Fixes tests/automatic-fractions.tests
src/hb-ot-shape.cc | 2 ++
Date: Wed Aug 30 17:25:10 2017 -0700
[util] Fix cluster sweeping during --verify
-
- If *I* get this wrong in 2017, I have no idea how others get their
- head around
+
+ If *I* get this wrong in 2017, I have no idea how others get their head around
cluster math...
-
+
Fixes tests/arabic-fallback-shaping.tests
util/options.hh | 11 ++++++++---
Date: Wed Aug 30 16:45:06 2017 -0700
hb_buffer_diff() tweak
-
- I like to have a mode where CONTAINS_NOTDEF and CONTAINS_DOTTEDCIRCLE
- are not
- returned. Abused a value of -1 for that. hb-shape now uses it.
- Fixes two
+
+ I like to have a mode where CONTAINS_NOTDEF and CONTAINS_DOTTEDCIRCLE are not
+ returned. Abused a value of -1 for that. hb-shape now uses it. Fixes two
of the six tests failing with --verify in test/shaping/run-tests.sh.
src/hb-buffer.cc | 16 ++++++++--------
Date: Wed Aug 23 14:35:58 2017 -0700
[test] Add --verify to hb-shape
-
+
Disabled for now. Will enable and fix failures after next release.
test/shaping/run-tests.sh | 3 ++-
Date: Wed Aug 23 13:12:54 2017 -0700
Add hb_glyph_info_get_glyph_flags()
-
+
New API.
src/hb-buffer.cc | 17 +++++++++++++++++
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue Aug 22 17:56:25 2017 -0700
- Rename HB_BUFFER_DIFF_FLAG_MASK_MISMATCH to
- HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH
+ Rename HB_BUFFER_DIFF_FLAG_MASK_MISMATCH to HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH
src/hb-buffer.cc | 2 +-
src/hb-buffer.h | 2 +-
Date: Tue Aug 15 16:25:18 2017 -0700
Fix signed/unsigned warning (#522)
-
- Change hb_buffer_diff to explicitly cast result of abs to unsigned
- when
- comparing with position_fuzz to avoid unsafe signed/unsigned
- comparions
+
+ Change hb_buffer_diff to explicitly cast result of abs to unsigned when
+ comparing with position_fuzz to avoid unsafe signed/unsigned comparions
warnings on windows.
src/hb-buffer.cc | 8 ++++----
Date: Sat Jul 19 23:09:09 2014 +0100
Add function to compare two buffers
-
+
Based on patch from Jonathan Kew.
-
+
Needs more cleaning up and documentation.
-
+
New API:
hb_buffer_diff_flags_t
hb_buffer_diff()
src/hb-buffer-private.hh | 1 +
src/hb-buffer-serialize.cc | 4 +--
- src/hb-buffer.cc | 82
- ++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-buffer.cc | 82 ++++++++++++++++++++++++++++++++++++++++++++++
src/hb-buffer.h | 39 ++++++++++++++++++++++
4 files changed, 124 insertions(+), 2 deletions(-)
Date: Fri Aug 11 19:51:06 2017 -0700
[unsafe-to-break] Towards verifying unsafe-to-break in --verify
-
+
We break and shape fragments and reconstruct shape result from them.
Remains to compare to original buffer. Going to add some buffer
comparison API and use here, instead of open-coding.
src/hb-buffer.cc | 5 ++-
- util/options.hh | 131
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
+ util/options.hh | 131 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 133 insertions(+), 3 deletions(-)
commit 6ce25f57c663f86326262a5ff7a42288f358ed51
Date: Fri Aug 11 19:31:05 2017 -0700
Fix hb_buffer_append()
-
+
Ouch!
src/hb-buffer.cc | 2 +-
Date: Fri Aug 11 19:06:07 2017 -0700
[unsafe-to-break] Copy flag to all glyphs in a cluster
-
+
Makes consumption easier.
- src/hb-buffer-private.hh | 46
- +++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-buffer-private.hh | 46 +++++++++++++++++++++++++++++++++++++++++++++
src/hb-buffer.cc | 28 ++++++---------------------
src/hb-ot-layout-private.hh | 3 +--
src/hb-ot-shape.cc | 27 ++++++++++++++++++++++++++
Date: Fri Aug 11 18:24:27 2017 -0700
[unsafe-to-break] Mark unsafe is cluster merging is disabled
-
- We were relying on cluster merges not requiring unsafe flagging
- because
+
+ We were relying on cluster merges not requiring unsafe flagging because
they get merged. If cluster level requests no merging, then we flag
unsafe when merge would have happened.
New API: hb_buffer_append()
- src/hb-buffer.cc | 52
- +++++++++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-buffer.cc | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++-
src/hb-buffer.h | 6 ++++++
2 files changed, 57 insertions(+), 1 deletion(-)
Date: Fri Aug 11 15:12:25 2017 -0700
[util] Add --verify to hb-shape / hb-view that verifies shape results
-
- Right now it checks for monotone cluster values. Other checks to
- be added.
+
+ Right now it checks for monotone cluster values. Other checks to be added.
util/hb-shape.cc | 7 ++-----
util/options.cc | 2 ++
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Fri Aug 11 11:30:39 2017 -0700
- [unsafe-to-break] Fix Use-of-uninitialized-value in
- unsafe_to_break_set_mask
-
+ [unsafe-to-break] Fix Use-of-uninitialized-value in unsafe_to_break_set_mask
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3011
src/hb-ot-shape-complex-hangul.cc | 2 +-
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Aug 10 20:10:12 2017 -0700
- [unsafe-to-break] Be careful with flag propagation when merging
- clusters
+ [unsafe-to-break] Be careful with flag propagation when merging clusters
src/hb-buffer-private.hh | 13 +++++++++++++
src/hb-buffer.cc | 17 ++++++++++-------
Date: Thu Aug 10 19:58:05 2017 -0700
Set mask to 0, instead of 1, by default
-
+
This shouldn't matter.
src/hb-buffer.cc | 2 +-
Date: Wed May 4 19:51:22 2016 +0200
[unsafe-to-break] Simplify logic
-
+
Always use the algorithm for non-monotone case. It's more robust.
- src/hb-buffer.cc | 57
- +++++++++++++-------------------------------------------
+ src/hb-buffer.cc | 57 +++++++++++++-------------------------------------------
1 file changed, 13 insertions(+), 44 deletions(-)
commit 40bd7e9a1cf422b17f15d0f66547bde9098e6ef3
Date: Mon May 2 14:47:45 2016 +0200
[unsafe-to-break] Add UNSAFE_TO_BREAK flag
-
+
Not all shapers code is updated to set this properly.
GSUB and Arabic shaper are updated.
GPOS and other shapers are NOT.
-
+
Fixes https://github.com/behdad/harfbuzz/issues/224
src/hb-buffer-private.hh | 26 ++++++++------
src/hb-buffer-serialize.cc | 24 +++++++++----
- src/hb-buffer.cc | 67
- ++++++++++++++++++++++++++++++++++++
+ src/hb-buffer.cc | 67 ++++++++++++++++++++++++++++++++++++
src/hb-buffer.h | 10 ++++--
src/hb-ot-layout-gsub-table.hh | 7 ++--
src/hb-ot-layout-gsubgpos-private.hh | 27 ++++++++++-----
Date: Wed Aug 9 17:23:28 2017 -0700
Treat HAMZA ABOVE similar to SHADD for sorting purposes
-
+
Part of https://github.com/behdad/harfbuzz/issues/509
src/hb-unicode-private.hh | 4 ++++
Date: Wed Aug 9 17:09:21 2017 -0700
Protect against div-by-zero in CBDT extent code
-
+
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1452#c5
-
+
CC https://github.com/behdad/harfbuzz/issues/139
src/hb-ft.cc | 4 ++--
test/shaping/Makefile.am | 1 +
.../d23d76ea0909c14972796937ba072b5a40c1e257.ttf | Bin 0 -> 1812 bytes
test/shaping/record-test.sh | 1 +
- test/shaping/tests/variations-rvrn.tests | 100
- +++++++++++++++++++++
+ test/shaping/tests/variations-rvrn.tests | 100 +++++++++++++++++++++
4 files changed, 102 insertions(+)
commit 7917792f01603f91b703d12e12d8baced655a615
Date: Mon Aug 7 21:37:07 2017 -0700
Two fixes to avar mapping
-
+
1. Handle segment with two entries correctly,
-
+
2. Fix rounding math. Ouch!
-
+
Fixes https://github.com/behdad/harfbuzz/issues/521
src/hb-ot-var-avar-table.hh | 13 +++++++++----
Date: Thu Aug 3 12:34:15 2017 +0100
[check-defs/symbols.sh] Drop empty-symbol lines
-
+
Fixes https://github.com/behdad/harfbuzz/issues/510
src/check-defs.sh | 2 +-
Date: Wed Jul 19 17:20:55 2017 -0700
[hb-shape] Rename --show-messages to --trace
-
+
https://github.com/behdad/harfbuzz/issues/506
util/hb-shape.cc | 2 +-
Date: Tue Jul 18 19:14:19 2017 -0700
[hb-shape] Improve shaping-debug output
-
- Before, that was printed using --debug (and in both hb-shape and
- hb-view).
- Changed it, now hb-shape has a new command-line argument called
- --show-messages.
- When invoked, it also respects other output formatting options.
- The messages
- are better formatted and printed to te same place that hb-shape
- output is
+
+ Before, that was printed using --debug (and in both hb-shape and hb-view).
+ Changed it, now hb-shape has a new command-line argument called --show-messages.
+ When invoked, it also respects other output formatting options. The messages
+ are better formatted and printed to te same place that hb-shape output is
directed to. Previously they were written to stderr.
-
+
Fixes https://github.com/behdad/harfbuzz/issues/506
util/hb-ot-shape-closure.cc | 10 +++++++---
Date: Fri Jul 14 17:34:47 2017 +0100
[arabic] Adjust feature order again
-
+
Fixes https://github.com/behdad/harfbuzz/issues/505
src/hb-ot-shape-complex-arabic.cc | 7 ++++++-
- .../sha1sum/bf39b0e91ef9807f15a9e283a21a14a209fd2cfc.ttf | Bin 0 ->
- 7312 bytes
+ .../sha1sum/bf39b0e91ef9807f15a9e283a21a14a209fd2cfc.ttf | Bin 0 -> 7312 bytes
test/shaping/tests/arabic-feature-order.tests | 1 +
3 files changed, 7 insertions(+), 1 deletion(-)
Date: Fri Jul 14 17:11:46 2017 +0100
[coretext] Allow to disable kern (#508)
-
+
* Minor
-
+
* [coretext] Fix leak
-
+
* [coretext] Do not reset num_features
-
- * [coretext] allow to disable kern; re-enabling doesn't seem to
- be working
+
+ * [coretext] allow to disable kern; re-enabling doesn't seem to be working
src/hb-coretext.cc | 41 ++++++++++++++++++++++++++++++++---------
1 file changed, 32 insertions(+), 9 deletions(-)
Date: Fri Jul 14 17:01:27 2017 +0100
[use] Allow up to two medial-below letters
-
+
Fixes https://github.com/behdad/harfbuzz/issues/376
src/hb-ot-shape-complex-use-machine.rl | 3 ++-
- .../sha1sum/e68a88939e0f06e34d2bc911f09b70890289c8fd.ttf | Bin 0 ->
- 2192 bytes
+ .../sha1sum/e68a88939e0f06e34d2bc911f09b70890289c8fd.ttf | Bin 0 -> 2192 bytes
test/shaping/tests/use-syllable.tests | 3 +++
3 files changed, 5 insertions(+), 1 deletion(-)
Date: Fri Jul 14 16:38:51 2017 +0100
[use] Fix shaping of U+AA29 CHAM VOWEL SIGN AA
-
+
Part of https://github.com/behdad/harfbuzz/issues/376
Also see https://github.com/roozbehp/unicode-data/issues/6
-
+
Test added, using NotoSansCham built from Noto Phase III sources.
src/gen-arabic-table.py | 2 +-
src/gen-use-table.py | 8 +++++---
src/hb-ot-shape-complex-use-table.cc | 4 ++--
test/shaping/Makefile.am | 1 +
- .../sha1sum/96490dd2ff81233b335a650e7eb660e0e7b2eeea.ttf | Bin 0 ->
- 1368 bytes
+ .../sha1sum/96490dd2ff81233b335a650e7eb660e0e7b2eeea.ttf | Bin 0 -> 1368 bytes
test/shaping/tests/use-syllable.tests | 1 +
7 files changed, 11 insertions(+), 7 deletions(-)
src/hb-ot-shape-complex-indic-private.hh | 2 +-
src/hb-ot-shape-complex-indic.cc | 8 ++++++++
test/shaping/Makefile.am | 1 +
- .../sha1sum/54674a3111d209fb6be0ed31745314b7a8d2c244.ttf | Bin 0 ->
- 1352 bytes
+ .../sha1sum/54674a3111d209fb6be0ed31745314b7a8d2c244.ttf | Bin 0 -> 1352 bytes
test/shaping/tests/indic-syllable.tests | 1 +
5 files changed, 11 insertions(+), 1 deletion(-)
Date: Fri Jul 14 14:14:35 2017 +0100
[indic] Disable automatic ZWNJ handling for Indic features
-
+
Fixes https://github.com/behdad/harfbuzz/issues/294
-
+
Also fixes a bunch of other Indic issues. Test results after:
-
+
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366355 out of 366457 tests passed. 102 failed (0.0278341%)
GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%)
KANNADA: 951201 out of 951913 tests passed. 712 failed (0.0747968%)
KHMER: 299071 out of 299124 tests passed. 53 failed (0.0177184%)
- MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed
- (0.0188871%)
+ MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
-
+
Before:
-
+
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%)
GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%)
KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%)
KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%)
- MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed
- (0.0188871%)
+ MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
src/hb-ot-shape-complex-indic.cc | 4 ++--
test/shaping/Makefile.am | 1 +
- .../sha1sum/f443753e8ffe8e8aae606cfba158e00334b6efb1.ttf | Bin 0 ->
- 3972 bytes
+ .../sha1sum/f443753e8ffe8e8aae606cfba158e00334b6efb1.ttf | Bin 0 -> 3972 bytes
test/shaping/tests/indic-joiners.tests | 2 ++
4 files changed, 5 insertions(+), 2 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Fri Jul 14 12:43:34 2017 +0100
- [indic] Add infrastructure to disable ZWNJ-skipping in
- context-matching
-
+ [indic] Add infrastructure to disable ZWNJ-skipping in context-matching
+
Not used yet.
- src/hb-ot-layout-gsubgpos-private.hh | 45
- ++++++++++++++++++++----------------
+ src/hb-ot-layout-gsubgpos-private.hh | 45 ++++++++++++++++++++----------------
src/hb-ot-layout.cc | 1 +
src/hb-ot-map-private.hh | 10 +++++---
src/hb-ot-map.cc | 8 +++++--
Date: Fri Jul 14 13:14:55 2017 +0200
Shaping tests for Tibetan vowels (#446)
-
+
* Shaping tests for Tibetan vowels
-
- * Test-cases for the Dzongkha contractions with multiple vowel-signs
- added.
-
+
+ * Test-cases for the Dzongkha contractions with multiple vowel-signs added.
+
* going to be removed
-
- * Extended contraction-test-cases to all test cases in
- contractions.txt that actually use multiple-vowels (113 cases)
+
+ * Extended contraction-test-cases to all test cases in contractions.txt that actually use multiple-vowels (113 cases)
test/shaping/Makefile.am | 3 ++
- .../2de1ab4907ab688c0cfc236b0bf51151db38bf2e.ttf | Bin 0 -> 125256
- bytes
+ .../2de1ab4907ab688c0cfc236b0bf51151db38bf2e.ttf | Bin 0 -> 125256 bytes
.../82f4f3b57bb55344e72e70231380202a52af5805.ttf | Bin 0 -> 11116 bytes
- .../a02a7f0ad42c2922cb37ad1358c9df4eb81f1bca.ttf | Bin 0 -> 106096
- bytes
- test/shaping/tests/tibetan-contractions-1.tests | 60
- +++++++++++++++++++++
- test/shaping/tests/tibetan-contractions-2.tests | 53
- ++++++++++++++++++
+ .../a02a7f0ad42c2922cb37ad1358c9df4eb81f1bca.ttf | Bin 0 -> 106096 bytes
+ test/shaping/tests/tibetan-contractions-1.tests | 60 +++++++++++++++++++++
+ test/shaping/tests/tibetan-contractions-2.tests | 53 ++++++++++++++++++
test/shaping/tests/tibetan-vowels.tests | 11 ++++
7 files changed, 127 insertions(+)
Date: Fri Jul 14 13:14:23 2017 +0200
Fix for reordering of Tibetan vowel u (#443)
-
+
* Undone change for Tibetan vowel u
-
+
* removed comment on reordering that became invalid with roll-back
-
+
* Support for Dzongkha contractions with multiple vowel-signs
-
- * Removed non-functional and unnecessary defines for
- HB_MODIFIED_COMBINING_CLASS_CCC138,140
+
+ * Removed non-functional and unnecessary defines for HB_MODIFIED_COMBINING_CLASS_CCC138,140
src/hb-unicode-private.hh | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
Date: Wed Jun 21 22:19:57 2017 +0800
Win32/NMake builds: Support builds from GIT (#498)
-
+
Add Python scripts to generate the full win32/config.h.win32 and
src/hb-version.h which can be used to build directly from a GIT
- checkout. Since the scripts are currently intended for building
- from a
+ checkout. Since the scripts are currently intended for building from a
GIT checkout, these are not distributed in the release tarballs.
-
- Also, support the re-build of Ragel-generated .hh headers using
- the NMake
- build system, and allow one to specify the path of the Ragel
- executable
+
+ Also, support the re-build of Ragel-generated .hh headers using the NMake
+ build system, and allow one to specify the path of the Ragel executable
if a suitable one cannot be found in the PATH.
-
- Update the Win32/NMake build documentation to let people know
- about how
+
+ Update the Win32/NMake build documentation to let people know about how
these mechanisms can be utilized.
win32/README.txt | 20 ++++++-
win32/create-lists-msvc.mak | 9 ++++
win32/generate-msvc.mak | 6 +++
win32/info-msvc.mak | 8 ++-
- win32/pc_base.py | 124
- ++++++++++++++++++++++++++++++++++++++++++++
- win32/replace.py | 115
- ++++++++++++++++++++++++++++++++++++++++
+ win32/pc_base.py | 124 ++++++++++++++++++++++++++++++++++++++++++++
+ win32/replace.py | 115 ++++++++++++++++++++++++++++++++++++++++
win32/setup.py | 62 ++++++++++++++++++++++
9 files changed, 353 insertions(+), 3 deletions(-)
src/hb-ot-shape-complex-indic.cc | 12 +++++-----
src/hb-ot-shape-complex-myanmar.cc | 2 +-
src/hb-ot-shape-complex-thai.cc | 12 +++++-----
- src/hb-ot-shape-complex-use-table.cc | 42
- ++++++++++++++++-----------------
+ src/hb-ot-shape-complex-use-table.cc | 42 ++++++++++++++++-----------------
src/hb-unicode-private.hh | 16 ++++++-------
src/hb-utf-private.hh | 18 +++++++-------
15 files changed, 110 insertions(+), 86 deletions(-)
Date: Mon May 29 12:53:30 2017 -0500
Avoid using strdup inside library. (#488)
-
+
If an application provides a malloc replacement through
hb_malloc_impl() it is important that it is used to allocate
everything, but the use of strdup() circumvents this and
Date: Wed May 17 21:32:47 2017 +0300
Do not skip TAG characters in glyph substitution (#487)
-
+
Hide them like Mongolian Free Variation Selectors instead.
-
+
Fixes https://github.com/behdad/harfbuzz/issues/463
src/hb-ot-layout-gsubgpos-private.hh | 2 +-
- src/hb-ot-layout-private.hh | 13
- +++++++++----
+ src/hb-ot-layout-private.hh | 13 +++++++++----
test/shaping/Makefile.am | 1 +
- .../sha1sum/53374c7ca3657be37efde7ed02ae34229a56ae1f.ttf | Bin 0 ->
- 5044 bytes
+ .../sha1sum/53374c7ca3657be37efde7ed02ae34229a56ae1f.ttf | Bin 0 -> 5044 bytes
test/shaping/tests/emoji-flag-tags.tests | 2 ++
5 files changed, 13 insertions(+), 5 deletions(-)
[cmake] Final touches (#473)
- CMakeLists.txt | 113
- +++++++++++++++++++++++++++------------------------------
+ CMakeLists.txt | 113 +++++++++++++++++++++++++++------------------------------
1 file changed, 54 insertions(+), 59 deletions(-)
commit aacca37590656e235218557ea509eb5624dfbff9
Date: Mon Apr 17 23:25:24 2017 -0700
Fix clang -Wcomma warnings (#471) (#472)
-
+
clang's new -Wcomma compiler option warns about possible misuse of the
comma operator such as between two statements.
-
+
hb-common.cc:190:9 [-Wcomma] possible misuse of comma operator here
hb-ot-layout-gsubgpos-private.hh:345:30 [-Wcomma] possible misuse of
comma operator here
- hb-shape-plan.cc:438:26 [-Wcomma] possible misuse of comma operator
- here
+ hb-shape-plan.cc:438:26 [-Wcomma] possible misuse of comma operator here
src/hb-common.cc | 6 ++++--
src/hb-ot-layout-gsubgpos-private.hh | 2 +-
Author: ebraminio <ebrahim@gnu.org>
Date: Mon Apr 17 15:53:46 2017 +0430
- [cmake] Remove HB_DISABLE_DEPRECATED as it seems needed for pango
- build (#470)
+ [cmake] Remove HB_DISABLE_DEPRECATED as it seems needed for pango build (#470)
CMakeLists.txt | 2 --
1 file changed, 2 deletions(-)
Date: Mon Apr 17 01:33:42 2017 -0400
Use absolute paths of ragel generated headers (#467)
-
+
https://github.com/behdad/harfbuzz/issues/455
src/Makefile.am | 4 ++--
Date: Tue Apr 11 22:29:13 2017 +0100
Blacklist GDEF table in additional Tahoma versions. (#459)
-
- There are more broken versions of Tahoma out there on various
- Windows releases,
+
+ There are more broken versions of Tahoma out there on various Windows releases,
so we need to add them to our blacklist to avoid broken rendering.
See https://bugzilla.mozilla.org/show_bug.cgi?id=1279925 for details.
[cmake] Improve third party libraries support (#461)
- CMakeLists.txt | 57
- ++++++++++++++++++++++++++++++++++++--------
+ CMakeLists.txt | 57 ++++++++++++++++++++++++++++++++++++--------
src/hb-ucdn/Makefile.sources | 5 +++-
2 files changed, 51 insertions(+), 11 deletions(-)
[cmake] Add utils build support (#460)
- CMakeLists.txt | 150
- +++++++++++++++++++++++++++++++++++++++++----------------
+ CMakeLists.txt | 150 +++++++++++++++++++++++++++++++++++++++++----------------
1 file changed, 108 insertions(+), 42 deletions(-)
commit bc1244e2395f844b2b41315cb1eef29570e46b29
Date: Thu Apr 6 18:44:28 2017 +0800
NMake Makefiles: Fix ICU builds
-
+
Fix the check conditions in config-msvc.mak and info-msvc.mak so that
- the ICU items does indeed get built into the HarfBuzz main DLL,
- and that
+ the ICU items does indeed get built into the HarfBuzz main DLL, and that
the correct configuration info is displayed.
-
- Also update the checks in detectenv-msvc.mak so that we can detect
- that
+
+ Also update the checks in detectenv-msvc.mak so that we can detect that
we are using Visual Studio 2017 (although the 2015-built binaries use
the same CRT DLL as the 2017 ones).
Author: ebraminio <ebrahim@gnu.org>
Date: Wed Apr 5 02:21:23 2017 -0700
- Split ragel generated files lists and remove hardcoded rl files lists
- (#453)
+ Split ragel generated files lists and remove hardcoded rl files lists (#453)
- CMakeLists.txt | 126
- +++++++++++++++++++++-----------------------------
+ CMakeLists.txt | 126 +++++++++++++++++++++-----------------------------
src/Makefile.am | 2 +
src/Makefile.sources | 16 +++++--
win32/config-msvc.mak | 8 ++--
Add CMake build support (#444)
- CMakeLists.txt | 254
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ CMakeLists.txt | 254 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Makefile.am | 1 +
appveyor.yml | 61 +++++++++-----
3 files changed, 295 insertions(+), 21 deletions(-)
Date: Mon Apr 3 12:22:39 2017 +0100
avoid UBSan warning in get_stage_lookups (#450)
-
+
See https://bugzilla.mozilla.org/show_bug.cgi?id=1336600
src/hb-ot-map-private.hh | 2 +-
Author: Dominik Schloesser <dsc@dosc.net>
Date: Sun Mar 26 09:22:34 2017 +0200
- Current fonttools (3.9.1) generate subset-file called font.subset.ttf
- instead of older font.ttf.subset
+ Current fonttools (3.9.1) generate subset-file called font.subset.ttf instead of older font.ttf.subset
test/shaping/record-test.sh | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
Date: Sun Mar 26 10:48:53 2017 +0200
[tools] Make hb-unicode-code work with Python 3
-
+
Related to https://github.com/behdad/harfbuzz/pull/445
test/shaping/hb_test_tools.py | 13 ++++++++++++-
Date: Fri Mar 24 10:24:52 2017 -0700
Blacklist more versions of Padauk
-
+
Patch from Phil Race.
src/hb-ot-layout.cc | 8 ++++++++
Date: Thu Mar 23 00:35:36 2017 +0200
[ci] Fix msys2 build on AppVeyor
-
- For whatever reason the env variables need to be the Windows way
- or they
+
+ For whatever reason the env variables need to be the Windows way or they
end up being empty.
appveyor.yml | 2 +-
Date: Fri Feb 24 17:58:25 2017 +0800
src/hb-common.cc: Fix build on older Visual Studio
-
- Visual Studio only supported strtof() from Visual Studio 2013
- onwards, so
- use strtod() instead to do the operation, which should do the
- same thing,
+
+ Visual Studio only supported strtof() from Visual Studio 2013 onwards, so
+ use strtod() instead to do the operation, which should do the same thing,
sans going to a double, not a float.
src/hb-common.cc | 4 ++++
Date: Fri Feb 24 17:47:44 2017 +0800
Visual Studio builds: Fix Introspection when UCDN enabled
-
+
The sources in src/hb-ucdn and not included correctly into the NMake
- Makefiles, as we need their explicit relative location as we pass
- all the
+ Makefiles, as we need their explicit relative location as we pass all the
sources we used into the introspection scanner. This was not an issue
before as we excluded the UCDN sources in the build when we enabled
introspection (meaning GLib is enabled), but since we default on using
- UCDN on all builds unless explicitly disabled, we need to deal
- with this.
-
- This did not affect builds using UCDN without introspection due to
- the use
+ UCDN on all builds unless explicitly disabled, we need to deal with this.
+
+ This did not affect builds using UCDN without introspection due to the use
of NMake batch rules.
-
- Fix this by creating a NMake Makefile module on-the-fly with the
- correct
+
+ Fix this by creating a NMake Makefile module on-the-fly with the correct
subdir info, and using that list in there instead.
win32/Makefile.vc | 15 +++++++++++++++
Date: Thu Feb 23 13:02:49 2017 +0800
Update Visual Studio builds for UCDN usage
-
+
We now use UCDN by default, so make it so in the build files; however
don't hardcode HAVE_UCDN as one may still opt not to use it (but pass
- it in as a CFLAG unless one explicitly disables UCDN by using
- NO_UCDN=1
+ it in as a CFLAG unless one explicitly disables UCDN by using NO_UCDN=1
on the NMake command line).
-
+
Note that we are not blocking builds where UCDN is disabled along with
- GLib and ICU, as that will trigger a build error anyways which
- will tell
+ GLib and ICU, as that will trigger a build error anyways which will tell
the user what needs to be done to remedy this.
win32/README.txt | 6 +++---
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Fri Mar 10 13:23:02 2017 -0800
- Revert "Fix Context lookup application when moving back after a
- glyph delete"
-
+ Revert "Fix Context lookup application when moving back after a glyph delete"
+
This reverts commit b9b005f3a44ccf78a45b212b126287b69b9f4b40.
-
+
This introduced invalid access cases. Revert until I fix correctly.
src/hb-ot-layout-gsubgpos-private.hh | 7 ++++---
- .../sha1sum/5bbf3712e6f79775c66a4407837a90e591efbef2.ttf | Bin 6400 ->
- 0 bytes
+ .../sha1sum/5bbf3712e6f79775c66a4407837a90e591efbef2.ttf | Bin 6400 -> 0 bytes
test/shaping/tests/context-matching.tests | 1 -
3 files changed, 4 insertions(+), 4 deletions(-)
Date: Tue Mar 7 18:13:28 2017 -0800
Fix buffer serialize of empty buffer
-
+
Ouch!
src/hb-buffer-serialize.cc | 2 ++
BASE: start api
src/Makefile.sources | 2 ++
- src/hb-ot-base.cc | 58
- ++++++++++++++++++++++++++++++++++++++++++
- src/hb-ot-base.h | 56
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-base.cc | 58 ++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-base.h | 56 ++++++++++++++++++++++++++++++++++++++++
src/hb-ot-layout-base-table.hh | 15 ++---------
4 files changed, 118 insertions(+), 13 deletions(-)
Date: Wed Mar 1 14:27:23 2017 -0800
Fix Context lookup application when moving back after a glyph delete
-
+
This was broken forever, since days that we did not allow moving
tape backwards. Works now. Reported by Doug Felt.
src/hb-ot-layout-gsubgpos-private.hh | 7 +++----
- .../sha1sum/5bbf3712e6f79775c66a4407837a90e591efbef2.ttf | Bin 0 ->
- 6400 bytes
+ .../sha1sum/5bbf3712e6f79775c66a4407837a90e591efbef2.ttf | Bin 0 -> 6400 bytes
test/shaping/tests/context-matching.tests | 1 +
3 files changed, 4 insertions(+), 4 deletions(-)
BASE: first complete version
- src/hb-ot-layout-base-table.hh | 444
- +++++++++++++++++++++++++++++------------
+ src/hb-ot-layout-base-table.hh | 444 +++++++++++++++++++++++++++++------------
1 file changed, 317 insertions(+), 127 deletions(-)
commit a11501444cfc4854bfe2b1d3ce0fc5a957e959d8
Add few tests found by libFuzzer and oss-fuzz
- .../sha1sum/a34a9191d9376bda419836effeef7e75c1386016.ttf | Bin 0 ->
- 1010 bytes
- .../sha1sum/a69118c2c2ada48ff803d9149daa54c9ebdae30e.ttf | Bin 0 ->
- 820 bytes
- .../sha1sum/b6acef662e0beb8d5fcf5b61c6b0ca69537b7402.ttf | Bin 0 ->
- 3301 bytes
- .../sha1sum/e88c339237f52d21e01c55f01b9c1b4cc14a0467.ttf | Bin 0 ->
- 515 bytes
+ .../sha1sum/a34a9191d9376bda419836effeef7e75c1386016.ttf | Bin 0 -> 1010 bytes
+ .../sha1sum/a69118c2c2ada48ff803d9149daa54c9ebdae30e.ttf | Bin 0 -> 820 bytes
+ .../sha1sum/b6acef662e0beb8d5fcf5b61c6b0ca69537b7402.ttf | Bin 0 -> 3301 bytes
+ .../sha1sum/e88c339237f52d21e01c55f01b9c1b4cc14a0467.ttf | Bin 0 -> 515 bytes
test/shaping/tests/fuzzed.tests | 4 ++++
5 files changed, 4 insertions(+)
Date: Sat Feb 25 13:30:38 2017 -0800
Fix buffer-overrun with Bengali reph positioning code
-
+
This has no security implications whatsoever since we always keep
and extra element at the end of buffer, just in case.
-
+
Discovered by oss-fuzz
CC https://github.com/behdad/harfbuzz/issues/139
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=660
BASE: WIP: more access functions
- src/hb-ot-layout-base-table.hh | 212
- +++++++++++++++++++++++++++++++++++++----
+ src/hb-ot-layout-base-table.hh | 212 +++++++++++++++++++++++++++++++++++++----
1 file changed, 191 insertions(+), 21 deletions(-)
commit 6685d281d6f50bf046bbfef4a5263e15d15f2f02
BASE: align member's names
- src/hb-ot-layout-base-table.hh | 70
- +++++++++++++++++++++---------------------
+ src/hb-ot-layout-base-table.hh | 70 +++++++++++++++++++++---------------------
1 file changed, 35 insertions(+), 35 deletions(-)
commit 499b4bef2a5b6d49374ab4977509d1fbf7bd6038
BASE: more consistent naming (with spec and Harfbuzz code base)
- src/hb-ot-layout-base-table.hh | 44
- +++++++++++++++++++++---------------------
+ src/hb-ot-layout-base-table.hh | 44 +++++++++++++++++++++---------------------
1 file changed, 22 insertions(+), 22 deletions(-)
commit a0bdd546c584eb7c7ea3ca7e19a178723e6fe77f
BASE: sanitize
- src/hb-ot-layout-base-table.hh | 151
- ++++++++++++++++++++++++++++++++++++++++-
+ src/hb-ot-layout-base-table.hh | 151 ++++++++++++++++++++++++++++++++++++++++-
1 file changed, 148 insertions(+), 3 deletions(-)
commit a657f23ca31237d652b5c101ed24194b6aeadaf8
Date: Mon Feb 20 21:52:07 2017 +0200
Blacklist another instance of Padauk (#419)
-
+
In https://crbug.com/681813 another instance of Padauk was identified
triggering collapsed glyphs. Blacklist this version by patching
hb-ot-layout.cc to print out gdef, gsub, and gpos table length, then
compile, move into hb-ot-layout.cc
src/hb-ot-font.cc | 1 -
- src/hb-ot-layout-base-table.hh | 57
- +++++++++++++++++++++++++++++++-----------
+ src/hb-ot-layout-base-table.hh | 57 +++++++++++++++++++++++++++++++-----------
src/hb-ot-layout.cc | 1 +
3 files changed, 43 insertions(+), 16 deletions(-)
Date: Sun Feb 19 08:48:22 2017 +0100
hb-ot-base-table.hh -> hb-ot-layout-base-table.hh
-
- per
- https://github.com/behdad/harfbuzz/issues/418#issuecomment-280873811
+
+ per https://github.com/behdad/harfbuzz/issues/418#issuecomment-280873811
src/Makefile.sources | 2 +-
src/hb-ot-font.cc | 2 +-
bootstraping structure
src/Makefile.sources | 1 +
- src/hb-ot-base-table.hh | 238
- ++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-base-table.hh | 238 ++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-font.cc | 1 +
src/hb-ot-layout-private.hh | 2 +
4 files changed, 242 insertions(+)
Date: Fri Feb 17 03:03:24 2017 +0000
Guard against underflow when adjusting length (#421)
-
+
* Guard against underflow when adjusting length
-
- With the fuzz-testcase in mozilla bug 1295299, we end up with a
- recursed lookup that removes 3 items, when `match_positions[idx]`
- is 0, which results in (unsigned) `end` wrapping to a huge value.
-
+
+ With the fuzz-testcase in mozilla bug 1295299, we end up with a recursed lookup that removes 3 items, when `match_positions[idx]` is 0, which results in (unsigned) `end` wrapping to a huge value.
+
Making `end` a signed int is probably the simplest route to a fix.
-
+
Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1295299.
-
+
* Add testcase for #421.
src/hb-ot-layout-gsubgpos-private.hh | 6 +++---
- .../sha1sum/558661aa659912f4d30ecd27bd09835171a8e2b0.ttf | Bin 0 ->
- 1358 bytes
+ .../sha1sum/558661aa659912f4d30ecd27bd09835171a8e2b0.ttf | Bin 0 -> 1358 bytes
test/shaping/tests/fuzzed.tests | 1 +
3 files changed, 4 insertions(+), 3 deletions(-)
Author: jfkthame <jfkthame@gmail.com>
Date: Thu Feb 16 17:40:21 2017 +0000
- [indic] Add support for Grantha marks that may be used in Tamil to
- th… (#401)
-
- * [indic] Add support for Grantha marks that may be used in Tamil
- to the Indic table.
-
+ [indic] Add support for Grantha marks that may be used in Tamil to th… (#401)
+
+ * [indic] Add support for Grantha marks that may be used in Tamil to the Indic table.
+
See https://bugzilla.mozilla.org/show_bug.cgi?id=1331339.
-
+
Testcase: U+0BA4,U+0BC6,U+1133c,U+0BAA,U+1133c,U+0BC6,U+1133c
-
- * [indic] Add test for Grantha nukta that is allowed in Tamil by
- ScriptExtensions.txt
+
+ * [indic] Add test for Grantha nukta that is allowed in Tamil by ScriptExtensions.txt
src/hb-ot-shape-complex-indic-table.cc | 7 +++++++
- .../sha1sum/3493e92eaded2661cadde752a39f9d58b11f0326.ttf | Bin 0 ->
- 1400 bytes
+ .../sha1sum/3493e92eaded2661cadde752a39f9d58b11f0326.ttf | Bin 0 -> 1400 bytes
test/shaping/tests/indic-script-extensions.tests | 1 +
3 files changed, 8 insertions(+)
Date: Wed Feb 8 14:36:18 2017 -0800
Merge pull request #357 from khaledhosny/graphite-scale
-
+
[graphite] Fix shaping with varying font sizes
commit 7c47474f209bdf84cf87844c277ed711cad78196
Date: Wed Feb 8 14:33:28 2017 -0800
Set LC_ALL instead of LANG when creating harfbuzz.def
-
+
Hopefully fixes Travis faliure?
https://github.com/behdad/harfbuzz/pull/413#issuecomment-278481882
https://travis-ci.org/khaledhosny/harfbuzz/jobs/199785332#L1065
Date: Wed Feb 8 21:56:57 2017 +0000
hb-font: Fix a potentially undefined use of memcmp() (#413)
-
- While it’s fine to call memcmp(x, 0, 0) in practice, the C99
- standard
+
+ While it’s fine to call memcmp(x, 0, 0) in practice, the C99 standard
explicitly says that this is not allowed: even if the length is zero,
the pointer arguments must be valid.
-
+
http://stackoverflow.com/a/16363034
-
+
Coverity ID: 141178
-
+
Signed-off-by: Philip Withnall <withnall@endlessm.com>
src/hb-font.cc | 3 ++-
Date: Tue Feb 7 18:25:12 2017 -0800
Update ax_pthread.m4 to latest upstream version
-
+
Might help with https://github.com/behdad/harfbuzz/issues/399
- m4/ax_pthread.m4 | 394
- ++++++++++++++++++++++++++++++++++++++++---------------
+ m4/ax_pthread.m4 | 394 ++++++++++++++++++++++++++++++++++++++++---------------
1 file changed, 285 insertions(+), 109 deletions(-)
commit a6ced90efccf869defc0b310effca220f01cf318
Date: Wed Feb 8 02:18:33 2017 +0000
test: Fix some memory leaks in test-font.c (#409)
-
+
Coverity IDs: 141039, 141040, 141041
test/api/test-font.c | 35 ++++++++++++++++++++++++++++++-----
Date: Wed Feb 8 02:17:48 2017 +0000
util: Add missing field initialisers in constructor (#410)
-
+
Coverity ID: 141042
util/hb-shape.cc | 4 +++-
Date: Tue Feb 7 16:53:21 2017 -0800
Silence Coverity warning
-
+
Fixes https://github.com/behdad/harfbuzz/issues/408
src/hb-ot-shape-complex-arabic.cc | 2 +-
Date: Fri Feb 3 10:39:40 2017 -0800
Add new API hb_font_set_face()
-
+
For completeness.
src/hb-font.cc | 29 +++++++++++++++++++++++++++++
Author: jfkthame <jfkthame@gmail.com>
Date: Thu Feb 2 18:48:23 2017 +0000
- Add Win10 Anniversary Update version of Tahoma to GDEF
- blacklist. (#412)
+ Add Win10 Anniversary Update version of Tahoma to GDEF blacklist. (#412)
src/hb-ot-layout.cc | 4 ++++
1 file changed, 4 insertions(+)
Date: Wed Feb 1 11:57:21 2017 -0800
Minor
-
+
Fixes https://github.com/behdad/harfbuzz/issues/411
src/hb-fallback-shape.cc | 2 +-
Date: Thu Jan 26 14:50:14 2017 -0800
Route Adlam through Arabic shaper
-
+
Fixes joined Adlam rendering.
-
+
Fixes https://github.com/googlei18n/noto-fonts/issues/828
src/hb-ot-shape-complex-private.hh | 3 +++
test/shaping/Makefile.am | 1 +
- .../5dfad7735c6a67085f1b90d4d497e32907db4c78.ttf | Bin 0 ->
- 21160 bytes
+ .../5dfad7735c6a67085f1b90d4d497e32907db4c78.ttf | Bin 0 -> 21160 bytes
test/shaping/tests/arabic-like-joining.tests | 1 +
4 files changed, 5 insertions(+)
Date: Mon Jan 23 23:42:53 2017 -0800
[var] Implement MVAR table
-
+
Unhooked. Untested.
src/Makefile.sources | 1 +
src/hb-font.cc | 2 +-
- src/hb-ot-var-mvar-table.hh | 110
- ++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-var-mvar-table.hh | 110 ++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-var.cc | 1 +
4 files changed, 113 insertions(+), 1 deletion(-)
Date: Mon Jan 23 17:55:31 2017 -0800
[var] Hook up advance variations to hb-ot-font
-
+
Yay, works!
src/hb-ot-font.cc | 6 +++++-
Date: Mon Jan 23 11:56:08 2017 -0800
[var] Implement DeltaSetIndexMap and advance delta fetching
-
+
Not hooked up to hb-ot-font yet.
src/hb-ot-layout-common-private.hh | 8 ++++++
- src/hb-ot-var-hvar-table.hh | 56
- ++++++++++++++++++++++++++++++++++++--
+ src/hb-ot-var-hvar-table.hh | 56 ++++++++++++++++++++++++++++++++++++--
2 files changed, 61 insertions(+), 3 deletions(-)
commit 7b399f73efa76cd97131fd123a9a1566f8639cfd
src/hb-ot-font.cc | 1 +
src/hb-ot-var-avar-table.hh | 1 -
src/hb-ot-var-fvar-table.hh | 1 -
- src/hb-ot-var-hvar-table.hh | 115
- ++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-var-hvar-table.hh | 115 ++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 117 insertions(+), 2 deletions(-)
commit b732c53eb5bd0c2cc86f35a9d9623c92579a0b8c
Date: Sun Jan 22 20:16:51 2017 -0800
[var] Remove HB_OT_TAG_fvar/avar
-
+
We're not going to define public macros for tags for tables.
There's little use to those and they are implementation detail.
Date: Sun Jan 22 19:41:33 2017 -0800
[var] Implement 'avar' table mapping
-
+
Untested!
src/hb-ot-math.cc | 2 --
- src/hb-ot-var-avar-table.hh | 46
- ++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-ot-var-avar-table.hh | 46 ++++++++++++++++++++++++++++++++++++++++++++-
src/hb-ot-var.cc | 23 +++++++++++++++--------
3 files changed, 60 insertions(+), 11 deletions(-)
[var] Flesh out --variations documentation
- util/options.cc | 53
- ++++++++++++++---------------------------------------
+ util/options.cc | 53 ++++++++++++++---------------------------------------
1 file changed, 14 insertions(+), 39 deletions(-)
commit 5ec96d30cad1592b5e468bd8ad1832dbaf0ad32b
Date: Sun Jan 22 18:52:00 2017 -0800
[var] Adjust API in prep for 'avar' implementation
-
+
The 'avar' table does not allow random access to axis maps,
so change API to avoid quadratic-time implementation.
-
+
Removed -hb_ot_var_normalize_axis_value(), added
+hb_ot_var_normalize_variations() and
+hb_ot_var_normalize_coords() instead.
docs/harfbuzz-sections.txt | 3 ++-
src/Makefile.sources | 1 +
src/hb-font.cc | 20 +++++---------------
- src/hb-ot-var.cc | 45
- +++++++++++++++++++++++++++++++++++++++------
+ src/hb-ot-var.cc | 45 +++++++++++++++++++++++++++++++++++++++------
src/hb-ot-var.h | 16 ++++++++++++----
5 files changed, 59 insertions(+), 26 deletions(-)
[var] Stub implementation of avar table
- src/hb-ot-var-avar-table.hh | 99
- +++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-var-avar-table.hh | 99 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 99 insertions(+)
commit 7647a05a0b37c53465560952b412db4e590f2716
Date: Sun Jan 22 16:41:45 2017 -0800
[hb-ft] Remove use of variable-length array
-
+
Hopefully also fixes build failure on msvc.
src/hb-ft.cc | 33 +++++++++++++++++++++------------
Date: Sat Jan 21 18:10:08 2017 -0800
[var] Hook up variations to FreeType face
-
+
hb-view correctly renders variations with ft font-funcs now.
hb-ot-font needs HVAR implementation.
Date: Sat Jan 21 17:51:41 2017 -0800
[util] Add --variations
-
- Is hooked up to the font, but not to FreeType, so raster doesn't
- show yet.
-
+
+ Is hooked up to the font, but not to FreeType, so raster doesn't show yet.
+
Documentation needs to be done.
- util/options.cc | 91
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ util/options.cc | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
util/options.hh | 8 ++++-
2 files changed, 98 insertions(+), 1 deletion(-)
Date: Sat Jan 21 17:41:37 2017 -0800
[var] Rename var_coord to variation
-
+
Looks much better.
src/hb-common.cc | 36 ++++++++++++++++++------------------
[var] Add hb_var_coord_t and parsing routines
- src/hb-common.cc | 94
- +++++++++++++++++++++++++++++++++++++++++++++++++++++---
+ src/hb-common.cc | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
src/hb-common.h | 15 ++++++++-
2 files changed, 103 insertions(+), 6 deletions(-)
Move code around
- src/hb-common.cc | 250
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-common.cc | 250 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-common.h | 18 ++++
- src/hb-shape.cc | 248
- ------------------------------------------------------
+ src/hb-shape.cc | 248 ------------------------------------------------------
src/hb-shape.h | 16 ----
4 files changed, 268 insertions(+), 264 deletions(-)
[var] Flesh out some more
src/Makefile.am | 2 ++
- src/hb-ot-var-fvar-table.hh | 69
- ++++++++++++++++++++++++++++++++-------------
+ src/hb-ot-var-fvar-table.hh | 69 ++++++++++++++++++++++++++++++++-------------
src/hb-ot-var.cc | 39 ++++++++++++++++++++++++-
src/hb-ot-var.h | 21 +++++++++-----
4 files changed, 104 insertions(+), 27 deletions(-)
[var] Flesh out a bit
- src/hb-ot-var-fvar-table.hh | 72
- ++++++++++++++++++++++++++++++++++++---------
+ src/hb-ot-var-fvar-table.hh | 72 ++++++++++++++++++++++++++++++++++++---------
src/hb-ot-var.h | 10 ++++++-
2 files changed, 67 insertions(+), 15 deletions(-)
Date: Thu Jan 19 19:35:48 2017 -0800
Start adding hb-ot-var.h and implementation
-
+
Supports enumerating variation axes, normalizing values, etc.
src/Makefile.sources | 3 +
src/hb-ot-layout-private.hh | 6 ++
src/hb-ot-layout.cc | 4 ++
- src/hb-ot-var-fvar-table.hh | 133
- ++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-var-fvar-table.hh | 133 ++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-var.cc | 63 +++++++++++++++++++++
src/hb-ot-var.h | 81 +++++++++++++++++++++++++++
src/hb-ot.h | 1 +
Date: Wed Jan 18 22:48:13 2017 +0200
[ot] Fix automatic fraction for RTL scripts (#405)
-
+
The numbers for right-to-left scripts are processed also from right to
- left, so the order of applying “numr” and “dnom” features
- should be
+ left, so the order of applying “numr” and “dnom” features should be
reversed in such case.
-
+
Fixes https://github.com/behdad/harfbuzz/issues/395
- src/hb-ot-shape.cc | 16
- ++++++++++++++--
+ src/hb-ot-shape.cc | 16 ++++++++++++++--
test/shaping/Makefile.am | 1 +
- .../15dfc433a135a658b9f4b1a861b5cdd9658ccbb9.ttf | Bin 0 ->
- 4936 bytes
+ .../15dfc433a135a658b9f4b1a861b5cdd9658ccbb9.ttf | Bin 0 -> 4936 bytes
test/shaping/tests/automatic-fractions.tests | 3 +++
4 files changed, 18 insertions(+), 2 deletions(-)
Date: Wed Jan 18 13:51:02 2017 +0100
Update language tags to OpenType 1.8.1 (#403)
-
+
Resolves https://github.com/behdad/harfbuzz/issues/324
- src/hb-ot-tag.cc | 77
- ++++++++++++++++++++++++++++++++++++++++++++------
+ src/hb-ot-tag.cc | 77 ++++++++++++++++++++++++++++++++++++++++++++------
test/api/test-ot-tag.c | 58 +++++++++++++++++++++++++++++++++++++
2 files changed, 126 insertions(+), 9 deletions(-)
Move lazy-loader to more generic place
- src/hb-open-type-private.hh | 47
- ++++++++++++++++++++++++++++++++++++++++++++
- src/hb-ot-font.cc | 48
- ++-------------------------------------------
+ src/hb-open-type-private.hh | 47 ++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-font.cc | 48 ++-------------------------------------------
2 files changed, 49 insertions(+), 46 deletions(-)
commit ac274331c285e1b42632870e150e1d66a9e21933
Date: Mon Jan 9 00:00:49 2017 -0800
Minor
-
+
Should be enough to get -hangul.cc out of SOURCES in Firefox build:
https://dxr.mozilla.org/mozilla-central/source/gfx/harfbuzz/src/moz.build
-
+
No one else should care!
src/hb-ot-shape-complex-hangul.cc | 2 +-
Date: Sun Jan 8 23:55:54 2017 -0800
[USE] Remove non-canonical decompositions
-
- We have had added this in Indic shaper to assist shaping these
- scripts.
+
+ We have had added this in Indic shaper to assist shaping these scripts.
In Universal Shaping Engine however, it is up to font designer to
decompose them. Hence moving them from Indic shaper to USE was
wrong.
-
+
Fixup for f6ba63b2e8eb577385f70758efdd3b8408c8a9cb
-
+
Part of fixing https://github.com/behdad/harfbuzz/issues/387
src/hb-ot-shape-complex-use.cc | 22 ----------------------
Date: Fri Nov 11 02:16:39 2016 +0200
[graphite] Stop creating unused gr_face
-
+
It is unused after previous commit, hb_graphite2_font_get_gr_font()
makes no sense now so deprecating it.
Date: Sun Oct 30 20:16:41 2016 +0200
[graphite] Fix shaping with varying font sizes
-
+
Shape using design units and scale the output.
-
+
See https://bugs.documentfoundation.org/show_bug.cgi?id=103403#c7
src/hb-graphite2.cc | 27 +++++++++++++++------------
Date: Thu Jan 5 20:20:06 2017 -0800
Add tests for USE using Marchen font and text
-
+
From http://www.babelstone.co.uk/Fonts/Marchen.html
test/shaping/Makefile.am | 1 +
.../85414f2552b654585b7a8d13dcc3e8fd9f7970a3.ttf | Bin 0 -> 66936 bytes
- test/shaping/tests/use-marchen.tests | 35
- +++++++++++++++++++++
+ test/shaping/tests/use-marchen.tests | 35 +++++++++++++++++++++
3 files changed, 36 insertions(+)
commit 53543f8b3e19456279c86f711feba42ce976668c
Date: Thu Jan 5 20:12:32 2017 -0800
Ship UCDN and use it by default
-
+
So we are not relying on version of Unicode data in glib...
-
+
Fixes https://github.com/behdad/harfbuzz/issues/386
Fixes https://github.com/behdad/harfbuzz/issues/388
src/Makefile.sources | 1 +
src/hb-ot-layout.cc | 244 ---------------------------------------------
- src/hb-ot-math.cc | 272
- +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-math.cc | 272 +++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 273 insertions(+), 244 deletions(-)
commit e053ccc5bb7268fe5900dd364d906638c58b2908
Date: Wed Dec 28 15:51:57 2016 -0500
Remove Android.mk
-
+
Android uses its own file these days and third-party developers should
be using the autotools-based system against Android NDK.
- Android.mk | 107
- ------------------------------------------------------------
+ Android.mk | 107 ------------------------------------------------------------
Makefile.am | 1 -
2 files changed, 108 deletions(-)
Date: Wed Dec 28 13:46:21 2016 -0500
Remove Tibetan decomposition rules from Indic shaper
-
+
The decomposition is very obscure and unlikely to help
any fonts. Just remove it since Uniscribe probably doesn't
do this either.
-
+
Fixes https://github.com/behdad/harfbuzz/issues/382
src/hb-ot-shape-complex-indic.cc | 4 ----
Date: Wed Dec 28 13:45:32 2016 -0500
Port decompositions from Indic to USE shaper
-
+
Part of https://github.com/behdad/harfbuzz/issues/382
src/hb-ot-shape-complex-indic.cc | 16 ----------------
Date: Mon Dec 26 14:11:59 2016 -0500
[indic] Remove Chakma decomposition rule from Indic shaper
-
+
This is now added to USE:
https://github.com/behdad/harfbuzz/pull/383
-
+
See:
https://github.com/behdad/harfbuzz/issues/381
https://github.com/behdad/harfbuzz/issues/382
Date: Mon Dec 26 14:52:08 2016 -0500
Revert "[indic] Remove redundant Chakma decomposition rule"
-
+
This reverts commit 805f76fc002d703acfcc4c5727f0b4d1baecefaa.
-
+
Need to investigate why having this rule (with the reversed order)
fixes decomposition as reported by punchcutter:
https://github.com/behdad/harfbuzz/issues/381#issuecomment-269237796
Date: Mon Dec 26 14:11:59 2016 -0500
[indic] Remove redundant Chakma decomposition rule
-
+
This was not used BTW since Chakma doesn't go through Indic shaper
anymore.
-
+
See:
https://github.com/behdad/harfbuzz/issues/381
https://github.com/behdad/harfbuzz/issues/382
Date: Sat Dec 24 02:46:37 2016 +0100
Compilation Error for ASSERT_STATIC on Some Compilers (#380)
-
+
* this pointer in type definitions is not interpreted as a constant.
- This rule is not enforced strictly by all compilers, but the Green
- Hills Software compiler will regard this as an error.
-
+ This rule is not enforced strictly by all compilers, but the Green Hills Software compiler will regard this as an error.
+
* Merging branches for the DEFINE_SIZE_UNION macro
- Adding check for the existence of static_size field in the tested
- member.
+ Adding check for the existence of static_size field in the tested member.
src/hb-open-type-private.hh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Thu Dec 22 14:40:19 2016 -0600
Disable OTL processing for Hebrew if GPOS doesn't have Hebrew subtable
-
+
New approach to fix this:
https://github.com/behdad/harfbuzz/commit/69f9fbc4200442a35484d3c790ae8f4979be5d60
-
+
Previous approach was reverted as it was too broad. See context:
https://github.com/behdad/harfbuzz/issues/347#issuecomment-267838368
-
- With U+05E9,U+05B8,U+05C1,U+05DC and Arial Unicode, we now (correctly)
- disable
- GDEF and GPOS, so we get results very close to Uniscribe, but
- slightly different
+
+ With U+05E9,U+05B8,U+05C1,U+05DC and Arial Unicode, we now (correctly) disable
+ GDEF and GPOS, so we get results very close to Uniscribe, but slightly different
since our fallback position logic is not exactly the same:
-
+
Before: [gid1166=3+991|gid1142=0+737|gid5798=0+1434]
After: [gid1166=3+991|gid1142=0@402,-26+0|gid5798=0+1434]
Uniscribe: [gid1166=3+991|gid1142=0@348,0+0|gid5798=0+1434]
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Dec 22 13:33:54 2016 -0600
- Revert "Synthesize GDEF glyph class for any glyph that does not have
- one in GDEF"
-
+ Revert "Synthesize GDEF glyph class for any glyph that does not have one in GDEF"
+
This reverts commit 69f9fbc4200442a35484d3c790ae8f4979be5d60.
-
- See
- https://github.com/behdad/harfbuzz/issues/347#issuecomment-268873401
+
+ See https://github.com/behdad/harfbuzz/issues/347#issuecomment-268873401
Fixes https://github.com/behdad/harfbuzz/issues/347
src/hb-ot-layout-gsub-table.hh | 22 ++--------------------
Date: Wed Dec 21 23:10:43 2016 -0600
Fix assert fail with contextual matching
-
+
As discovered by libFuzzer / Chromium fuzzing.
-
+
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=659496
CC https://github.com/behdad/harfbuzz/issues/139
src/hb-ot-layout-gsubgpos-private.hh | 6 +++++-
- .../sha1sum/217a934cfe15c548b572c203dceb2befdf026462.ttf | Bin 0 ->
- 1384 bytes
+ .../sha1sum/217a934cfe15c548b572c203dceb2befdf026462.ttf | Bin 0 -> 1384 bytes
test/shaping/tests/fuzzed.tests | 1 +
3 files changed, 6 insertions(+), 1 deletion(-)
Date: Wed Dec 21 15:51:28 2016 -0600
Avoid infinite loop in CoverageFormat2 iteration with bad fonts
-
+
Fixes https://github.com/behdad/harfbuzz/issues/363
src/hb-ot-layout-common-private.hh | 29 ++++++++++++++++++-----------
Date: Tue Dec 20 15:01:16 2016 -0600
Protect collect_glyphs() and closure() against malicious DDOS fonts
-
+
Fixes https://github.com/behdad/harfbuzz/issues/363
- src/hb-ot-layout-gsub-table.hh | 58
- ++++++++++++++++++++++++++++++++++--------
+ src/hb-ot-layout-gsub-table.hh | 58 ++++++++++++++++++++++++++++++++++--------
1 file changed, 48 insertions(+), 10 deletions(-)
commit 1c98ff87c76536553e53c131e75aba33033ee3a0
Date: Fri Sep 30 18:15:37 2016 +0900
Support building with older glib versions
-
+
It is desirable to be able to build against older versions of glib.
-
+
fd7a245 changed the configure check to require glib > 2.38 for
G_TEST_DIST. Before that, version 2.16 was required, but in fact,
since aafe395, G_PASTE is being used, which was introduced in 2.19.1.
And since 0ef179e2, hb-glib uses GBytes, which were introduced in
2.31.10.
-
+
2.19.1 is rather old, but 2.38 is rather new. For Firefox, building
against 2.22 is still supported, although we could probably get away
with bumping that to 2.28. Either way, GBytes is not available.
-
+
Arguably, if you build against a glib that doesn't support GBytes,
you're not going to use the hb_glib_blob_create function, so we hide
the function when building against such a glib.
-
+
As for G_TEST_DIST, when building against versions of glib that don't
support it, we can fallback to the previous behavior, which, AIUI, was
just making the test not work when building in a separate directory.
Date: Wed Dec 14 18:56:17 2016 +0100
Minor fixes to pacify Coverity code scan
-
+
Fixes https://github.com/behdad/harfbuzz/pull/377
src/hb-ot-font.cc | 6 +++++-
[dwrite] Provide an experimental API for justification (#279)
- src/hb-directwrite.cc | 48
- ++++++++++++++++++++++++++++++++++++++++--------
+ src/hb-directwrite.cc | 48 ++++++++++++++++++++++++++++++++++++++++--------
src/hb-directwrite.h | 4 ++++
2 files changed, 44 insertions(+), 8 deletions(-)
Date: Sat Sep 10 04:52:34 2016 -0700
[GX] Make FeatureVariations actually work
-
+
Yay!!!!
src/hb-ot-layout-common-private.hh | 19 +++++++------------
Date: Sat Sep 10 03:57:24 2016 -0700
[GX] Hook up feature variations
-
+
Shape-plan caching is not implemented.
src/hb-coretext.cc | 8 +++-
src/hb-ot-shape-private.hh | 6 ++-
src/hb-ot-shape.cc | 9 ++--
src/hb-shape-plan-private.hh | 9 +++-
- src/hb-shape-plan.cc | 102
- +++++++++++++++++++++++++++++++++++++++----
+ src/hb-shape-plan.cc | 102 +++++++++++++++++++++++++++++++++++++++----
src/hb-shape-plan.h | 19 ++++++++
src/hb-shape.cc | 5 ++-
src/hb-uniscribe.cc | 4 +-
Shuffle code around
- src/hb-ot-map.cc | 81
- ++++++++++++++++++++++++++++----------------------------
+ src/hb-ot-map.cc | 81 ++++++++++++++++++++++++++++----------------------------
1 file changed, 41 insertions(+), 40 deletions(-)
commit bde5e3959c0ffdb92db87668035b01aaee9b2352
Date: Sat Sep 10 02:43:20 2016 -0700
Move add_lookups from map to map-builder
-
+
In prep for more changes.
src/hb-ot-map-private.hh | 15 ++++++++-------
Date: Sat Sep 10 02:11:05 2016 -0700
[GX] Remove (partial) support for anisotropic variations
-
+
It doesn't always work, not part of FreeType, and we were not going
to expose it in the API anyway. Can always be added later.
Date: Sat Sep 10 01:24:28 2016 -0700
[GX] Implement Feature Variations
-
+
Not hooked up to shaper yet.
- src/hb-ot-layout-common-private.hh | 168
- ++++++++++++++++++++++++++++++++++-
+ src/hb-ot-layout-common-private.hh | 168 ++++++++++++++++++++++++++++++++++-
src/hb-ot-layout-gdef-table.hh | 1 -
src/hb-ot-layout-gpos-table.hh | 2 -
src/hb-ot-layout-gsub-table.hh | 2 -
Date: Sat Sep 10 00:25:16 2016 -0700
[GX] Fix another x/y thinko
-
+
Thanks Werner!
src/hb-ot-layout-common-private.hh | 2 +-
Date: Sat Sep 10 00:01:10 2016 -0700
[GX] Fix build with some compilers
-
- Eg.
- https://ci.appveyor.com/project/behdad/harfbuzz/build/1.0.48/job/o9mnd33kcdeeg30r
-
- hb-open-type-private.hh:103:29: error: static data member
- 'OT::Device::<anonymous union>::<anonymous struct>::static_size'
- in unnamed class [-fpermissive]
+
+ Eg. https://ci.appveyor.com/project/behdad/harfbuzz/build/1.0.48/job/o9mnd33kcdeeg30r
+
+ hb-open-type-private.hh:103:29: error: static data member 'OT::Device::<anonymous union>::<anonymous struct>::static_size' in unnamed class [-fpermissive]
src/hb-ot-layout-common-private.hh | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
Date: Fri Sep 9 22:23:34 2016 -0700
[GX] Add new API hb_font_set_var_coords_normalized()
-
+
Will probably change.
src/hb-font.cc | 23 +++++++++++++++++++++++
Date: Fri Sep 9 17:03:11 2016 -0700
[GX] Hook up GPOS to Variation Store stored in GDEF
-
+
Untested.
src/hb-ot-layout-common-private.hh | 22 ++++++++++----------
src/hb-ot-layout-gdef-table.hh | 27 +++++++++++++++---------
- src/hb-ot-layout-gpos-table.hh | 40
- ++++++++++++++++--------------------
+ src/hb-ot-layout-gpos-table.hh | 40 ++++++++++++++++--------------------
src/hb-ot-layout-gsubgpos-private.hh | 2 ++
4 files changed, 48 insertions(+), 43 deletions(-)
Date: Fri Sep 9 16:27:03 2016 -0700
[GX] Pass apply-context down to get_anchor()
-
+
Needed to access GDEF for varStore.
- src/hb-ot-layout-gpos-table.hh | 57
- ++++++++++++++++++++++--------------------
+ src/hb-ot-layout-gpos-table.hh | 57 ++++++++++++++++++++++--------------------
1 file changed, 30 insertions(+), 27 deletions(-)
commit f0c3fd8c9ab402be923fe0845fb51d99841829b6
Date: Fri Sep 9 16:22:45 2016 -0700
[GX] Add varStore member to GDEF
-
+
Still not hooked up from GPOS.
src/hb-ot-layout-gdef-table.hh | 17 ++++++++++++++---
Date: Fri Sep 9 15:40:15 2016 -0700
[GX] Port variation stuff to Variation Store design
-
+
Not hooked up to GDEF yet.
- src/hb-ot-layout-common-private.hh | 294
- +++++++++++++++++++++++--------------
+ src/hb-ot-layout-common-private.hh | 294 +++++++++++++++++++++++--------------
src/hb-ot-layout-gpos-table.hh | 2 +-
2 files changed, 184 insertions(+), 112 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Fri Sep 9 13:17:33 2016 -0700
- [GX] Revert "[GX] Add VariationAlternates, to allow conditional
- lookups in GSUB/GPOS"
-
+ [GX] Revert "[GX] Add VariationAlternates, to allow conditional lookups in GSUB/GPOS"
+
This reverts commit 2859f1c7174d6f7ae5dcf0db5411bc0182b21594.
We are going in a different direction.
src/hb-open-type-private.hh | 1 -
- src/hb-ot-layout-common-private.hh | 99
- +-------------------------------------
+ src/hb-ot-layout-common-private.hh | 99 +-------------------------------------
2 files changed, 2 insertions(+), 98 deletions(-)
commit bb4d2e6ed562c248fff15313a013d49e38a18789
Date: Fri Mar 18 15:52:24 2016 -0700
[GX] Add compact VariationDevice implementation
-
+
Add compact format that uses signed bytes instead of shorts.
src/hb-open-type-private.hh | 1 +
- src/hb-ot-layout-common-private.hh | 35
- ++++++++++++++++++++++++-----------
+ src/hb-ot-layout-common-private.hh | 35 ++++++++++++++++++++++++-----------
2 files changed, 25 insertions(+), 11 deletions(-)
commit 71b06fd392680b6fcfece60d8a83ba6c56eada09
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Sat Mar 12 23:49:09 2016 -0800
- [GX] Add VariationAlternates, to allow conditional lookups in
- GSUB/GPOS
-
+ [GX] Add VariationAlternates, to allow conditional lookups in GSUB/GPOS
+
Not hooked up to runtime yet.
src/hb-open-type-private.hh | 1 +
- src/hb-ot-layout-common-private.hh | 99
- +++++++++++++++++++++++++++++++++++++-
+ src/hb-ot-layout-common-private.hh | 99 +++++++++++++++++++++++++++++++++++++-
2 files changed, 98 insertions(+), 2 deletions(-)
commit 976eeb8e025e2b7601a91e661d6e9a88bf8afbd2
[GX] Hookup VariationDevice to Device table implementation
- src/hb-ot-layout-common-private.hh | 65
- +++++++++++++++++++++++++++++++++++++-
+ src/hb-ot-layout-common-private.hh | 65 +++++++++++++++++++++++++++++++++++++-
1 file changed, 64 insertions(+), 1 deletion(-)
commit a0c2366075fcb894212b9bf137e4dd34bb65537c
Date: Tue Mar 1 19:42:24 2016 +0900
[GX] Break out early if factor is zero
-
+
Also disable sanity-checking of variation records.
src/hb-ot-layout-common-private.hh | 9 ++++++++-
Date: Tue Mar 1 19:29:36 2016 +0900
[GX] Towards anisotropic interpolation
-
+
Also hookup to ValueRecord and Anchors.
src/hb-font-private.hh | 5 +++--
src/hb-font-private.hh | 10 ++++
src/hb-font.cc | 3 +
- src/hb-ot-layout-common-private.hh | 113
- +++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout-common-private.hh | 113 +++++++++++++++++++++++++++++++++++++
3 files changed, 126 insertions(+)
commit b843c6d8b66c2833cd35407ee494546465e6d775
Date: Sun Dec 4 20:28:38 2016 -0800
[hb-fuzzer] Get glyph extents for output glyphs
-
+
To exercise glyph-extents codepaths (glyf / CBLC+CBDT).
test/fuzzing/hb-fuzzer.cc | 13 +++++++++++++
[CBDT] Add test for fetching glyph extents
test/shaping/Makefile.am | 1 +
- .../sha1sum/ee39587d13b2afa5499cc79e45780aa79293bbd4.ttf | Bin 0 ->
- 3724 bytes
+ .../sha1sum/ee39587d13b2afa5499cc79e45780aa79293bbd4.ttf | Bin 0 -> 3724 bytes
test/shaping/tests/color-fonts.tests | 1 +
3 files changed, 2 insertions(+)
[cbdt] Move some more code around
- src/hb-ot-cbdt-table.hh | 61
- ++++++++++++++++++++++++++++++++++---------------
+ src/hb-ot-cbdt-table.hh | 61 ++++++++++++++++++++++++++++++++++---------------
src/hb-ot-font.cc | 18 ++++++---------
2 files changed, 49 insertions(+), 30 deletions(-)
Date: Sun Dec 4 18:56:24 2016 -0800
[cbdt] Fix sign bug
-
+
Was introduced in d495fc5e38038f4cfb20425b1109324fa70bf2f9
src/hb-ot-cbdt-table.hh | 2 +-
Date: Fri Dec 2 22:43:05 2016 -0800
[cbdt] Last of sanitization fixes
-
+
Should be all good now..
src/hb-ot-font.cc | 23 ++++++++++++++++-------
Date: Fri Dec 2 21:36:42 2016 -0800
[cbdt] Clean up some more
-
+
Almost there..
- src/hb-ot-cbdt-table.hh | 134
- +++++++++++++++++++++++++++++++++++++++++++-----
+ src/hb-ot-cbdt-table.hh | 134 +++++++++++++++++++++++++++++++++++++++++++-----
src/hb-ot-font.cc | 38 ++++----------
2 files changed, 131 insertions(+), 41 deletions(-)
[cbdt] More sanitize work
- src/hb-ot-cbdt-table.hh | 65
- +++++++++++++++++++++++++++++--------------------
+ src/hb-ot-cbdt-table.hh | 65 +++++++++++++++++++++++++++++--------------------
src/hb-ot-font.cc | 46 ++++++++++++++++++----------------
2 files changed, 63 insertions(+), 48 deletions(-)
[cbdt] Start fixing sanitization (or lack thereof)
- src/hb-ot-cbdt-table.hh | 77
- ++++++++++++++++++++++++++++++++++++-------------
+ src/hb-ot-cbdt-table.hh | 77 ++++++++++++++++++++++++++++++++++++-------------
src/hb-ot-font.cc | 22 +++++++-------
2 files changed, 68 insertions(+), 31 deletions(-)
Date: Fri Dec 2 15:03:50 2016 -0800
Introduce get_extent support for color bitmap font. (#351)
-
+
hb_font_get_glyph_extents now works for color bitmap fonts.
Currently only font having index format 1 and image format 17
is supported.
src/Makefile.sources | 1 +
- src/hb-ot-ebdt-table.hh | 193
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-ebdt-table.hh | 193 ++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-font.cc | 96 ++++++++++++++++++++++++
3 files changed, 290 insertions(+)
Author: Ebrahim Byagowi <ebrahim@gnu.org>
Date: Fri Oct 28 21:49:11 2016 +0330
- Fix "nmake install" when ADDITIONAL_LIB_DIR is provided and test it
- on CI (#356)
+ Fix "nmake install" when ADDITIONAL_LIB_DIR is provided and test it on CI (#356)
appveyor.yml | 1 +
win32/detectenv-msvc.mak | 4 ++--
[tests] Add tests for vertical origin with ft and ot font-funcs
- .../sha1sum/f9b1dd4dcb515e757789a22cb4241107746fd3d0.ttf | Bin 0 ->
- 1004 bytes
+ .../sha1sum/f9b1dd4dcb515e757789a22cb4241107746fd3d0.ttf | Bin 0 -> 1004 bytes
test/shaping/tests/vertical.tests | 2 ++
2 files changed, 2 insertions(+)
Fix vertical glyph origin with hb-ot-font
- src/hb-font-private.hh | 51
- ++++++++++++++++++++++++++++----------------------
+ src/hb-font-private.hh | 51 ++++++++++++++++++++++++++++----------------------
1 file changed, 29 insertions(+), 22 deletions(-)
commit b3b0816d5fc00298621f738cf400de60f8a42c5d
Date: Wed Oct 26 17:19:07 2016 +0200
Fix vertical font metrics
-
+
Ouch!
src/hb-font-private.hh | 4 ++--
Date: Tue Oct 25 00:31:36 2016 +0300
Merge pull request #352 from fred-wang/makefile-am
-
+
Remove inexistent file ttx file from test/api/Makefile.am
commit c3fa5d0e03b57be131c66ea8720806c946d0e10f
Date: Sat Oct 22 12:23:05 2016 +0330
Merge pull request #349 from ebraminio/mergebackvcpkgpatches
-
+
[ci] Enable hb-freetype on Windows build tests
commit 755a0c20798e3c3e6bb933a28e38f9667fccdadc
Date: Fri Oct 14 13:54:55 2016 +0330
Merge pull request #340 from ebraminio/nouniscribe
-
+
Make Uniscribe optional on nmake win32 builds
commit d8e2eb9ee0f47af7e90056d8db5949d10a88786a
Date: Sun Oct 9 09:06:05 2016 +0330
Make Uniscribe optional on nmake win32 builds
-
- Most of harfbuzz clients don't need Uniscribe and DirectWrite support
- at all
- as harfbuzz is a replacement for Uniscribe so Chromium and Firefox
- are using
+
+ Most of harfbuzz clients don't need Uniscribe and DirectWrite support at all
+ as harfbuzz is a replacement for Uniscribe so Chromium and Firefox are using
harfbuzz without them on Windows.
-
- This removal also helps win32 nmake clients to have reduced binary
- size and
+
+ This removal also helps win32 nmake clients to have reduced binary size and
libs count.
appveyor.yml | 2 +-
Date: Tue Oct 11 13:45:22 2016 -0700
Fix configure on iOS
-
+
Fixes https://github.com/behdad/harfbuzz/issues/342
configure.ac | 3 ++-
Date: Tue Oct 11 17:23:41 2016 +0330
Merge pull request #344 from ebraminio/fixmacci
-
+
[ci] Whitelist more symbols and unbreak mac CI
commit bef240b36ee9086b0d92e351e4c5118c0bbb5df6
Date: Mon Oct 10 17:27:52 2016 +0330
[ci] Whitelist more symbols and unbreak mac CI
-
+
Thanks to @khaledhosny, actually this is his work :)
src/check-symbols.sh | 4 ++--
Date: Tue Oct 4 14:53:17 2016 -0700
LFS (large file system?) support in hb-*shap*, hb-view
-
+
Fixes https://github.com/behdad/harfbuzz/issues/336
configure.ac | 3 +++
Date: Tue Sep 27 17:15:59 2016 +0200
Merge branch 'math'
-
+
Supercedes https://github.com/behdad/harfbuzz/pull/326
Fixes https://github.com/behdad/harfbuzz/pull/331
Date: Tue Sep 27 16:44:22 2016 +0200
[MATH] Rename hb_math_*_t types to hb_ot_math_*_t
-
+
With this, I believe MATH table API is not ready to be merged.
docs/harfbuzz-sections.txt | 6 +++---
Document API for MathVariants (#330)
- src/hb-ot-layout.cc | 56
- +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout.cc | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)
commit 8d622f1114d6a0eca1786b94c7fc1a0bcd87f74b
Add tests for get_mathvariant (#329)
- test/api/test-ot-math.c | 160
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ test/api/test-ot-math.c | 160 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 160 insertions(+)
commit f73a87d9a8c76a181794b74b527ea268048f78e3
Add tests for hb_ot_math_get_glyph_variants (#328)
- test/api/test-ot-math.c | 126
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ test/api/test-ot-math.c | 126 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 126 insertions(+)
commit f16bf6c2dacf5b9c82b2d1ffacc092cc396189a7
Author: Frédéric Wang <fred.wang@free.fr>
Date: Tue Sep 27 11:02:08 2016 +0200
- test-ot-math: Use different scales for vertical
- and horizontal directions and add test for
- hb_ot_math_get_min_connector_overlap. (#327)
+ test-ot-math: Use different scales for vertical and horizontal directions and add test for hb_ot_math_get_min_connector_overlap. (#327)
- test/api/test-ot-math.c | 81
- ++++++++++++++++++++++++++++++-------------------
+ test/api/test-ot-math.c | 81 ++++++++++++++++++++++++++++++-------------------
1 file changed, 49 insertions(+), 32 deletions(-)
commit bc19f7fe20e89823dba07a46c3d48c7406b781b6
[MATH] Enable tests for glyph-assembly italics-correction
- test/api/test-ot-math.c | 49
- ++++++++++++++++++++++++++++++-------------------
+ test/api/test-ot-math.c | 49 ++++++++++++++++++++++++++++++-------------------
1 file changed, 30 insertions(+), 19 deletions(-)
commit 86106c7528d9bff8de6bc3e1487be780c31ea4fd
src/hb-ot-layout.cc | 69 ++++----
src/hb-ot-math.h | 56 +++---
test/api/Makefile.am | 6 +-
- test/api/test-ot-layout-math.c | 382
- -----------------------------------------
- test/api/test-ot-math.c | 381
- ++++++++++++++++++++++++++++++++++++++++
+ test/api/test-ot-layout-math.c | 382 -----------------------------------------
+ test/api/test-ot-math.c | 381 ++++++++++++++++++++++++++++++++++++++++
6 files changed, 447 insertions(+), 457 deletions(-)
commit 1ba767cd4e3606beb9dc59806b83b1e61f5958d4
[MATH] Move API from hb-ot-layout.h to hb-ot-math.h
- src/hb-ot-layout.h | 52
- --------------------------------------------------
- src/hb-ot-math.h | 56
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout.h | 52 --------------------------------------------------
+ src/hb-ot-math.h | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot.h | 1 +
3 files changed, 57 insertions(+), 52 deletions(-)
[MATH] Wire up get_glyph_assembly()
- src/hb-ot-layout-math-table.hh | 64
- ++++++++++++++++++++++++++++++++++++++----
+ src/hb-ot-layout-math-table.hh | 64 ++++++++++++++++++++++++++++++++++++++----
src/hb-ot-layout.cc | 26 +++++++++--------
src/hb-ot-layout.h | 14 ++++-----
3 files changed, 81 insertions(+), 23 deletions(-)
[MATH] Wire up get_glyph_variants()
src/hb-font-private.hh | 11 ++-
- src/hb-ot-layout-math-table.hh | 178
- +++++++++++++++++++----------------------
+ src/hb-ot-layout-math-table.hh | 178 +++++++++++++++++++----------------------
src/hb-ot-layout.cc | 7 +-
src/hb-ot-layout.h | 2 +-
4 files changed, 95 insertions(+), 103 deletions(-)
src/hb-font-private.hh | 4 +++
src/hb-ot-layout-math-table.hh | 10 ++----
- src/hb-ot-layout.cc | 73
- +++++++++++++++---------------------------
+ src/hb-ot-layout.cc | 73 +++++++++++++++---------------------------
src/hb-ot-layout.h | 20 ++++++++++++
src/hb-ot-math.h | 18 +++++++++++
5 files changed, 71 insertions(+), 54 deletions(-)
MATH table: Add API to access math variants.
- src/hb-ot-layout-math-table.hh | 253
- +++++++++++++++++++++++++++++++-
+ src/hb-ot-layout-math-table.hh | 253 +++++++++++++++++++++++++++++++-
src/hb-ot-layout-private.hh | 10 ++
src/hb-ot-layout.cc | 54 +++++++
test/api/fonts/MathTestFontPartial4.otf | Bin 0 -> 14360 bytes
Date: Mon Sep 26 12:18:32 2016 +0100
[MATH] Clean up get_top_accent_attachment()
-
+
Note, the function now returns "half of horizontal advance width"
if top accent attachment for glyph is not explicitly defined.
This is what the spec requires. Updated tests.
[MATH] Clean up a bit more
src/hb-ot-layout-math-table.hh | 12 +--------
- src/hb-ot-layout.cc | 57
- ++++++++++++++++--------------------------
+ src/hb-ot-layout.cc | 57 ++++++++++++++++--------------------------
2 files changed, 22 insertions(+), 47 deletions(-)
commit 54c0cc38fba24fa4370231408ba121589b190a28
[MATH] Cleanup previous commit a bit
- src/hb-ot-layout-math-table.hh | 186
- ++++++++++++++++++++---------------------
+ src/hb-ot-layout-math-table.hh | 186 ++++++++++++++++++++---------------------
src/hb-ot-layout.cc | 30 +++----
src/hb-ot-layout.h | 14 ++--
3 files changed, 113 insertions(+), 117 deletions(-)
MATH Table: Add API to access glyph info.
- src/hb-ot-layout-math-table.hh | 271
- +++++++++++++++++++++++++++++++-
+ src/hb-ot-layout-math-table.hh | 271 +++++++++++++++++++++++++++++++-
src/hb-ot-layout.cc | 114 ++++++++++++++
src/hb-ot-layout.h | 18 +++
src/hb-ot-math.h | 7 +
MATH Table: Add API to access math contants.
src/Makefile.sources | 1 +
- src/hb-ot-layout-math-table.hh | 146
- +++++++++++++++++++++++++++++++++++-
+ src/hb-ot-layout-math-table.hh | 146 +++++++++++++++++++++++++++++++++++-
src/hb-ot-layout.cc | 25 ++++++
src/hb-ot-layout.h | 5 ++
src/hb-ot-math.h | 100 ++++++++++++++++++++++++
test/api/Makefile.am | 14 ++++-
test/api/fonts/MathTestFontEmpty.otf | Bin 0 -> 14320 bytes
test/api/fonts/MathTestFontNone.otf | Bin 0 -> 14284 bytes
- test/api/test-ot-layout-math.c | 98
- +++++++++++++++++++++++++++++++++++
+ test/api/test-ot-layout-math.c | 98 +++++++++++++++++++++++++++++++++++
9 files changed, 227 insertions(+), 1 deletion(-)
commit 02bfd965af588640250c47f344ad3096c8a373e0
Date: Mon Sep 12 10:22:15 2016 +0200
Update detectenv-msvc.mak (#316)
-
+
Windows x86 ARM capability
win32/detectenv-msvc.mak | 3 +++
Date: Wed Sep 7 23:56:57 2016 +0300
Do reconfigure the cascade list for Emoji font on OS X 10.9.5 (#313)
-
+
This seems to fix crash issues on 10.9.5 reported on Chrome, compare
crbug.com/549610
Date: Mon Sep 5 11:27:25 2016 +0300
Blacklist Padauk 2.80 and 3.00 (#311)
-
+
According to comments in issue #305 broken GDEF tables lead
to incorrect rendering of Latin characters. Blacklisting
this font.
Date: Thu Aug 18 22:33:14 2016 +0200
Merge pull request #303 from behdad/fonnapa
-
+
Support Americanist Phonetic Notation
commit e7ecbba2cc3c9369c5e7dc7296cb210018aca3bb
Date: Thu Aug 18 12:48:38 2016 +0200
Support Americanist Phonetic Notation
-
+
OpenType language system tag: `APPH`
https://www.microsoft.com/typography/otspec/languagetags.htm
-
+
IETF BCP47 variant tag: `fonnapa`
http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
Date: Thu Aug 18 13:59:38 2016 +0200
Merge pull request #302 from khaledhosny/master
-
+
[travis] Fix MacOS libtool issue
commit a0f1b44b6c0e3b1e6a1ba63dde2be22e0425353f
Date: Tue Aug 16 02:49:48 2016 +0200
[travis] Fix MacOS libtool issue
-
+
Reveals another MacOS build breakage in the Core Text shaper.
.travis.yml | 1 +
Date: Mon Aug 8 18:06:09 2016 -0700
Add tests for Chinese language tags
-
+
Using font from https://github.com/behdad/harfbuzz/issues/300
- .../sha1sum/6991b13ce889466be6de3f66e891de2bc0f117ee.ttf | Bin 0 ->
- 5596 bytes
- test/shaping/tests/language-tags.tests | 12
- ++++++++++++
+ .../sha1sum/6991b13ce889466be6de3f66e891de2bc0f117ee.ttf | Bin 0 -> 5596 bytes
+ test/shaping/tests/language-tags.tests | 12 ++++++++++++
2 files changed, 12 insertions(+)
commit 37f21bdbb75c98d741e749b7f1e0f367941aef4e
Date: Mon Aug 8 17:57:06 2016 -0700
Map Macao to ZHH lang tag
-
+
Fixes https://github.com/behdad/harfbuzz/issues/300
src/hb-ot-tag.cc | 3 ++-
Date: Mon Aug 8 17:28:54 2016 -0700
Limit bits-per-feature to eight
-
+
Limits number of alternatives per glyph per feature to 255, so be it.
- That's better than possibly breaking shaping because of one bad
- feature
+ That's better than possibly breaking shaping because of one bad feature
value.
src/hb-ot-map.cc | 3 ++-
Date: Mon Aug 8 17:24:04 2016 -0700
Fix sign of shift operators
-
+
This one:
-
+
map->mask = (1 << (next_bit + bits_needed)) - (1 << next_bit);
-
+
before the fix, the shift was done as an int, causing overflow
if it ever got to 1 << 31. Sprinkle 'u's around.
-
+
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=634805
src/hb-buffer-private.hh | 6 +++---
Date: Mon Aug 8 16:51:08 2016 -0700
Map zh-Hant-HK to ZHH
-
+
Fixes https://github.com/behdad/harfbuzz/issues/300
src/hb-ot-tag.cc | 4 +++-
Date: Fri Jul 22 02:26:54 2016 +0300
Don’t build UCDN support when building with GLib (#296)
-
+
Regression from: b424b6c372dfe4c0ed75a49761eb34a416819446.
configure.ac | 2 +-
Date: Fri Jul 22 17:41:43 2016 -0700
[coretext] "Fix" crashes on CoreText < 10.10
-
+
Fixes https://github.com/behdad/harfbuzz/issues/297
src/hb-coretext.cc | 8 ++++++++
Date: Thu Jul 21 01:23:33 2016 -0700
[ucdn] Update to Unicode 9.0.0
-
+
Fixes https://github.com/grigorig/ucdn/issues/12
src/hb-ucdn.cc | 6 +
src/hb-ucdn/README | 1 -
src/hb-ucdn/ucdn.c | 80 +-
src/hb-ucdn/ucdn.h | 98 +-
- src/hb-ucdn/unicodedata_db.h | 4750
- +++++++++++++++++++++++-------------------
+ src/hb-ucdn/unicodedata_db.h | 4750 +++++++++++++++++++++++-------------------
5 files changed, 2783 insertions(+), 2152 deletions(-)
commit f3f6c1ccbf89e15cda03e0c3a2df4297e98adf60
Date: Thu Jun 16 00:10:42 2016 +0100
Blacklist GDEF tables of more fonts
-
- This is based on bug reports that have been filed against Firefox
- since it
- updated to a version of harfbuzz that uses zeroing by GDEF rather
- than by
- Unicode. I'm sure there are a bunch more font versions that should
- also be
- included; these are just the ones I have on hand and have confirmed
- as having
+
+ This is based on bug reports that have been filed against Firefox since it
+ updated to a version of harfbuzz that uses zeroing by GDEF rather than by
+ Unicode. I'm sure there are a bunch more font versions that should also be
+ included; these are just the ones I have on hand and have confirmed as having
bad GDEF data.
-
- Given how the list here is growing, I think we should reconsider
- the approach,
+
+ Given how the list here is growing, I think we should reconsider the approach,
and perhaps revert to zeroing by Unicode instead.
-
+
Fixes https://github.com/behdad/harfbuzz/issues/264
Fixes https://github.com/behdad/harfbuzz/pull/266
Date: Wed Jul 20 02:35:54 2016 -0700
Implement symbol cmap in ft and ot fonts
-
+
Fixes https://github.com/behdad/harfbuzz/issues/236
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=627953
Date: Wed Jul 20 01:43:56 2016 -0700
Clean up buffer area when rewinding
-
+
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=614647
If allocation fails, we might be leaving junk behind. At least
clear it up.
Author: Birunthan Mohanathas <birunthan@mohanathas.com>
Date: Mon Jul 11 13:38:23 2016 -0700
- [ft] Fix unsafe cast of FT_Done_Face in
- hb_ft_{face,font}_create_referenced (#289)
-
- Prior to this change the function `FT_Error FT_Done_Face(FT_Face
- *)` was
- called through a pointer with the signature `void (void *)`
- resulting in
+ [ft] Fix unsafe cast of FT_Done_Face in hb_ft_{face,font}_create_referenced (#289)
+
+ Prior to this change the function `FT_Error FT_Done_Face(FT_Face *)` was
+ called through a pointer with the signature `void (void *)` resulting in
undefined behaviour.
src/hb-ft.cc | 12 +++++++++---
Date: Fri Jul 1 17:09:28 2016 -0700
Merge pull request #286 from khaledhosny/gi-tag_from_string
-
+
[introspection] Fix hb_tag_from_string annotation
commit e4d451ee55a57e1231b4076fcd1e87994f6b9528
Date: Thu Jun 30 11:01:22 2016 -0700
[python] Use utf-32 / utf-16 based on build of Python
-
+
Fixes https://github.com/behdad/harfbuzz/pull/271
src/sample.py | 22 +++++++++++++++++++++-
Date: Thu Jun 30 09:41:03 2016 -0700
Merge pull request #268 from drott/conflictingFontFix
-
+
Discard reconfigured CTFont if URL changes
commit 1bea49eb4b7a94ab6222f9c3c40320cbdb247b2d
Date: Tue Jun 28 21:00:37 2016 -0700
[gobject] Fix a few warnings
-
+
Part of https://github.com/behdad/harfbuzz/issues/277
src/hb-buffer.cc | 2 +-
Date: Tue Jun 28 21:15:28 2016 -0700
Merge pull request #280 from behdad/revert-271-patch-2
-
+
Revert "use utf32"
commit ae9054c740631e36b7582b44c5afb42ff4509461
Date: Mon Jun 27 14:33:27 2016 -0400
Merge pull request #273 from ebraminio/master
-
+
[dwrite] Use stream font loader instead GDI interop
commit 8179ff5d7ba4a140cf6743729a22072800e98a79
Date: Mon Jun 27 03:54:15 2016 +0430
[dwrite] Don't allocate more than needed
-
+
Addressing Nikolay Sivov reviews on harfbuzz mailing list
src/hb-directwrite.cc | 15 ++++++---------
Date: Fri Jun 24 16:42:27 2016 +0200
[CPAL] Return 0xFFFF as name id for unnamed palettes
-
+
The name id 0 is used as Copyright notice. It's quite unlikely that a
font supplies a color palette with the exact same name as the font's
copyright notice, but the API should not prevent this.
-
+
Also, try to fix a problem with GObject introspection, where the
auto-generated Python bindings could not return palette colors.
Date: Fri Jun 24 12:23:25 2016 +0430
[dwrite] Delete remained objects
-
+
No longer noticeable memory increase on create/destroy iterations,
highly better than current state of uniscribe backend
Date: Fri Jun 24 11:42:01 2016 +0430
[dwrite] Release allocated blob on face destroy
-
- This reduces memory consumption of my iterated font create/destroy
- cycle test
+
+ This reduces memory consumption of my iterated font create/destroy cycle test
significantly and makes it much better than uniscribe backend even
src/hb-directwrite.cc | 5 ++++-
Author: Ebrahim Byagowi <ebrahim@gnu.org>
Date: Thu Jun 23 16:41:37 2016 +0430
- [dwrite] Remove ifdefs without breaking execution on old Windows
- versions
+ [dwrite] Remove ifdefs without breaking execution on old Windows versions
- src/hb-directwrite.cc | 205
- +++++++++++++++++++++++++-------------------------
+ src/hb-directwrite.cc | 205 +++++++++++++++++++++++++-------------------------
1 file changed, 103 insertions(+), 102 deletions(-)
commit 6b861dbd8b3662d0fa0e51fad1736d72192da868
Date: Tue Jun 21 13:57:26 2016 +0430
[dwrite] Use stream font loader instead GDI interop
-
+
With help of
https://dxr.mozilla.org/mozilla-central/source/gfx/2d/NativeFontResourceDWrite.cpp
- src/hb-directwrite.cc | 350
- +++++++++++++++++++-------------------------------
+ src/hb-directwrite.cc | 350 +++++++++++++++++++-------------------------------
src/hb-directwrite.h | 2 +-
2 files changed, 135 insertions(+), 217 deletions(-)
src/hb-ot.h | 1 +
test/api/Makefile.am | 1 +
test/api/hb-test.h | 30 ++
- test/api/test-ot-color.c | 318
- +++++++++++++++++++++
+ test/api/test-ot-color.c | 318 +++++++++++++++++++++
.../319f5d7ebffbefc5c5e6569f8cea73444d7a7268.ttf | Bin 0 -> 2128 bytes
.../e90374e5e439e00725b4fe7a8d73db57c5a97f82.ttf | Bin 0 -> 1948 bytes
14 files changed, 804 insertions(+), 1 deletion(-)
Date: Sun Jun 19 00:08:51 2016 +0300
Merge pull request #270 from khaledhosny/travis-failure
-
+
Fix make check on Travis
commit 988350586f607c7a46bbb658a2abecfd004f41fb
Date: Sat Jun 18 21:12:19 2016 +0200
[tests] Workaround Python 2 “narrow” builds
-
- The so-called Python 2 “narrow” builds support UCS2 only, this
- is a
+
+ The so-called Python 2 “narrow” builds support UCS2 only, this is a
workaround to allow unichr to work with any Unicode character in such
builds. This fixes Travis-CI failure as it has narrow Python 2 builds.
-
+
Copied from:
https://github.com/behdad/fonttools/blob/master/Lib/fontTools/misc/py23.py
Date: Thu Jun 16 14:19:39 2016 +0200
Discard reconfigured CTFont if URL changes
-
+
Fixes https://github.com/behdad/harfbuzz/issues/267
src/hb-coretext.cc | 24 +++++++++++++++++++++---
Date: Mon Jun 6 23:08:54 2016 -0700
Round, not truncate, when scaling values
-
+
Fixes https://github.com/behdad/harfbuzz/issues/255
src/hb-font-private.hh | 8 +++++++-
Date: Mon Jun 6 15:58:41 2016 -0700
Change bugreport URL to github
-
+
That's where everything is happening these days.
configure.ac | 2 +-
Date: Fri May 6 17:56:07 2016 +0100
[myanmar] Handle U+AA74..U+AA76
-
+
Fixes https://github.com/behdad/harfbuzz/issues/218
src/hb-ot-shape-complex-myanmar.cc | 5 +++++
src/gen-use-table.py | 29 +++--
src/hb-ot-shape-complex-use-machine.rl | 15 +--
src/hb-ot-shape-complex-use-private.hh | 1 -
- src/hb-ot-shape-complex-use-table.cc | 142
- ++++++++++-----------
+ src/hb-ot-shape-complex-use-table.cc | 142 ++++++++++-----------
src/hb-ot-shape-complex-use.cc | 11 +-
.../6ff0fbead4462d9f229167b4e6839eceb8465058.ttf | Bin 0 -> 1148 bytes
test/shaping/tests/use.tests | 1 +
Date: Fri May 6 17:17:00 2016 +0100
[use] Fix 'Number-joiner terminated cluster' to use HN instead of H
-
+
From draft update to USE.
src/hb-ot-shape-complex-use-machine.rl | 2 +-
Date: Fri May 6 16:19:19 2016 +0100
Allow MultipleSubst to delete glyph
-
+
Fixes https://github.com/behdad/harfbuzz/issues/253
-
+
Hopefully we got the logic right.
src/hb-ot-layout-gsub-table.hh | 17 +++++++----------
[indic] Remove more unused logic after Javanese is gone
- src/hb-ot-shape-complex-indic.cc | 50
- +++++++++++++++-------------------------
+ src/hb-ot-shape-complex-indic.cc | 50 +++++++++++++++-------------------------
1 file changed, 18 insertions(+), 32 deletions(-)
commit 8b5d6e755b271d0d22b31a7726d5bfbf2aae8b2f
Date: Fri May 6 15:52:27 2016 +0100
[indic/use] Move Javanese from Indic shaper to USE
-
+
Fixes https://github.com/behdad/harfbuzz/issues/243
-
+
With javatext.ttf, the reodering medial Ra gets its advance width
zero'ed in Uniscribe implementation, and the font adds the advance
back. Our Indic shaper does not do that, but USE does. So, route
Javanese through USE. That's what Microsoft does anyway. Test:
-
+
U+A9A5,U+A9BA
-
+
This also seems to fix the following sequence, and variations thereof:
-
+
U+A99F,U+A9C0,U+A9A2,U+A9BF
src/gen-indic-table.py | 1 -
- src/hb-ot-shape-complex-indic-table.cc | 23
- ++++------------------
+ src/hb-ot-shape-complex-indic-table.cc | 23 ++++------------------
src/hb-ot-shape-complex-private.hh | 5 +----
.../south-east-asian/script-javanese/misc.txt | 1 +
4 files changed, 6 insertions(+), 24 deletions(-)
Add Javanese sample text
- .../south-east-asian/script-javanese/misc.txt | 53
- ++++++++++++++++++++++
+ .../south-east-asian/script-javanese/misc.txt | 53 ++++++++++++++++++++++
1 file changed, 53 insertions(+)
commit e21921a68a959b7e929f71a4260a6cbe055ab4e6
[indic] Remove data for scripts that don't go thorough this shaper
src/gen-indic-table.py | 29 +-
- src/hb-ot-shape-complex-indic-table.cc | 604
- +--------------------------------
+ src/hb-ot-shape-complex-indic-table.cc | 604 +--------------------------------
2 files changed, 43 insertions(+), 590 deletions(-)
commit 7cd9269f4eba7b85cd72301a3fc39fab42a4e439
Date: Fri May 6 11:34:46 2016 +0100
Update tables to Unicode 9.0.0 beta
-
+
Fixes https://github.com/behdad/harfbuzz/issues/251
src/hb-ot-shape-complex-arabic-table.hh | 56 ++++++++-----
- src/hb-ot-shape-complex-indic-table.cc | 137
- +++++++++++++++++++++++---------
+ src/hb-ot-shape-complex-indic-table.cc | 137 +++++++++++++++++++++++---------
src/hb-ot-shape-complex-use-table.cc | 86 ++++++++++++++------
3 files changed, 196 insertions(+), 83 deletions(-)
Date: Fri May 6 12:08:18 2016 +0100
Add Unicode 9 beta scripts
-
+
These are frozen, so good time to add.
src/hb-common.cc | 3 +++
Date: Mon May 2 10:29:12 2016 +0200
[ot-font] Remove unused 'post' table include for now
-
+
To make a release...
src/hb-ot-font.cc | 2 +-
[tests] Fix test
- test/shaping/Makefile.am |
- 2 +-
- .../tests/{fallback-positioning.test => fallback-positioning.tests}
- | 0
+ test/shaping/Makefile.am | 2 +-
+ .../tests/{fallback-positioning.test => fallback-positioning.tests} | 0
2 files changed, 1 insertion(+), 1 deletion(-)
commit f00ab2a33ab34ba64f38cbbe65830c770a3e071e
Date: Mon May 2 10:24:00 2016 +0200
[hb-ot-font] Make 'glyf' table loading lazy
-
- Apparently some clients have reference-table callbacks that copy
- the table.
- As such, avoid loading 'glyf' table which is only needed if fallback
- positioning
+
+ Apparently some clients have reference-table callbacks that copy the table.
+ As such, avoid loading 'glyf' table which is only needed if fallback positioning
happens.
- src/hb-ot-font.cc | 45
- ++++++++++++++++++++-
+ src/hb-ot-font.cc | 45 ++++++++++++++++++++-
test/shaping/Makefile.am | 1 +
.../7ef276fc886ea502a03b9b0e5c8b547d5dc2b61c.ttf | Bin 0 -> 784 bytes
test/shaping/tests/fallback-positioning.test | 2 +
src/Makefile.sources | 1 +
src/hb-open-type-private.hh | 12 ++++-
src/hb-ot-font.cc | 1 +
- src/hb-ot-post-table.hh | 119
- ++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-post-table.hh | 119 ++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 132 insertions(+), 1 deletion(-)
commit 9abaaac409b8e3a0a9182b67dc384133013f7878
Date: Wed Apr 27 03:11:41 2016 -0700
[tibetan] Reorder marks to better match Uniscribe
-
+
Fixes https://github.com/behdad/harfbuzz/issues/237
-
+
Note that Uniscribe enforces a certain syllable order. We don't.
But with this change, I get all of the tibetan contractions pass
with Microsoft Himalaya font.
Date: Wed Apr 27 02:44:35 2016 -0700
[test] Add text for Tibetan shorthand contractions
-
+
From http://www.babelstone.co.uk/Tibetan/Contractions.html
- .../script-tibetan/misc/contractions.txt | 612
- +++++++++++++++++++++
+ .../script-tibetan/misc/contractions.txt | 612 +++++++++++++++++++++
1 file changed, 612 insertions(+)
commit 264b7a728a41becfbf23ce258fc2a3af19d0cbbe
Date: Wed Apr 27 03:48:23 2016 +0300
Merge pull request #247 from khaledhosny/update-opentype-language-tags
-
+
Update opentype language tags
commit adafdcddced076da4bfa3114a00e15a387aaf1f7
Mass-added “difficult” tags – to be curated.
- src/hb-ot-tag.cc | 69
- +++++++++++++++++++++++++++++---------------------------
+ src/hb-ot-tag.cc | 69 +++++++++++++++++++++++++++++---------------------------
1 file changed, 36 insertions(+), 33 deletions(-)
commit 3d6a2c0d7d9f6c5b3097f78c1123f9e59dcc76e2
Initial import of missing OpenType 1.7 language tags.
- src/hb-ot-tag.cc | 67
- +++++++++++++++++++++++++++++++++++++++++++++++++++-----
+ src/hb-ot-tag.cc | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 61 insertions(+), 6 deletions(-)
commit 7e2da035f68e46ce8f4759b67b4ed3a1b211d793
Date: Tue Apr 26 16:41:17 2016 -0700
Do NOT ignore Mongolian Free Variation Selectors during matching
-
+
Fixes https://github.com/behdad/harfbuzz/issues/234
src/hb-ot-layout-gsubgpos-private.hh | 2 +-
- src/hb-ot-layout-private.hh | 23
- +++++++++++++++++++--
+ src/hb-ot-layout-private.hh | 23 +++++++++++++++++++--
src/hb-ot-shape-complex-arabic.cc | 2 +-
.../a34a7b00f22ffb5fd7eef6933b81c7e71bc2cdfb.ttf | Bin 0 -> 3700 bytes
.../tests/mongolian-variation-selector.tests | 1 +
Date: Tue Apr 26 16:02:04 2016 -0700
Move ZWJ/ZWNJ bits to top byte of unicode_props()
-
+
To make room to remember Mongolian Free Variation Selectors.
Part of fixing https://github.com/behdad/harfbuzz/issues/234
Date: Tue Apr 26 11:38:16 2016 +0200
Merge pull request #245 from KonstantinRitt/fixes/ce
-
+
Unbreak build on Windows CE
commit 5069062d0a9342bb716eebf3ddc1efad91924caa
Date: Tue Apr 26 12:02:26 2016 +0400
Unbreak build on Windows CE
-
+
0475ef2f97e3035a2eea9a0f96031331e07e8e29 broke the build by using
vsnprintf(), which is not defined on Windows CE
Date: Fri Apr 8 13:16:33 2016 -0700
Merge pull request #239 from ebraminio/dwfix
-
+
Improve DirectWrite backend
commit d3134a66ad551ded726db9528d3c25459088f105
Add test for 6dd80faf0dcb3e8a8915c3a25da44e2a67cb0cd8
test/shaping/Makefile.am | 1 +
- .../f22416c692720a7d46fadf4af99f4c9e094f00b9.ttf | Bin 0 ->
- 16736 bytes
+ .../f22416c692720a7d46fadf4af99f4c9e094f00b9.ttf | Bin 0 -> 16736 bytes
test/shaping/tests/mark-filtering-sets.tests | 5 +++++
3 files changed, 6 insertions(+)
Date: Mon Apr 4 14:34:25 2016 -0700
Fix FixedVersion::to_int()
-
+
Ouch. Had broken it in 9a13ed453ef96822a47d6e6f58332b87f38d5c59
-
+
Fixes https://github.com/behdad/harfbuzz/issues/238
Will add test soon.
Use standard types instead Windows favourites ones
- src/hb-directwrite.cc | 100
- +++++++++++++++++++++++++-------------------------
+ src/hb-directwrite.cc | 100 +++++++++++++++++++++++++-------------------------
1 file changed, 50 insertions(+), 50 deletions(-)
commit adf20ba0d18d1506e633dcd9b4827a6c93abcadd
Author: Ebrahim Byagowi <ebrahim@gnu.org>
Date: Fri Apr 1 15:36:40 2016 +0000
- Limit GetJustifiedGlyphs only to scripts with custom justification
- character
+ Limit GetJustifiedGlyphs only to scripts with custom justification character
- src/hb-directwrite.cc | 98
- +++++++++++++++++++++++++++++++--------------------
+ src/hb-directwrite.cc | 98 +++++++++++++++++++++++++++++++--------------------
1 file changed, 60 insertions(+), 38 deletions(-)
commit 32ae9d1b3ffbe7e26e654437a56a26a95fe9f5a6
Add justification support
- src/hb-directwrite.cc | 321
- ++++++++++++++++++++++++++++++++------------------
+ src/hb-directwrite.cc | 321 ++++++++++++++++++++++++++++++++------------------
1 file changed, 205 insertions(+), 116 deletions(-)
commit 10c3d9e41520595c88dd2a8321590e03ce8fcf47
Basic opentype features support
- src/hb-directwrite.cc | 62
- ++++++++++++++++++++++++++++++++++-----------------
+ src/hb-directwrite.cc | 62 ++++++++++++++++++++++++++++++++++-----------------
1 file changed, 42 insertions(+), 20 deletions(-)
commit d129897120d3ad414220d603557c15a60aa69fa6
Refactor and remove dupe getglyphs call
- src/hb-directwrite.cc | 106
- ++++++++++++++++++++++++--------------------------
+ src/hb-directwrite.cc | 106 ++++++++++++++++++++++++--------------------------
1 file changed, 51 insertions(+), 55 deletions(-)
commit 5f1a8961008b93f72acc47336109af3a64e248d0
Date: Wed Mar 30 20:15:09 2016 +0000
Make DirectWrite backend to work with different font sizes
-
+
Actually copyedited same logic from Uniscribe to make it just work
src/hb-directwrite.cc | 7 ++++++-
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Mar 17 11:59:43 2016 -0700
- Synthesize GDEF glyph class for any glyph that does not have one
- in GDEF
-
+ Synthesize GDEF glyph class for any glyph that does not have one in GDEF
+
Previously we only synthesized GDEF glyph classes if the glyphClassDef
array in GDEF was null. This worked well enough, and is indeed what
- OpenType requires: "If the font does not include a GlyphClassDef
- table,
+ OpenType requires: "If the font does not include a GlyphClassDef table,
the client must define and maintain this information when using the
GSUB and GPOS tables." That sentence does not quite make sense since
one needs Unicode properties as well, but is close enough.
-
+
However, looks like Arial Unicode as shipped on WinXP, does have GDEF
glyph class array, but defines no classes for Hebrew. This results
- in Hebrew marks not getting their widths zeroed. So, with this
- change,
+ in Hebrew marks not getting their widths zeroed. So, with this change,
we synthesize glyph class for any glyph that is not specified in the
GDEF glyph class table. Since, from our point of view, a glyph not
being listed in that table is a font bug, any unwanted consequence of
this change is a font bug :).
-
+
Note that we still don't get the same rendering as Uniscribe, since
Uniscribe seems to do fallback positioning as well, even though the
font does have a GPOS table (which does NOT cover Hebrew!). We are
not going to try to match that though.
-
+
Test string for Arial Unicode:
-
+
U+05E9,U+05B8,U+05C1,U+05DC
-
+
Before: [gid1166=3+991|gid1142=0+737|gid5798=0+1434]
After: [gid1166=3+991|gid1142=0+0|gid5798=0+1434]
Uniscribe: [gid1166=3+991|gid1142=0@348,0+0|gid5798=0+1434]
-
+
Note that our new output matches what we were generating until July
2014, because the Hebrew shaper used to zero mark advances based on
Unicode, NOT GDEF. That's 9e834e29e0b657f0555df1ab9cea79ff7abcf08d.
-
+
Reported by Greg Douglas.
src/hb-ot-layout-gsub-table.hh | 22 ++++++++++++++++++++--
Date: Sat Mar 12 19:15:15 2016 -0800
Merge pull request #232 from c0nk/wip-icu
-
+
Add --with-icu=builtin option; fix compile error
commit 01ea9eaac373d9f3de6e56c1ca26cdcd259ecc8e
Date: Fri Mar 11 18:50:02 2016 -0800
[build] Use tar-ustar instead of tar-pax
-
+
The default tar-v7 is not good enough for us (99 char filename
limit), so I have had bumped to tar-pax. We got one complaint
that someone's tar couldn't handle tar-pax. Set to tar-ustar
Date: Tue Mar 8 12:16:41 2016 -0800
Remove default clause in minor switch statements
-
+
Bending to clang warnings...
https://bugs.chromium.org/p/chromium/issues/detail?id=593057
Date: Fri Mar 4 17:20:35 2016 -0800
Merge pull request #231 from KonstantinRitt/post123buildfix
-
+
Fix build with HB_DISABLE_DEPRECATED
commit 731a430cd36caabcef04e099b21ebc6daedd536f
Date: Wed Mar 2 13:32:42 2016 -0800
Fix requiredFeature stage handling logic
-
+
Originally the way Jonathan had written this was correct in
"continue"ing:
-
+
https://github.com/jfkthame/harfbuzz/commit/35e28c7a733eaffcd9f062b18d7db9fbb3d990fc#diff-ead86a33a5cc9ad7f6e6381031a0baddR199
-
+
When I rewrote his patch, I messed it up:
-
+
https://github.com/behdad/harfbuzz/commit/da132937989acb4d8ca9bd41c79f98750e7dda30#diff-ead86a33a5cc9ad7f6e6381031a0baddR209
-
+
the intended behavior was NOT to set found=TRUE and NOT to continue.
This was resulting in feature_index[table_index] being left unset.
Oops!
Date: Tue Mar 1 16:41:26 2016 +0900
Use FWORD and UFWORD when it makes sense
-
+
I had forgotten about those types.
src/hb-ot-glyf-table.hh | 8 ++++----
Date: Fri Feb 26 00:36:17 2016 +0100
Fix missing ICU #include
-
+
Fix compile error in hb-icu.cc when ICU configured with
U_NO_DEFAULT_INCLUDE_UTF_HEADERS=1
Date: Thu Feb 25 18:55:28 2016 +0400
Fix build with HB_DISABLE_DEPRECATED
-
+
When HB_DISABLE_DEPRECATED is defined, no code from hb-deprecated.h
should be used, even from within HB itself.
Date: Thu Feb 25 14:40:09 2016 +0900
Speed up buffer variable allocation sanity check
-
+
This makes defining HB_NDEBUG much less relevant, to the
point of irrelevance. Sorry about all the fuss in previous
release!
- src/hb-buffer-private.hh | 67
- ++++++++++++++++++++++++++++-----------------
- src/hb-buffer.cc | 70
- ------------------------------------------------
+ src/hb-buffer-private.hh | 67 ++++++++++++++++++++++++++++-----------------
+ src/hb-buffer.cc | 70 ------------------------------------------------
2 files changed, 43 insertions(+), 94 deletions(-)
commit 91dd11565221bdb108c138662ea013aac14bb968
Date: Thu Feb 25 13:56:47 2016 +0900
Add HB_NDEBUG
-
+
API changes:
- If NDEBUG is defined, define HB_NDEBUG
- Disable costlier sanity checks if HB_NDEBUG is defined.
-
+
In 1.2.3 introduced some code to disable costly sanity checks if
NDEBUG is defined. NDEBUG, however, disables all assert()s as
well. With HB_NDEBUG, one can disable costlier checks but keep
assert()s.
-
+
I'll probably add a way to define HB_NDEBUG automatically in
release tarballs. But for now, production systems that do NOT
define NDEBUG, are encouraged to define HB_NDEBUG for our build.
Date: Thu Feb 25 12:23:02 2016 +0900
Disable internal buffer variable bookkeeping in NDEBUG builds
-
+
Saves some sweet time and binary size!
src/Makefile.am | 1 +
Date: Thu Feb 25 11:20:05 2016 +0900
[test] Pass closure to hb_font_set_glyph_func()
-
+
Exercises fix in c335fd7986fe360ab8e1c032c9b988d0d30511eb
test/api/test-shape.c | 2 +-
Date: Thu Feb 25 11:11:15 2016 +0900
Blacklist GDEF table of timesi.ttf and timesbi.ttf on Win 7
-
+
See discussion:
https://lists.freedesktop.org/archives/harfbuzz/2016-February/005489.html
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Feb 25 09:16:05 2016 +0900
- In trampoline implementation of get_glyph(), don't destroy user
- data twice!
+ In trampoline implementation of get_glyph(), don't destroy user data twice!
src/hb-font.cc | 41 +++++++++++++++++++++++++++--------------
1 file changed, 27 insertions(+), 14 deletions(-)
[ot-font] Accelerate cmap format4 get_glyph
- src/hb-ot-cmap-table.hh | 111
- ++++++++++++++++++++++++++++--------------------
+ src/hb-ot-cmap-table.hh | 111 ++++++++++++++++++++++++++++--------------------
src/hb-ot-font.cc | 14 +++++-
2 files changed, 77 insertions(+), 48 deletions(-)
Date: Wed Feb 24 19:10:06 2016 +0900
[TODO] Update
-
+
This file is rather obsolete. Still, give it a refresh.
TODO | 16 ++--------------
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Wed Feb 24 19:05:23 2016 +0900
- Add get_nominal_glyph() and get_variation_glyph() instead of
- get_glyph()
-
+ Add get_nominal_glyph() and get_variation_glyph() instead of get_glyph()
+
New API:
- hb_font_get_nominal_glyph_func_t
- hb_font_get_variation_glyph_func_t
- hb_font_funcs_set_variation_glyph_func()
- hb_font_get_nominal_glyph()
- hb_font_get_variation_glyph()
-
+
Deprecated API:
- hb_font_get_glyph_func_t
- hb_font_funcs_set_glyph_func()
-
+
Clients that implement their own font-funcs are encouraged to replace
their get_glyph() implementation with a get_nominal_glyph() and
get_variation_glyph() pair. The variation version can assume that
src/hb-deprecated.h | 10 ++
src/hb-fallback-shape.cc | 4 +-
src/hb-font-private.hh | 26 +++--
- src/hb-font.cc | 203
- ++++++++++++++++++++++++++++++++++---
+ src/hb-font.cc | 203 ++++++++++++++++++++++++++++++++++---
src/hb-font.h | 55 +++++++---
src/hb-ft.cc | 38 ++++---
src/hb-ot-font.cc | 57 +++++++----
Date: Wed Feb 24 16:06:40 2016 +0900
Fix recent test
-
+
Not sure why the FT functions were returning advance 1024. This
caused failure on drone.io. Switch to hb-ot-font and disable
glyph names.
Date: Wed Feb 24 15:53:40 2016 +0900
Partially revert 86c68c7a2c971efe8e35b1f1bd99401dc8b688d2
-
+
That commit moved the advance adjustment for mark positioning to
be applied immediately, instead of doing late before. This breaks
if mark advances are zeroed late, like in Arabic. Also, easier to
hit it in RTL scripts since a single mark with non-zero advance is
enough to hit the bug, whereas in LTR, at least two marks are needed.
-
+
This reopens https://github.com/behdad/harfbuzz/issues/211
The cursive+mark interaction is broken again. To be fixed in a
different way.
- src/hb-ot-layout-gpos-table.hh | 28
- ++++++++++++----------------
+ src/hb-ot-layout-gpos-table.hh | 28 ++++++++++++----------------
test/shaping/tests/cursive-positioning.tests | 2 +-
2 files changed, 13 insertions(+), 17 deletions(-)
Date: Wed Feb 24 15:52:37 2016 +0900
Add test for mark positioning in rtl with non-zero mark advance
-
+
Apparently I broke this 86c68c7a2c971efe8e35b1f1bd99401dc8b688d2.
Fix coming.
- .../sha1sum/07f054357ff8638bac3711b422a1e31180bba863.ttf | Bin 0 ->
- 848 bytes
+ .../sha1sum/07f054357ff8638bac3711b422a1e31180bba863.ttf | Bin 0 -> 848 bytes
test/shaping/tests/cursive-positioning.tests | 1 +
2 files changed, 1 insertion(+)
Date: Tue Feb 23 13:45:38 2016 +0900
Remove MANIFEST files
-
+
They are unused currently. We can add later if we hook them up
to anything useful.
- test/shaping/fonts/sha1sum/MANIFEST | 52
- ----------------------
+ test/shaping/fonts/sha1sum/MANIFEST | 52 ----------------------
test/shaping/tests/MANIFEST | 19 --------
test/shaping/texts/MANIFEST | 1 -
test/shaping/texts/in-tree/MANIFEST | 9 ----
Date: Mon Feb 22 18:22:44 2016 +0900
In cluster-level=0, group ZWJ/ZWNJ with previous cluster
-
+
This better emulates Unicode grapheme clusters.
-
- Note that Uniscribe does NOT do this, but should be harmless with
- most clients,
- and improve fallback with clients that use HarfBuzz cluster as unit
- of fallback.
-
+
+ Note that Uniscribe does NOT do this, but should be harmless with most clients,
+ and improve fallback with clients that use HarfBuzz cluster as unit of fallback.
+
Fixes https://github.com/behdad/harfbuzz/issues/217
src/hb-ot-layout-private.hh | 6 ++++++
[coretext] Move CTFont construction to face_data
- src/hb-coretext.cc | 66
- +++++++++++++++++++++++++-----------------------------
+ src/hb-coretext.cc | 66 +++++++++++++++++++++++++-----------------------------
1 file changed, 30 insertions(+), 36 deletions(-)
commit ba3d49d9a56932d341bf1916a30f322be665e3a6
[coretext] Move code around
- src/hb-coretext.cc | 70
- +++++++++++++++++++++++++++++++-----------------------
+ src/hb-coretext.cc | 70 +++++++++++++++++++++++++++++++-----------------------
1 file changed, 40 insertions(+), 30 deletions(-)
commit 90194efb8480d58c55b7a19962624c7aadbdca63
[coretext] Move code around
- src/hb-coretext.cc | 109
- ++++++++++++++++++++++++++++++-----------------------
+ src/hb-coretext.cc | 109 ++++++++++++++++++++++++++++++-----------------------
1 file changed, 62 insertions(+), 47 deletions(-)
commit 04c64431530a4a6d9ebd33674c4665a8e6d25bdd
Date: Mon Feb 22 14:59:39 2016 +0900
[coretext] Fix shaping with varying font size
-
+
Fixes https://github.com/libass/libass/issues/212
src/hb-coretext.cc | 8 ++++----
Date: Fri Feb 19 15:13:07 2016 +0700
[fuzzing] Add test for recent fix
-
+
Test from https://github.com/behdad/harfbuzz/issues/223
+
+ I forgot that we do run hb-fuzzer on tests in shaping/tests/fuzzed.tests.
- I forgot that we do run hb-fuzzer on tests in
- shaping/tests/fuzzed.tests.
-
- .../sha1sum/205edd09bd3d141cc9580f650109556cc28b22cb.ttf | Bin 0 ->
- 1966 bytes
+ .../sha1sum/205edd09bd3d141cc9580f650109556cc28b22cb.ttf | Bin 0 -> 1966 bytes
test/shaping/fonts/sha1sum/MANIFEST | 1 +
test/shaping/tests/fuzzed.tests | 1 +
3 files changed, 2 insertions(+)
Date: Fri Feb 19 14:52:31 2016 +0700
Avoid buffer->move_to() in case of buffer error
-
+
Fixes https://github.com/behdad/harfbuzz/issues/223
-
- Right now we cannot test this because it has to be tested using
- hb-fuzzer.
- We should move all fuzzing tests from test/shaping/tests/fuzzed.tests
- to
+
+ Right now we cannot test this because it has to be tested using hb-fuzzer.
+ We should move all fuzzing tests from test/shaping/tests/fuzzed.tests to
test/fuzzing/ and have its own test runner. At that point, should add
test from this issue as well.
Date: Fri Feb 19 14:43:39 2016 +0700
[fuzzing] Make "make hb-fuzzer" build lib dependency
-
+
Not going to do with util/, but is convenient here.
test/fuzzing/Makefile.am | 3 +++
Date: Thu Feb 18 19:31:51 2016 +0700
Remove pointless overflow check in pointer math
-
+
Fixes https://github.com/behdad/harfbuzz/issues/227
src/hb-blob.cc | 1 -
Date: Thu Feb 18 17:06:25 2016 +0700
Emoji skin tone modifiers need to be treated as combining marks
-
+
Fixes https://github.com/behdad/harfbuzz/issues/169
src/hb-ot-layout-private.hh | 15 ++++++++++++++-
Date: Tue Feb 16 17:16:33 2016 +0700
[USE] Zero mark advances by GDEF early
-
+
This is what Microsoft's implementation does. Marks that need advance
- need to add it back using 'dist' or other feature in GPOS.
- Update tests to
+ need to add it back using 'dist' or other feature in GPOS. Update tests to
match.
src/hb-ot-shape-complex-use.cc | 2 +-
test/shaping/fonts/sha1sum/MANIFEST | 1 +
- .../sha1sum/f518eb6f6b5eec2946c9fbbbde44e45d46f5e2ac.ttf | Bin 0 ->
- 1356 bytes
+ .../sha1sum/f518eb6f6b5eec2946c9fbbbde44e45d46f5e2ac.ttf | Bin 0 -> 1356 bytes
test/shaping/tests/context-matching.tests | 2 +-
test/shaping/tests/use.tests | 2 ++
5 files changed, 5 insertions(+), 2 deletions(-)
Date: Tue Feb 16 16:07:20 2016 +0700
[GPOS] Fix interaction of mark attachments and cursive chaining
-
+
Fixes https://github.com/behdad/harfbuzz/issues/211
-
+
What happens in that bug is that a mark is attached to base first,
then a second mark is cursive-chained to the first mark. This only
"works" because it's in the Indic shaper where mark advances are
not zeroed.
-
+
Before, we didn't allow cursive to run on marks at all. Fix that.
We also where updating mark major offsets at the end of GPOS, such
that changes in advance of base will not change the mark attachment
- position. That was superior to the alternative (which is what
- Uniscribe
+ position. That was superior to the alternative (which is what Uniscribe
does BTW), but made it hard to apply cursive to the mark after it
was positioned. We could track major-direction offset changes and
apply that to cursive in the post process, but that's a much trickier
thing to do than the fix here, which is to immediately apply the
major-direction advance-width offsets... Ie.:
-
+
https://github.com/behdad/harfbuzz/issues/211#issuecomment-183194739
-
- If this breaks any fonts, the font should be fixed to do mark
- attachment
+
+ If this breaks any fonts, the font should be fixed to do mark attachment
after all the advances are set up first (kerning, etc).
-
+
Finally, this, still doesn't make us match Uniscribe, for I explained
in that bug. Looks like Uniscribe applies minor-direction cursive
adjustment immediate as well. We don't, and we like it our way, at
least for now. Eg. the sequence in the test case does this:
-
+
- The first subscript attaches with mark-to-base, moving in x only,
- - The second subscript attaches with cursive attachment to first
- subscript
+ - The second subscript attaches with cursive attachment to first subscript
moving in x only,
- A final context rule moves the first subscript up by 104 units.
-
+
The way we do, the final shift-up, also shifts up the second subscript
mark because it's cursively-attached. Uniscribe doesn't. We get:
-
+
[ttaorya=0+1307|casubscriptorya=0@-242,104+-231|casubscriptnarroworya=0@20,104+507]
-
+
while Uniscribe gets:
-
+
[ttaorya=0+1307|casubscriptorya=0@-242,104+-211|casubscriptnarroworya=0+487]
-
- note the different y-offset of the last glyph. In our view,
- after cursive,
+
+ note the different y-offset of the last glyph. In our view, after cursive,
things move together, period.
- src/hb-ot-layout-gpos-table.hh | 31
- +++++++++++----------
+ src/hb-ot-layout-gpos-table.hh | 31 +++++++++++----------
.../706c5d7b625f207bc0d874c67237aad6f1e9cd6f.ttf | Bin 0 -> 3868 bytes
test/shaping/fonts/sha1sum/MANIFEST | 1 +
test/shaping/tests/cursive-positioning.tests | 1 +
Date: Thu Feb 11 16:57:52 2016 +0700
[GPOS] Minor
-
+
No effect.
src/hb-ot-layout-gpos-table.hh | 8 ++++----
Date: Thu Feb 11 16:48:13 2016 +0700
[GPOS] Merge fixing of offsets for cursive and mark attachments
-
+
Part of fixing https://github.com/behdad/harfbuzz/issues/211
src/hb-buffer-private.hh | 3 +-
- src/hb-ot-layout-gpos-table.hh | 73
- ++++++++++++++++++------------------------
+ src/hb-ot-layout-gpos-table.hh | 73 ++++++++++++++++++------------------------
2 files changed, 33 insertions(+), 43 deletions(-)
commit 7d8d58ac81fe267e29ea68cdc6f4a4fa8c22d40f
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Feb 11 16:34:28 2016 +0700
- [GPOS] Divide position_finish() into two phases, for advances
- and offsets
-
+ [GPOS] Divide position_finish() into two phases, for advances and offsets
+
Right now the position_finish_advances() is empty. To be used for
spacing attachments proposal later.
Date: Thu Feb 11 15:28:55 2016 +0700
[GPOS] Add harmless recursion in fix_mark_attachment()
-
+
Will do nothing. Just useful for merging two functions.
src/hb-ot-layout-gpos-table.hh | 2 ++
Date: Thu Feb 11 15:25:28 2016 +0700
[GPOS] Merge attach_chain() and cursive_chain()
-
+
Differentiate, using new attach_type().
- src/hb-ot-layout-gpos-table.hh | 50
- +++++++++++++++++++++++++++---------------
+ src/hb-ot-layout-gpos-table.hh | 50 +++++++++++++++++++++++++++---------------
1 file changed, 32 insertions(+), 18 deletions(-)
commit 806ad8dc65931ab7893bff7d5592a67a9bd237ca
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Feb 11 14:49:10 2016 +0700
- [GPOS] Negate sign of attach_lookback(), and rename it to
- attach_chain()
-
- No behavior change. Preparing to unify how cursive and mark
- attachments
+ [GPOS] Negate sign of attach_lookback(), and rename it to attach_chain()
+
+ No behavior change. Preparing to unify how cursive and mark attachments
work.
src/hb-ot-layout-gpos-table.hh | 17 +++++++++--------
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Feb 11 12:15:38 2016 +0700
- [tests] Add test for advance zeroing of an ASCII letter marked as
- mark in GDEF
+ [tests] Add test for advance zeroing of an ASCII letter marked as mark in GDEF
test/shaping/fonts/sha1sum/MANIFEST | 1 +
- .../sha1sum/a98e908e2ed21b22228ea59ebcc0f05034c86f2e.ttf | Bin 0 ->
- 1016 bytes
+ .../sha1sum/a98e908e2ed21b22228ea59ebcc0f05034c86f2e.ttf | Bin 0 -> 1016 bytes
test/shaping/tests/zero-width-marks.tests | 1 +
3 files changed, 2 insertions(+)
Date: Thu Feb 11 12:14:27 2016 +0700
Remove font-dependent ASCII-only perf hack
-
+
Is confusing. I already hit it myself. Remove. We can optimize
ASCII based on Unicode properties. But should not do based on
assumptions on the font.
Date: Wed Feb 10 18:39:59 2016 +0700
[tests] Fix fonts in cc4a78bf22c4a735b84c89b04be3bb531f42135e
-
+
They had an invalid LookupFlag (32).
- .../sha1sum/0dd3a51c3ea50997cb1f72515d1060408f8b4b59.ttf | Bin 1412 ->
- 0 bytes
- .../sha1sum/56cfd0e18d07f41c38e9598545a6d369127fc6f9.ttf | Bin 0 ->
- 1412 bytes
- .../sha1sum/828114d00931885bc25abf7cdb878b2914a2e743.ttf | Bin 1448 ->
- 0 bytes
- .../sha1sum/894e96a367f00c196d82e6243673a1d4414f4f6a.ttf | Bin 1448 ->
- 0 bytes
- .../sha1sum/cc5f3d2d717fb6bd4dfae1c16d48a2cb8e12233b.ttf | Bin 0 ->
- 1448 bytes
- .../sha1sum/ffa0f5d2d9025486d8469d8b1fdd983e7632499b.ttf | Bin 0 ->
- 1448 bytes
+ .../sha1sum/0dd3a51c3ea50997cb1f72515d1060408f8b4b59.ttf | Bin 1412 -> 0 bytes
+ .../sha1sum/56cfd0e18d07f41c38e9598545a6d369127fc6f9.ttf | Bin 0 -> 1412 bytes
+ .../sha1sum/828114d00931885bc25abf7cdb878b2914a2e743.ttf | Bin 1448 -> 0 bytes
+ .../sha1sum/894e96a367f00c196d82e6243673a1d4414f4f6a.ttf | Bin 1448 -> 0 bytes
+ .../sha1sum/cc5f3d2d717fb6bd4dfae1c16d48a2cb8e12233b.ttf | Bin 0 -> 1448 bytes
+ .../sha1sum/ffa0f5d2d9025486d8469d8b1fdd983e7632499b.ttf | Bin 0 -> 1448 bytes
6 files changed, 0 insertions(+), 0 deletions(-)
commit eaadcbbc53e02838c847e53ef214a55d6915d677
[tests] Add tests for Latin mark zeroing
- .../sha1sum/0dd3a51c3ea50997cb1f72515d1060408f8b4b59.ttf | Bin 0 ->
- 1412 bytes
- .../sha1sum/828114d00931885bc25abf7cdb878b2914a2e743.ttf | Bin 0 ->
- 1448 bytes
- .../sha1sum/894e96a367f00c196d82e6243673a1d4414f4f6a.ttf | Bin 0 ->
- 1448 bytes
+ .../sha1sum/0dd3a51c3ea50997cb1f72515d1060408f8b4b59.ttf | Bin 0 -> 1412 bytes
+ .../sha1sum/828114d00931885bc25abf7cdb878b2914a2e743.ttf | Bin 0 -> 1448 bytes
+ .../sha1sum/894e96a367f00c196d82e6243673a1d4414f4f6a.ttf | Bin 0 -> 1448 bytes
test/shaping/fonts/sha1sum/MANIFEST | 4 ++++
- .../sha1sum/fcdcffbdf1c4c97c05308d7600e4c283eb47dbca.ttf | Bin 0 ->
- 1344 bytes
+ .../sha1sum/fcdcffbdf1c4c97c05308d7600e4c283eb47dbca.ttf | Bin 0 -> 1344 bytes
test/shaping/tests/zero-width-marks.tests | 4 ++++
6 files changed, 8 insertions(+)
[tests] Add tests for Thai mark zeroing
- .../sha1sum/45855bc8d46332b39c4ab9e2ee1a26b1f896da6b.ttf | Bin 0 ->
- 1088 bytes
- .../sha1sum/7a37dc4d5bf018456aea291cee06daf004c0221c.ttf | Bin 0 ->
- 1080 bytes
- .../sha1sum/8099955657a54e9ee38a6ba1d6f950ce58e3cc25.ttf | Bin 0 ->
- 1024 bytes
+ .../sha1sum/45855bc8d46332b39c4ab9e2ee1a26b1f896da6b.ttf | Bin 0 -> 1088 bytes
+ .../sha1sum/7a37dc4d5bf018456aea291cee06daf004c0221c.ttf | Bin 0 -> 1080 bytes
+ .../sha1sum/8099955657a54e9ee38a6ba1d6f950ce58e3cc25.ttf | Bin 0 -> 1024 bytes
test/shaping/fonts/sha1sum/MANIFEST | 4 ++++
- .../sha1sum/bb0c53752e85c3d28973ebc913287b8987d3dfe8.ttf | Bin 0 ->
- 976 bytes
+ .../sha1sum/bb0c53752e85c3d28973ebc913287b8987d3dfe8.ttf | Bin 0 -> 976 bytes
test/shaping/tests/zero-width-marks.tests | 4 ++++
6 files changed, 8 insertions(+)
Date: Wed Feb 10 18:10:15 2016 +0700
Change default mark advance zeroing behavior from Unicode to GDEF
-
+
See thread at:
https://lists.freedesktop.org/archives/harfbuzz/2016-February/005462.html
Date: Wed Feb 10 11:11:36 2016 +0700
Merge pull request #164 from fanc999/msvc.build
-
+
Enable Build of HarfBuzz under Visual Studio using NMake Makefiles
commit a168db4739148459bc33c7dae88e73efa0153d72
Date: Wed Dec 9 14:57:15 2015 +0800
MSVC builds: Add support to build DirectWrite shaping backend
-
+
Add into the NMake Makefiles to build the DirectWrite shaping backend,
- but as PR #134 mentions, this is considered to be in an experimental
- state,
- so don't include this in the build by default for now. This is
- most probably
- going to replace the Uniscribe backend eventually, since DirectWrite
- is meant
- to be Uniscribe's replacement, and is needed for Windows Store apps
- if a
+ but as PR #134 mentions, this is considered to be in an experimental state,
+ so don't include this in the build by default for now. This is most probably
+ going to replace the Uniscribe backend eventually, since DirectWrite is meant
+ to be Uniscribe's replacement, and is needed for Windows Store apps if a
system shaping API is to be used.
win32/README.txt | 4 ++++
Date: Wed Feb 3 18:31:23 2016 +0800
build: Build the DirectWrite sources if requested
-
+
This adds to the autotools build system so that the (experimental)
DirectWrite support for HarfBuzz is built (and dist'ed).
Date: Tue Nov 3 19:00:42 2015 +0800
build: Support Visual Studio builds using NMake
-
- This adds a set of NMake Makefiles that can be used to build
- HarfBuzz, from
+
+ This adds a set of NMake Makefiles that can be used to build HarfBuzz, from
the standard basic build building the minimal HarfBuzz DLL (consisting
- of OpenType, fallback and Uniscribe support only), to a full
- fledged build
- consisting of GLib and FreeType support, as well as building the
- utilities,
+ of OpenType, fallback and Uniscribe support only), to a full fledged build
+ consisting of GLib and FreeType support, as well as building the utilities,
the test programs in src/ and test/api, and HarfBuzz-ICU and
- HarfBuzz-GObject, and up to building the introspection files.
- This means a
- flexible build mechanism is supported here, so anything that is
- supported
+ HarfBuzz-GObject, and up to building the introspection files. This means a
+ flexible build mechanism is supported here, so anything that is supported
for a Windows build (code-wise), should all be supported by this build
system.
-
- As in an earlier commit, the source listings are shared with the
- autotools
- builds with the various Makefile.sources in src/, src/hb-ucdn and
- util/, and
- this set of NMake Makefiles will transform these lists into the
- form they
+
+ As in an earlier commit, the source listings are shared with the autotools
+ builds with the various Makefile.sources in src/, src/hb-ucdn and util/, and
+ this set of NMake Makefiles will transform these lists into the form they
want.
-
- In the current form, all the test programs in test/api pass, and
- this has
+
+ In the current form, all the test programs in test/api pass, and this has
been checked successfully with 'make -j8 distcheck'.
BUILD.md | 4 +-
win32/Makefile.vc | 52 +++++++++++
win32/README.txt | 75 ++++++++++++++++
win32/build-rules-msvc.mak | 140 ++++++++++++++++++++++++++++++
- win32/config-msvc.mak | 188
- ++++++++++++++++++++++++++++++++++++++++
+ win32/config-msvc.mak | 188 ++++++++++++++++++++++++++++++++++++++++
win32/create-lists-msvc.mak | 151 ++++++++++++++++++++++++++++++++
win32/create-lists.bat | 42 +++++++++
win32/detectenv-msvc.mak | 136 +++++++++++++++++++++++++++++
Date: Tue Nov 3 18:52:46 2015 +0800
MSVC builds: Add a pre-configured config.h(.win32) template
-
- This adds a pre-configured config.h template that can be used
- for Visual
- Studio builds, where autotools is not normally available. This has
- the
+
+ This adds a pre-configured config.h template that can be used for Visual
+ Studio builds, where autotools is not normally available. This has the
configs that are suitable for Visual Studio builds, as well as all the
features used for Windows builds enabled (HAVE_OT, HAVE_FALLBACK and
HAVE_UNISCRIBE).
-
- Note that the optional features are not enabled here, they are
- enabled by
+
+ Note that the optional features are not enabled here, they are enabled by
/D's (or -D's) in the NMake Makefiles as requested.
- win32/config.h.win32.in | 155
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ win32/config.h.win32.in | 155 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 155 insertions(+)
commit 35ded3af74a5bc4b038a07308354d5f7501ae3c7
Date: Tue Nov 3 16:56:27 2015 +0800
build: Move source listings into separate Makefile snippets
-
+
This moves all the source listings in src/Makefile.am,
src/hb-ucdn/Makefile.am and util/Makefile.am into separate Makefile
snippets, so that they may be shared between different Makefile-based
build systems, such as NMake for Visual Studio.
- src/Makefile.am | 165
- +++++++++----------------------------------
+ src/Makefile.am | 165 +++++++++----------------------------------
src/Makefile.sources | 147 ++++++++++++++++++++++++++++++++++++++
src/hb-ucdn/Makefile.am | 6 +-
src/hb-ucdn/Makefile.sources | 4 ++
Date: Tue Feb 2 16:39:19 2016 +0800
Fix more hangs in case of buffer allocation errors
-
+
Hopefully
fixes https://github.com/behdad/harfbuzz/issues/214
Date: Tue Feb 2 12:33:32 2016 +0800
Merge pull request #222 from n8willis/master
-
+
Add usermanual chapter on cluster levels
commit 498574e6c1a83bbd2768925af6e39806fe1ea8bb
Added initial usermanual chapter on cluster levels.
docs/harfbuzz-docs.xml | 1 +
- docs/usermanual-clusters.xml | 304
- +++++++++++++++++++++++++++++++++++++++++++
+ docs/usermanual-clusters.xml | 304 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 305 insertions(+)
commit 9a6a33ccbea8a2e23e779bd955958fa41974c1c7
Date: Mon Jan 18 12:47:18 2016 +0100
Merge pull request #216 from mhosken/master
-
+
Refactor graphite2 to make ovleraps into negative width spaces
commit 146fe252c3ebd0253344ce20981554e40926497b
Refactor graphite2 to make ovleraps into negative width spaces
- src/hb-graphite2.cc | 71
- ++++++++++++++++++++++++++++++++---------------------
+ src/hb-graphite2.cc | 71 ++++++++++++++++++++++++++++++++---------------------
1 file changed, 43 insertions(+), 28 deletions(-)
commit d05b783322d90208b2ddf06a5ebffc7c301be3d7
Date: Tue Jan 12 16:17:21 2016 +0000
Fix compiler warning
-
+
Fixes https://github.com/behdad/harfbuzz/issues/212
src/hb-ot-tag.cc | 2 +-
Date: Mon Jan 11 18:31:04 2016 +0000
[fuzzing] Fuzz input text
-
+
Very rudimentary right now, but will get kcc's bot going.
-
+
From
https://github.com/behdad/harfbuzz/issues/139#issuecomment-163580783
Date: Mon Jan 11 17:38:41 2016 +0000
[OT] Get list of lookup subtables once and loop through them
-
+
This speeds up shaping the Amiri font by over 15%.
-
+
This was primarily needed for my work on OpenType GX, since
we will be collecting only sublookups that are "active" for
current font instance; but it's a nice boost in general as
well.
-
+
We might, in the future, collect subtables in the lookup_accel.
That would also allow us to do a per-subtbale set-digest, which
should speed things up some more, specially for ContextChainFormat3
lookups... Amiri, for example, contains one lookup with 53
subtables!
- src/hb-ot-layout.cc | 120
- +++++++++++++++++++++++++++++++++++-----------------
+ src/hb-ot-layout.cc | 120 +++++++++++++++++++++++++++++++++++-----------------
1 file changed, 81 insertions(+), 39 deletions(-)
commit 11441291bbf4326dca9b14ec3e9cad3d4d229303
Date: Mon Jan 11 12:28:37 2016 +0000
[coretext] Speed up CoreText font fallback
-
+
Fixes https://code.google.com/p/chromium/issues/detail?id=547912
src/hb-coretext.cc | 45 ++++++++++++++++++++++++++++++++++++++++-----
Date: Thu Jan 7 19:11:41 2016 +0000
Add 9 reserved entries to hb_font_extents_t
-
+
Might add italic-angle, underline/strikethrough-position/thickness
in the future. Do this before new struct goes into a release.
Date: Wed Jan 6 12:29:50 2016 +0000
[uniscribe] Fix negative advance
-
+
This happens with at least one test font I have.
src/hb-uniscribe.cc | 2 +-
Date: Tue Jan 5 13:26:20 2016 +0000
Increase sanitize edit count from 8 to 32
-
+
See previous commit.
src/hb-open-type-private.hh | 2 +-
Date: Tue Jan 5 13:23:45 2016 +0000
Don't count fixing-up FeatureParams offset as error
-
+
The font Garamond Premier Pro Caption (and possibly many other
Adobe fonts), have many FeatureParamsSize tables with the old
wrong offset. We handle fixing those up, but they were still
contributing to edit_count, and when I reduced HB_SANITIZE_MAX_EDIT
from 100 to 8 in 14c2de321826c36037adde859ccca3e2011325a9, these
fonts were now getting GPOS dropped and hence kerning disabled.
-
+
Fix, by not counting edits made towareds offset fix-up. I'll
also increase edit count again, in the next commit.
Date: Sat Jan 2 00:59:14 2016 +0000
Merge pull request #208 from khaledhosny/travis-trusty
-
+
[travis] Try building on Trusty
commit 4b4948d360a2141e0ffda2994aa308645dc32f59
Date: Sat Jan 2 00:36:19 2016 +0400
[travis] Try building on Trusty
-
+
Trusty has gtk-doc 1.20 which has better markdown support which should
fix some of the brokenness in the newly added documentation. The build
seems to be as fast as the current container-based build on Precise.
Date: Fri Jan 1 19:06:43 2016 +0000
[travis] Only run coveralls if testing behdad/harfbuzz
-
+
Fixes failures in others' forks, like:
https://travis-ci.org/khaledhosny/harfbuzz/jobs/99719710#L3912
Date: Fri Jan 1 16:44:01 2016 +0000
Merge pull request #207 from khaledhosny/docs-4
-
+
[docs] More buffers documentation
commit 9ab9f974d42e0001966e243a23a64e6aefbd4764
[docs] More buffers documentation
docs/harfbuzz-sections.txt | 4 +-
- src/hb-buffer-serialize.cc | 85
- ++++++++++++++++++++++++++++++-------------
- src/hb-buffer.cc | 91
- +++++++++++++++++++++++++++++++++++-----------
+ src/hb-buffer-serialize.cc | 85 ++++++++++++++++++++++++++++++-------------
+ src/hb-buffer.cc | 91 +++++++++++++++++++++++++++++++++++-----------
src/hb-buffer.h | 78 +++++++++++++++++++++++++--------------
src/hb-shape.cc | 10 +++--
5 files changed, 187 insertions(+), 81 deletions(-)
Date: Wed Dec 30 22:20:14 2015 +0100
Merge pull request #205 from khaledhosny/more-docs
-
+
More docs
commit d7ed6f50b4ff13a94701131913d931f13a4d1266
Date: Wed Dec 30 22:20:00 2015 +0100
Merge pull request #206 from nico/patch-3
-
+
Remove unused HB_SHAPER_DATA_ENSURE_DECLARE lines.
commit a7f0e25dafa90bd21b01c38cb0782ade54b75cdc
Date: Wed Dec 30 16:05:52 2015 -0500
Remove unused HB_SHAPER_DATA_ENSURE_DECLARE lines.
-
- The coretext_aat shaper delegates to the regular coretext_..._ensure()
- functions, so coretext_aat_..._ensure() functions defined by these
- macros are unused. The compiler warns about them, which in turn can
- confuse people to think that the coretext_aat_..._ensure() functions
- weren't called by accident.
+
+ The coretext_aat shaper delegates to the regular coretext_..._ensure() functions, so coretext_aat_..._ensure() functions defined by these macros are unused. The compiler warns about them, which in turn can confuse people to think that the coretext_aat_..._ensure() functions weren't called by accident.
src/hb-coretext.cc | 4 ----
1 file changed, 4 deletions(-)
Date: Wed Dec 30 22:57:04 2015 +0400
[docs] Reduce gtkdoc-check errors
-
- Now it is just reporting one error about “503 undocumented or
- incomplete
+
+ Now it is just reporting one error about “503 undocumented or incomplete
symbols”, that will be the easy part I guess.
- docs/harfbuzz-docs.xml | 74
- ++++++++++++++++++++++++++++++++++++++++++++++
+ docs/harfbuzz-docs.xml | 74 ++++++++++++++++++++++++++++++++++++++++++++++
docs/harfbuzz-sections.txt | 40 +++++++++++++++++++++++++
2 files changed, 114 insertions(+)
Date: Wed Dec 30 16:44:19 2015 +0100
Merge pull request #203 from nico/patch-1
-
+
Remove unused `retry:` label.
commit 266bfa3772e75fedcd93db22bf8672a13ad7a7d9
Date: Wed Dec 30 15:45:43 2015 +0100
[docs] Shuffling code around in deploy-docs.sh
-
+
Temporarily makes it rebuild docs on every change again.
.ci/deploy-docs.sh | 46 +++++++++++++++++++++++++++-------------------
Date: Wed Dec 30 15:13:37 2015 +0100
Merge pull request #202 from khaledhosny/doc-fixes
-
+
Doc fixes
commit fb192c263e17081c87f4cc971274d9be42f19513
docs/harfbuzz-sections.txt | 2 ++
src/hb-buffer.cc | 7 +++---
- src/hb-buffer.h | 56
- ++++++++++++++++++++++++++++++++++++++++++++--
+ src/hb-buffer.h | 56 ++++++++++++++++++++++++++++++++++++++++++++--
3 files changed, 60 insertions(+), 5 deletions(-)
commit 8ab797c5b86c33eab6ee024471fd3c147325d26a
[docs] A bit more buffers documentation
docs/harfbuzz-sections.txt | 60 +++++++++++++++---------------
- src/hb-buffer.cc | 93
- +++++++++++++++++++++++++++++++---------------
+ src/hb-buffer.cc | 93 +++++++++++++++++++++++++++++++---------------
src/hb-buffer.h | 7 +++-
src/hb-common.cc | 43 +++++++++++++--------
src/hb-common.h | 15 +++++---
Date: Tue Dec 29 15:21:20 2015 +0400
[docs] Some documentation on buffers
-
+
Some of it (create, reference, destroy) are adapted from Cairo docs.
docs/harfbuzz-sections.txt | 55 +++++++-------
- src/hb-buffer.cc | 174
- +++++++++++++++++++++++++++------------------
+ src/hb-buffer.cc | 174 +++++++++++++++++++++++++++------------------
2 files changed, 132 insertions(+), 97 deletions(-)
commit d7bf9d05c519a369a7b3a02e9ed5ecc05a20cd3e
Date: Tue Dec 29 02:23:24 2015 +0400
[docs] Fix comment syntax
-
+
To lower the number of gtk-doc warnings.
.travis.yml | 2 +-
Date: Mon Dec 28 21:31:28 2015 -0500
Remove unused `retry:` label.
-
- Fixes a -Wunused-label warning when building harfbuzz with clang
- -Wall.
+
+ Fixes a -Wunused-label warning when building harfbuzz with clang -Wall.
src/hb-coretext.cc | 1 -
1 file changed, 1 deletion(-)
Date: Tue Dec 29 02:15:21 2015 +0400
[docs] Ignore the new HB_EXTERN decoration
-
+
Otherwise, almost all API functions are not extracted.
docs/Makefile.am | 3 ++-
Date: Sat Dec 26 06:35:08 2015 +0400
[travis] Build docs only on tagged revisions
-
+
Lets see if it works…
.ci/deploy-docs.sh | 4 +++-
Date: Fri Dec 25 18:41:41 2015 +0100
[travis] Remove secure var
-
- I've set up a secure var for behdad/harfbuzz through Travis web
- interface, no need
+
+ I've set up a secure var for behdad/harfbuzz through Travis web interface, no need
to set the var here.
.ci/deploy-docs.sh | 2 +-
Date: Fri Dec 25 18:21:08 2015 +0100
Merge pull request #199 from behdad/travis-docs
-
+
Deploy docs to gh-pages branch from Travis builds
commit 6173c2a6fc6ea0bf812f7f398770b5342974f9bf
Date: Fri Dec 25 18:18:23 2015 +0100
Fix flaky test
-
- This test font had a upem of 769, which results in rounding-related
- errors with
+
+ This test font had a upem of 769, which results in rounding-related errors with
the FreeType font funcs. Change the upem to 1024 to fix that.
-
+
Fixes https://github.com/behdad/harfbuzz/issues/201
- ...> 1c2fb74c1b2aa173262734c1f616148f1648cfd6.ttf} | Bin 4064 ->
- 4064 bytes
+ ...> 1c2fb74c1b2aa173262734c1f616148f1648cfd6.ttf} | Bin 4064 -> 4064 bytes
test/shaping/fonts/sha1sum/MANIFEST | 2 +-
- test/shaping/tests/ligature-id.tests | 70
- ++++++++++-----------
+ test/shaping/tests/ligature-id.tests | 70 ++++++++++-----------
3 files changed, 36 insertions(+), 36 deletions(-)
commit 3fcae6d82da389c9944386a8ab41eb1c13b99330
docs/Makefile.am | 1 +
docs/harfbuzz-docs.xml | 15 ++++----
- docs/usermanual-install-harfbuzz.xml | 70
- ++++++++++++++++++++++++++++++++++++
+ docs/usermanual-install-harfbuzz.xml | 70 ++++++++++++++++++++++++++++++++++++
3 files changed, 80 insertions(+), 6 deletions(-)
commit 493a92220844c8996be67c8a7a2c5447942fe2c1
Date: Wed Dec 23 00:33:41 2015 +0400
Rename user manual files
-
+
Use chapter ids instead of numbers, so that we can reorder them,
introduce new ones etc. without the numbers becoming out of date.
- docs/Makefile.am | 12
- ++++++------
- docs/harfbuzz-docs.xml | 12
- ++++++------
+ docs/Makefile.am | 12 ++++++------
+ docs/harfbuzz-docs.xml | 12 ++++++------
... => usermanual-buffers-language-script-and-direction.xml} | 0
docs/{usermanual-ch04.xml => usermanual-fonts-and-faces.xml} | 0
...{usermanual-ch06.xml => usermanual-glyph-information.xml} | 0
Date: Mon Dec 14 23:33:51 2015 +0400
Deploy docs to gh-pages branch from Travis builds
-
+
Build docs in Travis and push them to the gh-pages branch, which makes
them available at http://behdad.github.io/harfbuzz/
Date: Wed Dec 23 14:50:53 2015 +0100
[layout] Collect coverage glyphs in PairPos
-
+
Apparently class=0 is used for ClassDef1. See:
https://github.com/adobe-type-tools/afdko/issues/90
Date: Fri Dec 18 18:17:07 2015 +0000
[buffer] Add debugging, aka, message, API
-
- Currently just announces lookup applications. Message-API *will*
- change.
- hb-shape / hb-view are updated to print-out messages to stder
- if --debug
+
+ Currently just announces lookup applications. Message-API *will* change.
+ hb-shape / hb-view are updated to print-out messages to stder if --debug
is specified.
src/hb-buffer-private.hh | 18 ++++++++++++++++++
- src/hb-buffer.cc | 44
- ++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-buffer.cc | 44 ++++++++++++++++++++++++++++++++++++++++++++
src/hb-buffer.h | 15 +++++++++++++++
src/hb-ot-layout.cc | 12 ++----------
util/main-font-text.hh | 18 ++++++++++++++++++
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Fri Dec 18 13:54:06 2015 +0000
- [use] Only set syllable-based topographical features if not
- Arabic-joining
+ [use] Only set syllable-based topographical features if not Arabic-joining
src/hb-ot-shape-complex-use.cc | 3 +++
1 file changed, 3 insertions(+)
Date: Fri Dec 18 13:47:16 2015 +0000
[indic] Followup fix for Malayalam context matching
-
+
We regeressed Malayalam in 508cc3d3cfcfb0383df0fe795cc28db4e0fd5729
This brings down the failures to 198 (from 750).
-
+
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%)
GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%)
KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%)
KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%)
- MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed
- (0.0188871%)
+ MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
Date: Fri Dec 18 11:05:11 2015 +0000
[indic] Update data tables to Unicode 8.0
-
- Test stats remain unchanged, except for Malayalam, which we
- investigate:
-
+
+ Test stats remain unchanged, except for Malayalam, which we investigate:
+
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%)
GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%)
KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%)
KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%)
- MALAYALAM: 1047584 out of 1048334 tests passed. 750 failed
- (0.0715421%)
+ MALAYALAM: 1047584 out of 1048334 tests passed. 750 failed (0.0715421%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
-
+
Myanmar, compared to Windows 10 mmrtext.ttf:
-
+
MYANMAR: 1123865 out of 1123883 tests passed. 18 failed (0.00160159%)
src/gen-indic-table.py | 1 +
src/hb-ot-shape-complex-indic-private.hh | 40 ++--
- src/hb-ot-shape-complex-indic-table.cc | 372
- ++++++++++++++++++-------------
+ src/hb-ot-shape-complex-indic-table.cc | 372 ++++++++++++++++++-------------
src/hb-ot-shape-complex-indic.cc | 23 +-
src/hb-ot-shape-complex-myanmar.cc | 4 +
5 files changed, 244 insertions(+), 196 deletions(-)
Date: Thu Dec 17 17:47:35 2015 +0000
Remove HB_OT_SHAPE_ZERO_WIDTH_MARKS_DEFAULT
-
+
The DEFAULT naming wasn't helpful, so just remove it.
src/hb-ot-shape-complex-default.cc | 2 +-
Date: Thu Dec 17 17:31:17 2015 +0000
[indic] Allow context when matching for Malayalam new-spec
-
+
Test sequence:
U+0995,U+09CD,U+09B0
-
- With Nirmala shipped on Windows 10, this failed to form the below
- form.
+
+ With Nirmala shipped on Windows 10, this failed to form the below form.
Works now.
-
+
Reported by Sairus.
src/hb-ot-shape-complex-indic.cc | 11 +++++++++--
Date: Thu Dec 17 16:57:47 2015 +0000
[uniscribe] Handle E_NOT_SUFFICIENT_BUFFER as well as E_OUTOFMEMORY
-
+
On Windows 10 we are seeing that other error message...
-
+
Test sequence: U+0995,U+-9CD,U+09B0
- With Nirmala shipped on Windows 10, this failed to form the below
- form.
+ With Nirmala shipped on Windows 10, this failed to form the below form.
Works now.
-
+
Reported by Sairus.
src/hb-uniscribe.cc | 2 +-
Date: Thu Dec 17 16:28:38 2015 +0000
[util] Use O_BINARY instead of _O_BINARY
-
+
The latter doesn't seem to be available in Cygwin. I'm surprised it
compiled before...
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Dec 17 15:23:09 2015 +0000
- Fix ligature component of a mark happening after a ligature within
- a ligature!
-
+ Fix ligature component of a mark happening after a ligature within a ligature!
+
Say, if we are ligating "A B_C m D", then previously 'm' was being
attached to 'B' in the combined A_B_C_D ligature. Now we attach it
to 'C'. No test for this though :(.
Date: Thu Dec 17 15:21:14 2015 +0000
Improve ligature-component handling
-
+
We use three bits for lig_id these days, so we finally got a report of
two separate ligatures with the same lig_id happening adjacent to each
other, and then the component-handling code was breaking things.
- Protect against that by ignoring same-lig-id but lig-comp=0 glyphs
- after
+ Protect against that by ignoring same-lig-id but lig-comp=0 glyphs after
a new ligature.
-
+
Fixes https://github.com/behdad/harfbuzz/issues/198
src/hb-ot-layout-gsubgpos-private.hh | 12 +++++--
test/shaping/fonts/sha1sum/MANIFEST | 1 +
.../c78d1f25ea1df1210414f2fe2e0e1e53082bba76.ttf | Bin 0 -> 4064 bytes
test/shaping/tests/MANIFEST | 1 +
- test/shaping/tests/ligature-id.tests | 35
- +++++++++++++++++++++
+ test/shaping/tests/ligature-id.tests | 35 +++++++++++++++++++++
6 files changed, 47 insertions(+), 3 deletions(-)
commit 2ab0de9fbd03231b647345b01e31b136e2e00978
Date: Thu Dec 17 11:59:15 2015 +0000
[use] Fix halant detection
-
+
Before, we were just checking the use_category(). This detects as
halant a ligature that had the halant as first glyph (as seen in
NotoSansBalinese.) Change that to use the is_ligated() glyph prop
the rphf / pref tests. So we need to make sure the "ligated" bit
survives those tests. Since those only check the "substituted" bit,
we now only clear that bit for them and "ligated" survives.
-
+
Fixes https://github.com/behdad/harfbuzz/issues/180
src/hb-ot-layout-private.hh | 6 ++----
- src/hb-ot-shape-complex-use.cc | 19
- ++++++++++++-------
+ src/hb-ot-shape-complex-use.cc | 19 ++++++++++++-------
test/shaping/Makefile.am | 1 +
test/shaping/fonts/sha1sum/MANIFEST | 1 +
- .../fbb6c84c9e1fe0c39e152fbe845e51fd81f6748e.ttf | Bin 0 ->
- 2616 bytes
+ .../fbb6c84c9e1fe0c39e152fbe845e51fd81f6748e.ttf | Bin 0 -> 2616 bytes
test/shaping/tests/MANIFEST | 1 +
test/shaping/tests/use.tests | 1 +
7 files changed, 18 insertions(+), 11 deletions(-)
Date: Thu Dec 17 11:04:33 2015 +0000
[arabic] Use glyph advance width in apply_stch() instead of extents
-
+
That seems to be what Windows is doing, and makes more sense.
src/hb-ot-shape-complex-arabic.cc | 24 +++++++-----------------
Date: Wed Dec 16 17:08:36 2015 +0100
Fix Since: tags for new API
-
+
https://github.com/behdad/harfbuzz/commit/e1d4d0f1dbd8518b5672245c05d73f22a9ed03ea#commitcomment-15006653
src/hb-font.cc | 6 +++---
Date: Mon Dec 14 14:19:03 2015 +0100
Merge pull request #196 from srl295/aix
-
+
AIX fixes
commit a13b023dbfd0532e8cd74c356fbbd4453d0ffaa0
Date: Fri Dec 11 10:21:27 2015 -0800
AIX fixes
-
+
- use '-w' instead of '\<...\>' for check-header-guards
grep manpage says these are the same
-
+
- put '-q' first in the grep options
-
+
- move VAR into hb-private.hh
-
+
- hb-font-private.hh - use [VAR] instead of [] for variable array
src/check-header-guards.sh | 5 ++---
Date: Thu Dec 10 16:56:07 2015 +0100
Merge branch 'font-extents'
-
+
Fixes https://github.com/behdad/harfbuzz/pull/165
commit 808d3fc0eadd379909f2a0308fd3db474f1efde8
Date: Thu Dec 10 15:54:42 2015 +0100
Add atomic ops for AIX
-
+
Patch from Volker Simonis.
src/hb-atomic-private.hh | 25 +++++++++++++++++++++++++
Date: Mon Dec 7 21:38:47 2015 +0100
Remove final pause from Arabic shaper
-
- Back in the old days, we used to apply 'calt' and 'cswh' in Arabic
- shaper,
- with a pause in between. Then we disabled the 'cswh' because
- Microsoft
+
+ Back in the old days, we used to apply 'calt' and 'cswh' in Arabic shaper,
+ with a pause in between. Then we disabled the 'cswh' because Microsoft
disabled it, but forgot to remove the unnecessary pause. Do that now.
-
- This has the benefit that it fixes shaping with monbaiti from
- Windows 10.
- In that version of that font, the lookups from 'calt' are duplicated
- in
- 'rclt', and Mongolian was changed to go through Universal Shaping
- Engine.
- We still use the Arabic shaper for Mongolian. With a pause after
- 'calt',
- we were applying the duplicate lookups from 'calt' and 'rclt' twice.
- It
+
+ This has the benefit that it fixes shaping with monbaiti from Windows 10.
+ In that version of that font, the lookups from 'calt' are duplicated in
+ 'rclt', and Mongolian was changed to go through Universal Shaping Engine.
+ We still use the Arabic shaper for Mongolian. With a pause after 'calt',
+ we were applying the duplicate lookups from 'calt' and 'rclt' twice. It
happened to be the case that these lookups were NOT idempotent. So we
- were getting wrong shaping. See thread "Windows 10 monbaiti.ttf
- upgrade
- (5.01 -> 5.51) caused loss of diacritical marks when shaped with
- harfbuz"
+ were getting wrong shaping. See thread "Windows 10 monbaiti.ttf upgrade
+ (5.01 -> 5.51) caused loss of diacritical marks when shaped with harfbuz"
on the mailing list. This fixes that.
src/hb-ot-shape-complex-arabic.cc | 2 +-
Date: Mon Dec 7 10:44:08 2015 +0100
Merge pull request #192 from behdad/jfkthame-stch
-
+
[issue 191] Make apply_stch() give a more precise fit
commit 255df6801201fb22402420f7b7b7ea8b042df8ba
Date: Mon Dec 7 10:34:47 2015 +0100
Fix undefined behavior in cmp function
-
+
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=93274
src/hb-ot-map-private.hh | 3 ++-
Date: Mon Dec 7 10:30:43 2015 +0100
Fix sorting order of ot_languages array
-
+
Looks like the original sort was wrongly done.
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=93275
Date: Mon Dec 7 10:28:46 2015 +0100
Add test to make sure ot-languages array is sorted
-
+
Currently fails. Part of
https://bugs.freedesktop.org/show_bug.cgi?id=93275
Date: Mon Dec 7 09:34:58 2015 +0100
Merge pull request #134 from ebraminio/dwrite
-
+
Add working but less prefect DirectWrite backend
commit a7ffe3535836032dba5559080dffeec79473197b
Date: Sat Dec 5 17:47:37 2015 +0000
Make apply_stch() give a more precise fit
-
- This aims to make Syriac Abbr Mark sizing more accurate when repeating
- segments are used, by adding an extra repeat and tightening up the
- spacing slightly rather than leaving a shortfall corresponding to
- a partial repeat-width.
+
+ This aims to make Syriac Abbr Mark sizing more accurate when repeating segments are used, by adding an extra repeat and tightening up the spacing slightly rather than leaving a shortfall corresponding to a partial repeat-width.
src/hb-ot-shape-complex-arabic.cc | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
Date: Mon Nov 30 16:53:21 2015 -0800
src/test.cc: wrong field printed
-
+
Fixes https://github.com/behdad/harfbuzz/issues/188
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=93182
Get font ascender and descender metrics from OS/2 table.
src/hb-font-private.hh | 39 ++++++++++++++++++-
- src/hb-font.cc | 102
- ++++++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-font.cc | 102 ++++++++++++++++++++++++++++++++++++++++++++++++-
src/hb-font.h | 62 ++++++++++++++++++++++++++++--
src/hb-ft.cc | 21 ++++++++++
src/hb-ot-font.cc | 58 ++++++++++++++++++++++++++--
Parse the OS/2 table.
src/Makefile.am | 1 +
- src/hb-ot-os2-table.hh | 105
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-os2-table.hh | 105 +++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 106 insertions(+)
commit d44d52bd0da033865641dfd39d94852119fd4fd7
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Nov 26 19:22:22 2015 -0500
- Use C-style casts instead of compare to 0, to convert hb_bool_t
- to bool
+ Use C-style casts instead of compare to 0, to convert hb_bool_t to bool
src/hb-common.cc | 2 +-
src/hb-fallback-shape.cc | 2 +-
Date: Thu Nov 26 18:48:42 2015 -0500
Fix vertical GPOS
-
+
This was brorken earlier, though, it's really hard to notice it.
Unlike the glyph_h_origin(), an unset glyph_v_origin() does NOT
mean that the vertical origin is at 0,0.
-
+
Related to https://github.com/behdad/harfbuzz/issues/187
src/hb-ot-shape.cc | 13 ++++++++-----
Add tests for previous commit
test/shaping/Makefile.am | 1 +
- .../sha1sum/49c9f7485c1392fa09a1b801bc2ffea79275f22e.ttf | Bin 0 ->
- 1496 bytes
+ .../sha1sum/49c9f7485c1392fa09a1b801bc2ffea79275f22e.ttf | Bin 0 -> 1496 bytes
test/shaping/fonts/sha1sum/MANIFEST | 1 +
test/shaping/tests/MANIFEST | 1 +
test/shaping/tests/simple.tests | 2 ++
Date: Thu Nov 26 18:43:15 2015 -0500
Make nil glyph_h_origin() function return true
-
+
Fixes https://github.com/behdad/harfbuzz/issues/187
-
+
Funcs implementations that have a non-zero horizontal origin must
implement the glyph_h_origin() callback, nothing new here.
-
+
Other implementations (all I know of!) can simply not set
glyph_h_origin() now. I did that for hb-ot and hb-ft in
44f82750807475aa5b16099ccccd917d488df703, though that broke the
Date: Tue Nov 24 15:38:43 2015 -0600
Merge pull request #114 from ThePhD/vc++-fixes
-
+
Fix all VC++ warnings and errors
commit b344af80ca95b9eddfd6017aa6ae103388d6b5f8
Date: Tue Nov 24 15:30:27 2015 -0600
Merge pull request #177 from fanc999/exporting
-
+
Enable use of compiler directives to export symbols
commit 662acd26d10c38e96a9afcdaab2cb2979794966f
Date: Tue Nov 24 15:29:44 2015 -0600
Merge pull request #181 from mhosken/master
-
+
Fix y_scale problems in hb-gr
commit b24e93e3a4d98111c4684fa08e9080b471881d5c
Date: Tue Nov 24 18:37:35 2015 +0400
Merge pull request #185 from khaledhosny/travis-osx
-
+
[travis] Enable Mac OS X support
commit d538201918e6932ef7645f8d5b2c3491954936f8
Date: Tue Nov 24 12:46:35 2015 +0400
[travis] Enable Mac OS X support
-
+
Fixes https://github.com/behdad/harfbuzz/issues/182
.travis.yml | 22 ++++++++++++++++------
Date: Mon Nov 23 16:46:14 2015 -0600
[travis] Remove coverity scan
-
+
I never could get it to work, and it's a proprietary platform.
.travis.yml | 11 -----------
Date: Thu Nov 19 18:34:12 2015 +0800
Public headers: Decorate public symbols with HB_EXTERN
-
+
This prepares the headers for exporting symbols using visibility
- attributes or __declspec(dllexport), so that we do not need to
- maintain
- symbols listing files, as this is what was and is done in GLib
- and GTK+.
+ attributes or __declspec(dllexport), so that we do not need to maintain
+ symbols listing files, as this is what was and is done in GLib and GTK+.
src/hb-blob.h | 24 +++++-----
src/hb-buffer.h | 100 +++++++++++++++++++-------------------
src/hb-common.h | 22 ++++-----
src/hb-coretext.h | 6 +--
src/hb-face.h | 34 ++++++-------
- src/hb-font.h | 114
- ++++++++++++++++++++++----------------------
+ src/hb-font.h | 114 ++++++++++++++++++++++----------------------
src/hb-ft.h | 18 +++----
src/hb-glib.h | 8 ++--
src/hb-gobject-enums.h.tmpl | 2 +-
Date: Fri Nov 20 13:28:42 2015 -0800
Merge pull request #176 from behdad/missing-braces
-
+
Add braces for subobject initializer in _hb_font_funcs_nil
commit 1dc32ea4d2f294f9d1ae1c8fd19fb75f9278223b
Date: Fri Nov 20 13:21:29 2015 -0800
Define HB_MARK_AS_FLAG_T as a macro instead of using templates
-
- The generic template operator overloading was causing more problems
- than it
+
+ The generic template operator overloading was causing more problems than it
solved. Eg:
-
+
https://github.com/behdad/harfbuzz/pull/163
https://github.com/behdad/harfbuzz/issues/175
-
+
So, just use macros.
-
+
Fixes https://github.com/behdad/harfbuzz/issues/175
Fixes https://github.com/behdad/harfbuzz/pull/178
Date: Fri Nov 20 08:43:49 2015 +0000
Add braces for subobject initializer in _hb_font_funcs_nil
-
- To avoid triggering -Wmissing-braces; see
- https://bugzilla.mozilla.org/show_bug.cgi?id=1226175#c8
+
+ To avoid triggering -Wmissing-braces; see https://bugzilla.mozilla.org/show_bug.cgi?id=1226175#c8
src/hb-font.cc | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
Date: Thu Nov 19 12:39:09 2015 -0800
Do not allow recursiving to same position and same lookup
-
+
This is just to make it harder to be extremely slow. There definitely
are ways still, just harder. Oh well... how do we tame this problem
without solving halting problem?!
-
+
Fixes https://github.com/behdad/harfbuzz/issues/174
src/hb-ot-layout-gsubgpos-private.hh | 5 +++++
test/shaping/fonts/sha1sum/MANIFEST | 1 +
- .../sha1sum/fab39d60d758cb586db5a504f218442cd1395725.ttf | Bin 0 ->
- 1894 bytes
+ .../sha1sum/fab39d60d758cb586db5a504f218442cd1395725.ttf | Bin 0 -> 1894 bytes
test/shaping/tests/fuzzed.tests | 1 +
4 files changed, 7 insertions(+)
Date: Thu Nov 19 11:59:03 2015 -0800
Revert "Fix hang in OOM situations"
-
+
This reverts commit f0599db761d7fc2d585d86e757a797f75ebc7499.
-
+
Commit abadc1717d997b69f987fdf1be9e12156d2d13d6 provides a better
fix for this.
Date: Thu Nov 19 11:50:58 2015 -0800
Revert "Make sure we make progress in OOM situations"
-
+
This reverts commit 68b507a3c3c62c28c38e13fee733702bb703b6ca.
-
+
Commit abadc1717d997b69f987fdf1be9e12156d2d13d6 provides a better
fix for this.
Date: Wed Nov 18 23:23:35 2015 -0800
[travis] Only coverity-scan the coverity_scan branch
-
+
This essentially disables coverity-scan right now, until we find
a pattern to continuously submit branches there.
-
+
For background reasoning, see:
Fixes https://github.com/behdad/harfbuzz/issues/171
Date: Wed Nov 18 23:09:13 2015 -0800
Add tests for previous two commits
-
+
To fully test what these are supposed to test, they should be run
against libharfbuzz-fuzzing.la instead of libharfbuzz.la, but for
now just record the files.
- .../sha1sum/43979b90b2dd929723cf4fe1715990bcb9c9a56b.ttf | Bin 0 ->
- 1804 bytes
+ .../sha1sum/43979b90b2dd929723cf4fe1715990bcb9c9a56b.ttf | Bin 0 -> 1804 bytes
test/shaping/fonts/sha1sum/MANIFEST | 2 ++
- .../sha1sum/b9e2aaa0d75fcef6971ec3a96d806ba4a6b31fe2.ttf | Bin 0 ->
- 1804 bytes
+ .../sha1sum/b9e2aaa0d75fcef6971ec3a96d806ba4a6b31fe2.ttf | Bin 0 -> 1804 bytes
test/shaping/tests/fuzzed.tests | 2 ++
4 files changed, 4 insertions(+)
Date: Wed Nov 18 23:04:45 2015 -0800
Fix another move_to assertion failure
-
+
If buf->idx is at end, don't set end past it...
-
+
Fixes https://github.com/behdad/harfbuzz/issues/173
src/hb-ot-layout-gsubgpos-private.hh | 2 +-
Date: Wed Nov 18 17:52:08 2015 -0800
Try to better handle OOM situations
-
+
Fixes assert fail in https://github.com/behdad/harfbuzz/issues/161
with libharfbuzz-fuzzing.
Date: Wed Nov 18 16:27:32 2015 -0800
Enable building a bounded version of the library for fuzzing
-
+
test/fuzzing/hb-fuzzer links against libharfbuzz-fuzzing.so now.
src/Makefile.am | 16 ++++++++++++++++
Date: Tue Nov 17 18:40:10 2015 -0800
Merge pull request #163 from fanc999/msvc.src
-
+
Update the sources so they will compile under Visual Studio
commit 167c3271778cd1a8c4433b9d2230901ce17c099e
Date: Mon Nov 9 17:17:56 2015 +0800
Fix build on MSVC >= 2012
-
+
Use the DEFINE_ENUM_FLAG_OPERATORS macro in winnt.h on Visual Studio,
- which defines the bitwise operators for the enumerations that we
- want to
- mark as hb_mark_as_flags_t, which will take care of the situation
- on newer
- Visual Studio (>= 2012), where the build breaks with C2057 errors
- as the
- underlying types of the enumerations is not clear to the compiler
- when we
+ which defines the bitwise operators for the enumerations that we want to
+ mark as hb_mark_as_flags_t, which will take care of the situation on newer
+ Visual Studio (>= 2012), where the build breaks with C2057 errors as the
+ underlying types of the enumerations is not clear to the compiler when we
do a bitwise op within the declaration of the enumerations themselves.
-
- Also disable the C4200 (nonstandard extension used : zero-sized
- array in
- struct/union) and C4800 ('type' : forcing value to bool 'true' or
- 'false'
- (performance warning)) warnings as the C4200 is the intended
- scenario and
+
+ Also disable the C4200 (nonstandard extension used : zero-sized array in
+ struct/union) and C4800 ('type' : forcing value to bool 'true' or 'false'
+ (performance warning)) warnings as the C4200 is the intended scenario and
C4800 is harmless but is so far an unavoidable side effect of using
DEFINE_ENUM_FLAG_OPERATORS.
Date: Fri Nov 6 14:28:30 2015 +0800
hb-ot-shape-complex-arabic.cc: Fix build on Visual Studio
-
+
Visual Studio does not like declaring a enum variable within a for
statement, so fix the build by declaring the enum before doing the for
loop.
Date: Tue Nov 3 18:49:34 2015 +0800
MSVC builds: Add fallback implementation for pre-2013 MSVC
-
- Pre-2013 MSVC does not have scalbn() and scalbnf(), which are used
- in the
- utility programs. Add fallback implementations for these, which
- can be
+
+ Pre-2013 MSVC does not have scalbn() and scalbnf(), which are used in the
+ utility programs. Add fallback implementations for these, which can be
used when necessary.
util/options.hh | 17 +++++++++++++++++
Date: Mon Nov 2 16:55:29 2015 +0800
util: Fix build on Visual Studio
-
+
Use the fallback implementation for lround() only on pre-2013 Visual
Studio, and ensure we are clear about the types of the parameters for
lround() and scalbnf(), since Visual Studio can be quite picky on
ambiguous parameter types. Also, use g_ascii_strcasecmp() rather than
strcasecmp() as we are already using GLib for this code and we are
assured that g_ascii_strcasemp() is available.
-
+
For scalbnf() on pre-2013 Visaul Studio, a fallback implementation is
- needed, but use another forced-included header for those compilers,
- which
+ needed, but use another forced-included header for those compilers, which
will be added later.
-
+
Also use (char)27 on Visual Studio builds as '\e' is not a recognized
escape sequence, which will do the same thing.
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue Nov 10 11:37:01 2015 -0800
- [util] Fix crash when --output-file is specified but not
- --output-format
+ [util] Fix crash when --output-file is specified but not --output-format
util/options.hh | 3 +++
1 file changed, 3 insertions(+)
Date: Sat Nov 7 07:50:58 2015 -0800
Merge pull request #167 from KonstantinRitt/unicode_cp_opt
-
+
Micro optimizations to UTF-16 and UTF-32 codecs
commit 04ff23e73d847ab3a5da0e9fac4fbca19aefd284
Date: Fri Nov 6 16:29:44 2015 -0800
[arabic] Improve stretch length calculation
-
+
Err on the side of being too short, than too wide. Reduces chance
of overlaps with neighboring glyphs.
Date: Fri Nov 6 16:27:44 2015 -0800
[arabic] Don't stretch over cased letters
-
+
Addresses
https://github.com/behdad/harfbuzz/commit/6e6f82b6f3dde0fc6c3c7d991d9ec6cfff57823d#commitcomment-14248516
- src/hb-ot-shape-complex-arabic.cc | 24
- +++++++++++++++++++++-
- src/hb-unicode-private.hh | 20
- ------------------
+ src/hb-ot-shape-complex-arabic.cc | 24 +++++++++++++++++++++-
+ src/hb-unicode-private.hh | 20 ------------------
.../script-syriac/misc/abbreviation-mark.txt | 4 ++--
3 files changed, 25 insertions(+), 23 deletions(-)
Date: Fri Nov 6 16:18:09 2015 -0800
Revert "Don't process lookups if buffer is in error"
-
+
This reverts commit f92bd86cc8c11d262d1830c631cb7c63fc9d4bc8.
-
+
We don't want to be like cairo, where as soon as there's an error,
nothing works anymore. So, lets process lookups as long as there's
no new memory needed. That's also a model that hides fewer bugs.
Date: Sat Nov 7 02:00:04 2015 +0400
Micro optimization to hb_utf16_t and hb_utf32_t ::prev()
-
+
Implement reverse lookup instead of re-using next()
src/hb-utf-private.hh | 29 +++++++++++++++++++----------
Date: Fri Nov 6 00:01:24 2015 -0800
[fuzzing] Add test case for OOM
-
+
From https://github.com/behdad/harfbuzz/issues/161
- .../sha1sum/3511ff5c1647150595846ac414c595cccac34f18.ttf | Bin 0 ->
- 1483 bytes
+ .../sha1sum/3511ff5c1647150595846ac414c595cccac34f18.ttf | Bin 0 -> 1483 bytes
test/shaping/fonts/sha1sum/MANIFEST | 2 +-
test/shaping/tests/fuzzed.tests | 1 +
3 files changed, 2 insertions(+), 1 deletion(-)
Date: Thu Nov 5 23:52:41 2015 -0800
Fix hang in OOM situations
-
+
Fixes https://github.com/behdad/harfbuzz/issues/161
src/hb-buffer-private.hh | 6 +++++-
Date: Thu Nov 5 23:44:59 2015 -0800
Limit buffer max size growth
-
+
https://github.com/behdad/harfbuzz/issues/161
src/hb-buffer-private.hh | 11 +++++++++++
configure.ac | 1 +
test/Makefile.am | 2 +-
- test/fuzzing/Makefile.am | 44
- ++++++++++++++++++++++++++++++++++++++++++++
+ test/fuzzing/Makefile.am | 44 ++++++++++++++++++++++++++++++++++++++++++++
test/fuzzing/README | 2 ++
test/fuzzing/hb-fuzzer.cc | 4 ++--
5 files changed, 50 insertions(+), 3 deletions(-)
Date: Thu Nov 5 22:50:52 2015 -0800
[fuzzer] Add README
-
+
https://github.com/behdad/harfbuzz/issues/139#issuecomment-154202645
test/fuzzing/README | 21 +++++++++++++++++++++
Date: Thu Nov 5 17:29:03 2015 -0800
Implement SYRIAC ABBREVIATION MARK with 'stch' feature
-
+
The feature is enabled for any character in the Arabic shaper.
We should experiment with using it for Arabic subtending marks.
Though, that has a directionality problem as well, since those
are used with digits...
-
+
Fixes https://github.com/behdad/harfbuzz/issues/141
- src/hb-ot-shape-complex-arabic.cc | 219
- ++++++++++++++++++++-
+ src/hb-ot-shape-complex-arabic.cc | 219 ++++++++++++++++++++-
src/hb-unicode-private.hh | 19 ++
.../shaper-arabic/script-syriac/misc/MANIFEST | 1 +
.../script-syriac/misc/abbreviation-mark.txt | 11 ++
Date: Thu Nov 5 17:33:57 2015 -0800
[ft] Fix extents with negative scales
-
+
Fixes https://github.com/behdad/harfbuzz/issues/162
src/hb-ft.cc | 10 ++++++++++
Date: Thu Nov 5 13:24:15 2015 -0800
Add new shaper method postprocess_glyphs()
-
+
Unused currently. To be used for Syriac stretch implementation.
-
+
https://github.com/behdad/harfbuzz/issues/141
src/hb-ot-shape-complex-arabic.cc | 3 ++-
Date: Wed Nov 4 22:55:11 2015 -0800
Don't try zeroing marks by GDEF if there are no non-ASCII
-
+
This one is a hack, but should be ok.
src/hb-ot-shape.cc | 4 ++++
Date: Wed Nov 4 22:42:41 2015 -0800
Skip GPOS cursive / attachment adjustmnent if none happened
-
+
I'm starting to really like how free these new scratch_flags are.
src/hb-ot-layout-gpos-table.hh | 3 +++
Date: Wed Nov 4 22:00:25 2015 -0800
Move variable-sized struct member to end
-
+
Hopefully makes clang build happy
src/hb-font-private.hh | 21 ++++++++++-----------
Date: Wed Nov 4 21:42:55 2015 -0800
Add font->has_...() to check for individual nil font funcs
-
+
Hopefully this wouldn't break any compiler. There was some magic
moments to getting this to compile...
Date: Wed Nov 4 21:16:26 2015 -0800
Minor reshaping of hb_font_funcs_t implementation
-
+
In anticipation of further changes. No functional changes.
- src/hb-font-private.hh | 80
- ++++++++++++++++++++++++++------------------------
+ src/hb-font-private.hh | 80 ++++++++++++++++++++++++++------------------------
src/hb-font.cc | 4 +--
2 files changed, 43 insertions(+), 41 deletions(-)
[ot] Remove font funcs that do nothing
- src/hb-ot-font.cc | 95
- ++++---------------------------------------------------
+ src/hb-ot-font.cc | 95 ++++---------------------------------------------------
1 file changed, 7 insertions(+), 88 deletions(-)
commit 75ea2daa1d9bbe235cd4a8570efb1913d58c3c62
Date: Wed Nov 4 20:22:44 2015 -0800
Separate nil font-funcs from parent-peeking font-funcs
-
+
API change: all fonts created with hb_font_create() now inherit from
(ie have parent) hb_font_get_empty().
- src/hb-font.cc | 211
- +++++++++++++++++++++++++++++++++++----------------
+ src/hb-font.cc | 211 +++++++++++++++++++++++++++++++++++----------------
test/api/test-font.c | 2 +-
2 files changed, 145 insertions(+), 68 deletions(-)
Date: Wed Nov 4 19:28:17 2015 -0800
Optimize positioning direction calculations
-
+
It makes the binary smaller AND faster. Yumm!
src/hb-font-private.hh | 40 +++++++++++++++++++++++++++++++++++++++
- src/hb-ot-shape.cc | 51
- +++++++++++++++++++++++++++-----------------------
+ src/hb-ot-shape.cc | 51 +++++++++++++++++++++++++++-----------------------
2 files changed, 68 insertions(+), 23 deletions(-)
commit e3e4bb011ae1a2f1ba05e7ea450595b185304bec
Date: Wed Nov 4 18:46:22 2015 -0800
Optimize runs without Default_Ignorable's
-
+
Now that we have a buffer-wide scratch flags facility, use it to
optimize away a few passes.
Date: Wed Nov 4 18:00:57 2015 -0800
Limit max edits during sanitize to 8
-
+
Used to be 100. If a tabe needs more than one or two edits, it's
probably completely bogus...
-
+
Might help with speeding up fuzzing for
https://github.com/behdad/harfbuzz/issues/157
Date: Wed Nov 4 17:45:06 2015 -0800
If font doesn't support U+2011, fall back to U+2010
-
+
Test passes now.
src/hb-ot-shape-normalize.cc | 10 ++++++++++
Untangle if/else waterfall
- src/hb-ot-shape-normalize.cc | 40
- +++++++++++++++++++++++++++-------------
+ src/hb-ot-shape-normalize.cc | 40 +++++++++++++++++++++++++++-------------
1 file changed, 27 insertions(+), 13 deletions(-)
commit 04fd8517f85ae9aa05b44f25578d2b19abfef7cb
Date: Wed Nov 4 17:38:22 2015 -0800
Add tests for hyphen fallback
-
+
U+2011 is <noBreak> equivaent of U+2010, so we should do the fallback
for it. Currently fails.
test/shaping/Makefile.am | 1 +
- .../sha1sum/1c04a16f32a39c26c851b7fc014d2e8d298ba2b8.ttf | Bin 0 ->
- 820 bytes
+ .../sha1sum/1c04a16f32a39c26c851b7fc014d2e8d298ba2b8.ttf | Bin 0 -> 820 bytes
test/shaping/fonts/sha1sum/MANIFEST | 2 ++
test/shaping/tests/MANIFEST | 1 +
test/shaping/tests/hyphens.tests | 2 ++
Date: Wed Nov 4 17:27:07 2015 -0800
Adjust the width of various spaces if font does not cover them
-
+
See discussion here:
https://github.com/behdad/harfbuzz/commit/81ef4f407d9c7bd98cf62cef951dc538b13442eb
-
+
There's no way to disable this fallback, but I don't think it would
be needed. Let's hope for the best!
-
+
Fixes https://github.com/behdad/harfbuzz/issues/153
src/hb-buffer-private.hh | 7 ++++
src/hb-buffer.cc | 2 ++
src/hb-ot-shape-fallback-private.hh | 4 +++
- src/hb-ot-shape-fallback.cc | 67
- +++++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape-fallback.cc | 67 +++++++++++++++++++++++++++++++++++++
src/hb-ot-shape-normalize.cc | 1 +
src/hb-ot-shape.cc | 3 ++
src/hb-unicode-private.hh | 56 +++++++++++++++++--------------
Date: Wed Nov 4 14:48:46 2015 -0800
Normalize various spaces to space if font doesn't support
-
+
This resurrects the space fallback feature, after I disabled
the compatibility decomposition. Now I can release HarfBuzz
again without breaking Pango!
-
+
It also remembers which space character it was, such that later
on we can approximate the width of this particular space
character. That part is not implemented yet.
-
+
We normalize all GC=Zs chars except for U+1680 OGHA SPACE MARK,
which is better left alone.
- src/hb-ot-layout-private.hh | 47
- +++------------------
+ src/hb-ot-layout-private.hh | 47 +++------------------
src/hb-ot-shape-normalize.cc | 12 +++++-
- src/hb-unicode-private.hh | 40
- ++++++++++++++++++
+ src/hb-unicode-private.hh | 40 ++++++++++++++++++
test/shaping/Makefile.am | 1 +
.../1c2c3fc37b2d4c3cb2ef726c6cdaaabd4b7f3eb9.ttf | Bin 0 -> 316 bytes
test/shaping/fonts/sha1sum/MANIFEST | 1 +
Date: Wed Nov 4 14:46:10 2015 -0800
Fix typo!
-
+
Ouch! Fortunately that function was unused.
src/hb-buffer-private.hh | 2 +-
Date: Wed Nov 4 14:18:39 2015 -0800
Add Unicode space category
-
+
Unused so far.
- src/hb-ot-layout-private.hh | 78
- +++++++++++++++++++++++++++++++++++++++++++--
+ src/hb-ot-layout-private.hh | 78 +++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 76 insertions(+), 2 deletions(-)
commit 8249ec3f86510fd24462ce71ed64a6978f0ade17
Date: Wed Nov 4 13:17:33 2015 -0800
Add _hb_glyph_info_is_unicode_mark()
-
+
Unused right now.
src/hb-ot-layout-private.hh | 6 ++++++
Date: Tue Nov 3 12:15:12 2015 -0800
[ot-font] Fix hmtx table length checking, *again*
-
+
Exactly the same problem that I fixed in
63ef0b41dc48d6112d1918c1b1de9de8ea90adb5
-
+
I rewrote the table checking yesterday in
67f8821fb25d9bd55719f5e29a582ae1af4b02b3
and introduced the exact same issue again. :(
Good thing we have ongoing fuzzing going now. Was discovered
immediately by libFuzzer. Thanks kcc!
-
+
https://github.com/behdad/harfbuzz/issues/139#issuecomment-153449473
Fixes https://github.com/behdad/harfbuzz/issues/156
src/hb-ot-font.cc | 4 ++--
- .../sha1sum/8240789f6d12d4cfc4b5e8e6f246c3701bcf861f.ttf | Bin 0 ->
- 633 bytes
+ .../sha1sum/8240789f6d12d4cfc4b5e8e6f246c3701bcf861f.ttf | Bin 0 -> 633 bytes
test/shaping/fonts/sha1sum/MANIFEST | 1 +
test/shaping/tests/fuzzed.tests | 1 +
4 files changed, 4 insertions(+), 2 deletions(-)
util/helper-cairo.cc | 7 +++++--
util/main-font-text.hh | 22 ++++++++++++++++++---
util/options.cc | 21 ++++++++++----------
- util/options.hh | 53
- +++++++++++++++++++++++++++++++++-----------------
+ util/options.hh | 53 +++++++++++++++++++++++++++++++++-----------------
4 files changed, 70 insertions(+), 33 deletions(-)
commit 642135f3b2d6d6eb800153c76c4718239733c0e6
Date: Tue Nov 3 11:26:34 2015 -0800
[util] In --debug mode, duplicate font data
-
+
This has the effect that the font data will end up in a memory
section malloc()ed exactly to its size. This gives us better
valgrind detection of out-of-bounds access.
-
+
Previously, the font data was placed in a mmap()ed section or
GString-allocated area, which didn't have proper protections
at the end when running under valgrind.
Date: Mon Nov 2 17:52:45 2015 -0800
Remove irrelevant comment
-
+
I tried moving the is_default_ignorable() function to an INTERNAL
function. That made the binary size grow by 5k AND things got a
tad bit slower!
Date: Mon Nov 2 17:36:51 2015 -0800
Combine unicode_props0/1 into a uint16
-
+
Slightly faster. In prep for more changes.
- src/hb-ot-layout-private.hh | 55
- ++++++++++++++++++++++++---------------------
+ src/hb-ot-layout-private.hh | 55 ++++++++++++++++++++++++---------------------
1 file changed, 29 insertions(+), 26 deletions(-)
commit 71277185454482cff9b0c10b85c416eb4d6e0ed9
Date: Mon Nov 2 17:27:48 2015 -0800
[perf] Only call combining_class() for marks
-
- Saves some time. Also preparing for reusing the ccc byte for
- other stuff.
+
+ Saves some time. Also preparing for reusing the ccc byte for other stuff.
src/hb-ot-layout-private.hh | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
Date: Mon Nov 2 15:43:08 2015 -0800
Make max context-length and max nesting level configurable
-
+
...at compile time.
src/hb-ot-layout-common-private.hh | 10 ++++++++--
Date: Mon Nov 2 15:37:29 2015 -0800
[ot] Make bad-hmtx handling match FreeType
-
- Also route fuzzing-related tests through hb-ot-font, to reduce
- dependency
+
+ Also route fuzzing-related tests through hb-ot-font, to reduce dependency
on FreeType behavior for badly-broken fonts. Fixes failing test with
FreeType master.
Date: Wed Oct 21 17:20:55 2015 -0200
Disable compatibility decomposition usage during normalization
-
+
Fixes https://github.com/behdad/harfbuzz/issues/152
src/hb-ot-shape-normalize.cc | 24 ------------------------
Date: Wed Oct 21 11:23:12 2015 -0200
Fix two more -Wshadow warnings
-
+
https://bugzilla.mozilla.org/show_bug.cgi?id=1215894
src/hb-open-type-private.hh | 10 +++++-----
Date: Wed Oct 21 11:20:55 2015 -0200
Fix one more -Wshadow warning
-
+
https://bugzilla.mozilla.org/show_bug.cgi?id=1215894
src/hb-ot-layout-gsubgpos-private.hh | 6 +++---
Date: Wed Oct 21 11:16:49 2015 -0200
Fix a few more -Wshadow-local warnings
-
+
https://bugzilla.mozilla.org/show_bug.cgi?id=1215894
src/hb-ot-shape-complex-indic.cc | 10 +++++-----
Date: Wed Oct 21 11:13:21 2015 -0200
Fix one -Wshadow-compatible-local warning
-
+
From https://bugzilla.mozilla.org/show_bug.cgi?id=1215894
src/hb-ot-shape-complex-indic.cc | 4 ++--
Date: Wed Oct 21 11:10:10 2015 -0200
Avoid unnecessary cast to 64-bit
-
+
Fixes https://github.com/behdad/harfbuzz/issues/146
-
+
Or I think it should.
src/hb-private.hh | 2 +-
Date: Wed Oct 21 11:04:28 2015 -0200
Add HB_FALLTHROUGH
-
+
Borrowed from https://bugzilla.mozilla.org/show_bug.cgi?id=1215411
src/hb-ot-shape-complex-indic.cc | 2 +-
Add a prototype of DirectWrite as a shaping backend
- src/hb-directwrite.cc | 827
- ++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-directwrite.cc | 827 ++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-directwrite.h | 34 +++
src/hb-shaper-list.hh | 3 +
3 files changed, 864 insertions(+)
Date: Tue Oct 20 15:19:41 2015 -0200
Merge pull request #148 from ebraminio/inst
-
+
Add BUILD.md based on harfbuzz.org docs
commit 904b0dc3811464cf61dc9457664de95ee4f61a86
Date: Mon Oct 19 16:59:43 2015 -0200
Merge pull request #147 from ebraminio/dockerci
-
+
[ci] change to docker infrastructure
commit ba096bcc28ca80e2096e0a15191848fcd175e395
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Oct 15 20:20:22 2015 -0300
- [ft] Revert change-of-behavior of hb_ft_font_create() introduced
- in 1.0.5
-
+ [ft] Revert change-of-behavior of hb_ft_font_create() introduced in 1.0.5
+
The default FreeType load flags where changed from FT_LOAD_NO_HINTING
to FT_LOAD_DEFAULT in 2a9627c5641cd000e2adff0e42a0dc687b53ec70.
This is crashing HarfBuzz-enabled FreeType as I suppose it causes
infinite recursion between HB and FT autohinter...
-
+
Revert the behavior change.
-
+
Fixes https://github.com/behdad/harfbuzz/issues/143
src/hb-ft.cc | 2 +-
Date: Thu Oct 15 12:55:57 2015 -0300
Add tests for a couple of fixed issues found by libFuzzer
-
+
From:
https://github.com/behdad/harfbuzz/issues/139#issuecomment-147616887
https://github.com/behdad/harfbuzz/issues/139#issuecomment-148289957
- .../sha1sum/375d6ae32a3cbe52fbf81a4e5777e3377675d5a3.ttf | Bin 0 ->
- 1024 bytes
- .../sha1sum/641bd9db850193064d17575053ae2bf8ec149ddc.ttf | Bin 0 ->
- 305 bytes
+ .../sha1sum/375d6ae32a3cbe52fbf81a4e5777e3377675d5a3.ttf | Bin 0 -> 1024 bytes
+ .../sha1sum/641bd9db850193064d17575053ae2bf8ec149ddc.ttf | Bin 0 -> 305 bytes
test/shaping/fonts/sha1sum/MANIFEST | 2 ++
test/shaping/tests/fuzzed.tests | 2 ++
4 files changed, 4 insertions(+)
Date: Thu Oct 15 12:47:22 2015 -0300
[ot-font] Fix hmtx wrong table length check
-
+
Discovered by libFuzzer. Ouch!
-
+
https://github.com/behdad/harfbuzz/issues/139#issuecomment-148289957
src/hb-ot-font.cc | 2 +-
Date: Tue Oct 13 23:33:28 2015 -0300
Reduce max nesting level from 8 to 6
-
+
We probably should implement better system to catch cyclic lookups.
But for now, this speeds up worst case behavior with broken fonts
considerably without compromising legitimate usecases.
-
+
https://github.com/behdad/harfbuzz/issues/139#issuecomment-147788447
src/hb-ot-layout-common-private.hh | 2 +-
Date: Tue Oct 13 10:32:56 2015 -0300
[ot-font] Fix leak
-
+
https://github.com/behdad/harfbuzz/issues/139#issuecomment-147616887
src/hb-ot-font.cc | 1 +
Add test for previous commit
- .../sha1sum/0509e80afb379d16560e9e47bdd7d888bebdebc6.ttf | Bin 0 ->
- 61 bytes
+ .../sha1sum/0509e80afb379d16560e9e47bdd7d888bebdebc6.ttf | Bin 0 -> 61 bytes
test/shaping/fonts/sha1sum/MANIFEST | 1 +
test/shaping/tests/fuzzed.tests | 1 +
3 files changed, 2 insertions(+)
Date: Tue Oct 13 00:30:50 2015 -0400
Fix another memory access issue discovered by libFuzzer
-
- Fixes
- https://github.com/behdad/harfbuzz/issues/139#issuecomment-146984679
+
+ Fixes https://github.com/behdad/harfbuzz/issues/139#issuecomment-146984679
src/hb-ot-layout-gpos-table.hh | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Date: Mon Oct 12 17:39:52 2015 -0400
[fuzz] Add fuzzing script from kcc@
-
+
https://github.com/behdad/harfbuzz/issues/139
- test/fuzzing/hb-fuzzer.cc | 47
- +++++++++++++++++++++++++++++++++++++++++++++++
+ test/fuzzing/hb-fuzzer.cc | 47 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
commit cc6ea308d4c99b9dd6d625fa3a9b0ef62fa2614f
Add test for ee9b0b6cb5fdb08671ab064f26c299135f828260
- .../sha1sum/5a5daf5eb5a4db77a2baa3ad9c7a6ed6e0655fa8.ttf | Bin 0 ->
- 61 bytes
+ .../sha1sum/5a5daf5eb5a4db77a2baa3ad9c7a6ed6e0655fa8.ttf | Bin 0 -> 61 bytes
test/shaping/fonts/sha1sum/MANIFEST | 1 +
test/shaping/tests/fuzzed.tests | 1 +
3 files changed, 2 insertions(+)
Date: Fri Oct 9 14:23:15 2015 -0400
Fix another sanitize bug
-
+
Also discovered by "libFuzzer".
src/hb-open-type-private.hh | 2 +-
Add test for previous fix
test/shaping/Makefile.am | 1 +
- .../sha1sum/1a6f1687b7a221f9f2c834b0b360d3c8463b6daf.ttf | Bin 0 ->
- 64 bytes
+ .../sha1sum/1a6f1687b7a221f9f2c834b0b360d3c8463b6daf.ttf | Bin 0 -> 64 bytes
test/shaping/fonts/sha1sum/MANIFEST | 1 +
test/shaping/tests/MANIFEST | 1 +
test/shaping/tests/fuzzed.tests | 1 +
Date: Fri Oct 9 12:25:55 2015 -0400
Fix return value of sanitize when subformat is not readable
-
+
This is a fix on top of the previous issue fixed in
c917965b9e6fe2b21ed6c51559673288fa3af4b7.
-
+
This was caught by "libFuzzer" testing.
src/hb-open-type-private.hh | 2 ++
Add hb_dispatch_context_t
src/hb-open-type-private.hh | 26 ++++++++++++++++++++++----
- src/hb-ot-layout-gsubgpos-private.hh | 36
- ++++++++++++------------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 36 ++++++++++++------------------------
src/hb-ot-layout.cc | 8 +++-----
3 files changed, 37 insertions(+), 33 deletions(-)
Date: Thu Oct 8 12:51:02 2015 -0400
Add hb_font_set_parent()
-
+
No reason to not have it. Makes life easier later.
We (hb-ft, hb-ot-font, etc) can use this API to inject new
parent into a font...
Date: Wed Oct 7 17:33:20 2015 -0400
[ft] API: Add hb_font_[sg]et_load_flags() API
-
+
This changes the default load_flags of fonts created using
hb_ft_font_create() from NO_HINTING to DEFAULT. Hope that doesn't
break too much client code.
-
+
Code calling hb_ft_font_set_funcs() is unaffected.
- src/hb-ft.cc | 163
- +++++++++++++++++++++++++++++++++++++++--------------------
+ src/hb-ft.cc | 163 +++++++++++++++++++++++++++++++++++++++--------------------
src/hb-ft.h | 13 +++--
2 files changed, 118 insertions(+), 58 deletions(-)
Date: Sat Oct 3 13:20:55 2015 +0100
Allow compiling with custom allocators
-
- User can define hb_malloc_impl, etc, to name of custom allocator
- functions
+
+ User can define hb_malloc_impl, etc, to name of custom allocator functions
that have the same signature as malloc.
src/hb-private.hh | 17 +++++++++++++++++
Date: Fri Oct 2 14:38:20 2015 +0100
Default font scale to face upem
-
+
Makes for a better default and avoids nasty inheritance issues.
See mailing list thread "Default hb_font_t scale".
Date: Fri Oct 2 14:21:29 2015 +0100
Make hb_font_create_sub_font() NOT make parent immutable
-
+
We don't rely on that. However, whenever hb_font_make_immutable()
is called, it makes its parenting chain immutable.
Date: Fri Oct 2 08:21:12 2015 +0100
Fix hb-ot-shape-normalize with empty buffer
-
+
Part of https://github.com/behdad/harfbuzz/issues/136
src/hb-ot-shape-normalize.cc | 2 ++
Date: Fri Oct 2 07:25:52 2015 +0100
Fix segfault with empty buffer in hb_shape_plan_execute()
-
- Move the empty-buffer check from hb_shape_full() to
- hb_shape_plan_execute().
-
+
+ Move the empty-buffer check from hb_shape_full() to hb_shape_plan_execute().
+
Reported by Simon Cozens.
src/hb-shape-plan.cc | 9 +++++++--
Date: Tue Sep 29 14:57:02 2015 +0100
Define return_trace()
-
+
Not functional change (expected!).
src/hb-open-file-private.hh | 20 +--
src/hb-ot-layout-common-private.hh | 108 ++++++-------
src/hb-ot-layout-gdef-table.hh | 44 ++---
src/hb-ot-layout-gpos-table.hh | 252 +++++++++++++++--------------
- src/hb-ot-layout-gsub-table.hh | 304
- ++++++++++++++++++-----------------
+ src/hb-ot-layout-gsub-table.hh | 304 ++++++++++++++++++-----------------
src/hb-ot-layout-gsubgpos-private.hh | 205 +++++++++++------------
src/hb-ot-layout-jstf-table.hh | 35 ++--
src/hb-ot-maxp-table.hh | 5 +-
Date: Tue Sep 29 14:45:35 2015 +0100
Add missing returns
-
+
Fixes possible invalid read of two bytes.
-
+
Reported by Behzad Najjarpour Jabbari, Secunia Research.
src/hb-ot-layout-gpos-table.hh | 14 +++++++-------
Date: Tue Sep 29 14:34:56 2015 +0100
Micro-optimize hb_language_from_string()
-
+
As measured / improved by Benson Limketkai.
src/hb-common.cc | 10 +++++-----
Date: Sun Jun 28 03:29:47 2015 +0200
Handle language tags that indicate phonetic IPA transcription
-
+
The BCP-47 registry defines a variant subtag "fonipa" that can be used
in combination with arbitrary other language tags. For example,
"rm-CH-fonipa-sursilv" indicates the Sursilvan dialect of Romansh
as used in Switzerland, transcribed used the International Phonetic
Alphabet.
-
+
http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
src/hb-ot-tag.cc | 15 ++++++++++++++-
Date: Thu Sep 3 15:53:22 2015 +0430
Fix Since tags
-
+
Fixes https://github.com/behdad/harfbuzz/issues/103
src/hb-blob.cc | 24 +++++++++----------
src/hb-buffer-serialize.cc | 10 ++++----
- src/hb-buffer.cc | 58
- +++++++++++++++++++++++-----------------------
+ src/hb-buffer.cc | 58 +++++++++++++++++++++++-----------------------
src/hb-buffer.h | 9 +++++++
src/hb-common.cc | 24 +++++++++----------
src/hb-common.h | 3 +++
Date: Thu Sep 3 14:55:59 2015 +0430
Fix Since: version tags on font and face APIs
-
- A while back we marked every API as version:1.0. We should fix
- them all
+
+ A while back we marked every API as version:1.0. We should fix them all
to reflect real version they were introduced. This is a start.
-
+
Patch from Nikolay Sivov.
src/hb-face.cc | 22 ++++++++---------
- src/hb-font.cc | 76
- +++++++++++++++++++++++++++++-----------------------------
+ src/hb-font.cc | 76 +++++++++++++++++++++++++++++-----------------------------
2 files changed, 49 insertions(+), 49 deletions(-)
commit 7f5405397406a24c5a001b5ef43dcf4d6926415e
Date: Tue Sep 1 16:15:25 2015 +0100
[myanmar] Use buffer->sort() to sort cluster
-
+
This can possibly produce more granular clusters.
src/hb-ot-shape-complex-myanmar.cc | 3 +--
Date: Tue Sep 1 16:13:32 2015 +0100
[OT] Merge clusters when reordering marks for normalization
-
+
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=541608
and cluster test.
Date: Tue Sep 1 16:12:44 2015 +0100
[tests] Add Hebrew test for normalization under cluster-level=1
-
+
Currently fails.
https://bugzilla.gnome.org/show_bug.cgi?id=541608
- .../sha1sum/43ef465752be9af900745f72fe29cb853a1401a5.ttf | Bin 0 ->
- 4272 bytes
+ .../sha1sum/43ef465752be9af900745f72fe29cb853a1401a5.ttf | Bin 0 -> 4272 bytes
test/shaping/fonts/sha1sum/MANIFEST | 1 +
test/shaping/tests/cluster.tests | 1 +
3 files changed, 2 insertions(+)
Date: Tue Sep 1 15:07:52 2015 +0100
Use insertion-sort instead of bubble-sort
-
+
Needed for upcoming merge-clusters fix.
src/hb-buffer.cc | 4 +--
src/hb-ot-shape-complex-indic.cc | 2 +-
src/hb-ot-shape-complex-myanmar.cc | 2 +-
src/hb-ot-shape-normalize.cc | 6 ++--
- src/hb-private.hh | 56
- +++++++++++++-----------------
+ src/hb-private.hh | 56 +++++++++++++-----------------
6 files changed, 34 insertions(+), 42 deletions(-)
commit fad2674874591b4a1df822603144c8864f5364c1
[docs] Move docs/reference/ contents into docs/
configure.ac | 3 +-
- docs/Makefile.am | 117
- ++++++++++++++++++++++++++-
+ docs/Makefile.am | 117 ++++++++++++++++++++++++++-
docs/{reference => }/harfbuzz-docs.xml | 0
docs/{reference => }/harfbuzz-overrides.txt | 0
docs/{reference => }/harfbuzz-sections.txt | 0
- docs/reference/Makefile.am | 118
- ----------------------------
+ docs/reference/Makefile.am | 118 ----------------------------
docs/{reference => }/usermanual-ch01.xml | 0
docs/{reference => }/usermanual-ch02.xml | 0
docs/{reference => }/usermanual-ch03.xml | 0
Date: Mon Aug 31 10:46:01 2015 +0100
Merge pull request #131 from simoncozens/docs
-
+
Use gtk-doc to build user's manual as well as reference
commit 01e16e88f50b65b82dcb84773f532f18a351319f
Combine user / reference information into gtk-doc generated manual.
- docs/reference/harfbuzz-docs.xml | 91
- +++++++++++++++++++++++-----------------
+ docs/reference/harfbuzz-docs.xml | 91 +++++++++++++++++++++++-----------------
1 file changed, 52 insertions(+), 39 deletions(-)
commit 11a07c4729174e1d4af028103ecb0a351e4c2707
Date: Mon Aug 31 09:53:16 2015 +0100
Merge pull request #129 from simoncozens/docs
-
+
First two chapters. More to follow.
commit 31594b98af0c9181982c77d8d3803753007f8fd4
Date: Sun Aug 30 17:33:04 2015 +0100
[test] Fix test-object
-
+
See previous commit.
test/api/test-object.c | 4 ----
Date: Sun Aug 30 17:29:21 2015 +0100
Poison freed objects such that double-free is detected
-
- Previously we were setting refcount of freed objects to the inert
- value, which
- was harmful because it caused further destroy()s of the freed object
- to NOT
- call free() and hence hide the bug. Indeed, after eb0bf3ae6688b7
- test-object
- was double-free'ing objects and this was never caught on Linux.
- It only was
+
+ Previously we were setting refcount of freed objects to the inert value, which
+ was harmful because it caused further destroy()s of the freed object to NOT
+ call free() and hence hide the bug. Indeed, after eb0bf3ae6688b7 test-object
+ was double-free'ing objects and this was never caught on Linux. It only was
caught as crashing on Mac.
-
- Now we poison refcount upon freeing and check that it's valid
- whenever reading
+
+ Now we poison refcount upon freeing and check that it's valid whenever reading
it. Makes test-object fail now.
src/hb-object-private.hh | 21 ++++++++++++++++-----
Current state and skeleton outline
- docs/usermanual-ch03.xml | 77
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ docs/usermanual-ch03.xml | 77 ++++++++++++++++++++++++++++++++++++++++++++++++
docs/usermanual-ch04.xml | 18 +++++++++++
docs/usermanual-ch05.xml | 13 ++++++++
docs/usermanual-ch06.xml | 8 +++++
Date: Tue Aug 25 20:24:59 2015 +0100
[GPOS] Fix cursive connection with mix of RTL and non-RTL lookups
-
+
See thread "Issue with cursive attachment" started by Khaled.
Turned out fixing this wasn't as bad as I had assumed. I like the
new code better; we now have a theoretical model of cursive
Date: Tue Aug 25 20:28:39 2015 +0100
[test] Add test for cursive-positioning with mixed directions
-
+
Fails now. Fix coming. See thread "Issue with cursive attachment"
started by Khaled. Test fonts were made by modifying test font
from Khaled to add more anchors.
test/shaping/Makefile.am | 1 +
- .../sha1sum/298c9e1d955f10f6f72c6915c3c6ff9bf9695cec.ttf | Bin 0 ->
- 2520 bytes
+ .../sha1sum/298c9e1d955f10f6f72c6915c3c6ff9bf9695cec.ttf | Bin 0 -> 2520 bytes
test/shaping/fonts/sha1sum/MANIFEST | 2 ++
- .../sha1sum/c4e48b0886ef460f532fb49f00047ec92c432ec0.ttf | Bin 0 ->
- 2512 bytes
+ .../sha1sum/c4e48b0886ef460f532fb49f00047ec92c432ec0.ttf | Bin 0 -> 2512 bytes
test/shaping/tests/MANIFEST | 1 +
test/shaping/tests/cursive-positioning.tests | 2 ++
6 files changed, 6 insertions(+)
First two chapters. More to follow.
docs/usermanual-ch01.xml | 115 ++++++++++++++++++++++++++++++
- docs/usermanual-ch02.xml | 182
- +++++++++++++++++++++++++++++++++++++++++++++++
+ docs/usermanual-ch02.xml | 182 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 297 insertions(+)
commit 58f2a73fb95af42e264a91cdef7bb5a89e965601
Date: Tue Aug 25 18:55:34 2015 +0100
[GPOS] Rewrite cursive attachment slightly differently
-
+
In anticipation for upcoming fix for bug reported by
Khaled in thread "Issue with cursive attachment".
Date: Mon Aug 24 13:49:55 2015 +0100
Add API/cmdline to show glyph extents when serializing buffer
-
+
New API: HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS
-
+
hb-shape now accepts --show-extents.
-
+
Patch from Simon Cozens.
src/hb-buffer-serialize.cc | 17 +++++++++++++++++
Date: Sun Aug 23 14:42:20 2015 +0100
[ot-font] Implement glyph_extents() for TrueType fonts
-
+
This brings ot-fonts into almost-complete shape and mostly in par with
ft font.
src/Makefile.am | 1 +
src/hb-font.h | 9 +++--
src/hb-ot-font.cc | 90 +++++++++++++++++++++++++++++++++++++++--
- src/hb-ot-glyf-table.hh | 104
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-glyf-table.hh | 104 ++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-head-table.hh | 3 +-
5 files changed, 198 insertions(+), 9 deletions(-)
Date: Thu Aug 20 15:39:53 2015 +0100
[coretext] Use i32 instead of u32 as well
-
+
Shouldn't cause *any* functional changes, but is more correct.
src/hb-coretext.cc | 20 ++++++++++----------
Date: Thu Aug 20 15:39:06 2015 +0100
[uniscribe] Fix negative offsets
-
+
Ouch!
src/hb-uniscribe.cc | 8 ++++----
Date: Wed Aug 19 13:20:31 2015 +0100
[uniscribe] Fix font scale handling
-
+
By default shape at upem (or ppem), and scale results.
Similar to work done in CoreText backend, but using upem as default.
Date: Tue Aug 18 18:55:03 2015 +0100
Commented-out code to print buffer before each lookup
-
+
To be turned into a useful HB_DEBUG_SHAPE infrastructure...
src/hb-ot-layout.cc | 12 ++++++++++++
Date: Tue Aug 18 18:47:02 2015 +0100
Allow serializing buffer with output-buffer being used
-
+
Ie, don't call get_positions() if positions are not
requested for serialization.
Date: Tue Aug 18 18:42:47 2015 +0100
[ot] Change buffer content type right after we map to glyphs
-
+
Needed for upcoming debug output changes.
src/hb-ot-shape.cc | 2 ++
Date: Tue Aug 18 15:55:09 2015 +0100
Don't declare dependency on freetype in harfbuzz.pc
-
+
See comments.
src/Makefile.am | 7 ++++++-
Date: Tue Aug 18 10:22:16 2015 +0100
[coretext] Remove assert that kicks in on Mac OS 10.6
-
+
http://crbug.com/419769
src/hb-coretext.cc | 18 ++++++++++++++----
Date: Tue Aug 11 12:58:49 2015 +0200
Add Libs.private and Requires.private to harfbuzz.pc
-
+
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=64501
configure.ac | 12 +++++++++---
Date: Fri Aug 7 17:55:03 2015 +0100
Don't rely on .cluster in _hb_ot_shape_normalize()
-
+
Fixes https://github.com/behdad/harfbuzz/pull/124
src/hb-ot-shape-normalize.cc | 2 +-
Date: Fri Aug 7 17:51:28 2015 +0100
Don't rely on .cluster field in fallback_position
-
+
Fixes tests/cluster.
-
+
Fixes https://github.com/behdad/harfbuzz/pull/123
src/hb-ot-shape-fallback.cc | 5 ++---
Date: Sat Aug 8 18:02:18 2015 +0200
[tests] Add test for fallback positioning with cluster_level > 0
-
+
For https://github.com/behdad/harfbuzz/pull/123
Currently fails. Fix coming.
test/shaping/Makefile.am | 1 +
- .../sha1sum/6466d38c62e73a39202435a4f73bf5d6acbb73c0.ttf | Bin 0 ->
- 824 bytes
+ .../sha1sum/6466d38c62e73a39202435a4f73bf5d6acbb73c0.ttf | Bin 0 -> 824 bytes
test/shaping/fonts/sha1sum/MANIFEST | 1 +
test/shaping/tests/MANIFEST | 1 +
test/shaping/tests/cluster.tests | 1 +
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Fri Aug 7 11:13:27 2015 +0200
- Bug 91559 - HarfBuzz 1.0.1: Inconsistent DLL files
- specified/created...
-
+ Bug 91559 - HarfBuzz 1.0.1: Inconsistent DLL files specified/created...
+
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=91559
src/Makefile.am | 2 +-
Date: Mon Aug 3 22:47:18 2015 +0300
Merge pull request #122 from RomainNaour/static-fix
-
+
fix static linking with icu-uc
commit 160f635523d596f61e292776f638d4eb09673463
Date: Wed Jul 22 23:26:23 2015 +0200
fix static linking with icu-uc
-
+
When linking test-unicode statically it needs $(ICU_LIBS)
which contains all required flags.
Especially -lstdc++.
-
+
Fixes:
http://autobuild.buildroot.net/results/210/2107f9dfb39eeb6559fb4271c7af8b39aef521ca/
-
+
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
test/api/Makefile.am | 2 +-
Date: Wed Jul 8 23:28:11 2015 +0200
Update UCDN to upstream commit 8af93f30
-
- This adds support for Unicode 8.0 and fixes a bug with wrong
- properties
+
+ This adds support for Unicode 8.0 and fixes a bug with wrong properties
for ranges of codepoints.
src/hb-ucdn.cc | 6 +
src/hb-ucdn/ucdn.h | 6 +
- src/hb-ucdn/unicodedata_db.h | 2167
- +++++++++++++++++++++---------------------
+ src/hb-ucdn/unicodedata_db.h | 2167 +++++++++++++++++++++---------------------
3 files changed, 1118 insertions(+), 1061 deletions(-)
commit 786ba45847127b9cd4d9c0c01ae0e6c61f3a8e06
Date: Thu Jul 23 13:04:34 2015 +0100
[test] Encode Kharoshti text
-
+
Ouch!
- .../in-tree/shaper-use/script-kharoshti/misc.txt | 72
- +++++++++++-----------
+ .../in-tree/shaper-use/script-kharoshti/misc.txt | 72 +++++++++++-----------
1 file changed, 36 insertions(+), 36 deletions(-)
commit b4231255032e243153a6f32cf8c93c158cb0bf6a
.../texts/in-tree/shaper-use/script-batak/MANIFEST | 1 +
.../texts/in-tree/shaper-use/script-batak/misc.txt | 9 +++
.../in-tree/shaper-use/script-buginese/MANIFEST | 1 +
- .../in-tree/shaper-use/script-buginese/misc.txt | 70
- ++++++++++++++++++++++
+ .../in-tree/shaper-use/script-buginese/misc.txt | 70 ++++++++++++++++++++++
5 files changed, 83 insertions(+)
commit b8c159ffccad090974a2b97be0a0140fa09af132
[test] Remove shaper-sea texts under shaper-use
- test/shaping/texts/in-tree/MANIFEST |
- 1 -
- test/shaping/texts/in-tree/shaper-sea/MANIFEST |
- 2 --
- test/shaping/texts/in-tree/shaper-sea/script-cham/MANIFEST |
- 1 -
- test/shaping/texts/in-tree/shaper-sea/script-tai-tham/MANIFEST |
- 1 -
- test/shaping/texts/in-tree/shaper-use/MANIFEST |
- 2 ++
- .../{shaper-sea/script-cham/misc => shaper-use/script-cham}/MANIFEST
- | 0
- .../{shaper-sea/script-cham/misc => shaper-use/script-cham}/misc.txt
- | 0
- .../script-tai-tham/misc => shaper-use/script-tai-tham}/MANIFEST
- | 0
- .../script-tai-tham/misc => shaper-use/script-tai-tham}/misc.txt
- | 0
- .../script-tai-tham/misc => shaper-use/script-tai-tham}/torture.txt
- | 0
+ test/shaping/texts/in-tree/MANIFEST | 1 -
+ test/shaping/texts/in-tree/shaper-sea/MANIFEST | 2 --
+ test/shaping/texts/in-tree/shaper-sea/script-cham/MANIFEST | 1 -
+ test/shaping/texts/in-tree/shaper-sea/script-tai-tham/MANIFEST | 1 -
+ test/shaping/texts/in-tree/shaper-use/MANIFEST | 2 ++
+ .../{shaper-sea/script-cham/misc => shaper-use/script-cham}/MANIFEST | 0
+ .../{shaper-sea/script-cham/misc => shaper-use/script-cham}/misc.txt | 0
+ .../script-tai-tham/misc => shaper-use/script-tai-tham}/MANIFEST | 0
+ .../script-tai-tham/misc => shaper-use/script-tai-tham}/misc.txt | 0
+ .../script-tai-tham/misc => shaper-use/script-tai-tham}/torture.txt | 0
10 files changed, 2 insertions(+), 5 deletions(-)
commit 67ba7320cc5545baeacfcff64cea338223b9bd6d
Date: Thu Jul 23 12:58:21 2015 +0100
[test] Remove New Tai Lue texts
-
+
New Tai Lue changed encoding to visual, boring, model.
- test/shaping/texts/in-tree/shaper-sea/MANIFEST |
- 1 -
- test/shaping/texts/in-tree/shaper-sea/script-new-tai-lue/MANIFEST |
- 1 -
- test/shaping/texts/in-tree/shaper-sea/script-new-tai-lue/misc/MANIFEST |
- 1 -
- test/shaping/texts/in-tree/shaper-sea/script-new-tai-lue/misc/misc.txt |
- 1 -
+ test/shaping/texts/in-tree/shaper-sea/MANIFEST | 1 -
+ test/shaping/texts/in-tree/shaper-sea/script-new-tai-lue/MANIFEST | 1 -
+ test/shaping/texts/in-tree/shaper-sea/script-new-tai-lue/misc/MANIFEST | 1 -
+ test/shaping/texts/in-tree/shaper-sea/script-new-tai-lue/misc/misc.txt | 1 -
4 files changed, 4 deletions(-)
commit c81d957a264539dfe3252f9a94ee066c4a44edf4
[test] Add tests for improved 'vert' feature
test/shaping/Makefile.am | 1 +
- .../sha1sum/191826b9643e3f124d865d617ae609db6a2ce203.ttf | Bin 0 ->
- 2140 bytes
+ .../sha1sum/191826b9643e3f124d865d617ae609db6a2ce203.ttf | Bin 0 -> 2140 bytes
test/shaping/fonts/sha1sum/MANIFEST | 1 +
test/shaping/tests/MANIFEST | 1 +
test/shaping/tests/vertical.tests | 1 +
Date: Thu Jul 23 12:49:09 2015 +0100
[test] Add recently added test
-
+
Ouch.
test/shaping/Makefile.am | 1 +
[test] Support additional options to hb-shape in micro-test suite
- test/shaping/record-test.sh | 47
- ++++++++++++++++++----
+ test/shaping/record-test.sh | 47 ++++++++++++++++++----
test/shaping/run-tests.sh | 9 ++++-
test/shaping/tests/arabic-fallback-shaping.tests | 2 +-
test/shaping/tests/arabic-feature-order.tests | 6 +--
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Jul 23 11:52:11 2015 +0100
- [ot] Search globally for 'vert' feature if not found in specified
- script/lang
-
+ [ot] Search globally for 'vert' feature if not found in specified script/lang
+
Fixes https://github.com/behdad/harfbuzz/issues/63
src/hb-ot-layout-private.hh | 9 +++++++++
Add test case for deleting default ignorables with positioning
- .../sha1sum/051d92f8bc6ff724511b296c27623f824de256e9.ttf | Bin 0 ->
- 2028 bytes
+ .../sha1sum/051d92f8bc6ff724511b296c27623f824de256e9.ttf | Bin 0 -> 2028 bytes
test/shaping/fonts/sha1sum/MANIFEST | 1 +
test/shaping/tests/MANIFEST | 1 +
test/shaping/tests/default-ignorables.tests | 1 +
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Wed Jul 22 18:41:10 2015 +0100
- Fix hide-default-ignorables after
- f0010dfd01ef4a927b0bdc175dd4e343a8637174
-
+ Fix hide-default-ignorables after f0010dfd01ef4a927b0bdc175dd4e343a8637174
+
We can't delete things before hb_ot_layout_position_finish(). So,
just zero the advance before it, and remove later.
Date: Wed Jul 22 18:28:39 2015 +0100
Fix hide-ignorables if font doesn't have space glyph
-
+
Was broken by 82b521aeb7cc73879b44ca4278d6fa8b4347527f, as we have
positioning data by then and can't use the output buffer. Ouch!
src/hb-buffer-private.hh | 18 ------------------
- src/hb-ot-shape.cc | 44
- +++++++++++++++++++++++++++++++++++---------
+ src/hb-ot-shape.cc | 44 +++++++++++++++++++++++++++++++++++---------
2 files changed, 35 insertions(+), 27 deletions(-)
commit 4ba796b26ee62de0d2830a550f3aa3b4aecf6f59
Date: Wed Jul 22 17:36:23 2015 +0100
[ot] Hide default-ignorables before finishing off positioning
-
+
For example, fixes the following sequence with Arial XP:
628 25cc 651 25cc 64e 3a 20 628 651 34f 64e
628 25cc 64e 25cc 651 3a 20 628 64e 34f 651
-
+
Discovered as part of:
https://bugs.freedesktop.org/show_bug.cgi?id=85873
- src/hb-ot-shape.cc | 125
- +++++++++++++++++++++++++++--------------------------
+ src/hb-ot-shape.cc | 125 +++++++++++++++++++++++++++--------------------------
1 file changed, 63 insertions(+), 62 deletions(-)
commit 376d587f36b4ff10342ee6ca3bacd73532ea44c8
Date: Wed Jul 22 16:51:12 2015 +0100
Implement more granular cluster-merging
-
+
TODO: Documentation.
-
+
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=71445
NEWS | 8 +++++++
src/hb-buffer-private.hh | 1 +
- src/hb-buffer.cc | 46
- ++++++++++++++++++++++++++++++++++-----
+ src/hb-buffer.cc | 46 ++++++++++++++++++++++++++++++++++-----
src/hb-buffer.h | 12 ++++++++++
src/hb-ot-shape-complex-hangul.cc | 13 +++++------
src/hb-ot-shape.cc | 7 ++++++
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Wed Jul 22 15:24:26 2015 +0100
- [ot] Don't mirror character if font doesn't support mirrored
- character!
+ [ot] Don't mirror character if font doesn't support mirrored character!
src/hb-ot-shape.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Wed Jul 22 14:28:25 2015 +0100
[graphite2] Fix bunch of stuff
-
+
Based on patch from Martin Hosken, with review from Jonathan and I.
- src/hb-graphite2.cc | 82
- +++++++++++++++++++++++++++++++++++------------------
+ src/hb-graphite2.cc | 82 +++++++++++++++++++++++++++++++++++------------------
1 file changed, 54 insertions(+), 28 deletions(-)
commit ea7f8414e34d4b5efc7b98974637c08f75440f0e
Date: Wed Jul 22 13:27:06 2015 +0100
[USE] Implement topographical features for non-Arabic-joining scripts
-
+
This works per-syllable as per the spec, but we think it should be per
spacing/base/??? glyph instead.
- src/hb-ot-shape-complex-use.cc | 87
- ++++++++++++++++++++++++++++++++++++++----
+ src/hb-ot-shape-complex-use.cc | 87 ++++++++++++++++++++++++++++++++++++++----
1 file changed, 80 insertions(+), 7 deletions(-)
commit ecb0b24ef3f8177e7c789f45a2e858bd67e31be3
Use foreach_cluster in Indic shaper
- src/hb-ot-shape-complex-indic.cc | 90
- +++++++++-------------------------------
+ src/hb-ot-shape-complex-indic.cc | 90 +++++++++-------------------------------
1 file changed, 19 insertions(+), 71 deletions(-)
commit 56f71ff98890fc4fd13e8d9743dc34c4b9407309
Use foreach_syllable in Myanmar shaper
- src/hb-ot-shape-complex-myanmar.cc | 62
- ++++++++------------------------------
+ src/hb-ot-shape-complex-myanmar.cc | 62 ++++++++------------------------------
1 file changed, 12 insertions(+), 50 deletions(-)
commit ac596511a8c9eeaeb455ca16b5b9c5f1b9923b3a
Date: Wed Jul 22 11:54:02 2015 +0100
Add foreach_syllable
-
+
Use it in USE.
src/hb-ot-layout-private.hh | 24 ++++++++
- src/hb-ot-shape-complex-use.cc | 129
- +++++++++++++----------------------------
+ src/hb-ot-shape-complex-use.cc | 129 +++++++++++++----------------------------
2 files changed, 64 insertions(+), 89 deletions(-)
commit 8ba9e689680f7685c04cfe7c6019222bdf0c52b0
[USE] Do Arabic-like shaping
- src/hb-ot-shape-complex-use.cc | 77
- ++++++++++++++++++++++++++++++++++++++++--
+ src/hb-ot-shape-complex-use.cc | 77 ++++++++++++++++++++++++++++++++++++++++--
1 file changed, 75 insertions(+), 2 deletions(-)
commit 9daf2dfb6bd5683fd951bdf166c8b87938257e52
Add hb-ot-shape-complex-arabic-private.hh
src/Makefile.am | 1 +
- src/hb-ot-shape-complex-arabic-private.hh | 50
- +++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-arabic-private.hh | 50 +++++++++++++++++++++++++++++++
src/hb-ot-shape-complex-arabic.cc | 37 +++++++++++++----------
3 files changed, 73 insertions(+), 15 deletions(-)
Date: Tue Jul 21 18:09:40 2015 +0100
[USE] Don't compose split matras
-
+
Same logic as in Indic shaper.
src/hb-ot-shape-complex-use.cc | 15 ++++++++++++++-
src/Makefile.am | 4 -
src/hb-ot-shape-complex-sea-machine.rl | 102 ---------
- src/hb-ot-shape-complex-sea.cc | 380
- ---------------------------------
+ src/hb-ot-shape-complex-sea.cc | 380 ---------------------------------
3 files changed, 486 deletions(-)
commit db1e9cdd41ff7c97c29b4d9b64b2351ed0ef0403
Date: Tue Jul 21 17:31:43 2015 +0100
[USE] Only use USE shaper if script system is not DFLT
-
+
Same logic as Indic and SEA.
src/hb-ot-shape-complex-private.hh | 13 ++++++++++---
Date: Tue Jul 21 17:24:18 2015 +0100
Route misc untested scripts through USE shaper instead of Indic
-
- These were never tested with Indic shaper, and indeed wouldn't
- work there
- because they didn't have their viramas and other config defined.
- They are
+
+ These were never tested with Indic shaper, and indeed wouldn't work there
+ because they didn't have their viramas and other config defined. They are
all also supported by MS through USE, so route them there.
- src/hb-ot-shape-complex-private.hh | 91
- +++++---------------------------------
+ src/hb-ot-shape-complex-private.hh | 91 +++++---------------------------------
1 file changed, 11 insertions(+), 80 deletions(-)
commit 40c4a991c7ea18017273ff8993eecc3953869e69
Date: Tue Jul 21 17:14:54 2015 +0100
[USE] Implement dotted-circle
-
+
This makes USE feature-complete as far as the Indic-like features
are concerned.
[USE] Fix-up variation selectors and word joiner in table
src/gen-use-table.py | 7 ++++++-
- src/hb-ot-shape-complex-use-table.cc | 34
- +++++++++++++++++++++++-----------
+ src/hb-ot-shape-complex-use-table.cc | 34 +++++++++++++++++++++++-----------
2 files changed, 29 insertions(+), 12 deletions(-)
commit ad7178227f16abc17456f122deac1508031cbbc3
[USE] Use a couple warnings
src/gen-use-table.py | 20 ++++-----
- src/hb-ot-shape-complex-use-table.cc | 82
- ++++++++++++++++++------------------
+ src/hb-ot-shape-complex-use-table.cc | 82 ++++++++++++++++++------------------
2 files changed, 51 insertions(+), 51 deletions(-)
commit a85c4da9b1750c2f994f9f85226a3e755fafe50b
[USE] Move rphf
- src/hb-ot-shape-complex-use.cc | 105
- ++++++++++++++---------------------------
+ src/hb-ot-shape-complex-use.cc | 105 ++++++++++++++---------------------------
1 file changed, 35 insertions(+), 70 deletions(-)
commit 5b5617e0664e59770910d04d15175f643a5ffb73
Date: Tue Jul 21 15:52:15 2015 +0100
Add FLAG_UNSAFE()
-
+
Unused right now.
src/hb-private.hh | 1 +
Date: Tue Jul 21 15:50:02 2015 +0100
Add FLAG_SAFE() for values known to be small-enough
-
+
And add check to FLAG()
src/hb-ot-shape-complex-arabic.cc | 2 +-
[USE] Use use_category() for rphf/pref memory
- src/hb-ot-shape-complex-use.cc | 63
- +++++++++++++++---------------------------
+ src/hb-ot-shape-complex-use.cc | 63 +++++++++++++++---------------------------
1 file changed, 22 insertions(+), 41 deletions(-)
commit 595936ec25e9c0924851bd1aa1af5eed3723b54f
Date: Tue Jul 21 14:15:35 2015 +0100
[USE] Hook of rphf and pref custom processing
-
+
Still no reordering.
src/hb-ot-layout-private.hh | 8 ++
- src/hb-ot-shape-complex-use.cc | 181
- +++++++++++++++++++++++++++++++++++++++--
+ src/hb-ot-shape-complex-use.cc | 181 +++++++++++++++++++++++++++++++++++++++--
2 files changed, 181 insertions(+), 8 deletions(-)
commit ba72801325e4bd58f7597938d4409762c9fa530c
[USE] Set up features
- src/hb-ot-shape-complex-use.cc | 68
- +++++++++++++++++++++++-------------------
+ src/hb-ot-shape-complex-use.cc | 68 +++++++++++++++++++++++-------------------
1 file changed, 38 insertions(+), 30 deletions(-)
commit 52a957795697085a5d379921ddd8aa6cf2f1a99d
Date: Tue Jul 21 10:02:04 2015 +0100
[USE] Hook up new scripts to USE shaper
-
+
Don't reroute scripts that we were routing to other shapers
before (just yet).
- src/hb-ot-shape-complex-private.hh | 71
- ++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-private.hh | 71 ++++++++++++++++++++++++++++++++++++++
1 file changed, 71 insertions(+)
commit b4c0829bc18b696f140a260fa2e1089d10164519
[USE] Remove unused Unicode data enums from USE C++ side
- src/hb-ot-shape-complex-use-private.hh | 66
- +---------------------------------
+ src/hb-ot-shape-complex-use-private.hh | 66 +---------------------------------
src/hb-ot-shape-complex-use.cc | 14 ++------
2 files changed, 3 insertions(+), 77 deletions(-)
Date: Mon Jul 20 18:01:10 2015 +0100
[USE] Finish converting Unicode positional categories to USE
-
+
Even compiles.
src/gen-use-table.py | 114 +++++-
- src/hb-ot-shape-complex-use-table.cc | 702
- ++++++++++++++++++-----------------
+ src/hb-ot-shape-complex-use-table.cc | 702 ++++++++++++++++++-----------------
2 files changed, 467 insertions(+), 349 deletions(-)
commit ad725552521273a1f571f04bc96a04221c3e067a
Date: Mon Jul 20 17:00:06 2015 +0100
[USE] Map from Unicode data to USE syllabic categories
-
+
Positional sub-categories not applied yet.
src/gen-use-table.py | 128 ++--
- src/hb-ot-shape-complex-use-table.cc | 1062
- ++++++++++++----------------------
+ src/hb-ot-shape-complex-use-table.cc | 1062 ++++++++++++----------------------
2 files changed, 409 insertions(+), 781 deletions(-)
commit 20e246e674155d5fb6527722fc3ef3accf2413df
[USE] Start moving Unicode-to-USE mapping into Python code
src/Makefile.am | 2 +-
- src/gen-use-table.py | 176
- +++++++++++++++++++++++++++++++++--
+ src/gen-use-table.py | 176 +++++++++++++++++++++++++++++++++--
src/hb-ot-shape-complex-use-table.cc | 3 +-
3 files changed, 169 insertions(+), 12 deletions(-)
Date: Mon Jul 20 15:33:25 2015 +0100
[USE] Fix Number clusters
-
+
The spec wrongly has "H" where "HN" is meant.
src/hb-ot-shape-complex-use-machine.rl | 4 ++--
[USE] Start putting together the shaper body
src/hb-ot-shape-complex-use-private.hh | 2 +-
- src/hb-ot-shape-complex-use.cc | 339
- +++++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-use.cc | 339 +++++++++++++++++++++++++++++++++
2 files changed, 340 insertions(+), 1 deletion(-)
commit e0eabd7f67462ac34fbfc749d897be478fbd1224
Date: Mon Jul 20 13:30:51 2015 +0100
[USE] Put a Ragel machine together
-
+
Grammar from the spec!
- src/hb-ot-shape-complex-use-machine.rl | 169
- +++++++++++++++++++++++++++++++++
- src/hb-ot-shape-complex-use-private.hh | 160
- +++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-use-machine.rl | 169 +++++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-use-private.hh | 160 +++++++++++++++++++++++++++++++
2 files changed, 329 insertions(+)
commit fd74b939b176f47d34d34b3d33e2a09d255c2d9e
test/shaping/texts/in-tree/MANIFEST | 1 +
test/shaping/texts/in-tree/shaper-use/MANIFEST | 1 +
.../in-tree/shaper-use/script-kharoshti/MANIFEST | 1 +
- .../in-tree/shaper-use/script-kharoshti/misc.txt | 36
- ++++++++++++++++++++++
+ .../in-tree/shaper-use/script-kharoshti/misc.txt | 36 ++++++++++++++++++++++
4 files changed, 39 insertions(+)
commit c48ff288522f33dc6c78520de0a0a74306630895
[USE] Build Universal Shaping Engine data table from Unicode 8 files
src/gen-use-table.py | 35 +-
- src/hb-ot-shape-complex-use-table.cc | 1016
- ++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-use-table.cc | 1016 ++++++++++++++++++++++++++++++++++
2 files changed, 1032 insertions(+), 19 deletions(-)
commit e2c95116e1423f83a692d6170553d0cc95733d24
[USE] Add Universal Shaping Engine to Makefile
src/Makefile.am | 23 +++-
- src/gen-use-table.py | 237
- +++++++++++++++++++++++++++++++++
+ src/gen-use-table.py | 237 +++++++++++++++++++++++++++++++++
src/hb-ot-shape-complex-use-machine.rl | 0
src/hb-ot-shape-complex-use-private.hh | 0
src/hb-ot-shape-complex-use-table.cc | 0
Date: Wed Jul 15 01:36:39 2015 +0100
Add Unicode 8.0 scripts
-
+
Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1183209
src/hb-common.cc | 3 +++
Date: Sun Jul 5 22:43:17 2015 +0100
Fix pragma usage
-
+
https://bugs.freedesktop.org/show_bug.cgi?id=91228
-
+
Commit cdcdfe61b97a0a48ccf834b6d924d187da9609be changed two `#pragma
- message` to `#pragma error` in hb-unicode.cc, however MSVC uses
- #error,
+ message` to `#pragma error` in hb-unicode.cc, however MSVC uses #error,
just like the #else branch. `#pragma error` is an unknown pragma so
MSVC does not fail the build because of it, which I believe was the
intention of that commit.
-
+
If it's meant to be an #error, then the #ifdef for _MSC_VER can be
removed entirely.
Author: ThePhD <phdofthehouse@gmail.com>
Date: Tue Jun 23 09:07:17 2015 -0400
- Back to using regular `strdup`, with an `hb-private.hh` fix that
- special-cases VC++'s
+ Back to using regular `strdup`, with an `hb-private.hh` fix that special-cases VC++'s
definition and usage of the words
src/hb-common.cc | 2 +-
Date: Fri Jun 19 13:31:49 2015 -0700
When removing default-ignorables, merge clusters
-
+
Fixes test-shape, and:
https://code.google.com/p/chromium/issues/detail?id=497578
Date: Fri Jun 19 11:57:57 2015 -0700
Rewrite hide_default_ignorables
-
+
Separate the loops for the two cases of replacing with space
and deleting. For deleting, use the out-buffer machinery.
-
+
Needed for upcoming cluster merge fix.
src/hb-buffer-private.hh | 18 ++++++++++++++
- src/hb-ot-shape.cc | 65
- +++++++++++++++++++++++++++++-------------------
+ src/hb-ot-shape.cc | 65 +++++++++++++++++++++++++++++-------------------
2 files changed, 57 insertions(+), 26 deletions(-)
commit b3a2f6afbac1956b65f29a17b9dc896e86135329
Date: Thu Jun 18 17:15:33 2015 -0700
[test] Add test for cluster merging
-
- Based on test from
- https://code.google.com/p/chromium/issues/detail?id=497578
-
+
+ Based on test from https://code.google.com/p/chromium/issues/detail?id=497578
+
Currently fails. Basically, if there's a default_ignorable at the
- start of text, and font has no space glyph, we remove the
- default_ignorable,
+ start of text, and font has no space glyph, we remove the default_ignorable,
and that makes the first char in text to correspond to no cluster.
-
+
Fix coming.
test/api/test-shape.c | 43 +++++++++++++++++++++++++++++++++++++++++++
Date: Thu Jun 18 10:55:13 2015 -0700
[util] Disable hb-fc-list for now
-
+
Until I figure out what to do about the API, and finalize
the tool.
Date: Fri Jun 12 17:46:06 2015 -0700
[bindings] Fix hb_language_get_default() and hb_ot_tag_to_language()
-
+
Part of https://github.com/behdad/harfbuzz/issues/91
src/hb-common.cc | 2 +-
Date: Fri Jun 12 17:37:41 2015 -0700
[TravisCI] Hook up Coverity
-
+
First try...
.travis.yml | 13 +++++++++++++
Date: Wed Jun 10 10:57:46 2015 -0700
Fix warnings: "member call on null pointer of type"
-
+
https://bugzilla.mozilla.org/show_bug.cgi?id=1167119
src/hb-private.hh | 4 ++--
Date: Mon Jun 1 13:27:37 2015 -0700
Merge pull request #111 from brawer/since
-
+
Fix "Since:" tags
commit 01c3a88543850c87483fd8671044df53b368c520
Date: Mon Jun 1 13:22:01 2015 +0200
Fix "Since:" tags
-
+
Based on data from http://upstream-tracker.org/versions/harfbuzz.html
Resolves #103
src/hb-ot-font.cc | 3 +++
src/hb-ot-layout.cc | 30 ++++++++++++++++++++++++++++
src/hb-ot-shape.cc | 6 ++++++
- src/hb-set.cc | 52
- ++++++++++++++++++++++++------------------------
+ src/hb-set.cc | 52 ++++++++++++++++++++++++------------------------
src/hb-shape-plan.cc | 18 ++++++++---------
src/hb-shape.cc | 8 ++++----
src/hb-unicode.cc | 6 +++---
Date: Thu May 21 14:00:15 2015 -0700
Fix unary minus operator applied to unsigned int
-
+
Applying unary minus operator to unsigned int causes the following
warning on MSVS:
-
- warning C4146: unary minus operator applied to unsigned type,
- result still unsigned
-
+
+ warning C4146: unary minus operator applied to unsigned type, result still unsigned
+
Based on patch from Koji Ishi.
-
+
Fixes https://github.com/behdad/harfbuzz/pull/110
src/hb-ot-font.cc | 2 +-
Date: Tue May 19 17:42:30 2015 -0700
[gobject] Remove hb_language_t workarounds for g-i shortcomings
-
+
Using latest gobject-introspection, I don't seem to be having this
problem anymore:
-
+
https://bugzilla.gnome.org/show_bug.cgi?id=707656
-
- Removing that kludge makes language_t behave more like the way I
- expect it
+
+ Removing that kludge makes language_t behave more like the way I expect it
in Python.
-
+
Also fixes:
https://github.com/behdad/harfbuzz/issues/91
Date: Tue May 19 17:20:58 2015 -0700
[gobject] Macroize value types
-
+
Fixes user_data_t
- src/hb-gobject-structs.cc | 73
- +++++++++++------------------------------------
+ src/hb-gobject-structs.cc | 73 +++++++++++------------------------------------
1 file changed, 17 insertions(+), 56 deletions(-)
commit 9df099b4837df722e738675af318efcc9ac39a78
Date: Thu May 7 10:46:42 2015 -0700
Merge pull request #105 from ebraminio/master
-
+
Fix Travis CI config to pass again
commit 74139f9839f69ea3e7a1d17627f52fea6c06d58a
Date: Tue May 5 22:31:19 2015 -0700
[minor] Remove comment about Navajo OpenType code.
-
+
Apparently the code is already standardized:
https://www.microsoft.com/typography/otspec/languagetags.htm
Date: Tue May 5 14:49:47 2015 -0700
Merge pull request #102 from roozbehp/master
-
+
Add OpenType language tag 'NAV ' for Navajo.
commit c60f3c8e1156fe7328d42851013cca97333c3bf7
Date: Mon May 4 23:09:51 2015 -0700
[travis] Comment out gobject-introspection again
-
+
Apparently the version on Travis is 1.32.0, while we require 1.34.0.
.travis.yml | 4 ++--
Date: Wed Jan 8 02:28:55 2014 +0200
Some attempt into initial hb-shape documentation
-
+
Very anaemic, needs to descripe the format understood by
hb_feature_from_string() etc., but it is just start.
- src/hb-shape.cc | 70
- ++++++++++++++++++++++++++++++++++++++-------------------
+ src/hb-shape.cc | 70 ++++++++++++++++++++++++++++++++++++++-------------------
src/hb-shape.h | 3 ---
2 files changed, 47 insertions(+), 26 deletions(-)
Date: Wed Apr 29 09:32:42 2015 -0700
Add OpenType language tag 'NAV ' for Navajo.
-
+
The code is not standardized yet, but is used in some Google fonts.
src/hb-ot-tag.cc | 1 +
Date: Thu Apr 23 14:32:33 2015 -0700
[test] Ignor 'n' and 'i' in hb-unicode-encode
-
+
Allows accepting uniXXXX format.
test/shaping/hb_test_tools.py | 2 +-
Date: Tue Apr 21 19:21:32 2015 -0700
[coretext] Fix positioning with trailing whitespace
-
+
Fixes https://code.google.com/p/chromium/issues/detail?id=476913
src/hb-coretext.cc | 11 +++++++++++
Date: Tue Apr 14 13:32:22 2015 -0700
Revert "Add MSVC pragma for UTF-8 source code"
-
+
This reverts commit 89cbd4d9533011fb5487caa99a0cd58923e7cf59.
-
+
See discussion:
https://bugzilla.gnome.org/show_bug.cgi?id=747772
Date: Mon Apr 13 23:40:35 2015 -0700
Merge pull request #86 from cpfair/hb-shape-output-help-improvement
-
+
Improve hb-shape/hb-view's help text w.r.t. output options
commit 89cbd4d9533011fb5487caa99a0cd58923e7cf59
Date: Mon Apr 13 12:27:08 2015 -0700
Add MSVC pragma for UTF-8 source code
-
+
Not sure we have any right now; motivated by this:
https://bugzilla.gnome.org/show_bug.cgi?id=747772
Date: Fri Apr 10 14:34:05 2015 -0700
Merge pull request #99 from khaledhosny/introspection-fixes2
-
+
More ntrospection fixes
commit 22524a514f6609a2bc009b6035f6b5b932c719c7
Date: Fri Apr 10 18:14:45 2015 +0200
[bindings] Fix hb_buffer_get_segment_properties
-
+
Annotate the output parameter.
src/hb-buffer.cc | 2 +-
Date: Fri Apr 10 12:19:57 2015 -0700
Merge pull request #98 from KonstantinRitt/WEC2013
-
+
Fix build on WEC2013
commit 04f89e8f7dfdb882e8c98afb613cba3f1d02ed7d
Date: Fri Apr 10 17:49:01 2015 +0200
[bindings] Fix ownership of returned hb_language_t
-
+
It should not be freed by the caller.
src/hb-buffer.cc | 2 +-
Date: Fri Apr 10 17:18:01 2015 +0400
Fix build on WEC2013
-
+
Based on patch from Björn Breitmeyer
src/hb-private.hh | 4 +++-
Date: Wed Aug 6 16:49:51 2014 -0400
[utils] Add hb-fc-list
-
+
This is a tool that lists all fonts that can render a given string.
It uses hb_shape() to do so, and as such is aware of HarfBuzz's
normalizer.
configure.ac | 19 +++++
util/Makefile.am | 15 ++++
- util/hb-fc-list.c | 222
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ util/hb-fc-list.c | 222 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
util/hb-fc.cc | 149 ++++++++++++++++++++++++++++++++++++
util/hb-fc.h | 46 +++++++++++
5 files changed, 451 insertions(+)
Date: Wed Aug 6 15:36:41 2014 -0400
Relax inert checks
-
+
Previously, when creating an object from inert inputs (eg:
"hb_font_create(hb_face_get_empty())") we returned the inert
empty object. This is not helpful as there are legitimate
usecases to do that.
-
+
We now never return the inert object unless allocation failed.
-
+
Tests are revised to reflect.
src/hb-face.cc | 4 ++--
[util/hb-view] Fix rendering with all combinations of negative scales
- util/view-cairo.cc | 90
- ++++++++++++++++++++++++++++--------------------------
+ util/view-cairo.cc | 90 ++++++++++++++++++++++++++++--------------------------
util/view-cairo.hh | 2 --
2 files changed, 47 insertions(+), 45 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Apr 9 15:04:42 2015 -0700
- [util] Accept comma as well as space when separating components
- of args
-
+ [util] Accept comma as well as space when separating components of args
+
Applies to --font-size and --margin.
-
+
Hopefully the scanf usage here doesn't have compatibility issues
(star being counted in the return value, etc).
Date: Wed Apr 8 14:39:00 2015 -0700
Fix warnings
-
+
Part of https://github.com/behdad/harfbuzz/pull/68
src/hb-ot-font.cc | 4 ++--
Date: Wed Apr 8 13:25:04 2015 -0700
Err, instead of warn, if mutex / atomic / unicode funcs are missing
-
+
Hopefully this results in fewer badly built HarfBuzz integrations.
src/hb-unicode.cc | 8 ++++----
Date: Sat Mar 28 00:49:33 2015 +0400
Minor refactoring to the atomics implementation
-
+
s/atomic_int/atomic_int_impl/ and s/atomic_ptr/atomic_ptr_impl/
to bring it in par with hb_mutex_impl_t, then re-introduce
hb_atomic_int_t as a wrapper around hb_atomic_int_impl_t.
-
+
In hb_reference_count_t, make it clear the non-atomic get and set
are intentional due to nature of the cases they are used in
(comparison to -1 and the debug output/tracing).
- src/hb-atomic-private.hh | 86
- +++++++++++++++++++++++++++++++-----------------
+ src/hb-atomic-private.hh | 86 +++++++++++++++++++++++++++++++-----------------
src/hb-mutex-private.hh | 4 ++-
src/hb-object-private.hh | 21 ++++++------
3 files changed, 69 insertions(+), 42 deletions(-)
Date: Wed Apr 8 12:49:38 2015 -0700
Allow implementing atomic and mutex ops in config
-
+
Motivated by
https://github.com/behdad/harfbuzz/pull/92
Date: Mon Apr 6 14:51:31 2015 -0700
[test] Use /usr/bin/env python instead of /usr/bin/python
-
+
Bug 76494 - #!/usr/bin/python in testsuite
-
+
https://bugs.freedesktop.org/show_bug.cgi?id=76494
test/shaping/hb-diff | 2 +-
Date: Mon Apr 6 14:41:32 2015 -0700
Merge pull request #93 from ebraminio/archpy3
-
+
Make hb_test_tools.py compatible with python 3
commit ce01ad7c2f5a259030f4dbec746f85522aa9c3f9
Date: Mon Mar 30 03:27:14 2015 +0430
Make hb_test_tools.py compatible with python 3
-
+
On ArchLinux, /usr/bin/python is linked to python 3 so
HarfBuzz `make check` is broken there.
-
+
This makes hb_test_tools.py compatible with python 3 while
no breaking it on python 2.
- test/shaping/hb_test_tools.py | 44
- ++++++++++++++++++++++++-------------------
+ test/shaping/hb_test_tools.py | 44 ++++++++++++++++++++++++-------------------
1 file changed, 25 insertions(+), 19 deletions(-)
commit aee685086c8fde6f6c4590e483a177c19f222540
Date: Thu Mar 26 14:13:53 2015 -0400
Fix VC++ /analyze warnings
-
+
out\debug\hb-buffer-deserialize-text.rl(47) : warning C6001: Using
uninitialized memory 'pos'.
Date: Sun Mar 22 16:18:57 2015 -0400
Merge pull request #90 from khaledhosny/introspection-fixes
-
+
[bindings] Fix *_from_string functions
commit a394bb66707184c995fe2d08c80e98220e6ec0b0
Date: Sun Mar 22 20:29:10 2015 +0200
[bindings] Fix *_from_string functions
-
+
Without the element-type they will be getting garbage, at least with
Python.
Date: Fri Mar 20 16:08:38 2015 -0400
Fix reverse_range() for empty range
-
+
Fixes coretext notdef loop consisting of all default_ignorable glyphs
-
+
https://code.google.com/p/chromium/issues/detail?id=464755
src/hb-buffer.cc | 2 +-
Date: Wed Mar 4 15:47:25 2015 -0800
Fix previous commit
-
+
I misunderstood how which works.
autogen.sh | 2 +-
Date: Wed Mar 4 15:43:05 2015 -0800
Accept glibtoolize as libtoolize
-
+
Of course, we don't really run it, autoreconf does. We just
err if neither is available. glibtoolize is the name it is
shipped under on OS X. Reported by Adam.
Date: Mon Mar 2 16:06:55 2015 -0800
Fix reverse_range() to only reverse alt array if positions are used
-
+
In hb-coretext, when we were using scratch buffer for book-keeping,
a reverse_range() caused by the notdef-insertion loop could mess up
our log_clusters. Ouch!
Date: Thu Feb 26 13:58:32 2015 -0800
Better error message if libtool is not installed
-
+
Fixes https://github.com/behdad/harfbuzz/pull/88
autogen.sh | 9 +++++++--
Date: Sat Feb 21 12:50:01 2015 +0300
[layout] Fix comparison of GlyphID and hb_codepoint_t
-
+
Before, the IntType::cmp functions providing this and was truncating
the hb_codepoint_t to 16bits before comparison. I have no idea how
this was never discovered, and I'm too lazy to try to reproduce this
- with Pango (which uses non-16bit codepoint numbers for missing
- glyphs).
+ with Pango (which uses non-16bit codepoint numbers for missing glyphs).
src/hb-open-type-private.hh | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Feb 19 17:30:05 2015 +0300
- [layout] If lookup has only one subtable, move the forward loop down
- to subtable
-
- I was hoping to see a nice speedup, but it resulted in a very
- minor one.
+ [layout] If lookup has only one subtable, move the forward loop down to subtable
+
+ I was hoping to see a nice speedup, but it resulted in a very minor one.
src/hb-ot-layout.cc | 33 ++++++++++++++++++++++++++++++++-
1 file changed, 32 insertions(+), 1 deletion(-)
[layout] Add apply_forward / apply_backward
- src/hb-ot-layout.cc | 69
- +++++++++++++++++++++++++++++++++++------------------
+ src/hb-ot-layout.cc | 69 +++++++++++++++++++++++++++++++++++------------------
1 file changed, 46 insertions(+), 23 deletions(-)
commit 1d4a328472f094c0d75a062f6e176c6b1875cfdc
Date: Thu Feb 19 10:40:23 2015 +0300
[layout] Don't check glyph props against lookup flags when recursing
-
+
Shouldn't be needed. I have a hard time imagining this breaking any
legitimate use case.
Date: Thu Feb 19 10:29:41 2015 +0300
[layout] Port sanitize() to use dispatch()
-
+
Needed some rework of Extension table. Hopefully I got it right, and
the new template usage doesn't break any compilers...
src/hb-open-type-private.hh | 5 ++-
- src/hb-ot-layout-gpos-table.hh | 82
- +----------------------------------
+ src/hb-ot-layout-gpos-table.hh | 82 +----------------------------------
src/hb-ot-layout-gsub-table.hh | 72 ++-----------------------------
- src/hb-ot-layout-gsubgpos-private.hh | 84
- ++++++++++++------------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 84 ++++++++++++------------------------
4 files changed, 37 insertions(+), 206 deletions(-)
commit 758fb20630f84c3d373cda37974b88f16c02995e
Date: Tue Feb 17 18:14:17 2015 +0300
[layout] Add may_dispatch()
-
+
No functional change right now.
src/hb-ot-layout-gpos-table.hh | 7 +++++++
Date: Tue Feb 17 17:27:44 2015 +0300
Make sanitize() a const method
-
- This makes a lot of code safer. We only try modifying the object
- in one
+
+ This makes a lot of code safer. We only try modifying the object in one
place, after making sure it's safe to do so. So, do a const_cast<> in
that one place...
src/hb-ot-hmtx-table.hh | 3 +-
src/hb-ot-layout-common-private.hh | 58 ++++++++++++-------
src/hb-ot-layout-gdef-table.hh | 30 ++++++----
- src/hb-ot-layout-gpos-table.hh | 108
- +++++++++++++++++++++++------------
+ src/hb-ot-layout-gpos-table.hh | 108 +++++++++++++++++++++++------------
src/hb-ot-layout-gsub-table.hh | 58 ++++++++++++-------
src/hb-ot-layout-gsubgpos-private.hh | 65 +++++++++++++--------
src/hb-ot-layout-jstf-table.hh | 12 ++--
Date: Thu Jan 29 13:59:42 2015 +0100
[layout] Allocate iters in the context
-
+
Can be further optimized, but I think I didn't break anything.
-
+
Saves another 3% off Roboto shaping.
src/hb-ot-layout-gpos-table.hh | 18 ++++++------------
Date: Thu Jan 29 13:40:39 2015 +0100
[lookup] Add skippy_iter.reset()
-
+
Towards reducing the cost of initializing skippy_iter()
src/hb-ot-layout-gpos-table.hh | 18 ++++++++++++------
[layout] Shuffle code around
- src/hb-ot-layout-gsubgpos-private.hh | 111
- ++++++++++++++++++-----------------
+ src/hb-ot-layout-gsubgpos-private.hh | 111 ++++++++++++++++++-----------------
1 file changed, 56 insertions(+), 55 deletions(-)
commit 696266981df5ef6c62ad0115133dad1d6c1d9acc
[layout] Merge forward and backward iterators
src/hb-ot-layout-gpos-table.hh | 12 +++---
- src/hb-ot-layout-gsubgpos-private.hh | 71
- ++++++++----------------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 71 ++++++++----------------------------
src/hb-ot-shape-fallback.cc | 2 +-
3 files changed, 23 insertions(+), 62 deletions(-)
Date: Thu Jan 29 13:05:25 2015 +0100
[layout] Fix backward reject()
-
+
Has no functional effect since reject was never used with
match_glyph_data.
Date: Thu Jan 29 11:08:43 2015 +0100
[lookup] Don't initialize skippy if coverage match fails
-
+
Currently:
-
+
- Initializing skippy is very expensive,
-
+
- Our lookup accelerator (using set-digests) can be very ineffecite,
-
+
As such, we end up many times initializing skippy but then failing
coverage check. Reordering fixes that.
-
+
When, later, we fix our accelerator to have truly small false-positive
rate (for example by using the frozen-sets), then we might want to
reorder these checks such that we wouldn't calculate coverage number
if skippy is going to fail.
-
+
This shows a 5% speedup with Roboto already.
src/hb-ot-layout-gpos-table.hh | 15 ++++++---------
Date: Wed Jan 28 21:46:07 2015 -0800
Add hb_frozen_set_t
-
+
I experimented with replacing use of hb_set_digest_t with this new
hb_frozen_set_t, hoping to get a huge speedup for busy lookups
(like kern lookup in Roboto), but I only got 6% speendup in Roboto
and 4% in NotoNastaliqUrduDraft :(.
- src/hb-set-private.hh | 57
- ++++++++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-set-private.hh | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 56 insertions(+), 1 deletion(-)
commit 241eac9559465fa79f396570af4e87f455b7e9d5
Date: Wed Feb 25 15:34:34 2015 -0800
Merge pull request #85 from KonstantinRitt/define_inline
-
+
Fix build with MSVC on CE
commit 9ee176ee978e6668c4faf00028811ce70979122e
Author: Collin Fair <cpf@cpfx.ca>
Date: Sat Feb 14 09:32:04 2015 -0500
- Remove reference to --help-output-content in --help-output (as
- --help-output-format's options aren't available in hb-view)
+ Remove reference to --help-output-content in --help-output (as --help-output-format's options aren't available in hb-view)
util/options.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Author: Collin Fair <cpf@cpfx.ca>
Date: Sat Feb 14 09:29:35 2015 -0500
- Add serialization syntax documentation. Clarify naming and wording
- in --help-output/--help-format
+ Add serialization syntax documentation. Clarify naming and wording in --help-output/--help-format
util/options.cc | 30 ++++++++++++++++--------------
1 file changed, 16 insertions(+), 14 deletions(-)
Date: Sat Feb 14 00:58:51 2015 +0400
Fix build with MSVC on CE
-
+
This code is C++ only. There isn't a single C++ compiler that fails to
understand the "inline" keyword, since it's required by C++98. Any
compiler older than C++98 is likely to choke on the template usage
further down, so this isn't necessary.
-
+
Moreover, the C++ standard says you cannot define macros.
- [lib.macro.names] says "Nor shall such a translation unit define
- macros
+ [lib.macro.names] says "Nor shall such a translation unit define macros
for names lexically identical to keywords." -- technically, it's a
- promise that the Standard Library headers won't do it, the wording
- means
+ promise that the Standard Library headers won't do it, the wording means
that the entire translation unit won't do it, which implies no source
can do it.
-
+
MSVC complains about it:
- fatal error C1189: #error : The C++ Standard Library forbids
- macroizing
+ fatal error C1189: #error : The C++ Standard Library forbids macroizing
keywords. Enable warning C4005 to find the forbidden macro.
-
+
Author: Thiago Macieira <thiago.macieira@intel.com>
src/hb-private.hh | 10 ----------
Date: Wed Jan 28 10:51:33 2015 -0800
[coretext] Don't generate notdef glyph for default-ignorables
-
+
As discovered on Chrome Mac:
https://code.google.com/p/chromium/issues/detail?id=452326
Date: Wed Jan 28 10:43:32 2015 -0800
[coretext] Unbreak glyph positioning in presence of notdef runs
-
+
As discovered on Chrome Mac:
https://code.google.com/p/chromium/issues/detail?id=452326
-
+
This was originally broken in:
-
+
commit 5a0eed3b50629be4826e4e9428f2c3255195395d
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Mon Aug 11 23:47:16 2014 -0400
-
+
[coretext] Implement vertical shaping
src/hb-coretext.cc | 35 +++++++++++++++++++++++++++--------
Date: Mon Jan 26 14:25:52 2015 -0800
[API] Add hb_buffer_add_latin1()
-
+
This is by no ways to promote non-Unicode encodings. This is an entry
point that takes Unicode codepoints that happen to all be the first
- 256 characters and hence fit in 8bit strings. This is useful eg
- in Chrome
+ 256 characters and hence fit in 8bit strings. This is useful eg in Chrome
where strings that can fit in 8bit are implemented that way, and this
avoids copying into UTF-8 or UTF-16.
-
- Perhaps we should rename this to hb_buffer_add_codepoints8().
- I'm also
- curious if anyone would be really interested in
- hb_buffer_add_codepoints16().
-
+
+ Perhaps we should rename this to hb_buffer_add_codepoints8(). I'm also
+ curious if anyone would be really interested in hb_buffer_add_codepoints16().
+
Please discuss!
src/hb-buffer.cc | 36 +++++++++++++++++++++++++-------
src/hb-buffer.h | 8 ++++++++
- src/hb-utf-private.hh | 57
- ++++++++++++++++++++++++++++++++++++++-------------
+ src/hb-utf-private.hh | 57 ++++++++++++++++++++++++++++++++++++++-------------
3 files changed, 80 insertions(+), 21 deletions(-)
commit 78c6e86c04f12154c88b9f9264d0bd50b721699b
Date: Sun Jan 25 13:06:03 2015 -0800
Merge pull request #81 from KonstantinRitt/fixes/build/win8phone
-
+
winrt_buildfixes
commit f3537b620b0a7392ea27f01f465c5ba79459c858
Date: Sun Jan 25 09:50:51 2015 +0400
Move some code around
-
+
Just to keep Windows specific workarounds in a single place.
src/hb-private.hh | 25 ++++++++++++-------------
Date: Sun Jan 25 08:16:26 2015 +0400
Do not define MemoryBarrier on WinCE
-
+
There is a _HBMemoryBarrier() wrapper function that emulates
MemoryBarrier() behavior when it is not defined.
Date: Sun Jan 25 08:13:24 2015 +0400
Fix build on WinRT
-
+
There is no environment (like WinCE) and the basic version
of InitializeCriticalSection is unsupported.
-
+
https://codereview.qt-project.org/#/c/92496/
src/hb-mutex-private.hh | 4 ++++
Date: Wed Jan 21 18:50:57 2015 -0800
[coretext] Fix scaling
-
+
Before we were not accounting for possible differences in x_scale and
y_scale, as well as the signs of those. All should be in good shape
now.
Date: Tue Jan 20 12:30:45 2015 -0800
[util] Add --font-size to hb-shape
-
+
Also makes hb-view to use 8 bits of subpixel precision and shape at
requested size, instead of always shaping at upem and scaling results.
util/helper-cairo.cc | 16 ++++++++--------
util/helper-cairo.hh | 5 ++---
util/main-font-text.hh | 4 ++--
- util/options.cc | 44
- +++++++++++++++++++++++++++++++++++++++++---
+ util/options.cc | 44 +++++++++++++++++++++++++++++++++++++++++---
util/options.hh | 16 ++++++++++++----
util/view-cairo.cc | 2 +-
util/view-cairo.hh | 8 ++++----
Date: Mon Jan 19 17:00:31 2015 -0800
When matching second glyph of kerning pairs, use bsearch
-
+
Roboto has glyphs (like 'F') that have 200 kerning pairs.
Add a handcoded bsearch instead of previous linear search.
-
+
This doesn't show much speedup though, apparently we spend the
bulk of the time somewhere before here.
Date: Mon Jan 19 16:15:00 2015 -0800
Merge pull request #77 from roozbehp/master
-
+
Change New Tai Lue shaping engine from SEA to default
commit 5eb939ddfe9ef217da2e48d7d0f1f4b7501714ad
Date: Sun Jan 18 14:30:08 2015 -0800
Change New Tai Lue shaping engine from SEA to default
-
+
This is to reflect the UTC decision to change the encoding model of
New Tai Lue from logical to visual to be similar to Thai, Lao, and
Tai Viet: http://www.unicode.org/L2/L2014/14250.htm#141-C26
-
+
The visual encoding is already the current practice of encoding New
Tai Lue on the web anyway:
http://www.unicode.org/L2/L2014/14195-newtailue.txt
-
+
Fixes behdad/harfbuzz#66.
src/hb-ot-shape-complex-private.hh | 2 +-
[indic] Fix out-of-bounds access
src/gen-indic-table.py | 2 +-
- src/hb-ot-shape-complex-indic-table.cc | 36
- +++++++++++++++++-----------------
+ src/hb-ot-shape-complex-indic-table.cc | 36 +++++++++++++++++-----------------
2 files changed, 19 insertions(+), 19 deletions(-)
commit 238d6a38f2ceb7d8dceec9365a823f032b3b9f7d
Date: Tue Jan 6 19:16:38 2015 -0800
[bindings] Use hb_glib_blob_create() in sample
-
+
hb_blob_create() is considered C-only API.
src/hb-blob.cc | 8 ++++----
Date: Tue Jan 6 14:05:26 2015 -0800
Fix up gobject-introspection a bit
-
+
Minimal shaping works now!
src/hb-blob.cc | 6 +++---
Date: Mon Jan 5 14:43:13 2015 -0800
Remove hardcoded ICU include paths.
-
+
ICU exports them using LOCAL_EXPORT_C_INCLUDE_DIRS.
-
+
https://android-review.googlesource.com/#/c/121311/
Android.mk | 3 +--
Date: Sun Jan 4 20:32:18 2015 -0800
Merge pull request #76 from cpeterso/cpeterso/Wunused-function
-
+
Add #ifdef HB_USE_ATEXIT to fix -Wunused-function warnings
commit fb85d618f5883458bacf0ecb0894772291a2d738
Date: Sat Jan 3 21:55:30 2015 -0800
Merge pull request #75 from cpeterso/cpeterso/Wunused-value
-
+
Fix hb_atomic_ptr_cmpexch -Wunused-value warnings
commit d1897a98d8da40cffb57c07099a9a93cfeaacc36
Date: Fri Jan 2 14:09:23 2015 -0800
Add missing va_end()
-
+
Fixes https://github.com/behdad/harfbuzz/pull/74
util/options.cc | 1 +
Date: Sun Dec 28 18:56:15 2014 -0800
[ft] Don't set font ppem
-
+
For discussion see:
-
+
http://lists.freedesktop.org/archives/harfbuzz/2012-April/001905.html
-
- Over time we have had added NO_HINTING all over the place in hb-ft.
- Finish it off.
- Not setting ppem on hb-font disables get_contour_point() calls which
- is good anyway.
-
+
+ Over time we have had added NO_HINTING all over the place in hb-ft. Finish it off.
+ Not setting ppem on hb-font disables get_contour_point() calls which is good anyway.
+
See comments in the commit.
src/hb-ft.cc | 9 +++++++++
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Sun Dec 28 17:44:26 2014 -0800
- [ft] Add hb_ft_face_create_referenced() and
- hb_ft_font_create_referenced()
-
- When I originally wrote hb-ft, FreeType objects did not support
- reference
+ [ft] Add hb_ft_face_create_referenced() and hb_ft_font_create_referenced()
+
+ When I originally wrote hb-ft, FreeType objects did not support reference
counting. As such, hb_ft_face_create() and hb_ft_font_create() had a
- "destroy" callback and client was responsible for making sure
- FT_Face is
+ "destroy" callback and client was responsible for making sure FT_Face is
kept around as long as the hb-font/face are alive.
-
+
However, since this was not clearly documented, some clienets didn't
- correctly did that. In particular, some clients assumed that
- it's safe
- to destroy FT_Face and then hb_face_t. This, indeed, used to work,
- until
- 45fd9424c723f115ca98995b8f8a25185a6fc71d, which make face destroy
- access
+ correctly did that. In particular, some clients assumed that it's safe
+ to destroy FT_Face and then hb_face_t. This, indeed, used to work, until
+ 45fd9424c723f115ca98995b8f8a25185a6fc71d, which make face destroy access
font tables.
-
- Now, I fixed that issue in 395b35903e052aecc97d0807e4f813c64c0d2b0b
- since
- the access was not needed, but the problem remains that not all
- clients
+
+ Now, I fixed that issue in 395b35903e052aecc97d0807e4f813c64c0d2b0b since
+ the access was not needed, but the problem remains that not all clients
handle this correctly. See:
-
+
https://bugs.freedesktop.org/show_bug.cgi?id=86300
-
- Fortunately, FT_Reference_Face() was added to FreeType in 2010,
- and so we
+
+ Fortunately, FT_Reference_Face() was added to FreeType in 2010, and so we
can use it now. Originally I wanted to change hb_ft_face_create() and
- hb_ft_font_create() to reference the face if destroy==NULL was
- passed in.
- That would improve pretty much all clients, with little undesired
- effects.
- Except that FreeType itself, when compiled with HarfBuzz support,
- calls
- hb_ft_font_create() with destroy==NULL and saves the resulting
- hb-font on
+ hb_ft_font_create() to reference the face if destroy==NULL was passed in.
+ That would improve pretty much all clients, with little undesired effects.
+ Except that FreeType itself, when compiled with HarfBuzz support, calls
+ hb_ft_font_create() with destroy==NULL and saves the resulting hb-font on
the ft-face (why does it not free it immediately?). Making hb-face
- reference ft-face causes a cycling reference there. At least,
- that's my
+ reference ft-face causes a cycling reference there. At least, that's my
current understanding.
-
- At any rate, a cleaner approach, even if it means all clients will
- need a
+
+ At any rate, a cleaner approach, even if it means all clients will need a
change, is to introduce brand new API. Which this commit does.
-
- Some comments added to hb-ft.h, hoping to make future clients
- make better
+
+ Some comments added to hb-ft.h, hoping to make future clients make better
choices.
-
+
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=75299
configure.ac | 4 ++--
src/hb-ft.cc | 32 ++++++++++++++++++++++++++++++++
- src/hb-ft.h | 59
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-ft.h | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
3 files changed, 92 insertions(+), 3 deletions(-)
commit 9a3b74884b2e41c7040611030f4336f13d18fd3e
Date: Sun Dec 28 17:27:39 2014 -0800
Remove redundant check for FT_Face_GetCharVariantIndex
-
+
We require FreeType >= 2.8.3. This symbol was introduced earlier
than that.
Date: Sun Dec 28 16:20:31 2014 -0800
[ft] Open blob in READONLY mode
-
+
HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE is deprecated and fairly
useless now.
Date: Sun Dec 28 16:03:26 2014 -0800
Avoid accessing layout tables at face destruction
-
+
"Fixes" https://bugs.freedesktop.org/show_bug.cgi?id=86300
-
- Based on discussion someone else who had a similar issue, most
- probably
- the user is releasing FT_Face before destructing hb_face_t /
- hb_font_t.
+
+ Based on discussion someone else who had a similar issue, most probably
+ the user is releasing FT_Face before destructing hb_face_t / hb_font_t.
While that's a client bug, and while we can (and should) use FreeType
refcounting to help avoid that, it happens that we were accessing
the table when we didn't really have to. Avoid that.
Date: Thu Dec 18 18:22:21 2014 -0800
Fail blob creation if length overflows or is too large
-
+
Fail if blob start plus length overflows; or if blob length
is greater than 2GB. It takes a while for fonts to get to that
size. In the mean time, it protects against bugs like this:
-
+
http://www.icu-project.org/trac/ticket/11450
-
+
Also avoids some weird issues with 32bit vs 64bit systems
as we accept length as unsigned int. As such, a length of
-1 will cause overflow on 32bit machines, but happily
Date: Thu Dec 18 18:09:41 2014 -0800
Assert that blob length doesn't overflow address.
-
+
This will crash now, if blob was created with wrong length.
Check for that coming next commit.
[otlayout] Mark variables that are C arrays as opposed to OT::ArrayOf
src/hb-ot-layout-gpos-table.hh | 24 +++++++--------
- src/hb-ot-layout-gsubgpos-private.hh | 60
- ++++++++++++++++++------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 60 ++++++++++++++++++------------------
2 files changed, 42 insertions(+), 42 deletions(-)
commit 9df0a520306a491f973d42965597bfda6023e508
Date: Wed Dec 10 12:05:24 2014 -0800
[indic] Allow ZWJ/ZWNJ before SM
-
+
In Oriya, a ZWJ/ZWNJ might be added before candrabindu to encourage
or stop ligation of the candrabindu. This is clearly specified in
the Unicode section on Oriya. Allow it there. Note that Uniscribe
doesn't allow this.
-
+
Micro tests added using Noto Sans Oriya draft.
-
+
No changes in numbers. Currently at:
-
+
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%)
GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%)
KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%)
KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%)
- MALAYALAM: 1048147 out of 1048334 tests passed. 187 failed
- (0.0178378%)
+ MALAYALAM: 1048147 out of 1048334 tests passed. 187 failed (0.0178378%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
src/hb-ot-shape-complex-indic-machine.rl | 2 +-
test/shaping/Makefile.am | 1 +
- .../sha1sum/5028afb650b1bb718ed2131e872fbcce57828fff.ttf | Bin 0 ->
- 4720 bytes
+ .../sha1sum/5028afb650b1bb718ed2131e872fbcce57828fff.ttf | Bin 0 -> 4720 bytes
test/shaping/fonts/sha1sum/MANIFEST | 1 +
test/shaping/tests/MANIFEST | 1 +
test/shaping/tests/indic-joiner-candrabindu.tests | 2 ++
Date: Wed Oct 29 11:23:08 2014 -0700
In hb_ot_collect_glyphs(), don't recurse to a lookup more than once
-
+
Otherwise, we might process a lookup thousands of times, with no
benefit. This pathological case was hit by Noto Nastaliq Urdu Draft
in Firefox's code to determine whether space glyph is involved in
any GSUB/GPOS rules. A test page is at http://behdad.org/urdu
-
+
See:
https://bugzilla.mozilla.org/show_bug.cgi?id=1090869
Move code around
- src/hb-open-type-private.hh | 50
- ++++++++++++++++++++++-----------------------
+ src/hb-open-type-private.hh | 50 ++++++++++++++++++++++-----------------------
1 file changed, 25 insertions(+), 25 deletions(-)
commit 666b42f73bd1f516657b206ef738108825bf239f
Date: Tue Oct 14 21:24:59 2014 -0700
Move macros around
-
+
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=84491
- src/hb-open-type-private.hh | 63
- ++++++++++++++++++++++++++++++++++++++-------
+ src/hb-open-type-private.hh | 63 ++++++++++++++++++++++++++++++++++++++-------
src/hb-private.hh | 41 -----------------------------
src/hb-uniscribe.cc | 6 +++++
3 files changed, 60 insertions(+), 50 deletions(-)
Date: Tue Oct 14 20:07:31 2014 -0700
Fix misc warnings
-
+
Fixes https://github.com/behdad/harfbuzz/pull/51
src/hb-buffer-deserialize-json.rl | 4 ++--
Date: Wed Oct 1 12:41:03 2014 -0400
Don't use tmp files in Makefile
-
+
Useful for code-coverage generation of the ragel-generated files
as they will now contain the correct .hh filename in them.
Date: Wed Oct 1 11:56:07 2014 -0400
check-static-inits: Filter out zero-length sections
-
+
When compiling with -O0, zero-sized constructors were showing up
and confusing the test.
[ot-font] Add hb_ot_face_cmap_accelerator_t
- src/hb-ot-font.cc | 113
- +++++++++++++++++++++++++++++++-----------------------
+ src/hb-ot-font.cc | 113 +++++++++++++++++++++++++++++++-----------------------
1 file changed, 66 insertions(+), 47 deletions(-)
commit d088ccaf11d9475fe0d269ce130b1793b8a1ffbf
[ot-font] Add metrics_accel_t
- src/hb-ot-font.cc | 111
- ++++++++++++++++++++++--------------------------
+ src/hb-ot-font.cc | 111 ++++++++++++++++++++++--------------------------
src/hb-ot-hhea-table.hh | 2 +-
src/hb-ot-hmtx-table.hh | 4 +-
3 files changed, 54 insertions(+), 63 deletions(-)
[ot-font] Start adding vertical support
src/hb-ot-font.cc | 57 ++++++++++++++++++++++++++++++++++----------
- src/hb-ot-hhea-table.hh | 63
- ++++++++++++++++++++++++++-----------------------
+ src/hb-ot-hhea-table.hh | 63 ++++++++++++++++++++++++++-----------------------
src/hb-ot-hmtx-table.hh | 35 +++++++++++++++++----------
3 files changed, 100 insertions(+), 55 deletions(-)
Date: Mon Aug 25 12:31:19 2014 -0400
[arabic] Don't #include __FILE__
-
+
Fine!
-
+
https://code.google.com/p/chromium/issues/detail?id=406957
src/hb-ot-shape-complex-arabic-win1256.hh | 2 +-
Date: Mon Aug 25 11:48:12 2014 -0400
[arabic] Allow disabling win1256 fallback code
-
+
By defining HB_NO_WIN1256.
src/hb-ot-shape-complex-arabic-fallback.hh | 2 +-
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Fri Aug 22 12:06:57 2014 -0400
- [ot] Prefer Windows platform cmap tables / accept all Unicode
- encodingIDs
-
+ [ot] Prefer Windows platform cmap tables / accept all Unicode encodingIDs
+
Some fonts on the Mac ship with (0,1).
src/hb-ot-font.cc | 7 +++++--
Simplify hb-object
- src/hb-object-private.hh | 118
- +++++++++++++++--------------------------------
+ src/hb-object-private.hh | 118 +++++++++++++++--------------------------------
1 file changed, 36 insertions(+), 82 deletions(-)
commit 9d861b81f349188a4507350398786a6e94038095
Really fix clang build this time
- src/hb-object-private.hh | 141
- +++++++++++++++++++++++------------------------
+ src/hb-object-private.hh | 141 +++++++++++++++++++++++------------------------
1 file changed, 68 insertions(+), 73 deletions(-)
commit 272226f294382b0c6921b36e0e67fc53daa765d3
Date: Thu Aug 14 13:11:33 2014 -0400
Revert "Fix build on clang after previous commit"
-
+
This reverts commit 9c80cbc87f23040a334e30c750f64523d9ef10c8.
src/hb-object-private.hh | 34 +++++++++++++---------------------
Date: Thu Aug 14 13:05:36 2014 -0400
Rewrite this==NULL checks to avoid undefined behavior
-
+
Fixes https://code.google.com/p/chromium/issues/detail?id=403594
src/hb-object-private.hh | 18 ++++++++----------
Date: Thu Aug 14 12:59:16 2014 -0400
Remove this==NULL check from face->reference_table()
-
+
Not supposed to happen, and apparently this is undefined in C++.
https://code.google.com/p/chromium/issues/detail?id=403594
Date: Thu Aug 14 12:57:02 2014 -0400
Make hb_object_t members private
-
+
In preparation for fixing:
https://code.google.com/p/chromium/issues/detail?id=403594
Date: Tue Aug 12 17:15:09 2014 -0400
[shape-plan] Fix typo!
-
- The only effect is, if shaper_list was not NULL and no shaper
- was found,
+
+ The only effect is, if shaper_list was not NULL and no shaper was found,
we now don't insert anything into cache and return earlier.
src/hb-shape-plan.cc | 2 +-
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue Aug 12 16:50:22 2014 -0400
- [shape-plan] Fix shape-plan caching with more than one requested
- shaper
-
+ [shape-plan] Fix shape-plan caching with more than one requested shaper
+
Wasn't breaking out of loop, ouch!
-
+
http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1246370.html
src/hb-shape-plan.cc | 9 ++++++---
Date: Tue Aug 12 15:49:47 2014 -0400
[coretext] Fix buffer resizing
-
+
Was very broken. Now fixed and tested.
src/hb-coretext.cc | 17 +++++++++++++----
Date: Tue Aug 12 13:12:31 2014 -0400
[wince] Two more Windows CE fixes
-
+
Report has it that it builds (and works) now:
-
+
https://codereview.qt-project.org/#/c/92087/
src/hb-mutex-private.hh | 2 +-
Date: Tue Aug 12 10:32:41 2014 -0400
[coretext] Compare CGFont and PS name, if CTFont didn't match
-
+
See comments.
-
+
Fixes vertical text. CoreText backend is in very good shape now!
-
+
Also see:
5a0eed3b50629be4826e4e9428f2c3255195395d
25f4fb9b56bb3f8bec821571c78f8829e40daa54
-
+
Fixes http://github.com/behdad/harfbuzz/pull/36
- src/hb-coretext.cc | 54
- ++++++++++++++++++++++++++++++++++++++++++++++++------
+ src/hb-coretext.cc | 54 ++++++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 48 insertions(+), 6 deletions(-)
commit 5a0eed3b50629be4826e4e9428f2c3255195395d
Date: Mon Aug 11 23:47:16 2014 -0400
[coretext] Implement vertical shaping
-
+
Currently doesn't work though, we detect font fallback. Apparently
matching on ct_font is not safe for this. Looks like commit
25f4fb9b56bb3f8bec821571c78f8829e40daa54 wasn't enough after all.
- src/hb-coretext.cc | 127
- ++++++++++++++++++++++++++++++++++-------------------
+ src/hb-coretext.cc | 127 ++++++++++++++++++++++++++++++++++-------------------
1 file changed, 81 insertions(+), 46 deletions(-)
commit 1b55077f03758e49f93b8bc1de678e96ea58718c
Date: Mon Aug 11 20:45:12 2014 -0400
[coretext] Remove unnecessary alt_size
-
+
Wasn't needed after a6b8dc87421de33746b0b14d86d2d1532aec02af.
src/hb-coretext.cc | 4 ++--
Date: Mon Aug 11 20:02:45 2014 -0400
[coretext] Use CFRunStatus
-
+
Assert that all runs had expected direction, and take hint for
non-monotone clusters.
Date: Mon Aug 11 18:40:01 2014 -0400
API: Do not clear buffer-flags in hb_buffer_clear_contents()
-
+
After 763e5466c0a03a7c27020e1e2598e488612529a7, one doesn't
need to set flags for different pieces of text. The flags now
are something the client sets up once, depending on how it
actually uses the buffer. As such, don't clear it in
clear_contents().
-
+
Tests updated.
src/hb-buffer-private.hh | 4 +---
Date: Mon Aug 11 17:46:50 2014 -0400
[coretext] Pass buffer direction to CoreText
-
+
Have to use a CTTypesetter for this.
src/hb-coretext.cc | 26 ++++++++++++++++++++++----
Date: Mon Aug 11 17:46:12 2014 -0400
[coretext] Minor
-
+
It's hard to handle all possible NULL returns from CoreText. Add one
more...
Date: Mon Aug 11 15:29:18 2014 -0400
[coretext] Attach marks to base clusters
-
+
Fixes https://githu.com/behdad/harfbuzz/issues/49
to the extent that it can be fixed.
Date: Mon Aug 11 15:11:59 2014 -0400
[coretext] Use input clusters
-
+
Before, this shaper was returning UTF-16 cluster indices instead of
- returning whatever cluster values the user had had set up in the
- buffer.
+ returning whatever cluster values the user had had set up in the buffer.
Ouch!
src/hb-coretext.cc | 6 ++----
Date: Mon Aug 11 15:08:19 2014 -0400
[coretext] Fix buffer resize handling
-
+
We can't really resize buffer and continue in this shaper as we are
using the scratch buffer for string_ref and log_cluster. Restructure
shaper to retry from (almost) scratch.
src/hb-buffer-private.hh | 3 +
- src/hb-coretext.cc | 428
- ++++++++++++++++++++++++++---------------------
+ src/hb-coretext.cc | 428 ++++++++++++++++++++++++++---------------------
2 files changed, 238 insertions(+), 193 deletions(-)
commit 9b3c60c88b118f01610ae7a608b138f79f2dc7be
Date: Mon Aug 11 13:25:43 2014 -0400
[coretext] Always compute log_clusters
-
+
To be used soon.
src/hb-coretext.cc | 24 +++++++++++-------------
Date: Sun Aug 10 19:05:25 2014 -0400
[coretext] Fix fallback detection
-
+
Fixes http://github.com/behdad/harfbuzz/pull/36
src/hb-coretext.cc | 29 ++++++++++++++++++++---------
Date: Sun Aug 10 18:59:47 2014 -0400
[coretext] Fix last range
-
+
Test with:
-
- hb-view /Library/Fonts/Zapfino.ttf ZapfinoZapfino --features=-dlig[7:]
- --shaper=coretext
+
+ hb-view /Library/Fonts/Zapfino.ttf ZapfinoZapfino --features=-dlig[7:] --shaper=coretext
src/hb-coretext.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Sun Aug 10 18:52:07 2014 -0400
Fix hb_in_range() for types smaller than int
-
+
As exercised by hb-coretext .notdef code.
src/hb-private.hh | 4 +++-
Date: Sun Aug 10 18:04:50 2014 -0400
[wince] Try to fix some stuff on Windows CE
-
+
Based on errors seen here:
http://testresults.qt-project.org/ci/QtBase_dev_Integration/build_03837/wince70embedded-armv4i-msvc2008_Windows_7/log.txt.gz
-
+
Fully untested.
src/hb-private.hh | 8 ++++++++
Date: Sun Aug 10 17:40:24 2014 -0400
[coretext] Fix assert on Yosemite
-
+
Apparently those functions documented as sometimes returning NULL
actually exercise that right in OS X 10.10 Yosemite. The scratch
was too small for that. I *think* I fixed it, but haven't tested
Date: Thu Aug 7 15:38:52 2014 -0400
[arabic] Bug 82306 - Mandaic had errors in its Unicode Joining_Type
-
+
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=82306
src/hb-ot-shape-complex-arabic-table.hh | 2 +-
Date: Wed Aug 6 13:34:49 2014 -0400
Use atexit() only if it's safe to call from shared library
-
+
Apparently they are not (advertised as?) safe on BSD systems.
We ignore the case of static libraries.
-
+
Whitelisted on glibc, Android, and MSVC / mingw.
-
+
https://bugs.freedesktop.org/show_bug.cgi?id=82246
src/hb-common.cc | 4 ++--
Date: Tue Aug 5 14:19:01 2014 -0400
[arabic] Fix fallback shaping regression
-
+
Was broken in 615d00ea252739da57edbd980ff27e573.
-
+
Fixes https://github.com/behdad/harfbuzz/pull/48
-
+
Micro-test added.
src/hb-ot-shape-complex-arabic.cc | 4 ++--
test/shaping/Makefile.am | 1 +
test/shaping/fonts/sha1sum/MANIFEST | 1 +
- .../sha1sum/df768b9c257e0c9c35786c47cae15c46571d56be.ttf | Bin 0 ->
- 6332 bytes
+ .../sha1sum/df768b9c257e0c9c35786c47cae15c46571d56be.ttf | Bin 0 -> 6332 bytes
test/shaping/tests/MANIFEST | 1 +
test/shaping/tests/arabic-fallback-shaping.tests | 1 +
6 files changed, 6 insertions(+), 2 deletions(-)
Date: Sat Aug 2 17:18:46 2014 -0400
Make sure gsubgpos buffer vars are available during fallback_position
-
+
Add buffer var allocation asserts to a few key places.
src/hb-ot-layout-gpos-table.hh | 4 ++--
Date: Sat Aug 2 16:31:16 2014 -0400
Disable 'liga' for vertical text
-
+
The reason we turned it on is because Kazuraki uses it. But that's
not reason enough. Until the OpenType spec gets its act together re
adding design-direction to lookups, this is better user experience.
Date: Sat Aug 2 16:17:44 2014 -0400
Make it easier to use HB_BUFFER_FLAG_BOT/EOT
-
+
Previously, we expected users to provide BOT/EOT flags when the
text *segment* was at paragraph boundaries. This meant that for
clients that provide full paragraph to HarfBuzz (eg. Pango), they
had code like this:
-
+
hb_buffer_set_flags (hb_buffer,
(item_offset == 0 ? HB_BUFFER_FLAG_BOT : 0) |
- (item_offset + item_length == paragraph_length
- ?
+ (item_offset + item_length == paragraph_length ?
HB_BUFFER_FLAG_EOT : 0));
-
+
hb_buffer_add_utf8 (hb_buffer,
paragraph_text, paragraph_length,
item_offset, item_length);
-
+
After this change such clients can simply say:
-
+
hb_buffer_set_flags (hb_buffer,
HB_BUFFER_FLAG_BOT | HB_BUFFER_FLAG_EOT);
-
+
hb_buffer_add_utf8 (hb_buffer,
paragraph_text, paragraph_length,
item_offset, item_length);
-
+
Ie, HarfBuzz itself checks whether the segment is at the beginning/end
of the paragraph. Clients that only pass item-at-a-time to HarfBuzz
continue not setting any flags whatsoever.
-
+
Another way to put it is: if there's pre-context text in the buffer,
HarfBuzz ignores the BOT flag. If there's post-context, it ignores
EOT flag.
- src/hb-ot-shape-complex-arabic.cc | 40
- +++++++++++++++++++--------------------
+ src/hb-ot-shape-complex-arabic.cc | 40 +++++++++++++++++++--------------------
src/hb-ot-shape.cc | 1 +
2 files changed, 20 insertions(+), 21 deletions(-)
Date: Fri Aug 1 19:05:33 2014 -0400
[arabic/win1256] Really fix lam-alef this time
-
+
https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c26
https://github.com/behdad/harfbuzz/commit/b276e897d17519a2c28f79d024904ac2bdd86bcf#commitcomment-7243499
src/hb-ot-shape-complex-arabic-fallback.hh | 2 +-
- src/hb-ot-shape-complex-arabic-win1256.hh | 49
- +++++++++---------------------
+ src/hb-ot-shape-complex-arabic-win1256.hh | 49 +++++++++---------------------
2 files changed, 15 insertions(+), 36 deletions(-)
commit 55977f2a462b7fa1248eab3787053dc82320d3e5
Date: Fri Aug 1 16:14:33 2014 -0400
[arabic/win1256] Hook up lamMedi lookup
-
+
Restructure lookup array to accommodate.
-
+
https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c18
- src/hb-ot-shape-complex-arabic-fallback.hh | 26
- ++++++++++----------------
+ src/hb-ot-shape-complex-arabic-fallback.hh | 26 ++++++++++----------------
src/hb-ot-shape-complex-arabic-win1256.hh | 1 +
2 files changed, 11 insertions(+), 16 deletions(-)
Date: Fri Aug 1 16:09:31 2014 -0400
[arabic/win1256] Fix TEH MARBUTA final form
-
+
https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c18
src/hb-ot-shape-complex-arabic-win1256.hh | 8 ++++----
Date: Thu Jul 31 18:21:05 2014 -0400
[arabic/win1256] Fix shaping of JEEM, HAH, and KHAH
-
+
https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c16
src/hb-ot-shape-complex-arabic-win1256.hh | 22 ++++++++++++----------
Date: Thu Jul 31 11:04:00 2014 -0400
[arabic/win1256] Remove GCC'ism
-
- The table can now compile independently too. If we cannot make
- it work
+
+ The table can now compile independently too. If we cannot make it work
on MSVC, we can always generate the data and distribute it.
-
+
The code now compiles cleanly with:
-
- gcc -c -xc -std=c99 -Werror -pedantic
- hb-ot-shape-complex-arabic-win1256.hh
- g++ -c -xc -std=c++1x -Werror -pedantic
- hb-ot-shape-complex-arabic-win1256.hh
-
+
+ gcc -c -xc -std=c99 -Werror -pedantic hb-ot-shape-complex-arabic-win1256.hh
+ g++ -c -xc -std=c++1x -Werror -pedantic hb-ot-shape-complex-arabic-win1256.hh
+
See:
https://github.com/behdad/harfbuzz/commit/a97f537cec209649302899975d76ca2b2661da7a#commitcomment-7218736
src/hb-ot-shape-complex-arabic-fallback.hh | 4 +-
- src/hb-ot-shape-complex-arabic-win1256.hh | 123
- +++++++++++++++++------------
+ src/hb-ot-shape-complex-arabic-win1256.hh | 123 +++++++++++++++++------------
2 files changed, 75 insertions(+), 52 deletions(-)
commit f28b1c823db2ad56fed356ef864a7508d23048b8
Date: Wed Jul 30 02:15:44 2014 -0400
[arabic] Implement Windows-1256 private shaping
-
- Bug 1045139 - The Arabic text with "MS Sans Serif" font is rendered
- bad
+
+ Bug 1045139 - The Arabic text with "MS Sans Serif" font is rendered bad
https://bugzilla.mozilla.org/show_bug.cgi?id=1045139
-
+
This is only enabled on Windows platforms, and requires support from
Uniscribe to work. But for clients that do hook up to Uniscribe, this
- fixes shaping of Windows-1256-encoded bitmap fonts like "MS Sans
- Serif".
-
+ fixes shaping of Windows-1256-encoded bitmap fonts like "MS Sans Serif".
+
The code and table together have just less than a 1kb footprint when
enabled.
-
+
UNTESTED. I might even have broken regular Arabic fallback shaping.
src/Makefile.am | 1 +
src/check-includes.sh | 2 +-
src/hb-ot-shape-complex-arabic-fallback.hh | 125 +++++++++--
- src/hb-ot-shape-complex-arabic-win1256.hh | 328
- +++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-arabic-win1256.hh | 328 +++++++++++++++++++++++++++++
4 files changed, 442 insertions(+), 14 deletions(-)
commit ac53443f1cea83ed43a4e41a9fdb91902f7fae7b
Date: Thu Jul 31 18:51:37 2014 -0400
[hangul] Don't apply 'calt'
-
+
See comments.
-
+
Micro-test added.
- src/hb-ot-shape-complex-hangul.cc | 11
- ++++++++++-
+ src/hb-ot-shape-complex-hangul.cc | 11 ++++++++++-
test/shaping/Makefile.am | 1 +
- .../sha1sum/757ebd573617a24aa9dfbf0b885c54875c6fe06b.ttf | Bin 0 ->
- 1804 bytes
- .../sha1sum/7e14e7883ed152baa158b80e207b66114c823a8b.ttf | Bin 0 ->
- 1644 bytes
+ .../sha1sum/757ebd573617a24aa9dfbf0b885c54875c6fe06b.ttf | Bin 0 -> 1804 bytes
+ .../sha1sum/7e14e7883ed152baa158b80e207b66114c823a8b.ttf | Bin 0 -> 1644 bytes
test/shaping/fonts/sha1sum/MANIFEST | 2 ++
test/shaping/tests/MANIFEST | 1 +
- test/shaping/tests/hangul-jamo.tests | 11
- +++++++++++
+ test/shaping/tests/hangul-jamo.tests | 11 +++++++++++
7 files changed, 25 insertions(+), 1 deletion(-)
commit 8292f96b2be173ebceb1b54426c271cfeaecd633
Date: Sat Jul 26 20:34:01 2014 -0400
[hebrew] Zero mark advance by GDEF late
-
+
Seems to be what Uniscribe does.
-
+
At this point I think it's work checking our default...
-
+
Fixes Bug 76767 - Zeroing of advance of 2nd component of multiple
substitution with SBL Hebrew
https://bugs.freedesktop.org/show_bug.cgi?id=76767
-
+
Micro-test added.
src/hb-ot-shape-complex-hebrew.cc | 2 +-
- .../sha1sum/8454d22037f892e76614e1645d066689a0200e61.ttf | Bin 0 ->
- 6068 bytes
+ .../sha1sum/8454d22037f892e76614e1645d066689a0200e61.ttf | Bin 0 -> 6068 bytes
test/shaping/fonts/sha1sum/MANIFEST | 1 +
test/shaping/tests/zero-width-marks.tests | 1 +
4 files changed, 3 insertions(+), 1 deletion(-)
Date: Sat Jul 26 19:17:44 2014 -0400
Add old-Myanmar shaper
-
+
Looks like Unsicribe responds to the 'mymr' tag by zeroing marks
GDEF_LATE instead of generic-shaper UNICODE_LATE. Implement that.
-
+
Fixes
Bug 81775 - Incorrect Rendering with harfbuzz-ng myanmar unicode
https://bugs.freedesktop.org/show_bug.cgi?id=81775
-
+
Micro-test added based on Padauk.
- src/hb-ot-shape-complex-myanmar.cc | 18
- ++++++++++++++++++
+ src/hb-ot-shape-complex-myanmar.cc | 18 ++++++++++++++++++
src/hb-ot-shape-complex-private.hh | 5 +++--
test/shaping/Makefile.am | 1 +
test/shaping/fonts/sha1sum/MANIFEST | 1 +
- .../bb9473d2403488714043bcfb946c9f78b86ad627.ttf | Bin 0 ->
- 3440 bytes
+ .../bb9473d2403488714043bcfb946c9f78b86ad627.ttf | Bin 0 -> 3440 bytes
test/shaping/tests/MANIFEST | 1 +
test/shaping/tests/zero-width-marks.tests | 1 +
7 files changed, 25 insertions(+), 2 deletions(-)
Date: Fri Jul 25 12:30:47 2014 -0400
Fix snprintf() format
-
+
Patch from Maks Naumov.
Fixes https://github.com/behdad/harfbuzz/pull/22
Date: Fri Jul 25 12:21:49 2014 -0400
Make sure broken feature strings are not partially parsed
-
+
If user doesn't check hb_feature_from_string() return value, we
don't want them to end up see the partially-parsed feature.
Date: Fri Jul 25 12:15:33 2014 -0400
Allow quotation marks around feature tag in hb_feature_from_string()
-
+
With this, I believe we accept CSS feature strings completely.
src/hb-shape.cc | 24 +++++++++++++++++++++---
Date: Fri Jul 25 12:01:22 2014 -0400
Allow on/off in hb_feature_from_string()
-
+
We now allow things like "dlig on" / "dlig=on".
src/hb-shape.cc | 26 ++++++++++++++++++++++++--
Date: Fri Jul 25 11:56:01 2014 -0400
Remove duplicate definition of ISALNUM
-
+
It's defined in hb-private.h already.
src/hb-shape.cc | 2 --
Date: Fri Jul 25 11:44:35 2014 -0400
Do not require the '=' in hb_feature_from_string()
-
+
Towards accepting CSS font-feature-settings strings.
src/hb-shape.cc | 6 +++++-
Date: Fri Jul 25 11:18:11 2014 -0400
Minor warnings fixes
-
- Some systems insist on -Wmissing-field-initializers. We have
- too many,
+
+ Some systems insist on -Wmissing-field-initializers. We have too many,
by design. Fix a few easy ones.
src/hb-open-type-private.hh | 2 +-
Date: Wed Jul 23 16:48:51 2014 -0400
[indic] Handle old-spec Malayalam reordering with final Halant
-
+
See comment.
-
+
Micro-tests added.
- src/hb-ot-shape-complex-indic.cc | 28
- +++++++++++++++++----
+ src/hb-ot-shape-complex-indic.cc | 28 +++++++++++++++++----
test/shaping/Makefile.am | 1 +
.../270b89df543a7e48e206a2d830c0e10e5265c630.ttf | Bin 0 -> 3428 bytes
.../57a9d9f83020155cbb1d2be1f43d82388cbecc88.ttf | Bin 0 -> 2272 bytes
Date: Wed Jul 23 11:38:49 2014 -0400
Give CC to gir-scanner
-
+
From:
https://github.com/Alexpux/MINGW-packages/blob/master/mingw-w64-harfbuzz/0001-give-cc-to-gir-scanner.all.patch
Date: Tue Jul 22 16:26:27 2014 -0400
Disallow changing settings on immutable face
-
+
Ouch!
src/hb-face.cc | 8 ++++----
Date: Mon Jul 21 11:12:54 2014 -0400
[win] Fix Cygwin build
-
+
https://github.com/behdad/harfbuzz/commit/db308280488c2ee11ba865a9922eb6a0c1abeef3#commitcomment-7077778
src/hb-private.hh | 2 +-
Date: Sun Jul 20 01:17:40 2014 -0400
Add HB_TAG_MAX_SIGNED / _HB_SCRIPT_MAX_VALUE_SIGNED
-
+
To make C language police happy.
src/hb-common.h | 17 ++++++++++++-----
Date: Sat Jul 19 17:31:23 2014 -0400
[gobject] Skip _HB_SCRIPT_MAX_VALUE
-
+
Fixes https://github.com/behdad/harfbuzz/pull/38
src/hb-common.h | 2 +-
Date: Sat Jul 19 16:10:21 2014 -0400
More fixing MemoryBarrier() on Mingw32
-
+
Set requested windows header to Vista. See discussion:
-
+
https://github.com/behdad/harfbuzz/commit/fbb2847f541389f40718af71c4945024ae177ab2#commitcomment-7054700
src/hb-atomic-private.hh | 3 +++
[test] Remove unused micro-font
- .../9d64156923a1b9fed1e05f74599c16563eca42d9.ttf | Bin 81968 ->
- 0 bytes
+ .../9d64156923a1b9fed1e05f74599c16563eca42d9.ttf | Bin 81968 -> 0 bytes
test/shaping/fonts/sha1sum/MANIFEST | 1 -
2 files changed, 1 deletion(-)
Date: Fri Jul 18 14:37:49 2014 -0400
[test] Add more Mongolian variation selector tests
-
+
From
https://code.google.com/p/chromium/issues/detail?id=393896
- .../9d64156923a1b9fed1e05f74599c16563eca42d9.ttf | Bin 0 ->
- 81968 bytes
+ .../9d64156923a1b9fed1e05f74599c16563eca42d9.ttf | Bin 0 -> 81968 bytes
test/shaping/fonts/sha1sum/MANIFEST | 2 ++
- .../bb29ce50df2bdba2d10726427c6b7609bf460e04.ttf | Bin 0 ->
- 74856 bytes
+ .../bb29ce50df2bdba2d10726427c6b7609bf460e04.ttf | Bin 0 -> 74856 bytes
test/shaping/tests/mongolian-variation-selector.tests | 1 +
.../shaper-arabic/script-mongolian/misc/MANIFEST | 1 +
.../script-mongolian/misc/variation-selectors.txt | 8 ++++++++
Date: Thu Jul 17 17:13:54 2014 -0400
[arabic] Disable 'cswh' again
-
+
Ouch!
src/hb-ot-shape-complex-arabic.cc | 2 +-
Date: Thu Jul 17 13:36:09 2014 -0400
[arabic] Apply init/medi/isol/fini/... in separate stages
-
+
Follows the order of the Arabic/Syriac specs. Also don't stop
between rlig and calt in non-Arabic scripts.
-
+
Micro-tests for Arabic and Mongolian added for the latter.
- src/hb-ot-shape-complex-arabic.cc | 56
- +++++++++++++--------
+ src/hb-ot-shape-complex-arabic.cc | 56 +++++++++++++--------
test/shaping/Makefile.am | 2 +
.../813c2f8e5512187fd982417a7fb4286728e6f4a8.ttf | Bin 0 -> 3428 bytes
.../8a9fea2a7384f2116e5b84a9b31f83be7850ce21.ttf | Bin 0 -> 3428 bytes
Micro optimization
- src/hb-fallback-shape.cc | 36
- +++++++++++++++++++-----------------
+ src/hb-fallback-shape.cc | 36 +++++++++++++++++++-----------------
src/hb-ot-shape-complex-arabic.cc | 19 +++++++++++--------
src/hb-ot-shape-complex-indic.cc | 15 ++++++++++-----
src/hb-ot-shape-complex-myanmar.cc | 7 +++++--
Date: Thu Jul 17 14:16:38 2014 -0400
Another try to fix Mongolian free variation selectors
-
+
This reverts bf029281 and fixes it properly. That commit
was not enough as it was only inheriting the shaping_action
for prev_action, but not curr_action.
-
+
Micro-test added.
-
+
https://code.google.com/p/chromium/issues/detail?id=393896
- src/hb-ot-shape-complex-arabic.cc | 24
- +++++++++++++++------
+ src/hb-ot-shape-complex-arabic.cc | 24 +++++++++++++++------
src/hb-unicode-private.hh | 3 ++-
test/shaping/fonts/sha1sum/MANIFEST | 1 +
.../ef86fe710cfea877bbe0dbb6946a1f88d0661031.ttf | Bin 0 -> 2748 bytes
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Jul 17 12:23:44 2014 -0400
- Revert "Show U+FFFD REPLACEMENT CHARACTER for invalid Unicode
- codepoints"
-
+ Revert "Show U+FFFD REPLACEMENT CHARACTER for invalid Unicode codepoints"
+
We now handle U+FFFD replacement in hb_buffer_add_utf*(). Any other
manipulation can happen in user callbacks. No need for this.
-
+
https://github.com/behdad/harfbuzz/commit/efe74214bbb68eaa3d7621e73869b5d58210107e#commitcomment-7039404
-
+
This reverts commit efe74214bbb68eaa3d7621e73869b5d58210107e.
-
+
Conflicts:
src/hb-ot-shape-normalize.cc
Date: Wed Jul 16 15:34:20 2014 -0400
New API: hb_buffer_[sg]et_replacement_codepoint()
-
+
With this change, we now by default replace broken UTF-8/16/32 bits
with U+FFFD. This can be changed by calling new API on the buffer.
Previously the replacement value used to be (hb_codepoint_t)-1.
-
+
Note that hb_buffer_clear_contents() does NOT reset the replacement
character.
-
+
See discussion here:
-
+
https://github.com/behdad/harfbuzz/commit/6f13b6d62daae4989e3cc2fe4b168e5c59650964
-
+
New API:
-
+
hb_buffer_set_replacement_codepoint()
hb_buffer_get_replacement_codepoint()
src/hb-buffer-private.hh | 1 +
- src/hb-buffer.cc | 45
- ++++++++++++++++++++++++++++++++++++++++++---
+ src/hb-buffer.cc | 45 ++++++++++++++++++++++++++++++++++++++++++---
src/hb-buffer.h | 15 ++++++++++++++-
src/hb-utf-private.hh | 34 ++++++++++++++++++++--------------
test/api/test-buffer.c | 26 +++++++++++++++-----------
Date: Wed Jul 16 14:59:04 2014 -0400
New API hb_buffer_add_codepoints()
-
+
Like hb_buffer_add_utf32, but doesn't do any Unicode validation.
This is like what hb_buffer_add_utf32 used to be until a couple
commits ago.
[buffer] Templatize UTF-* functions
src/hb-buffer.cc | 10 +-
- src/hb-utf-private.hh | 307
- ++++++++++++++++++++++++++------------------------
+ src/hb-utf-private.hh | 307 ++++++++++++++++++++++++++------------------------
2 files changed, 166 insertions(+), 151 deletions(-)
commit e634fed4285ce440d277345727ed01757df6d779
Date: Wed Jul 16 14:17:26 2014 -0400
[buffer] Validate UTF-32 input
-
+
Same as what we do for UTF-8 and UTF-16.
src/hb-utf-private.hh | 13 +++++++++---
- test/api/test-buffer.c | 55
- ++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/api/test-buffer.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 65 insertions(+), 3 deletions(-)
commit b98c5db32d15fcfb27ce2f6737203ce1ad124319
[tests] Add record-test.sh
test/shaping/Makefile.am | 1 +
- test/shaping/record-test.sh | 49
- +++++++++++++++++++++++++++++++++++++++++++++
+ test/shaping/record-test.sh | 49 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 50 insertions(+)
commit 3b861421a772f52eb232ff93bd74b5a8214801ec
Date: Wed Jul 16 13:22:05 2014 -0400
Fix Mongolian Variation Selectors for fonts without GDEF
-
+
Originally we fixed those in 79d1007a501fd63c0ba4d51038c513e6b8b94740.
- However, fonts like MongolianWhite don't have GDEF, but have
- IgnoreMarks
+ However, fonts like MongolianWhite don't have GDEF, but have IgnoreMarks
in their LigatureSubstitute init/etc features. We were synthesizing a
GDEF class of mark for Mongolian Variation Selectors and as such the
ligature lookups where not matching. Uniscribe doesn't do that.
-
+
I tried with more sophisticated fixes, like, if there is no GDEF and
a lookup-flag mismatch happens, instead of rejecting a match, try
skipping that glyph. That surely produces some interesting behavior,
- but since we don't want to support fonts missing GDEF more than
- we have
+ but since we don't want to support fonts missing GDEF more than we have
to, I went for this simpler fix which is to always mark
default-ignorables as base when synthesizing GDEF.
-
+
Micro-test added.
-
+
Fixes rest of https://bugs.freedesktop.org/show_bug.cgi?id=65258
- src/hb-ot-shape.cc | 13
- +++++++++++--
- .../sha1sum/37033cc5cf37bb223d7355153016b6ccece93b28.ttf | Bin 0 ->
- 2780 bytes
+ src/hb-ot-shape.cc | 13 +++++++++++--
+ .../sha1sum/37033cc5cf37bb223d7355153016b6ccece93b28.ttf | Bin 0 -> 2780 bytes
test/shaping/fonts/sha1sum/MANIFEST | 1 +
test/shaping/tests/MANIFEST | 1 +
test/shaping/tests/mongolian-variation-selector.tests | 1 +
Date: Fri Jul 11 16:10:58 2014 -0400
Only accept well-formed UTF-8 sequences
-
+
Enable tests that were disabled before, and adjust one test,
and add more tests.
- src/hb-utf-private.hh | 93
- +++++++++++++++++++++++++++++++++-----------------
+ src/hb-utf-private.hh | 93 +++++++++++++++++++++++++++++++++-----------------
test/api/test-buffer.c | 9 +++--
2 files changed, 68 insertions(+), 34 deletions(-)
Date: Fri Jul 11 15:05:36 2014 -0400
Use hb_in_range() for arabic and indic tables
-
+
Though, looks like gcc was smart enough to produce the same code
before...
src/gen-arabic-table.py | 18 +-
src/gen-indic-table.py | 10 +-
- src/hb-ot-shape-complex-arabic-table.hh | 420
- ++++++++++++++++----------------
+ src/hb-ot-shape-complex-arabic-table.hh | 420 ++++++++++++++++----------------
src/hb-ot-shape-complex-indic-table.cc | 88 +++----
4 files changed, 268 insertions(+), 268 deletions(-)
Date: Fri Jul 11 14:54:42 2014 -0400
Mark unsigned integer literals with the u suffix
-
+
Simplifies hb_in_range() calls as the type can be inferred.
The rest is obsessiveness, I admit.
src/hb-ot-shape-complex-arabic-fallback.hh | 2 +-
src/hb-ot-shape-complex-hangul.cc | 36 +++---
src/hb-ot-shape-complex-hebrew.cc | 134 ++++++++++-----------
- src/hb-ot-shape-complex-indic.cc | 182
- ++++++++++++++---------------
+ src/hb-ot-shape-complex-indic.cc | 182 ++++++++++++++---------------
src/hb-ot-shape-complex-myanmar.cc | 56 ++++-----
src/hb-ot-shape-complex-sea.cc | 8 +-
src/hb-ot-shape-complex-thai.cc | 84 ++++++-------
Date: Fri Jul 11 14:18:01 2014 -0400
Simplify hb_in_range()
-
+
It's both faster and produces smaller code. Now I feel stupid for
not writing it this way before.
Date: Fri Jul 11 11:59:48 2014 -0400
Show U+FFFD REPLACEMENT CHARACTER for invalid Unicode codepoints
-
+
Only if the font doesn't support it. Ie, this gives the user to
use non-Unicode codepoints as private values and return a meaningful
glyph for them. But if it's invalid and font callback doesn't
like it, and if font has U+FFFD, show that instead.
-
+
Font functions that do not want this automatic replacement to
happen should return true from get_glyph() if unicode > 0x10FFFF.
-
+
Replaces https://github.com/behdad/harfbuzz/pull/27
src/hb-ot-shape-normalize.cc | 7 +++++++
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Jul 10 19:31:40 2014 -0400
- When parsing UTF-16, generate invalid codepoint for lonely low
- surrogate
-
+ When parsing UTF-16, generate invalid codepoint for lonely low surrogate
+
Test passes now.
src/hb-utf-private.hh | 42 ++++++++++++++++++++++++++++--------------
Date: Thu Jul 10 19:31:16 2014 -0400
[test-buffer] Add test for lonely low-surrogate
-
+
Currenty fails. Ouch!
test/api/test-buffer.c | 1 +
Date: Thu Jul 10 19:20:35 2014 -0400
Fix lang matching logic
-
+
Previous code was broken logically, but harmless.
src/hb-ot-tag.cc | 2 +-
Date: Wed Jul 9 19:09:08 2014 -0400
[Android.mk] Update for new ICU
-
+
https://android-review.googlesource.com/#/c/100722/1/Android.mk
Android.mk | 2 +-
Date: Wed Jul 9 17:17:18 2014 -0400
Define _POSIX_C_SOURCE only if it is not defined
-
+
Fixes https://github.com/behdad/harfbuzz/pull/45
src/hb-blob.cc | 2 ++
Date: Wed Jul 9 17:07:06 2014 -0400
[tests] Remove bash'ish
-
+
Apparently on travis-ci, bash is linked to dash, which doesn't
understand "let". Failing tests were not being noticed. See eg:
-
+
https://travis-ci.org/behdad/harfbuzz/jobs/29544211
-
+
Don't rely on bash.
test/shaping/run-tests.sh | 4 ++--
Date: Wed Jul 9 16:51:38 2014 -0400
[ucdn] Update to Unicode 7.0.0 data
-
+
From http://github.com/behdad/ucdn
src/hb-ucdn.cc | 23 +
src/hb-ucdn/README | 1 +
src/hb-ucdn/ucdn.c | 2 +-
src/hb-ucdn/ucdn.h | 27 +
- src/hb-ucdn/unicodedata_db.h | 3711
- ++++++++++++++++++++++--------------------
+ src/hb-ucdn/unicodedata_db.h | 3711 ++++++++++++++++++++++--------------------
5 files changed, 2039 insertions(+), 1725 deletions(-)
commit 9d4ede3a97fff544a5ec2a671e49a92a79645b61
Date: Tue Jul 8 20:02:29 2014 -0400
[util/hb-shape] Accept an empty output-format that would skip output
-
+
Useful for benchmarking, to avoid buffer serialization overhead (which
seems to by far dominate shaping!)
Date: Sat Jul 5 15:50:18 2014 -0400
[util] Add option to set font function implementation to use
-
- Supports ft and ot right now. hb-view currently not rendering
- with ot.
+
+ Supports ft and ot right now. hb-view currently not rendering with ot.
Will fix after some clean up.
- util/options.cc | 76
- ++++++++++++++++++++++++++++++++++++++++++++++++++-------
+ util/options.cc | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++-------
util/options.hh | 21 ++++++++++++++++
2 files changed, 88 insertions(+), 9 deletions(-)
Date: Tue Jul 1 15:51:54 2014 -0400
Add Roozbeh to AUTHORS
-
+
He's been my shadow for all Indic-related changes in the last
few months.
Date: Mon Jun 30 15:39:39 2014 -0400
[indic] Remove special-casing of U+1CF2,1CF3
-
+
These were introduced in a498565cedf0441ae723c5e5969f637d792a15e7,
but IndicSyllabicCategory has had the correct value already, so the
special code was never needed.
Date: Mon Jun 30 15:24:02 2014 -0400
[indic-table] Update to Unicode 7.0 data
-
+
Touch code just enough to preserve previous syllable structure
and functionality as closely as possible. Many further cleanups
coming later.
src/gen-indic-table.py | 4 +
src/hb-ot-shape-complex-indic-private.hh | 23 +-
- src/hb-ot-shape-complex-indic-table.cc | 468
- ++++++++++++++++++++++---------
+ src/hb-ot-shape-complex-indic-table.cc | 468 ++++++++++++++++++++++---------
src/hb-ot-shape-complex-indic.cc | 21 --
src/hb-ot-shape-complex-myanmar.cc | 2 -
5 files changed, 355 insertions(+), 163 deletions(-)
[indic-table] Fix category frequency counts in comments
src/gen-indic-table.py | 2 +-
- src/hb-ot-shape-complex-indic-table.cc | 46
- +++++++++++++++++-----------------
+ src/hb-ot-shape-complex-indic-table.cc | 46 +++++++++++++++++-----------------
2 files changed, 24 insertions(+), 24 deletions(-)
commit 5c4e3e9a57b6b735e7d72cbd5f4070cf024d7015
Whitespace
- src/hb-ot-shape-complex-indic-private.hh | 76
- ++++++++++++++++----------------
+ src/hb-ot-shape-complex-indic-private.hh | 76 ++++++++++++++++----------------
1 file changed, 38 insertions(+), 38 deletions(-)
commit af528b6674bccac3efd13f8b33fcdc6aeb178f4c
Date: Fri Jun 27 17:30:59 2014 -0400
Mark unsed members with a "Z" suffix
-
+
There may be more. There are members that are by definition
redundant or reserved and not needed, NOT what we *currently*
don't use.
-
+
I'm sure there's more...
src/hb-open-file-private.hh | 6 +++---
[cmap] Implement subtable format 14
- src/hb-ot-cmap-table.hh | 147
- +++++++++++++++++++++++++++++++++++++++++++-----
+ src/hb-ot-cmap-table.hh | 147 +++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 133 insertions(+), 14 deletions(-)
commit 586b60622c33878f9ca4826b4ef07369d32bf039
Date: Tue Jun 24 10:20:36 2014 -0600
Add back API removed recently
-
+
Add hb_ot_layout_language_get_required_feature_index() again, which
is used in Pango. This was removed in
da132937989acb4d8ca9bd41c79f98750e7dda30 in favor of
hb_ot_layout_language_get_required_feature().
-
+
API changes:
-
+
- Added hb_ot_layout_language_get_required_feature_index back.
src/hb-ot-layout.cc | 15 +++++++++++++++
Date: Sat Jun 21 15:25:59 2014 -0600
[indic-table] Update to Unicode 6.3.0
-
+
Was from 6.2.0. It's a no-op. Committing for the record.
src/hb-ot-shape-complex-indic-table.cc | 12 ++++++------
Date: Sat Jun 21 14:19:34 2014 -0600
[arabic-table] Update to Unicode 7.0
-
- Old table was from 6.2. Remove hard-coded Mongolian and Phags-pa
- data.
+
+ Old table was from 6.2. Remove hard-coded Mongolian and Phags-pa data.
This completes support for new scripts Manichian and Psaltar Pahlavi.
- src/hb-ot-shape-complex-arabic-table.hh | 72
- ++++++++++++++++++++++++++++-----
+ src/hb-ot-shape-complex-arabic-table.hh | 72 ++++++++++++++++++++++++++++-----
src/hb-ot-shape-complex-arabic.cc | 22 ----------
2 files changed, 63 insertions(+), 31 deletions(-)
Date: Sat Jun 21 14:07:00 2014 -0600
[arabic-table] Further tune
-
+
In anticipation of Unicode 7.0 data coming in the next commit.
src/gen-arabic-table.py | 10 ++++++---
- src/hb-ot-shape-complex-arabic-table.hh | 38
- +++++++++++++++------------------
+ src/hb-ot-shape-complex-arabic-table.hh | 38 +++++++++++++++------------------
2 files changed, 24 insertions(+), 24 deletions(-)
commit a133e6067aaebc494c0156b5fac7f4a879e12dbe
Date: Fri Jun 20 17:59:43 2014 -0400
[arabic-table] Use segmented table
-
+
No functional change.
- src/gen-arabic-table.py | 82
- +++++++++++++++++++++++----------
+ src/gen-arabic-table.py | 82 +++++++++++++++++++++++----------
src/hb-ot-shape-complex-arabic-table.hh | 53 ++++++++++++++-------
src/hb-ot-shape-complex-arabic.cc | 8 ++--
3 files changed, 97 insertions(+), 46 deletions(-)
Date: Fri Jun 20 16:47:43 2014 -0400
[indic-table] Minor
-
+
No output change.
src/gen-indic-table.py | 7 +------
Date: Fri Jun 20 16:30:10 2014 -0400
[arabic-table] Don't write comments
-
+
No functional change.
src/gen-arabic-table.py | 20 +-
- src/hb-ot-shape-complex-arabic-table.hh | 710
- ++------------------------------
+ src/hb-ot-shape-complex-arabic-table.hh | 710 ++------------------------------
2 files changed, 38 insertions(+), 692 deletions(-)
commit 200dfe3eb10feda2ad25940338b08011f4757ca4
Date: Fri Jun 20 16:20:59 2014 -0400
[arabic-table] Use short names for values
-
+
No functional change.
src/gen-arabic-table.py | 16 +-
- src/hb-ot-shape-complex-arabic-table.hh | 1386
- ++++++++++++++++---------------
+ src/hb-ot-shape-complex-arabic-table.hh | 1386 ++++++++++++++++---------------
2 files changed, 716 insertions(+), 686 deletions(-)
commit 3f5327a41efcf50f64d9498ef3dfd6875ef6a5ab
Date: Fri Jun 20 16:17:42 2014 -0400
[arabic-table] Read Blocks.txt and shuffle code around
-
+
No functional change.
src/Makefile.am | 2 +-
- src/gen-arabic-table.py | 80
- +++++++++++++++++++--------------
+ src/gen-arabic-table.py | 80 +++++++++++++++++++--------------
src/hb-ot-shape-complex-arabic-table.hh | 30 ++++++++-----
3 files changed, 67 insertions(+), 45 deletions(-)
Date: Fri Jun 20 15:25:30 2014 -0400
[indic-table] Black-list Thai, Lao, and Tibetan
-
+
We don't need Indic table for those.
src/gen-indic-table.py | 3 ++
- src/hb-ot-shape-complex-indic-table.cc | 94
- +++++++---------------------------
+ src/hb-ot-shape-complex-indic-table.cc | 94 +++++++---------------------------
2 files changed, 21 insertions(+), 76 deletions(-)
commit 65ac2dae4f284f563b2dc476a21e2b5a48124de8
[indic-table] Speed up lookup
src/gen-indic-table.py | 22 +++++++++---
- src/hb-ot-shape-complex-indic-table.cc | 61
- +++++++++++++++++++++++-----------
+ src/hb-ot-shape-complex-indic-table.cc | 61 +++++++++++++++++++++++-----------
2 files changed, 59 insertions(+), 24 deletions(-)
commit 64442a3f4c5c7be08893454742cad6bfe73cb8d7
Date: Fri Jun 20 14:56:22 2014 -0400
[indic-table] Make table more compact by not covering full blocks
-
+
-#define indic_offset_total 4416
+#define indic_offset_total 3816
-
+
-}; /* Table occupancy: 60% */
+}; /* Table occupancy: 69% */
src/gen-indic-table.py | 24 ++++--
- src/hb-ot-shape-complex-indic-table.cc | 150
- +++++++++------------------------
+ src/hb-ot-shape-complex-indic-table.cc | 150 +++++++++------------------------
2 files changed, 57 insertions(+), 117 deletions(-)
commit 190a251479b3cfc68871ff1daf9a9d1abe3f86e6
Date: Fri Jun 20 14:41:39 2014 -0400
[indic-table] Remove block range from data table
-
+
No functional change.
src/gen-indic-table.py | 4 +-
- src/hb-ot-shape-complex-indic-table.cc | 102
- ++++++++++++++++-----------------
+ src/hb-ot-shape-complex-indic-table.cc | 102 ++++++++++++++++-----------------
2 files changed, 54 insertions(+), 52 deletions(-)
commit 2b051c6057920c564c13c5d6a3e6dca93446fa12
Date: Fri Jun 20 14:09:57 2014 -0400
Rename HB_VERSION_CHECK and hb_version_check to "atleast"
-
+
HB_VERSION_CHECK's comparison was originally written wrongly
by mistake. When API tests were written, they were also written
wrongly to pass given the wrong implementation... Sigh.
-
+
Given the purpose of this API, there's no point in fixing it
without renaming it. As such, rename.
-
+
API changes:
-
+
HB_VERSION_CHECK -> HB_VERSION_ATLEAST
hb_version_check -> hb_version_atleast
Author: Jonathan Kew <jfkthame@gmail.com>
Date: Sun Apr 27 14:05:24 2014 +0100
- Rework handling of requiredFeature to solve problem with rlig in
- arial.ttf from winxp
-
+ Rework handling of requiredFeature to solve problem with rlig in arial.ttf from winxp
+
https://bugzilla.mozilla.org/show_bug.cgi?id=986802
Fixes https://github.com/behdad/harfbuzz/pull/39
-
+
API Change:
-
+
-hb_ot_layout_language_get_required_feature_index
+hb_ot_layout_language_get_required_feature
-
+
New API takes an extra pointer argument. Pass NULL in to get
behavior of previous API.
-
+
Reworked by behdad
src/hb-ot-layout-gsubgpos-private.hh | 4 +--
src/hb-ot-layout.cc | 29 ++++++++++++---------
src/hb-ot-layout.h | 11 ++++----
- src/hb-ot-map.cc | 50
- ++++++++++++++++++++++++++----------
+ src/hb-ot-map.cc | 50 ++++++++++++++++++++++++++----------
src/main.cc | 4 +--
5 files changed, 64 insertions(+), 34 deletions(-)
Date: Thu Jun 19 15:39:18 2014 -0400
Rename search() to bsearch() and lsearch()
-
+
Such that the complexity of the algorithm used is clear at
call site.
Date: Thu Jun 19 15:30:18 2014 -0400
Rename sort() to qsort()
-
+
In an effort to make the algorithm used clear.
src/hb-coretext.cc | 4 ++--
[unicode7] Update list of Default_Ignorable codepoints
- src/hb-unicode-private.hh | 66
- +++++++++++++++++++++--------------------------
+ src/hb-unicode-private.hh | 66 +++++++++++++++++++++--------------------------
1 file changed, 30 insertions(+), 36 deletions(-)
commit 7cfee3827636f0dff7df5c8975a4fadd1b4bfbd5
Date: Mon Apr 28 15:09:30 2014 -0700
[unicode7] Route Manichaean and Psalter Pahlavi through Arabic shaper
-
+
Still needs update to joining table to fully work.
src/hb-ot-shape-complex-private.hh | 4 ++++
Date: Tue Jun 10 13:10:30 2014 +0100
When zeroing mark widths for LTR, also adjust offset...
-
+
...so that they overstrike preceding glyph.
-
+
https://github.com/behdad/harfbuzz/pull/43
- src/hb-ot-shape.cc | 50
- +++++++++++++++++++++++++++++++++++++++-----------
+ src/hb-ot-shape.cc | 50 +++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 39 insertions(+), 11 deletions(-)
commit 80f7405a5208f88b8615aa4ce4c54ffeb16f04f8
Author: Jonathan Kew <jfkthame@gmail.com>
Date: Tue Jun 10 13:10:02 2014 +0100
- [Thai] set the correct general category on Nikhahit when decomposing
- Sara-Am.
+ [Thai] set the correct general category on Nikhahit when decomposing Sara-Am.
src/hb-ot-shape-complex-thai.cc | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
Date: Fri Jun 6 17:55:02 2014 -0400
Fix base-position when 'pref' is NOT formed
-
+
If pre-base reordering Ra is NOT formed (or formed and then
broken up), we should consider that Ra as base. This is
observable when there's a left matra or dotreph that positions
before base.
-
+
Now, it might be that we shouldn't do this if the Ra happend
to form a below form. We can't quite deduce that right now...
-
+
Micro test added. Also at:
-
+
https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=186#c29
- src/hb-ot-shape-complex-indic.cc | 28
- +++++++++++++++++++--
+ src/hb-ot-shape-complex-indic.cc | 28 +++++++++++++++++++--
test/shaping/fonts/sha1sum/MANIFEST | 5 ++++
.../e207635780b42f898d58654b65098763e340f5c7.ttf | Bin 0 -> 3000 bytes
test/shaping/tests/indic-pref-blocking.tests | 3 ++-
Date: Fri Jun 6 17:28:38 2014 -0400
[indic] Recover OT_H undergone ligation and multiplication
-
+
Sometimes font designers form half/pref/etc consonant forms
unconditionally and then undo that conditionally. Try to
recover the OT_H classification in those cases.
-
+
No test number changes expected.
src/hb-ot-layout-private.hh | 8 ++++++++
Date: Fri Jun 6 17:19:35 2014 -0400
[indic] Improve base re-finding
-
+
No test numbers change.
src/hb-ot-shape-complex-indic.cc | 5 ++---
Date: Mon Jun 9 14:17:33 2014 -0400
Fix commit 3f38c1137b6219a646da141b08463ffa922d4e35
-
+
Previous commit was not compiling with clang.
configure.ac | 4 ++--
Date: Fri Jun 6 16:03:40 2014 -0400
Don't use -mstructure-size-boundary=8 on clang arm
-
+
As in building for Android / iPhone. Only set it if
struct{char} alignment is not 1.
-
+
NOT tested on an actual Arm architecture. Guess we'll know
when this makes it to people's build bots.
Date: Wed Jun 4 16:57:42 2014 -0400
[indic] Don't reorder reph/pref if ligature was expanded
-
+
Normally if you want to, say, conditionally prevent a 'pref', you
would use blocking contextual matching. Some designers instead
form the 'pref' form, then undo it in context. To detect that
we now also remember glyphs that went through MultipleSubst.
-
+
In the only place that this is used, Uniscribe seems to only care
about the "last" transformation between Ligature and Multiple
substitions. Ie. if you ligate, expand, and ligate again, it
moves the pref, but if you ligate and expand it doesn't. That's
why we clear the MULTIPLIED bit when setting LIGATED.
-
+
Micro-test added. Test: U+0D2F,0D4D,0D30 with font from:
-
+
[1]
https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=186#c29
src/hb-ot-layout-gsub-table.hh | 2 +-
- src/hb-ot-layout-gsubgpos-private.hh | 20
- ++++++++++++++++----
- src/hb-ot-layout-private.hh | 16
- +++++++++++++++-
+ src/hb-ot-layout-gsubgpos-private.hh | 20 ++++++++++++++++----
+ src/hb-ot-layout-private.hh | 16 +++++++++++++++-
src/hb-ot-shape-complex-indic.cc | 4 ++--
test/shaping/Makefile.am | 5 ++++-
.../226bc2deab3846f1a682085f70c67d0421014144.ttf | Bin 0 -> 2828 bytes
Date: Wed Jun 4 18:47:55 2014 -0400
[ot-font] Work around broken cmap subtable format 4 length
-
+
Roboto was hitting this. FreeType also has pretty much the
same code for this, in ttcmap.c:tt_cmap4_validate():
-
+
/* in certain fonts, the `length' field is invalid and goes */
/* out of bound. We try to correct this here... */
if ( table + length > valid->limit )
{
if ( valid->level >= FT_VALIDATE_TIGHT )
FT_INVALID_TOO_SHORT;
-
+
length = (FT_UInt)( valid->limit - table );
}
Date: Wed Jun 4 18:17:29 2014 -0400
[ot-font] Don't select a Null cmap subtable
-
+
Can happen either in broken fonts, or as a result of sanitize().
src/hb-ot-cmap-table.hh | 2 +-
Date: Tue Jun 3 17:57:00 2014 -0400
Fix some cppcheck warnings
-
+
Bug 77800 - cppcheck reports
src/hb-common.cc | 4 +++-
Move code around
- src/hb-private.hh | 134
- ++++++++++++++++++++++++++----------------------------
+ src/hb-private.hh | 134 ++++++++++++++++++++++++++----------------------------
1 file changed, 65 insertions(+), 69 deletions(-)
commit 17c3b809f42aec34d83dba2e6229ad85804bebae
Date: Mon Jun 2 15:08:18 2014 -0400
[indic] Treat U+A8E0..A8F1 as OT_A instead of OT_VD
-
+
Apparently they can intermix with other OT_A.
-
+
Test: U+0915,A8E2,1CD0
src/hb-ot-shape-complex-indic.cc | 2 +-
Date: Fri May 30 17:38:14 2014 -0400
[graphite2] Fix cluster mapping
-
+
Patch from Martin Hosken. I expect this to fix the following bugs:
-
+
https://bugs.freedesktop.org/show_bug.cgi?id=75076
https://bugzilla.gnome.org/show_bug.cgi?id=723582
https://bugzilla.redhat.com/show_bug.cgi?id=998812
Date: Thu May 29 15:34:26 2014 -0400
[indic] Allow decimal and Brahmi digits as placeholders
-
+
Tests: U+0967,0951 U+0031,093F
- src/hb-ot-shape-complex-indic.cc |
- 4 ++++
- .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt |
- 2 ++
+ src/hb-ot-shape-complex-indic.cc | 4 ++++
+ .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt | 2 ++
2 files changed, 6 insertions(+)
commit e8b5d64039614ecce472eda1a7a603736da25d86
Date: Thu May 29 15:18:27 2014 -0400
[indic] Do NOT allow reph formation on placeholders
-
+
Only allow it on DOTTED CIRCLE. No effect on test numbers.
-
+
Test: U+0930,094D,00A0
- src/hb-ot-shape-complex-indic-machine.rl |
- 2 +-
- .../in-tree/shaper-indic/indic/script-devanagari/misc/dottedcircle.txt |
- 1 +
+ src/hb-ot-shape-complex-indic-machine.rl | 2 +-
+ .../in-tree/shaper-indic/indic/script-devanagari/misc/dottedcircle.txt | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
commit 52b562a6a058131c0103aaa5404d053e6465bb23
Date: Tue May 27 18:18:23 2014 -0400
[indic] Clean up a bit
-
+
No functional change intended.
src/hb-ot-shape-complex-indic.cc | 17 +++++------------
Date: Tue May 27 17:49:45 2014 -0400
[myanmar] Use OT_NBSP instead of OT_DOTTEDCIRCLE for OT_GB
-
+
No functional change.
src/hb-ot-shape-complex-myanmar-machine.rl | 2 +-
Date: Tue May 27 17:39:01 2014 -0400
[indic] Treat U+0A72..0A73 like regular consonants
-
+
Unicode 6.x IndicSyllableCategory categorizes them as
placeholders, but they can subjoin.
Date: Fri May 23 15:39:55 2014 -0400
[indic] Simplify grammar
-
+
No functional change.
src/hb-ot-shape-complex-indic-machine.rl | 7 +++----
Date: Fri May 23 15:38:42 2014 -0400
[indic] Always start new syllable for Avagraha
-
+
In fact, the previous grammar was ambigious. No functional
change.
Date: Fri May 23 15:33:13 2014 -0400
[indic] Rename avagraha cluster to symbol cluster
-
+
In anticipation of adding more characters to that class of clusters.
src/hb-ot-shape-complex-indic-machine.rl | 10 +++++-----
Date: Thu May 22 19:12:10 2014 -0400
[indic] Treat U+1CE1 as a tone-mark too
-
+
It's spacing, but otherwise the same as the other ones.
src/hb-ot-shape-complex-indic.cc | 2 +-
Date: Thu May 22 18:50:34 2014 -0400
[indic] Recategorize U+A8E0..A8F1 as OT_VD
-
+
Up to two of them come after all OT_A characters.
src/hb-ot-shape-complex-indic-machine.rl | 2 +-
Date: Thu May 22 18:43:14 2014 -0400
[indic] Allow up to three tone marks
-
+
According to Roozbeh, there are valid combinations in Unicode
proposals for up to three. Previously we were allowing up to two.
Date: Thu May 22 18:41:49 2014 -0400
[indic] Support more extended Devanagari tone marks
-
+
Also adjust U+0953,0954 handling.
src/hb-ot-shape-complex-indic.cc | 18 ++++++++++++------
Date: Thu May 15 14:04:02 2014 -0600
[indic] Improve reph formation of Sinhala and Telugu
-
- Sinhala and Telugu use "explicit" reph. That is, the reph is
- formed by
- a Ra,H,ZWJ sequence. Previously, upon detecting this sequence,
- we were
+
+ Sinhala and Telugu use "explicit" reph. That is, the reph is formed by
+ a Ra,H,ZWJ sequence. Previously, upon detecting this sequence, we were
checking checking whether the 'rphf' feature applies to the first two
glyphs of the sequence. This is how the Microsoft fonts are designed.
However, testing with Noto shows that apparently Uniscribe also forms
the reph if the lookup ligates all three glyphs. So, try both
sequences.
-
+
Doesn't affect test results for Sinhala or Telugu.
-
+
https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=232
src/hb-ot-shape-complex-indic.cc | 9 +++++++--
Date: Wed May 14 22:10:09 2014 +0100
Fix build with --coretext on older OS X
-
+
Fixes https://github.com/behdad/harfbuzz/pull/40
src/hb-coretext.h | 2 +-
Date: Wed May 14 16:44:39 2014 -0600
[myanmar] Allow MedialYa+Asat in the grammar
-
+
The grammar in the OT spec, and the existing Windows implementation
seem to be confused around where to allow Asat around the medial
consonants.
-
+
The previous grammar for medial group was allowing an Asat after
the medial group only if there was a medial Wa or Ha, but not if
there was only a medial Ya. This doesn't make sense to me and
produce dotted-circle where Windows is not, this commit changes
the grammar to allow one Asat after the medial group no matter
what comes in the group.
-
+
Test: U+1002,103A,103B vs U+1002,103B,103A
src/hb-ot-shape-complex-myanmar-machine.rl | 2 +-
Date: Wed May 14 16:44:16 2014 -0600
Add tests for Myanmar Asat+MedialYa and MedialYa+Asat sequences
-
+
One of them currently produces dotted-circle. Fix and detailed
message coming.
- test/shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/misc.txt |
- 2 ++
+ test/shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/misc.txt | 2 ++
1 file changed, 2 insertions(+)
commit c95587618c88d187be64f923033dae151cf820be
[ot] Factor out code between cmap subtable format 6 and 10
- src/hb-ot-cmap-table.hh | 49
- ++++++++++---------------------------------------
+ src/hb-ot-cmap-table.hh | 49 ++++++++++---------------------------------------
1 file changed, 10 insertions(+), 39 deletions(-)
commit 1a8ffc512987c1ff1b4896549f80b145c85454a8
[ot] Implement cmap subtable formats 6 and 10
- src/hb-ot-cmap-table.hh | 77
- +++++++++++++++++++++++++++++++++++++++++++++++--
+ src/hb-ot-cmap-table.hh | 77 +++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 74 insertions(+), 3 deletions(-)
commit d294a2cb165c4f20daa5624969067c51eb9aef58
[ot] Implement cmap subtable format 13
- src/hb-ot-cmap-table.hh | 47
- +++++++++++++++++++++++++++++++++++++++++------
+ src/hb-ot-cmap-table.hh | 47 +++++++++++++++++++++++++++++++++++++++++------
1 file changed, 41 insertions(+), 6 deletions(-)
commit 0d75793fae95ed9f6b8522ae3af4fcdf397d8c36
[ot] Implement cmap subtable format 12
- src/hb-ot-cmap-table.hh | 63
- +++++++++++++++++++++++++++++++++++++++++++++++--
+ src/hb-ot-cmap-table.hh | 63 +++++++++++++++++++++++++++++++++++++++++++++++--
src/hb-ot-font.cc | 5 ++++
2 files changed, 66 insertions(+), 2 deletions(-)
[ot] Implement cmap subtable format 4
- src/hb-ot-cmap-table.hh | 52
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-cmap-table.hh | 52 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
commit 4719621f20dfd6a0377c650a7b4df223c18dc143
[ot] Start implementing cmap table
src/Makefile.am | 1 +
- src/hb-ot-cmap-table.hh | 171
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-cmap-table.hh | 171 ++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-font.cc | 1 +
3 files changed, 173 insertions(+)
Date: Mon Apr 28 14:29:39 2014 -0700
Add static storage classifier to inline functions
-
+
Before we were just relying on the compiler inlining them and not
leaving a trace in our public API. Try to fix. Hopefully not
breaking anyone's build.
Date: Mon Apr 28 12:38:25 2014 -0700
[tibetan] Reorder PADMA sign to occur after other below marks
-
+
Based on suggestion from Andrew Glass.
-
+
Test: U+0F40,0FC6,0F83
src/hb-unicode-private.hh | 4 ++++
Date: Mon Apr 28 12:43:42 2014 -0700
[test] Add test case for Tibetan sign PADMA
-
+
Currently fails.
- test/shaping/texts/in-tree/shaper-tibetan/script-tibetan/misc/misc.txt |
- 1 +
+ test/shaping/texts/in-tree/shaper-tibetan/script-tibetan/misc/misc.txt | 1 +
1 file changed, 1 insertion(+)
commit ee703bc3ef740c300718fca7a12c050c322dce19
Reshuffle test data
- test/shaping/texts/in-tree/MANIFEST |
- 3 +++
- test/shaping/texts/in-tree/shaper-default/MANIFEST |
- 3 ---
- .../in-tree/{shaper-default => shaper-hangul}/script-hangul/MANIFEST
- | 0
- .../{shaper-default => shaper-hangul}/script-hangul/misc/MANIFEST
- | 0
- .../{shaper-default => shaper-hangul}/script-hangul/misc/misc.txt
- | 0
- .../in-tree/{shaper-default => shaper-hebrew}/script-hebrew/MANIFEST
- | 0
- .../{shaper-default => shaper-hebrew}/script-hebrew/misc/MANIFEST
- | 0
- .../script-hebrew/misc/diacritics.txt |
- 0
- .../in-tree/{shaper-default => shaper-tibetan}/script-tibetan/MANIFEST
- | 0
- .../{shaper-default => shaper-tibetan}/script-tibetan/misc/MANIFEST
- | 0
- .../{shaper-default => shaper-tibetan}/script-tibetan/misc/misc.txt
- | 0
+ test/shaping/texts/in-tree/MANIFEST | 3 +++
+ test/shaping/texts/in-tree/shaper-default/MANIFEST | 3 ---
+ .../in-tree/{shaper-default => shaper-hangul}/script-hangul/MANIFEST | 0
+ .../{shaper-default => shaper-hangul}/script-hangul/misc/MANIFEST | 0
+ .../{shaper-default => shaper-hangul}/script-hangul/misc/misc.txt | 0
+ .../in-tree/{shaper-default => shaper-hebrew}/script-hebrew/MANIFEST | 0
+ .../{shaper-default => shaper-hebrew}/script-hebrew/misc/MANIFEST | 0
+ .../script-hebrew/misc/diacritics.txt | 0
+ .../in-tree/{shaper-default => shaper-tibetan}/script-tibetan/MANIFEST | 0
+ .../{shaper-default => shaper-tibetan}/script-tibetan/misc/MANIFEST | 0
+ .../{shaper-default => shaper-tibetan}/script-tibetan/misc/misc.txt | 0
11 files changed, 3 insertions(+), 3 deletions(-)
commit b082ef373cefb35dd98b5f2f0b677ccc7806f51e
Date: Fri Apr 18 16:53:34 2014 -0700
[indic] Fix-up zero-context matching
-
+
commit b5a0f69e47ace468b06e21cf069a18ddcfcf6064
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Oct 17 18:04:23 2013 +0200
-
- [indic] Pass zero-context=false to would_substitute for newer
- scripts
-
- For scripts without an old/new spec distinction, use
- zero-context=false.
- This changes behavior in Sinhala / Khmer, but doesn't seem
- to regress.
+
+ [indic] Pass zero-context=false to would_substitute for newer scripts
+
+ For scripts without an old/new spec distinction, use zero-context=false.
+ This changes behavior in Sinhala / Khmer, but doesn't seem to regress.
This will be useful and used in Javanese.
-
- The *intention* was to change zero-context from true to false for
- scripts that
- don't have old-vs-new specs. However, checking the code, looks
- like we
- essentially change zero-context to always be true; ie. we only
- changed things
+
+ The *intention* was to change zero-context from true to false for scripts that
+ don't have old-vs-new specs. However, checking the code, looks like we
+ essentially change zero-context to always be true; ie. we only changed things
for old-spec, and we broke them. That's what causes this bug:
-
+
https://bugs.freedesktop.org/show_bug.cgi?id=76705
-
+
The root of the bug is here:
-
- /* Use zero-context would_substitute() matching for new-spec of
- the main
- * Indic scripts, but not for old-spec or scripts with one spec
- only. */
- bool zero_context = indic_plan->config->has_old_spec ||
- !indic_plan->is_old_spec;
-
+
+ /* Use zero-context would_substitute() matching for new-spec of the main
+ * Indic scripts, but not for old-spec or scripts with one spec only. */
+ bool zero_context = indic_plan->config->has_old_spec || !indic_plan->is_old_spec;
+
Note that is_old_spec itself is:
-
- indic_plan->is_old_spec = indic_plan->config->has_old_spec &&
- ((plan->map.chosen_script[0] & 0x000000FF) != '2');
-
- It's easy to show that zero_context is now always true. What we
- really meant was:
-
- bool zero_context = indic_plan->config->has_old_spec &&
- !indic_plan->is_old_spec;
-
- Ie, "&&" instead of "||". We made this change supposedly to make
- Javanese
- work. But apparently we got it working regardless! So I'm going
- to fix this
+
+ indic_plan->is_old_spec = indic_plan->config->has_old_spec && ((plan->map.chosen_script[0] & 0x000000FF) != '2');
+
+ It's easy to show that zero_context is now always true. What we really meant was:
+
+ bool zero_context = indic_plan->config->has_old_spec && !indic_plan->is_old_spec;
+
+ Ie, "&&" instead of "||". We made this change supposedly to make Javanese
+ work. But apparently we got it working regardless! So I'm going to fix this
to only change the logic for old-spec and not touch other cases.
src/hb-ot-shape-complex-indic.cc | 4 ++--
Date: Mon Apr 14 15:55:42 2014 -0700
Add HB_NO_MERGE_CLUSTERS
-
+
Disables any cluster-merging. Added for testing purposes while
we investigate what kind of API to add for this.
Add Khmer test for U+17DD
- .../shaper-indic/south-east-asian/script-khmer/misc/other-marks.txt
- | 1 +
+ .../shaper-indic/south-east-asian/script-khmer/misc/other-marks.txt | 1 +
1 file changed, 1 insertion(+)
commit 50a00535ccac538bbf93358fd2d2442e4c12542f
Date: Thu Apr 10 16:03:29 2014 -0700
Require gobject-introspection 1.34.0
-
+
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=75384
configure.ac | 2 +-
Date: Wed Apr 9 16:38:26 2014 -0700
Further adjust check-defs and check-symbols for mipsel
-
+
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=74491
src/check-defs.sh | 2 +-
Date: Wed Apr 9 16:33:32 2014 -0700
Tighten up check-static-inits.sh check
-
+
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=74490
src/check-static-inits.sh | 2 +-
Date: Tue Apr 8 16:03:35 2014 -0700
[indic] Support U+17DD KHMER SIGN ATTHACAN
-
+
As requested by Martin Hosken on the list.
src/hb-ot-shape-complex-indic.cc | 3 ++-
Date: Wed Apr 2 11:35:27 2014 +0100
Use __aarch64__ for 64-bit ARM detection, not __arm64__
-
+
Many GCC versions don't define __arm64__
src/hb-atomic-private.hh | 2 +-
src/Makefile.am | 3 +-
src/hb-glib.cc | 2 +-
src/hb-icu.cc | 2 +-
- src/hb-ot-font.cc | 260
- ++++++++++++++++++++++++++++++++++++
+ src/hb-ot-font.cc | 260 ++++++++++++++++++++++++++++++++++++
src/{hb-tt-font.cc => hb-ot-font.h} | 56 ++------
src/hb-ot-hhea-table.hh | 2 +-
src/hb-ot-hmtx-table.hh | 2 +-
Date: Fri Mar 21 12:53:08 2014 -0700
One more fix for build without gtk-doc
-
+
Fixes https://github.com/behdad/harfbuzz/pull/35
autogen.sh | 2 +-
Date: Thu Mar 20 16:01:30 2014 +0200
Fix build with --coretext on iOS
-
+
On iOS CoreText and CoreGraphics are stand-alone frameworks
configure.ac | 23 +++++++++++++++++++----
Date: Sun Mar 16 20:22:42 2014 -0700
Don't use "register" storage class specifier
-
+
Fixes warnings.
https://bugzilla.mozilla.org/show_bug.cgi?id=984081
Date: Sun Mar 16 08:25:17 2014 +0000
wrap definition of free_langs() with HAVE_ATEXIT
-
- ...to avoid an unused function warning; see mozilla bug
- https://bugzilla.mozilla.org/show_bug.cgi?id=984081.
+
+ ...to avoid an unused function warning; see mozilla bug https://bugzilla.mozilla.org/show_bug.cgi?id=984081.
src/hb-common.cc | 2 ++
1 file changed, 2 insertions(+)
Date: Fri Mar 14 19:55:46 2014 -0700
[coretext] Add hb_coretext_face_create()
-
+
Not tested.
- src/hb-coretext.cc | 57
- +++++++++++++++++++++++++++++++++++++++++++++---------
+ src/hb-coretext.cc | 57 +++++++++++++++++++++++++++++++++++++++++++++---------
src/hb-coretext.h | 4 ++++
2 files changed, 52 insertions(+), 9 deletions(-)
Date: Fri Mar 14 19:37:55 2014 -0400
[coretext] Add coretext_aat shaper
-
+
This is a higher-priority shaper than default shaper ("ot"), but
only picks up fonts that have AAT "morx"/"mort" table.
-
+
Note that for this to work the font face's get_table() implementation
should know how to return the full font blob.
-
+
Based on patch from Konstantin Ritt.
- src/hb-coretext.cc | 94
- +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-coretext.cc | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-coretext.h | 4 +++
src/hb-shaper-list.hh | 4 +++
3 files changed, 102 insertions(+)
Date: Fri Mar 14 15:52:47 2014 -0700
If HAVE_ICU_BUILTIN is defined, use hb-icu Unicode callbacks
-
+
Useful for Android / Chrome / etc when ICU is built in the same
library as harfbuzz itself.
Add Myanmar test case from OpenType Myanmar spec
- test/shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/MANIFEST |
- 1 +
- .../shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/otspec.txt |
- 2 ++
+ test/shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/MANIFEST | 1 +
+ .../shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/otspec.txt | 2 ++
2 files changed, 3 insertions(+)
commit 158985908981189a2fd4d15275a641286fc770fe
Minor
- test/shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/MANIFEST
- | 1 -
- test/shaping/texts/in-tree/shaper-sea/script-tai-tham/misc/MANIFEST
- | 1 +
- .../script-myanmar => shaper-sea/script-tai-tham}/misc/torture.txt
- | 0
+ test/shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/MANIFEST | 1 -
+ test/shaping/texts/in-tree/shaper-sea/script-tai-tham/misc/MANIFEST | 1 +
+ .../script-myanmar => shaper-sea/script-tai-tham}/misc/torture.txt | 0
3 files changed, 1 insertion(+), 1 deletion(-)
commit bb8ffb581b89cf27fb8e0743b81bbda21654233e
Date: Tue Feb 18 15:53:56 2014 -0500
Only do fallback Hebrew composition if no GPOS 'mark' available
-
+
Apparently some modern fonts have proper GPOS mark positioning
tables, but undesirable precomposed forms! See thread
"Hebrew composition to presentation forms" and:
-
+
http://tex.stackexchange.com/questions/156775/having-trouble-with-vowel-positioning-in-ezra-sil-xelatex
-
+
Test case: U+fb1d,05d9,05b4
src/hb-ot-shape-complex-hebrew.cc | 2 +-
Date: Tue Feb 11 17:29:40 2014 -0500
Allow bootstrapping without gtk-doc
-
+
Seems like configure.ac is already able to handle it.
autogen.sh | 10 +++++-----
Date: Wed Feb 5 08:22:06 2014 -0500
Improve MemoryBarrier() implementation
-
+
See thread "[HarfBuzz] compilation error of 0.9.26 with MinGW"
started by Werner.
Date: Wed Jan 29 14:07:58 2014 +0000
Ensure hb_script_t can safely hold any hb_tag_t value it's given.
-
+
Fixes https://github.com/behdad/harfbuzz/pull/21
src/hb-common.h | 8 +++++++-
Date: Tue Jan 28 17:29:42 2014 -0500
[coretext] Handle surrogate pairs when generating notdef glyphs
-
+
Fixes github.com/behdad/harfbuzz/pull/19
src/hb-coretext.cc | 18 ++++++++++++++----
Date: Wed Jan 22 21:07:13 2014 +0200
Make it possible to disable the fallback shaper at configure time
-
+
The OT shaper supersedes the fallback shaper in every case
and the latter become an extra weight for 99.9% of users.
Date: Thu Jan 23 14:18:49 2014 -0500
Fix clang warning 'private field 'xxx' is not used
-
+
Fixes https://github.com/behdad/harfbuzz/pull/16
src/hb-open-type-private.hh | 2 +-
Date: Thu Jan 23 14:11:03 2014 -0500
Fix typo in _hb_buffer_serialize_glyphs_text()
-
+
Fixes https://github.com/behdad/harfbuzz/pull/17
src/hb-buffer-serialize.cc | 2 +-
Date: Wed Jan 22 11:03:02 2014 -0500
[arabic] Disable 'cswh' by default
-
+
I believe Windows 8 disables it, and spec update dated
Jan 2014 also clearly says it's disabled by default:
-
+
http://www.microsoft.com/typography/OpenTypeDev/arabic/intro.htm#features
src/hb-ot-shape-complex-arabic.cc | 1 -
Date: Wed Jan 22 04:43:51 2014 -0800
Merge pull request #13 from jfkthame/hangul-shaper
-
+
Tone-mark reordering and improved Old Hangul support
commit 62cb28dfc668cae9cbff826229bde2271e157927
Author: Jonathan Kew <jfkthame@gmail.com>
Date: Mon Jan 20 19:49:47 2014 +0000
- [hangul] Fix ordering of dotted circle with Hangul tone mark (reported
- by Dohyun Kim).
+ [hangul] Fix ordering of dotted circle with Hangul tone mark (reported by Dohyun Kim).
src/hb-ot-shape-complex-hangul.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Author: Jonathan Kew <jfkthame@gmail.com>
Date: Mon Jan 20 10:38:27 2014 +0000
- [hangul] Don't force zero-width for marks - this is not wanted for
- the Jamo Filler glyphs.
+ [hangul] Don't force zero-width for marks - this is not wanted for the Jamo Filler glyphs.
src/hb-ot-shape-complex-hangul.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Author: Jonathan Kew <jfkthame@gmail.com>
Date: Mon Jan 20 10:37:32 2014 +0000
- [unicode] Exclude the Jamo Filler characters from Default_Ignorable,
- as some fonts want these to be visible/spacing glyphs.
+ [unicode] Exclude the Jamo Filler characters from Default_Ignorable, as some fonts want these to be visible/spacing glyphs.
src/hb-unicode-private.hh | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
Author: Jonathan Kew <jfkthame@gmail.com>
Date: Mon Jan 20 10:35:51 2014 +0000
- [hangul] Reorder Hangul tone mark to beginning of syllable, unless
- font implements it using a zero-width glyph.
+ [hangul] Reorder Hangul tone mark to beginning of syllable, unless font implements it using a zero-width glyph.
- src/hb-ot-shape-complex-hangul.cc | 59
- ++++++++++++++++++++++++++++++++++++++-
+ src/hb-ot-shape-complex-hangul.cc | 59 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 58 insertions(+), 1 deletion(-)
commit 103436838df3a77552d3d33fc4bd80f09d9bf079
Author: Jonathan Kew <jfkthame@gmail.com>
Date: Mon Jan 20 10:35:07 2014 +0000
- [hangul] Apply the appropriate *jmo features to decomposed
- syllables, including Old Hangul sequences that don't have Unicode
- compositions. Merge clusters in decomposed syllables.
+ [hangul] Apply the appropriate *jmo features to decomposed syllables, including Old Hangul sequences that don't have Unicode compositions. Merge clusters in decomposed syllables.
- src/hb-ot-shape-complex-hangul.cc | 197
- +++++++++++++++++++++++++++++++-------
+ src/hb-ot-shape-complex-hangul.cc | 197 +++++++++++++++++++++++++++++++-------
1 file changed, 165 insertions(+), 32 deletions(-)
commit 8fc1f7fe74a25bf8549f5edd79c7da6b720eb064
Date: Thu Jan 2 17:04:04 2014 +0800
[ot/hangul] Don't decompose Hangul even when combining marks present
-
+
As discussed on
https://github.com/behdad/harfbuzz/pull/10#issuecomment-31442030
Date: Thu Jan 2 14:33:10 2014 +0800
[ot] Simplify composing
-
+
Not tested. Ouch.
src/hb-ot-shape-normalize.cc | 5 +++--
Date: Thu Jan 2 14:20:00 2014 +0800
[hangul] Fix decomposition logic
-
+
Seems to be working now.
src/hb-ot-shape-complex-hangul.cc | 19 ++++++++-----------
Date: Thu Jan 2 14:04:30 2014 +0800
[hangul] Fix decomposition
-
+
Part of https://github.com/behdad/harfbuzz/pull/10
src/hb-ot-shape-complex-hangul.cc | 4 ++--
Date: Thu Jan 2 14:01:56 2014 +0800
[hangul] Tighten up character categories
-
+
I had tried to expand to fill the blocks, but that sounds wrong in
retrospect.
Date: Tue Dec 31 16:49:15 2013 +0800
[ot] Separate out hebrew and tibetan shapers from default
-
+
Now default shaper is truly no-op.
src/Makefile.am | 2 +
- src/hb-ot-shape-complex-default.cc | 161
- +---------------------------------
- src/hb-ot-shape-complex-hebrew.cc | 172
- +++++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-default.cc | 161 +---------------------------------
+ src/hb-ot-shape-complex-hebrew.cc | 172 +++++++++++++++++++++++++++++++++++++
src/hb-ot-shape-complex-private.hh | 17 +++-
src/hb-ot-shape-complex-tibetan.cc | 61 +++++++++++++
5 files changed, 251 insertions(+), 162 deletions(-)
Date: Tue Dec 31 16:04:35 2013 +0800
[ot] Simplify normalization_preference again
-
- No shaper has more than one behavior re this, so no need for
- a callback.
+
+ No shaper has more than one behavior re this, so no need for a callback.
src/hb-ot-shape-complex-arabic.cc | 2 +-
src/hb-ot-shape-complex-default.cc | 8 +-------
Date: Tue Dec 31 15:55:40 2013 +0800
[ot] Add Hangul shaper
-
+
Not exhaustively tested, but I think I got the intended logic
right.
-
+
The logic can perhaps be simplified. Maybe we should disabled
normalization with this shaper. Then again, for now focusing on
correctness.
src/Makefile.am | 1 +
src/hb-ot-shape-complex-default.cc | 13 ---
- src/hb-ot-shape-complex-hangul.cc | 232
- +++++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-hangul.cc | 232 +++++++++++++++++++++++++++++++++++++
src/hb-ot-shape-complex-private.hh | 10 +-
src/hb-private.hh | 6 +
5 files changed, 240 insertions(+), 22 deletions(-)
src/Makefile.am | 1 +
src/hb-ot-layout.h | 5 -----
- src/hb-ot-shape.h | 53
- +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot.h | 9 +--------
4 files changed, 55 insertions(+), 13 deletions(-)
Date: Sun Dec 22 16:17:54 2013 -0500
Bug 72698 - Automatically support frac / numr / dnom
-
+
When seeing U+2044 FRACTION SLASH in the text, find decimal
digits (Unicode General Category Decimal_Number) around it,
and mark the pre-slash digits with 'numr' feature, the post-slash
digits with 'dnom' feature, and the whole sequence with 'frac'
feature.
-
+
This beautifully renders fractions with major Windows fonts,
and any other font that implements those features (numr/dnom is
enough for most fonts.)
-
+
Not the fastest way to do this, but good enough for a start.
- src/hb-ot-shape.cc | 51
- +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape.cc | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
commit 014f369ec98fdbb3e7a2ef68aea2c4e017e7b680
Date: Sat Dec 21 00:18:18 2013 -0500
Initialize masks before mirroring
-
+
We were throwing away the rtlm feature mask set during
mirroring...
Date: Thu Dec 5 18:19:35 2013 -0500
Drop required automake version back to 1.11.3
-
+
Work around broken automake-1.13 changes.
configure.ac | 3 ++-
Date: Wed Dec 4 19:59:48 2013 -0500
Require automake 1.13
-
+
Fix tests build.
-
+
https://bugs.freedesktop.org/show_bug.cgi?id=71353
configure.ac | 2 +-
Date: Mon Dec 2 20:41:41 2013 -0500
Revert "Karen" language mapping back to what it was before
-
+
https://bugzilla.mozilla.org/show_bug.cgi?id=941470
src/hb-ot-tag.cc | 4 ++--
cache shape plans even if (global) user features are set
src/hb-shape-plan-private.hh | 3 +++
- src/hb-shape-plan.cc | 59
- ++++++++++++++++++++++++++++++++++++++++----
+ src/hb-shape-plan.cc | 59 ++++++++++++++++++++++++++++++++++++++++----
2 files changed, 57 insertions(+), 5 deletions(-)
commit 8ffa528f28a24ae85952ad1c1b0206e736bcfeab
Date: Mon Dec 2 05:17:14 2013 -0500
Add note about unsafe shape_plan->face
-
+
Will fix by removing shape_plan->face completely.
src/hb-shape-plan.cc | 2 ++
Date: Fri Nov 29 19:01:56 2013 -0500
[coretext] Avoid font fallback with CoreText shaper
-
- CoreText does automatic font fallback (AKA "cascading") for
- characters
- not supported by the requested font, and provides no way to turn
- it off,
+
+ CoreText does automatic font fallback (AKA "cascading") for characters
+ not supported by the requested font, and provides no way to turn it off,
so detect if the returned run uses a font other than the requested one
and fill in the buffer with .notdef glyphs instead of random indices
glyph from a different font.
Date: Mon Nov 25 18:10:38 2013 -0500
[myanmar] Allow punctuation clusters
-
+
The spec and Uniscribe don't allow these, but UTN#11
specifically says the sequence U+104B,U+1038 is valid.
As such, allow all "P V" sequences. There's about
eight sequences that match that structure, but Roozbeh
thinks it's fine to allow all of them.
-
+
Test case: U+104B, U+1038
-
+
https://bugs.freedesktop.org/show_bug.cgi?id=71947
src/hb-ot-shape-complex-myanmar-machine.rl | 3 +++
Date: Mon Nov 25 18:03:34 2013 -0500
[myanmar] Mark U+104E MYANMAR SYMBOL AFOREMENTIONED as Consonant
-
+
The spec and Uniscribe treat it as consonant in the grammar, but
it's not in IndicSyllableCategory.txt, so fix up.
-
+
Test sequence: U+1004,U+103A,U+1039,U+104E
-
+
https://bugs.freedesktop.org/show_bug.cgi?id=71948
src/hb-ot-shape-complex-myanmar.cc | 4 ++++
Date: Mon Nov 25 17:50:07 2013 -0500
[myanmar] Relax pwo-tone group a bit
-
+
This is broken sequence according to OpenType spec, Uniscribe,
and current HarfBuzz implementation. But Roozbeh says this
is a valid sequence, so allow it. There are multiple
"(DB As?)?" constructs in the grammar, but Roozbeh thinks only
this one needs changing.
-
+
Test case: 1014,1063,103A
-
+
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=71949
src/hb-ot-shape-complex-myanmar-machine.rl | 2 +-
Date: Mon Nov 25 17:47:19 2013 -0500
Add more Myanmar test cases
-
+
All three are broken right now according to Roozbeh.
-
+
https://bugs.freedesktop.org/show_bug.cgi?id=71947
https://bugs.freedesktop.org/show_bug.cgi?id=71948
https://bugs.freedesktop.org/show_bug.cgi?id=71949
- .../shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/misc.txt |
- 4 ++++
+ .../shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/misc.txt | 4 ++++
1 file changed, 4 insertions(+)
commit 08c2d27d35093e07142168665139274ac99395e8
Date: Sat Nov 23 21:39:31 2013 -0800
Added support for several new languages
-
+
Based on research into latest SIL and Windows fonts, pulling in
the latest OpenType language tag proposal from Microsoft, and updating
to latest language tags and names from ISO 639.
- src/hb-ot-tag.cc | 314
- +++++++++++++++++++++++++++++++++++++++++++------------
+ src/hb-ot-tag.cc | 314 +++++++++++++++++++++++++++++++++++++++++++------------
1 file changed, 247 insertions(+), 67 deletions(-)
commit 05511acd198d0c2157cdb41e1d36eac0b8075357
Date: Sat Nov 23 15:19:07 2013 -0800
Added language tags for S'gaw Karen and Khamti
-
+
Tags based on support in Windows 8.1's 'Myanmar Text' font.
src/hb-ot-tag.cc | 2 ++
Date: Fri Nov 15 13:05:38 2013 -0500
Set buffer content type to INVALID in hb_buffer_set_length(0)
-
+
Previously we were only setting this in hb_buffer_clear_contents(),
but set_length(0) is a valid way to reinitialize buffer to use with
new text.
Date: Wed Nov 13 14:50:25 2013 -0500
Use long alignment for scratch buffer
-
+
Fixes last of scratch alignment warnings in hb-coretext.
src/hb-buffer-private.hh | 2 +-
Date: Wed Nov 6 14:46:04 2013 -0500
Fix llvm warnings on Mac
-
+
Patch from Scott Fleischman. Warnings were:
-
+
harfbuzz/src/hb-font-private.hh:121:42: Implicit conversion loses
integer precision: 'long long' to 'hb_position_t' (aka 'int')
harfbuzz/src/hb-font-private.hh:126:42: Implicit conversion loses
integer precision: 'long long' to 'hb_position_t' (aka 'int')
harfbuzz/src/hb-font-private.hh:400:85: Implicit conversion loses
integer precision: 'long long' to 'hb_position_t' (aka 'int')
- harfbuzz/src/hb-ot-layout-common-private.hh:1115:37: Implicit
- conversion
+ harfbuzz/src/hb-ot-layout-common-private.hh:1115:37: Implicit conversion
loses integer precision: 'long long' to 'int'
harfbuzz/src/hb-ft.cc:421:97: Implicit conversion loses integer
precision: 'unsigned long long' to 'int'
Date: Wed Oct 30 17:30:11 2013 +0000
[otlayout] Remove unused is_inplace()
-
+
Patch from Jonathan Kew.
src/hb-ot-layout-gpos-table.hh | 6 --
src/hb-ot-layout-gsub-table.hh | 56 ------------
- src/hb-ot-layout-gsubgpos-private.hh | 159
- -----------------------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 159 -----------------------------------
3 files changed, 221 deletions(-)
commit 176fd17d02ac183af32a0e710ec32d25c9322021
Date: Wed Oct 30 17:27:24 2013 +0000
Bug 70971 - Signed/unsigned compiler warnings on windows
-
+
Patch from Emil Eklund.
src/hb-buffer-serialize.cc | 8 ++++----
Date: Mon Oct 28 19:26:02 2013 +0100
[otlayout] Optimize inplace
-
- See thread started by Jonathan with subject "an optimization for
- complex
+
+ See thread started by Jonathan with subject "an optimization for complex
fonts".
src/hb-ot-layout.cc | 6 +++---
Date: Mon Oct 28 00:20:59 2013 +0100
Revert "Zero marks by GDEF for Tibetan"
-
+
This reverts commit d5bd0590ae2fbc7b0dee86385a565aef00ffb835.
-
+
The reasoning behind that logic was flawed and made under
a misunderstanding of the original problem, and caused
regressions as reported by Jonathan Kew in thread titled
"tibetan marks" in Oct 2013. Apparently I have had fixed
the original problem with this commit:
-
+
7e08f1258da229dfaf7e1c4b5c41e5bb83906cb0
-
+
So, revert the faulty commit and everything seems to be in good
shape.
Date: Mon Oct 28 00:09:05 2013 +0100
Pass CPPFLAGS=-Werror to Travis-CI
-
+
We want default gcc / clang warnings to fail the CI build.
.travis.yml | 2 +-
Date: Sun Oct 27 23:36:35 2013 +0100
Work with old and new glib
-
+
Avoids "deprecated" warnings.
src/test-buffer-serialize.cc | 7 +++++--
Date: Sun Oct 27 23:24:50 2013 +0100
[indic] Adjust pref reordering logic
-
+
For Javanese (pref_len == 1) only reorder if it didn't ligate. That's
sensible, and what the spec says. For other Indic (pref_len > 1)
only reorder if ligated.
-
+
Doesn't change any test numbers.
src/hb-ot-shape-complex-indic.cc | 9 +++++++--
Date: Sun Oct 27 21:04:55 2013 +0100
Optimize fallback kerning
-
+
Patch from Jonathan Kew. "These changes seem to yield a small but
just-about-measurable improvement with old fonts that lack GPOS
kerning."
- src/hb-ot-shape-fallback.cc | 47
- ++++++++++++++++++++++++++++-----------------
+ src/hb-ot-shape-fallback.cc | 47 ++++++++++++++++++++++++++++-----------------
1 file changed, 29 insertions(+), 18 deletions(-)
commit 133eeba6a32769ec1a7520e7c8a0d2eb1ad986f8
Date: Sun Oct 27 00:24:59 2013 +0200
Minor
-
+
See:
https://github.com/prezi/harfbuzz-js/pull/1/files#r7032397
Date: Thu Oct 24 11:46:33 2013 +0200
[indic] Fix CM2, really
-
+
Followup from 6e613f3365bf4e9fd778758c53e7de00c64beca1.
src/hb-ot-shape-complex-indic-machine.rl | 2 +-
Refactor
- src/hb-ot-layout-gpos-table.hh | 120
- ++++++++++++++++++++++-------------------
+ src/hb-ot-layout-gpos-table.hh | 120 ++++++++++++++++++++++-------------------
src/hb-ot-layout.cc | 31 +++++------
src/hb-ot-shape-normalize.cc | 29 +++++-----
src/hb-ot-shape.cc | 82 ++++++++++++++++------------
Date: Fri Oct 18 18:07:11 2013 +0200
[indic] Improve positioning of post-base bells and whistles
-
- Bug 58714 - Kannada u+0cb0 u+200d u+0ccd u+0c95 u+0cbe does not
- provide
+
+ Bug 58714 - Kannada u+0cb0 u+200d u+0ccd u+0c95 u+0cbe does not provide
same results as Windows8
https://bugs.freedesktop.org/show_bug.cgi?id=58714
-
+
Test with U+0CB0,U+200D,U+0CCD,U+0C95,U+0CBF and tunga.ttf.
-
+
Improves some scripts. Improves Bengali too, but numbers
are up because we produce better results than Uniscribe for some
sequences now.
-
+
New numbers:
BENGALI: 353724 out of 354188 tests passed. 464 failed (0.131004%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%)
KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%)
KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%)
- MALAYALAM: 1048140 out of 1048334 tests passed. 194 failed
- (0.0185056%)
+ MALAYALAM: 1048140 out of 1048334 tests passed. 194 failed (0.0185056%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
Date: Fri Oct 18 16:44:54 2013 +0200
Zero marks by GDEF for Tibetan
-
+
See:
http://lists.freedesktop.org/archives/harfbuzz/2013-April/003101.html
Date: Fri Oct 18 16:08:53 2013 +0200
[otfallback] Don't shift down above-marks too much
-
+
This seems to generate much better, almost-perfect, positioning for
Arabic as well as Latin above marks.
Date: Fri Oct 18 15:57:36 2013 +0200
[otfallback] Never fallback-position a below-mark upwards
-
+
Test with WinXP times.ttf and U+05D9,U+05B5.
src/hb-ot-shape-fallback.cc | 6 ++++++
Date: Fri Oct 18 02:27:00 2013 +0200
[indic] Add Javanese support!
-
+
Seems to be working just fine!
src/hb-ot-shape-complex-indic-machine.rl | 14 ++++++------
- src/hb-ot-shape-complex-indic-private.hh | 37
- ++++++++++++++++----------------
+ src/hb-ot-shape-complex-indic-private.hh | 37 ++++++++++++++++----------------
src/hb-ot-shape-complex-indic.cc | 9 ++++++--
3 files changed, 34 insertions(+), 26 deletions(-)
Date: Fri Oct 18 11:17:42 2013 +0200
[ft] Round metrics instead of truncate
-
+
Lohit-Punjabi has a upem of 769! We were losing one unit in our
code, and FreeType is losing another one... Test with U+0A06.
Has an advance of 854 in the font. We were producing 852.
Date: Fri Oct 18 02:14:53 2013 +0200
[indic] Swith pref logic to use _hb_glyph_info_substituted()
-
+
See comments from caveat! Seems to work fine.
-
+
This is useful for Javanese which has an atomically encoded pre-base
reordering Ra which should only be reordered if it was substituted
by the pref feature.
Date: Fri Oct 18 01:11:05 2013 +0200
[otlayout] Add _hb_glyph_info_substituted()
-
+
Currently unused.
src/hb-ot-layout-private.hh | 6 ++++++
Date: Fri Oct 18 01:09:08 2013 +0200
[otlayout] Switch over from old is_a_ligature() to IS_LIGATED
-
+
Impact should be minimal and positive.
src/hb-ot-layout-gsubgpos-private.hh | 2 +-
Date: Fri Oct 18 01:05:58 2013 +0200
[otlayout] Add HB_OT_LAYOUT_GLYPH_PROPS_LIGATED
-
+
Currently unused.
src/hb-ot-layout-gsubgpos-private.hh | 15 ++++++++++-----
Date: Fri Oct 18 00:45:59 2013 +0200
[otlayout] Add HB_OT_LAYOUT_GLYPH_PROPS_SUBSTITUTED
-
+
Currently unused.
src/hb-ot-layout-gsubgpos-private.hh | 5 +++--
src/hb-ot-layout-gpos-table.hh | 16 +++----
src/hb-ot-layout-gsub-table.hh | 13 +++--
src/hb-ot-layout-gsubgpos-private.hh | 8 ++--
- src/hb-ot-layout-private.hh | 92
- ++++++++++++++++++++++++++++++++----
+ src/hb-ot-layout-private.hh | 92 ++++++++++++++++++++++++++++++++----
src/hb-ot-shape.cc | 8 ++--
5 files changed, 102 insertions(+), 35 deletions(-)
Date: Fri Oct 18 00:21:59 2013 +0200
[otlayout] Add _hb_glyph_info_set_glyph_props()
-
+
No functional change.
src/hb-ot-layout-gsub-table.hh | 2 +-
src/hb-ot-layout-gpos-table.hh | 18 +++++++-------
src/hb-ot-layout-gsub-table.hh | 2 +-
src/hb-ot-layout-gsubgpos-private.hh | 36 +++++++++++++--------------
- src/hb-ot-layout-private.hh | 48
- +++++++++++++++++++++---------------
+ src/hb-ot-layout-private.hh | 48 +++++++++++++++++++++---------------
src/hb-ot-shape-complex-indic.cc | 5 ++--
src/hb-ot-shape-complex-myanmar.cc | 2 +-
src/hb-ot-shape-fallback.cc | 8 +++---
[otlayout] More shuffling
- src/hb-ot-layout-private.hh | 252
- +++++++++++++++++++++++---------------------
+ src/hb-ot-layout-private.hh | 252 +++++++++++++++++++++++---------------------
1 file changed, 130 insertions(+), 122 deletions(-)
commit 469524692bd0a258b28e63294c984e677a9c2477
[indic] Towards supporting atomicly-encoded prebase-reorderings
- src/hb-ot-shape-complex-indic.cc | 65
- ++++++++++++++++++++++++----------------
+ src/hb-ot-shape-complex-indic.cc | 65 ++++++++++++++++++++++++----------------
1 file changed, 40 insertions(+), 25 deletions(-)
commit efed40b975110d78c9c505441e7e17a8c13e85c8
Date: Thu Oct 17 18:16:14 2013 +0200
Route Buginese through the SEA shaper
-
+
Both Indic and SEA seem to do it just fine, but SEA is much
simpler.
Date: Thu Oct 17 18:04:23 2013 +0200
[indic] Pass zero-context=false to would_substitute for newer scripts
-
- For scripts without an old/new spec distinction, use
- zero-context=false.
+
+ For scripts without an old/new spec distinction, use zero-context=false.
This changes behavior in Sinhala / Khmer, but doesn't seem to regress.
This will be useful and used in Javanese.
Date: Thu Oct 17 16:49:06 2013 +0200
[indic] Add BASE_POS_LAST_SINHALA
-
+
Previously we planted this into the mode used for Khmer. There's not
really much in common between the two, so separate again.
Date: Thu Oct 17 16:27:38 2013 +0200
[indic] Adjust Sinhala cluster merging under uniscribe
-
+
Similar to 190c8f2b60af0851bf692f653c1604cfbf0561a5 but for
Sinhala.
[otlayout] Minor
- src/hb-ot-layout-gsubgpos-private.hh | 62
- +++++++++++++++++++-----------------
+ src/hb-ot-layout-gsubgpos-private.hh | 62 +++++++++++++++++++-----------------
1 file changed, 33 insertions(+), 29 deletions(-)
commit 6cc136f7531a45e71ea08a7dc8a2187172cb813d
Date: Thu Oct 17 13:52:51 2013 +0200
[otlayout] Increase MAX_CONTEXT_LENGTH
-
+
It's cheap.
src/hb-ot-layout-common-private.hh | 2 +-
Date: Thu Oct 17 13:49:51 2013 +0200
[otlayout] Simplify ligate_input()
-
+
Shouldn't change behavior at all, but is faster / more robust.
src/hb-ot-layout-gsub-table.hh | 16 +++++++---------
Date: Thu Oct 17 13:05:05 2013 +0200
[indic] Apply calt,clig in the same stage as presentation features
-
+
Whic means these twp are applied per-syllable now. Apparently
in some Khmer fonts the clig interacts with presentation features.
-
+
Test case: U+1781,U+17D2,U+1789,U+17BB,U+17C6 with Mondulkiri-R.ttf
should produce one big ligature.
Date: Thu Oct 17 12:24:55 2013 +0200
[indic] Fix pref vs blwf interaction
-
+
If a glyph can be both blwf and pref, we were wrongly sorting it
in the post position instead of below position.
Date: Thu Oct 17 12:20:24 2013 +0200
[indic] Don't apply blwf before base under old-spec mode
-
+
Test case: U+09AC,U+09CD,U+09A6 with Lohit-Bengali 2.5.3.
src/hb-ot-shape-complex-indic.cc | 3 ++-
Date: Thu Oct 17 12:01:50 2013 +0200
[otlayout] Fix up recent Context matching change
-
+
Commit 6b65a76b40522a4f57a6fedcbdfc5a4d736f1d3c. "end" was becoming
negative. Was trigerred by Lohit-Kannada 2.5.3 and the sequence:
U+0CB0,U+200D,U+0CBE,U+0CB7,U+0CCD,U+0C9F,U+0CCD,U+0CB0,U+0C97,U+0CB3
Date: Wed Oct 16 19:06:29 2013 +0200
[indic] Misc harmless fixes!
-
+
First, we were abusing OT_VD instead of OT_A. Fix that
but moving OT_A in the grammar where it belongs (which
is different from what the spec says).
-
+
Also, only allow medial consonants after all other
consonants. This doesn't affect any current character.
-
+
Finally, fix Halant attachment in presence of medial
consonants. Again, this currently doesn't affect any
sequence.
-
+
I lied. There's Gurmukhi U+0A75 which is Consonant_Medial.
Uniscribe allows one of those in each of these positions:
before matras, after matras and before syllable modifiers,
Date: Wed Oct 16 13:42:38 2013 +0200
[arabic] Make ZWJ prevent ligatures instead of facilitating it
-
+
Unicode 6.2.0 Section 16.2 / Figure 16.3 says:
-
+
"For backward compatibility, between Arabic characters a ZWJ acts just
like the sequence <ZWJ, ZWNJ, ZWJ>, preventing a ligature from forming
instead of requesting the use of a ligature that would not normally be
used. As a result, there is no plain text mechanism for requesting the
use of a ligature in Arabic text."
-
+
As such, we flip internal zwj to zwnj flags for GSUB matching, which
means it will block ligation in all features, unless the font
- explicitly matches U+200D glyph. This doesn't affect joining
- behavior.
+ explicitly matches U+200D glyph. This doesn't affect joining behavior.
src/hb-ot-layout-private.hh | 6 ++++++
src/hb-ot-shape-complex-arabic.cc | 18 ++++++++++++++++++
[indic] More granular post-base cluster merging!
- src/hb-ot-shape-complex-indic.cc | 45
- ++++++++++++++++++++++++++++++++++------
+ src/hb-ot-shape-complex-indic.cc | 45 ++++++++++++++++++++++++++++++++++------
1 file changed, 39 insertions(+), 6 deletions(-)
commit 9cb59d460e80d769087045535a8d54ec9ed7985c
Date: Wed Oct 16 11:34:07 2013 +0200
[indic] Fix cluster merging of left matras
-
+
The merge_clusters there was totally broken.
src/hb-ot-shape-complex-indic.cc | 2 +-
Date: Wed Oct 16 11:33:18 2013 +0200
[indic] Adjust cluster merging under uniscribe mode for Tamil
-
+
Apparently Uniscribe Tamil shaper doesn't ship chubby clusters
for Tamil. Adjust to that.
Date: Wed Oct 16 11:14:15 2013 +0200
[indic] Allow up to two syllable modifiers
-
+
Bug 70509 - Candrabindu+Visarga doesn't work in Devanagari
https://bugs.freedesktop.org/show_bug.cgi?id=70509
-
+
We categorize both bindus and visarga as syllable-modifiers.
OT spec doesn't actually say what characters go in the syllable
modifier category, and allows one. We just allow up to two now.
-
+
Test case: U+0930,U+0941,U+0901,U+0903
-
+
Uniscribe currently doesn't support that and produces a
dotted circle.
- src/hb-ot-shape-complex-indic-machine.rl |
- 2 +-
- .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt |
- 1 +
+ src/hb-ot-shape-complex-indic-machine.rl | 2 +-
+ .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
commit f5299eff5c0065d6329cd536c0ac339abea085b0
Date: Tue Oct 15 18:13:07 2013 +0200
[indic] Simplify reph logic
-
+
*Shouldn't* break anything.
src/hb-ot-shape-complex-indic.cc | 11 +++--------
Date: Tue Oct 15 18:08:05 2013 +0200
[indic] If Malayalam dot-reph formed a ligature, don't move it
-
+
Rachana-0.6 implements dot-reph by ligation, so we shouldn't move it.
Uniscribe doesn't either. Test case:
-
+
U+0D4E,U+0D1A,U+0D4D,U+0D1A,U+0D4D
- src/hb-ot-shape-complex-indic.cc | 23
- ++++++++++++++++------
+ src/hb-ot-shape-complex-indic.cc | 23 ++++++++++++++++------
.../indic/script-malayalam/misc/dot-reph.txt | 3 +++
2 files changed, 20 insertions(+), 6 deletions(-)
[tests] Remove Myanmar micro-font and test
- .../sha1sum/ceadd106a8205214fbe7337ef9de32a862b59762.ttf | Bin 3040 ->
- 0 bytes
+ .../sha1sum/ceadd106a8205214fbe7337ef9de32a862b59762.ttf | Bin 3040 -> 0 bytes
test/shaping/tests/context-matching.tests | 1 -
2 files changed, 1 deletion(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue Oct 15 15:26:44 2013 +0200
- [indic] Apply 'kern' for all scripts except for Khmer in Uniscribe
- mode
-
+ [indic] Apply 'kern' for all scripts except for Khmer in Uniscribe mode
+
Seems to better match Uniscribe.
-
- Note: NotoSansTelugu-Regular has kern feature, so this fixes most
- of the
+
+ Note: NotoSansTelugu-Regular has kern feature, so this fixes most of the
positioning failures there, except for the kern pairs blocked by a
- (non-)joiner, in which case we (correctly) kern, but Uniscribe
- doesn't.
+ (non-)joiner, in which case we (correctly) kern, but Uniscribe doesn't.
src/hb-ot-shape-complex-indic.cc | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
Date: Tue Oct 15 13:47:27 2013 +0200
[indic] Don't apply presentation features across syllables
-
+
More like Uniscribe... We still allow user-defined features to
work across syllables, but not pres,blws,abs,psts,etc.
-
+
This "regressed" Sinhala numbers by 11. These are cases were
there's Consonant followed by Ra,Halant,ZWJ at the of text.
The Ra,Halant,ZWJ ends up forming reph, which is wrong...
But before we were also ligating that reph with the previous
consonant. That's even more wrong. That's also what Uniscribe
does.
-
+
Current numbers:
-
+
BENGALI: 353732 out of 354188 tests passed. 456 failed (0.128745%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%)
GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%)
KANNADA: 951030 out of 951913 tests passed. 883 failed (0.0927606%)
KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%)
- MALAYALAM: 1048140 out of 1048334 tests passed. 194 failed
- (0.0185056%)
+ MALAYALAM: 1048140 out of 1048334 tests passed. 194 failed (0.0185056%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271655 out of 271847 tests passed. 192 failed (0.070628%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
- src/hb-ot-shape-complex-indic.cc | 21
- +++++++++++++++++----
+ src/hb-ot-shape-complex-indic.cc | 21 +++++++++++++++++----
.../shaper-indic/indic/script-sinhala/misc/misc.txt | 1 +
2 files changed, 18 insertions(+), 4 deletions(-)
Date: Tue Oct 15 11:21:01 2013 +0200
[indic] Handle Avagraha
-
+
It can come either at the end(ish!) of the syllable, or independently.
When independent, it accepts a few bits and pieces.
src/hb-ot-shape-complex-indic-machine.rl | 5 ++++-
src/hb-ot-shape-complex-indic-private.hh | 5 +++--
- src/hb-ot-shape-complex-indic.cc | 14
- +++++++++++++-
+ src/hb-ot-shape-complex-indic.cc | 14 +++++++++++++-
.../shaper-indic/indic/script-devanagari/misc/misc.txt | 1 +
.../in-tree/shaper-indic/indic/script-telugu/misc/misc.txt | 1 +
5 files changed, 22 insertions(+), 4 deletions(-)
Date: Tue Oct 15 12:15:49 2013 +0200
[indic] Some scripts like blwf applied to pre-base characters
-
+
...while some don't!
-
+
Improved Bengali, Devanagari, Gurmukhi, Malayalam.
-
+
Updated numbers:
-
+
BENGALI: 353732 out of 354188 tests passed. 456 failed (0.128745%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%)
GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%)
KANNADA: 951030 out of 951913 tests passed. 883 failed (0.0927606%)
KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%)
- MALAYALAM: 1048134 out of 1048334 tests passed. 200 failed
- (0.0190779%)
+ MALAYALAM: 1048134 out of 1048334 tests passed. 200 failed (0.0190779%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
Date: Mon Oct 14 18:51:39 2013 +0200
[otlayout] Fix (Chain)Context recursion!
-
+
Previously we only supported recursive sublookups with
ascending indices. We were also not correctly handling
non-1-to-1 recursed lookups.
-
+
Fix all that!
-
+
Fixes the three tests in test/shaping/tests/context-matching.tests,
which were derived from NotoSansBengali and NotoSansDevanagari
among others.
src/hb-buffer.cc | 46 ++++++++++
src/hb-ot-layout-common-private.hh | 1 +
src/hb-ot-layout-gsub-table.hh | 1 +
- src/hb-ot-layout-gsubgpos-private.hh | 157
- +++++++++++++++++------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 157 +++++++++++++++++------------------
5 files changed, 127 insertions(+), 82 deletions(-)
commit 841e20d083aec8d814cd8d90aa6ab60127c0d1f2
Date: Mon Oct 14 18:47:51 2013 +0200
Add test suite for shaping results
-
+
The new test suite runs tests included under
hb/test/shaping/tests/*.tests, which themselves reference
font files stored by sha1sum under hb/test/shaping/fonts/sha1sum.
The fonts are produced using a subsetter to only include glyphs
needed to run the test.
-
+
Four initial tests are added for (Chain)Context matching,
of which three currently fail.
.../ceadd106a8205214fbe7337ef9de32a862b59762.ttf | Bin 0 -> 3040 bytes
.../d629e7fedc0b350222d7987345fe61613fa3929a.ttf | Bin 0 -> 1768 bytes
.../f499fbc23865022234775c43503bba2e63978fe1.ttf | Bin 0 -> 3564 bytes
- test/shaping/run-tests.sh | 34
- +++++++++++++++++++++
+ test/shaping/run-tests.sh | 34 +++++++++++++++++++++
test/shaping/tests/MANIFEST | 1 +
test/shaping/tests/context-matching.tests | 4 +++
8 files changed, 48 insertions(+), 1 deletion(-)
Date: Thu Oct 10 20:04:42 2013 +0200
Don't use g_mapped_file_unref()
-
+
Was introduced in glib 2.22.
src/test-buffer-serialize.cc | 2 +-
Date: Thu Oct 3 14:54:50 2013 -0400
[OTLayout] Protect against out-of-range lookup indices
-
+
Filter them out when compiling map.
src/hb-ot-layout.cc | 17 +++++++++++++++++
- use common src files for both static and shared libs
- remove empty LOCAL_SHARED_LIBRARIES
- Android.mk | 58
- +++++++++++++++++-----------------------------------------
+ Android.mk | 58 +++++++++++++++++-----------------------------------------
1 file changed, 17 insertions(+), 41 deletions(-)
commit 622bc3d829cab84c3a4148b88f2c91fee491ef39
Date: Sun Sep 29 13:31:58 2013 -0700
Merge pull request #4 from amarullz/master
-
+
Add build static library on Android.mk
commit 3d2c4f0c2ff8fab4262988aad65b170e5b479b20
Date: Fri Sep 27 17:06:29 2013 -0400
Fix hiding of default_ignorables if font doesn't have space glyph
-
+
Based on patch from Jonathan Kew. See discussion on the list.
src/hb-ot-shape.cc | 40 ++++++++++++++++++++++++++++++----------
Date: Fri Sep 27 19:04:32 2013 +0700
Add build static library on Android.mk
-
+
Use UCDN instead ICU
HAVE Freetype
Date: Thu Sep 26 18:26:43 2013 -0400
[util] Don't use g_array_unref()
-
+
Was introduced in glib 2.22.
util/view-cairo.hh | 2 +-
Date: Thu Sep 26 16:48:42 2013 -0400
Bug 68990 - test-common fails on i686-linux
-
+
Fix use-after-end-of-scope.
src/hb-common.cc | 6 ++++--
Date: Fri Sep 13 20:23:51 2013 -0400
[introspection] Annotate Unicode / font callbacks
-
+
Should move these out of the public header...
-
+
We're "clean" of introspection warnings now. Remaining ones are about
graphite2 / freetype types not being introspectable.
src/hb-blob.cc | 4 +-
src/hb-face.cc | 2 +-
src/hb-font.cc | 4 +-
- src/hb-font.h | 132
- +++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ src/hb-font.h | 132 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
src/hb-unicode.h | 106 ++++++++++++++++++++++++++++++++++++++++----
5 files changed, 231 insertions(+), 17 deletions(-)
Date: Fri Sep 13 20:17:42 2013 -0400
Move code around
-
+
I believe I didn't break anything...
src/hb-ot-shape.cc | 22 +++++++++++-----------
Date: Thu Sep 12 20:56:32 2013 -0400
Remove contrib/ Python hand-coded binding stuff
-
+
gobject-introspection coming together.
contrib/README | 2 -
contrib/python/README | 10 --
contrib/python/lib/fontconfig.pyx | 47 ---------
- contrib/python/lib/harfbuzz.pyx | 213
- --------------------------------------
+ contrib/python/lib/harfbuzz.pyx | 213 --------------------------------------
contrib/python/scripts/hbtestfont | 116 ---------------------
contrib/python/setup.py | 39 -------
6 files changed, 427 deletions(-)
Date: Thu Sep 12 17:14:33 2013 -0400
[introspection] Disable constructors for now
-
+
Since our types are not associated with their methods, marking
constructors makes them inaccessible from bindings. Undo for now.
src/hb-ot-layout-gdef-table.hh | 2 +-
src/hb-ot-layout-gpos-table.hh | 2 +-
src/hb-ot-layout-gsub-table.hh | 2 +-
- src/hb-ot-layout-jstf-table.hh | 229
- +++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout-jstf-table.hh | 229 +++++++++++++++++++++++++++++++++++++++++
src/hb-ot-layout.cc | 1 +
src/hb-ot-layout.h | 1 +
src/hb-ot-maxp-table.hh | 2 +-
[docs/introspection] Some more annotations
- src/hb-common.cc | 151
- ++++++++++++++++++++++++++++++++++++++++++++++++++--
+ src/hb-common.cc | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++--
src/hb-font.cc | 16 +++---
src/hb-version.h.in | 19 -------
3 files changed, 155 insertions(+), 31 deletions(-)
src/hb-buffer.cc | 307 ++++++++++++++++++++++++++-
src/hb-face.cc | 171 +++++++++++++++
src/hb-font-private.hh | 4 +-
- src/hb-font.cc | 504
- ++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-font.cc | 504 ++++++++++++++++++++++++++++++++++++++++++++-
src/hb-set.cc | 2 +-
src/hb-shape-plan.cc | 104 ++++++++++
src/hb-shape.cc | 56 +++++
Date: Fri Sep 6 16:20:21 2013 -0400
Minor change to hb_language_t
-
+
Let me know if this breaks anyone's anything.
src/hb-common.cc | 2 +-
Annotate hb-set a bit; add HB_SET_VALUE_INVALID
src/hb-set-private.hh | 20 +++--
- src/hb-set.cc | 244
- ++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-set.cc | 244 ++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-set.h | 2 +
src/hb-version.h.in | 6 +-
test/api/test-set.c | 26 +++---
[docs] Document a few symbols
- src/hb-blob.cc | 160
- +++++++++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-blob.cc | 160 +++++++++++++++++++++++++++++++++++++++++++++++++++-
src/hb-buffer.cc | 78 ++++++++++++++++++++++++-
src/hb-version.h.in | 17 ++++++
3 files changed, 251 insertions(+), 4 deletions(-)
Date: Tue Sep 3 20:11:01 2013 -0400
Revert "Round when scaling values"
-
+
This reverts commit 10f964623f003c70f6bdd33423420abda3820ce0.
-
+
See discussion with Khaled Hosny on mailing list. In short, since
integers here can be negative, and int division is "round towards
zero", proper rounding should take sign into account. Just skip
Date: Tue Sep 3 20:01:40 2013 -0400
[gtk-doc] Remove hack for deleting tmpl/
-
+
This was introduced in 029f46bde7e39094d3decb46525e91a97c5cc02c
and was in fact a bug in gtk-doc master:
-
+
https://bugzilla.gnome.org/show_bug.cgi?id=707426
docs/reference/Makefile.am | 5 -----
Date: Tue Sep 3 20:00:16 2013 -0400
[build] Fix EXTRA_DIST
-
+
I was under the impression that EXTRA_DISTs will happen regardless of
automake conditionals. Apparently I was wrong.
Date: Fri Aug 30 19:38:47 2013 -0400
[gtk-doc] Generate version.xml from configure
-
+
Even though this is not what autoconf recommends, it reduces doc
rebuilds when version doesn't change but configure changes.
Date: Fri Aug 30 19:32:10 2013 -0400
Remove hb-old and hb-icu-le test shapers
-
+
They've been disabled for a while and no one cared. We're past
the point to need them for testing, and if we ever need to
resurrect them again, well, they're in git graveyard somewhere.
src/hb-old/harfbuzz-gdef.h | 140 -
src/hb-old/harfbuzz-global.h | 125 -
src/hb-old/harfbuzz-gpos-private.h | 729 ----
- src/hb-old/harfbuzz-gpos.c | 6094
- --------------------------------
+ src/hb-old/harfbuzz-gpos.c | 6094 --------------------------------
src/hb-old/harfbuzz-gpos.h | 155 -
src/hb-old/harfbuzz-greek.c | 447 ---
src/hb-old/harfbuzz-gsub-private.h | 483 ---
Date: Wed Aug 28 13:43:54 2013 -0400
Remove gtk-doc.make
-
+
It's copied by gtk-docize.
- gtk-doc.make | 302
- -----------------------------------------------------------
+ gtk-doc.make | 302 -----------------------------------------------------------
1 file changed, 302 deletions(-)
commit 79d754efeef89543d51775b110e8bd49cf7e699b
Date: Wed Aug 28 12:52:55 2013 -0400
Turn hb-gobject, and introspection off by default
-
+
Also enable bootstrapping without them.
configure.ac | 39 ++++++++++++++++++++++++++++++++++-----
Date: Mon Aug 26 20:56:58 2013 -0400
[gobject] Flesh out hb-gobject
-
+
Move it to new harfbuzz-gobject library. Implement enums and
boxed types for object-types. Still have to do boxed types for
value types.
src/harfbuzz-gobject.pc.in | 12 +++++
src/hb-gobject-enums.cc.tmpl | 11 +++--
src/hb-gobject-enums.h.tmpl | 55 +++++++++++++++++++++++
- src/hb-gobject-structs.cc | 84
- +++++++++++++++++++++++++++-------
- src/hb-gobject-structs.h | 87
- ++++++++++++++++++++++++++++++++++++
+ src/hb-gobject-structs.cc | 84 +++++++++++++++++++++++++++-------
+ src/hb-gobject-structs.h | 87 ++++++++++++++++++++++++++++++++++++
src/hb-gobject.h | 38 ++--------------
11 files changed, 333 insertions(+), 77 deletions(-)
Date: Wed Aug 28 12:35:13 2013 -0400
[uniscribe] Fixed build with wide chars
-
+
https://github.com/blinkseb/harfbuzz/commit/f65dafa4138e1fb4395bf646fa33bb01a86a7e9a
src/hb-uniscribe.cc | 2 +-
Date: Mon Aug 26 20:39:00 2013 -0400
Add hb-deprecated.h, and rename a couple enum values
-
+
Add deprecated alias for old name.
src/Makefile.am | 1 +
src/hb-buffer.cc | 4 ++--
src/hb-buffer.h | 8 +++----
src/hb-common.h | 5 -----
- src/hb-deprecated.h | 51
- ++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-deprecated.h | 51 ++++++++++++++++++++++++++++++++++++++++++++
src/hb.h | 1 +
src/test-buffer-serialize.cc | 2 +-
test/api/test-buffer.c | 2 +-
Date: Mon Aug 26 18:49:07 2013 -0400
Separate face source code from font
-
+
Makes documentation / introspection easier.
Android.mk | 1 +
docs/reference/harfbuzz-sections.txt | 6 +-
src/Makefile.am | 3 +
src/hb-face-private.hh | 108 ++++++++++++
- src/hb-face.cc | 311
- +++++++++++++++++++++++++++++++++++
+ src/hb-face.cc | 311 +++++++++++++++++++++++++++++++++++
src/hb-face.h | 117 +++++++++++++
src/hb-font-private.hh | 67 +-------
src/hb-font.cc | 269 ------------------------------
Date: Tue Aug 27 11:44:09 2013 -0400
Fix possible snprintf OOM
-
+
https://bugzilla.redhat.com/show_bug.cgi?id=1001645
src/hb-buffer-serialize.cc | 14 +++++++-------
Date: Mon Aug 26 17:49:36 2013 -0400
Add HB_DISABLE_DEPRECATED
-
+
That moment that you have to accept that you made API mistakes...
docs/reference/Makefile.am | 2 +-
Date: Sun Feb 24 13:00:33 2013 -0500
[gtk-doc] Initial setup
-
+
Initial setup of gtk-doc. Straight forward setup following the gtk-doc
instructions. Ignore some troublesome types in src/hb-gobject.h. To
build use "./autogen.sh --enable-gtk-doc" then "make". Docs are in
docs/reference/Makefile.am | 109 +++++++++
docs/reference/harfbuzz-docs.xml | 61 +++++
docs/reference/harfbuzz-overrides.txt | 0
- docs/reference/harfbuzz-sections.txt | 431
- ++++++++++++++++++++++++++++++++++
+ docs/reference/harfbuzz-sections.txt | 431 ++++++++++++++++++++++++++++++++++
gtk-doc.make | 302 ++++++++++++++++++++++++
src/Makefile.am | 2 +-
src/hb-gobject.h | 3 +-
Date: Wed Aug 21 17:22:21 2013 -0400
[uniscribe] Ask Uniscribe to return shaping results in logical order
-
+
See discussion on the list in the thread "Arabic presentation forms
and the uniscribe backend".
-
+
Based on patch from Jonathan Kew.
src/hb-uniscribe.cc | 24 ++++++++++++------------
Date: Mon Aug 12 00:33:28 2013 -0400
[coretext] Fully support user features
-
+
Based on patch from Jonathan Kew and data from Apple.
-
+
It's not working correctly though, and I suspect I'm hitting a bug in
CoreText. When I do this:
-
+
hb-shape /Library/Fonts/Zapfino.ttf ZapfinoZapfino --shaper coretext \
--features=-liga
-
+
I expect both ligatures to turn off, but only the second one does:
-
+
[Z_a_p_f_i_n_o=0+2333|Z=7+395|a=8+285|p_f=9+433|i=11+181|n=12+261|o=13+250]
-
+
whereas if I disable 'dlig' instead of 'liga', both are turned off.
Smells...
-
+
Doesn't resolve conflicting feature settings.
- src/hb-coretext.cc | 446
- +++++++++++++++++++++++++++++++++++++++++++++++-----
+ src/hb-coretext.cc | 446 +++++++++++++++++++++++++++++++++++++++++++++++-----
src/hb-uniscribe.cc | 2 +-
2 files changed, 404 insertions(+), 44 deletions(-)
Date: Fri Aug 9 14:34:54 2013 -0400
Clean up list of Unicode scripts
-
+
Rename HB_SCRIPT_CANADIAN_ABORIGINAL to HB_SCRIPT_CANADIAN_SYLLABICS
and a macro for the old name.
- src/hb-common.h | 277
- ++++++++++++++++++++-----------------
+ src/hb-common.h | 277 ++++++++++++++++++++-----------------
src/hb-glib.cc | 2 +-
src/hb-ot-shape-complex-private.hh | 2 +
src/hb-ucdn.cc | 2 +-
Date: Fri Aug 9 09:40:01 2013 -0400
Round when scaling values
-
+
Doesn't matter for most users since they should be working in a
fixed sub-pixel scale anyway (ie. 22.10, 26.6, 16.16, etc).
Date: Fri Aug 9 09:28:32 2013 -0400
Remove vrt2, vkrn, vpal, and valt from default vertical features
-
+
See thread by John Dagget on the list.
TODO | 2 --
Date: Wed Aug 7 21:08:54 2013 -0400
[coretext] Start adding support for features
-
- Unlike AAT, looks like with CoreText very few OT features can
- be mapped.
+
+ Unlike AAT, looks like with CoreText very few OT features can be mapped.
:(
- src/hb-coretext.cc | 65
- +++++++++++++++++++++++++++++++++++++++++++++---------
+ src/hb-coretext.cc | 65 +++++++++++++++++++++++++++++++++++++++++++++---------
1 file changed, 54 insertions(+), 11 deletions(-)
commit bdd8873fd8ae5c794018f6edac242b0a8b62ff31
Date: Wed Aug 7 17:58:25 2013 -0400
Revert "[Indic] don't apply 'calt' by default in Indic shaper"
-
+
This reverts commit 952121007c6f6f374e4cf1734ebcfe2d2d71c71c.
-
+
In light of discussion on the mailing list...
src/hb-ot-shape-complex-indic.cc | 4 ----
Date: Wed Aug 7 17:26:13 2013 -0400
[uniscribe] Support feature ranges
-
+
As Khaled pointed out, right now setting any features, turns kern
and possibly other features off.
- src/hb-uniscribe.cc | 232
- ++++++++++++++++++++++++++++++++++++++++++++--------
+ src/hb-uniscribe.cc | 232 ++++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 199 insertions(+), 33 deletions(-)
commit 627af695e48ef10b6e634c34b723f7e7013467f6
Date: Tue Aug 6 14:45:36 2013 -0400
[uniscribe] Half-support user features
-
+
Turning features on globally works now.
- src/hb-uniscribe.cc | 54
- ++++++++++++++++++++++++++++++++++++++++++-----------
+ src/hb-uniscribe.cc | 54 ++++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 43 insertions(+), 11 deletions(-)
commit 639afdc690c681a302080239a1967ce735ba5be5
Date: Mon Aug 5 22:44:18 2013 -0400
Fix glyph closure with class==0
-
+
As reported by cibu. Untested.
src/hb-ot-layout-common-private.hh | 29 +++++++++++++++++++++++++++++
Date: Sun Aug 4 16:55:21 2013 -0400
Don't apply 'dlig' by default
-
+
Windows 8 doesn't, and the spec will be fixed.
src/hb-ot-shape-complex-arabic.cc | 1 -
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue Jul 30 14:48:23 2013 -0400
- [CoreText] Don't leak the CTLine object (and everything that hangs
- off it)
-
+ [CoreText] Don't leak the CTLine object (and everything that hangs off it)
+
Patch from Jonathan Kew.
src/hb-coretext.cc | 2 ++
Date: Fri Jul 26 10:33:06 2013 -0400
Apply 'mark' to Myanmar
-
+
According to Andrew Glass: "The issue with Myanmar <mark> feature was
fixed via a servicing patch as soon as Windows 8 became available."
src/hb-open-type-private.hh | 10 ++++-
src/hb-ot-name-table.hh | 4 +-
- src/hb-uniscribe.cc | 107
- +++++++++++++++++++++++---------------------
+ src/hb-uniscribe.cc | 107 +++++++++++++++++++++++---------------------
3 files changed, 66 insertions(+), 55 deletions(-)
commit bdeea605fe597bff4430eaae3317189bb81ec76e
Date: Sun Jul 21 16:06:49 2013 -0400
[uniscribe] Use unique font name
-
+
When installing per-process fonts using AddFontMemResourceEx(),
if a font with the same family name is already installed, sometimes
that one gets used. Which is problematic for us. As such, we
now mangle the font to install a new 'name' table with a unique
name, which we then use to choose the font.
-
+
Patch from Jonathan Kew.
configure.ac | 2 +-
- src/hb-uniscribe.cc | 136
- ++++++++++++++++++++++++++++++++++++++++++++--------
+ src/hb-uniscribe.cc | 136 ++++++++++++++++++++++++++++++++++++++++++++--------
2 files changed, 116 insertions(+), 22 deletions(-)
commit 8751de50831338ce550601c34c17d152ad89c1fd
Date: Thu Jul 18 16:29:50 2013 -0400
Followup fix for 3f9e2dced298c3d00f31b2dfc38685bb071a3a22
-
+
During GSUB, if a ligation happens, subsequence context input matching
matches the new indexing. During GPOS however, the indices never
change. So just go one by one.
-
+
Fixes 'dist' positioning with mmrtext.ttf and the following sequence:
-
+
U+1014,U+1039,U+1011,U+1014,U+1039,U+1011,U+1014,U+1039,U+1011
-
+
Reported by Jonathan Kew.
src/hb-ot-layout-gsubgpos-private.hh | 8 ++++++++
Date: Thu Jul 11 14:56:45 2013 -0400
[ft] hb_ft_get_glyph_from_name fails for the name of glyph id 0
-
+
Based on patch from Jonathan Kew, as reported on the mailing list.
src/hb-ft.cc | 9 +++++++++
Date: Mon Jul 8 08:37:15 2013 -0600
[uniscribe] Fix buffer allocation
-
+
Email from Jonathan Kew:
-
+
My cygwin build kept aborting on certain test words when run with the
- uniscribe backend. Turned out this was caused by a bug in the
- allocation
+ uniscribe backend. Turned out this was caused by a bug in the allocation
of scratch buffers in hb-uniscribe.cc.
-
+
Commit 2a17f9568d9724e045d2c1d660e007f3acd747d9 introduced a new line
-
+
ALLOCATE_ARRAY (SCRIPT_VISATTR, vis_attr, glyphs_size);
-
+
but it failed to account for this in the computation of glyphs_size
(the number of glyphs for which scratch buffer space is available),
with the result that the vis_clusters array ends up overrunning the
end of the scratch buffer and clobbering the beginning of the buffer's
info[].
-
+
AFAICS, the vis_attr array is not actually used, so the simple fix is
to remove the line that allocates it. (If/when we -do- need to use
vis_attr for something, we'll need to add another term to the earlier
calculation of glyphs_size.)
-
+
With this patch, the uniscribe backend runs reliably again.
-
+
JK
src/hb-uniscribe.cc | 1 -
Date: Wed Jun 26 20:57:58 2013 -0400
[Indic] Add Javanese config
-
+
We should add for other scripts too, send me the virama codepoint
and script name...
Date: Wed Jun 26 20:14:18 2013 -0400
[OT] Collect requiredFeature only if features are not provided
-
+
As per Werner's report on the list.
src/hb-ot-layout.cc | 22 +++++++++++-----------
Date: Wed Jun 26 19:46:55 2013 -0400
Fix contextual lookup recursion indexing
-
+
See email thread "Skipping Control for Attaching Marks using OpenType"
from earlier this month.
Date: Sat Jun 22 08:04:05 2013 -0700
Merge pull request #3 from LogosBible/master
-
+
Destroy lookups before blobs.
commit 89312b7417c0198a0635ca6b7e8ea11f6af2a4f8
Date: Fri Jun 21 15:02:18 2013 -0700
Destroy lookups before blobs.
-
- 'layout->gsub' may depend on data owned by 'layout->gsub_blob',
- so it must
+
+ 'layout->gsub' may depend on data owned by 'layout->gsub_blob', so it must
be deinitialized before the blob is destroyed.
src/hb-ot-layout.cc | 8 ++++----
Date: Thu Jun 13 19:01:07 2013 -0400
If variation selector is not consumed by cmap, pass it on to GSUB
-
+
This changes the semantics of get_glyph() callback and expect that
callbacks return false if the requested variant is not available, and
then we will call them back with variation_selector=0 and will retain
the glyph for the selector in the glyph stream.
-
+
Apparently most Mongolian fonts implement the Mongolian Variation
Selectors using GSUB, not cmap.
-
+
https://bugs.freedesktop.org/show_bug.cgi?id=65258
-
+
Note that this doesn't fix the Mongolian shaping yet, because the way
that's implemented is that the, say, 'init' feature ligates the letter
and the variation-selector. However, since currently the variation
Date: Mon Jun 10 14:39:51 2013 -0400
Fix misc warnings reported by cppcheck
-
+
https://bugs.freedesktop.org/show_bug.cgi?id=65544
src/hb-common.cc | 2 +-
Date: Mon Jun 10 13:56:51 2013 -0400
Fix PKG_CHECK_MODULES usage
-
+
Oops.
-
+
Bug 65246 - Fix build without graphite2
configure.ac | 2 +-
Date: Thu Jun 6 18:57:15 2013 -0400
Fix PKG_CHECK_MODULES usage
-
+
Bug 65246 - Fix build without graphite2
-
+
If we don't provide ACTION-IF-NOT-FOUND, configure aborts if it can't
find the libraries. We handle that ourselves so we don't want the
macro to abort.
Date: Mon Jun 3 17:55:29 2013 +0800
util/ansi-print.cc: Use fallback implementation for lround on MSVC
-
+
Unfortuately Visual Studio (still) does not support the C99 function
lround, so provide a fallback implementation for it.
Date: Mon Jun 3 17:49:37 2013 +0800
hb-uniscribe.cc: Re-enable build under Visual Studio
-
+
-Declare hinstLib at the top of block
-Fix the definitions of the typedefs of ScriptItemizeOpenType,
ScriptShapeOpenType and ScriptPlaceOpenType
Date: Tue May 28 17:18:30 2013 -0400
Generate harfbuzz-icu.pc
-
+
Currently it only works with ICU that has .pc files. I'll
wait till someone complains before fixing it for icu-config
systems.
Date: Tue May 28 13:10:51 2013 -0400
Bug 55494 - ScriptItemizeOpenType doesn't exists under Windows XP
-
+
Fallback to older API if OpenType variants are not available.
configure.ac | 14 +--
- src/hb-uniscribe.cc | 322
- +++++++++++++++++++++++++++++++++++++++++++---------
+ src/hb-uniscribe.cc | 322 +++++++++++++++++++++++++++++++++++++++++++---------
2 files changed, 271 insertions(+), 65 deletions(-)
commit f8087ffbadc83a15d59367ba82976eae675736a7
Date: Mon May 27 19:33:36 2013 -0400
Add --with-freetype
-
+
Defaults to auto.
configure.ac | 12 +++++++++++-
Date: Mon May 27 19:29:09 2013 -0400
Add --with-coretext
-
+
Defaults to no.
configure.ac | 12 +++++++++++-
Date: Mon May 27 19:27:43 2013 -0400
Add --with-uniscribe
-
+
Defaults to no.
configure.ac | 55 +++++++++++++++++++++++++++++++++++++++----------------
Date: Mon May 27 19:10:33 2013 -0400
Disable UCDN if glib is available
-
+
We only want UCDN if we don't have any other Unicode provider.
I'm going to remove ICU from the list of default Unicode providers
as part of moving hb-icu into its own library. As such, the only
Date: Mon May 27 19:06:50 2013 -0400
Disable icu_le shaper
-
+
Will add a way to enable it later.
configure.ac | 3 ++-
Date: Mon May 27 19:05:23 2013 -0400
Remove icu-config fallback for icu_le shaper
-
+
Bug 64878 - compile error with ICU but not ICU
configure.ac | 18 ------------------
Date: Mon May 27 18:54:30 2013 -0400
Disable hb-old shaper
-
+
Will add proper way to enable it later.
configure.ac | 2 +-
Date: Mon May 27 18:47:58 2013 -0400
Bug 65054 - Add configure option to enable/disable Graphite2
-
+
Add --with-graphite2. Defaults to off.
configure.ac | 20 +++++++++++++++-----
Date: Mon May 27 14:48:34 2013 -0400
Don't zero advance of mark-non-mark ligatures
-
+
If there's a mark ligating forward with non-mark, they were
inheriting the GC of the mark and later get advance-zeroed.
Don't do that if there's any non-mark glyph in the ligature.
-
+
Sample test: U+1780,U+17D2,U+179F with Kh-Metal-Chrieng.ttf
-
+
Also:
Bug 58922 - Issue with mark advance zeroing in generic shaper
Date: Thu May 23 15:43:02 2013 -0400
[icu_le] Fix scaling
-
+
Seems to work...
src/hb-icu-le.cc | 2 ++
Minor refactoring
- src/hb-ot-shape.cc | 54
- ++++++++++++++++++++++++++++--------------------------
+ src/hb-ot-shape.cc | 54 ++++++++++++++++++++++++++++--------------------------
1 file changed, 28 insertions(+), 26 deletions(-)
commit 127daf15e0b2f509ebd29a104236c8b38884efb0
Date: Mon May 20 09:11:35 2013 -0400
Arabic mark width-zeroing regression
-
+
Mozilla Bug 873902 - Display Arabic text with diacritics is bad
https://bugzilla.mozilla.org/show_bug.cgi?id=873902
src/hb-ot-shape-complex-myanmar.cc | 2 +-
src/hb-ot-shape-complex-private.hh | 6 ++++--
src/hb-ot-shape-complex-thai.cc | 2 +-
- src/hb-ot-shape.cc | 36
- ++++++++++++++++++++++++++++--------
+ src/hb-ot-shape.cc | 36 ++++++++++++++++++++++++++++--------
6 files changed, 36 insertions(+), 14 deletions(-)
commit fa3d0a0ce60a9fcf2b7f906dec916463b1319eda
Date: Tue May 14 15:30:55 2013 -0400
Bug 64476 - Typo in hb_set_t.get_min()
-
+
Fixes previous commit's test.
src/hb-set-private.hh | 2 +-
Date: Tue May 14 15:30:17 2013 -0400
[test] Add test for hb_set_get_min() bug
-
+
Failing now.
-
+
Bug 64476 - Typo in hb_set_t.get_min()
test/api/test-set.c | 4 ++++
src/hb-ot-layout-gpos-table.hh | 25 ---------------
src/hb-ot-layout-gsub-table.hh | 48 ----------------------------
- src/hb-ot-layout.cc | 72
- ++++++++++++++++++++++++++++++++++++++++--
+ src/hb-ot-layout.cc | 72 ++++++++++++++++++++++++++++++++++++++++--
3 files changed, 69 insertions(+), 76 deletions(-)
commit e015b8f2187d1102b9c34d1a63504e7b05ee20ee
src/hb-ot-layout-gpos-table.hh | 8 +-
src/hb-ot-layout-gsub-table.hh | 58 ++++++++++++-
- src/hb-ot-layout-gsubgpos-private.hh | 158
- +++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout-gsubgpos-private.hh | 158 +++++++++++++++++++++++++++++++++++
3 files changed, 222 insertions(+), 2 deletions(-)
commit bac1dd6a0ff4d4fae4254506d38ae662b7e9dda7
src/hb-ot-layout-gsubgpos-private.hh | 10 +--
src/hb-ot-layout-private.hh | 26 ++++----
- src/hb-ot-layout.cc | 100
- ++++++++++++++---------------
+ src/hb-ot-layout.cc | 100 ++++++++++++++---------------
src/hb-ot-map-private.hh | 7 +-
src/hb-ot-shape-complex-arabic-fallback.hh | 7 +-
src/hb-ot-shape-fallback.cc | 3 +-
Move code around
- src/hb-ot-layout.cc | 52
- ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout.cc | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-map.cc | 43 -------------------------------------------
2 files changed, 52 insertions(+), 43 deletions(-)
[OTLayout] Add hb_ot_layout_lookup_accelerator_t
src/hb-ot-layout-private.hh | 21 +++++++++++++++++--
- src/hb-ot-layout.cc | 33
- +++++++++++++++---------------
+ src/hb-ot-layout.cc | 33 +++++++++++++++---------------
src/hb-ot-shape-complex-arabic-fallback.hh | 10 +++++----
3 files changed, 41 insertions(+), 23 deletions(-)
[OTLayout] Whitespace
- src/hb-ot-layout-gsub-table.hh | 56
- +++++++++++++++++++++---------------------
+ src/hb-ot-layout-gsub-table.hh | 56 +++++++++++++++++++++---------------------
1 file changed, 28 insertions(+), 28 deletions(-)
commit 3276c354daaff3acabecff11f8e4b5c54d53fc25
[OTLayout] Minor refactoring
src/hb-ot-map-private.hh | 4 ++++
- src/hb-ot-map.cc | 46
- +++++++++++++++++++++++++---------------------
+ src/hb-ot-map.cc | 46 +++++++++++++++++++++++++---------------------
2 files changed, 29 insertions(+), 21 deletions(-)
commit ea86efa486a5076e9bf844239bccf86d67577f88
Date: Tue Apr 30 11:34:00 2013 -0400
Renamed DEBUG to something else
-
+
Some infrastructures use DEBUG as a generic symbol.
src/hb-buffer.cc | 6 +++---
Date: Mon Apr 29 13:48:49 2013 -0400
Fix icu linking by requesting the library searchpath from icu-config
-
+
This is not ideal as we don't like -L/usr/lib in our linker line.
But this is only relevant to environments that don't have pkgconfig
files for ICU...
-
+
https://github.com/behdad/harfbuzz/pull/2
configure.ac | 4 ++--
Date: Mon Apr 29 13:40:52 2013 -0400
Make both old autoconf and new automake happy
-
+
Sigh..
-
+
Bug 64039 - undefined macro AM_PROG_AR
configure.ac | 2 +-
Date: Sun Apr 21 15:19:38 2013 -0400
Rename "pause" to "stage"
-
+
The compile() function is starting to become illegible...
src/hb-ot-map-private.hh | 24 ++++++++++++------------
Date: Sun Apr 21 15:13:08 2013 -0400
Remove unneeded code
-
- We always push a pause at the end such that each lookup falls
- in exactly
+
+ We always push a pause at the end such that each lookup falls in exactly
one pause_map_t. Now, only if I can find a better name for that...
src/hb-ot-map-private.hh | 2 +-
Date: Fri Apr 19 14:33:17 2013 -0400
Hand-code bsearch in the hot inner loop.
-
+
Saves another 3 / 4 percent with Amiri.
src/hb-open-type-private.hh | 29 +++++++++++++++--------------
Date: Wed Apr 17 23:04:03 2013 -0400
Obssesive optimization
-
+
Not measurable by any means, but conceptually this is faster since
the mask matches more often than the digest.
Date: Wed Apr 17 19:01:49 2013 -0400
Remove HB_DEBUG_SET_DIGESTS
-
+
Wasn't correct with the new combiner. I should add it back somehow,
but for now the digests seem to be working very well...
Date: Wed Apr 17 18:20:44 2013 -0400
Remove hb_set_digest_common_bits_t
-
+
Was unused.
src/hb-set-private.hh | 38 --------------------------------------
Date: Wed Apr 17 18:19:21 2013 -0400
Improve hb_set_digest_t
-
+
Make Amiri rendering faster a whopping 45% again! Speends up pretty
much anything I tested.
Date: Tue Apr 16 23:13:10 2013 -0400
Speed up Speed up hb_set_digest_common_bits_t calcs
-
+
Correctly this time.
src/hb-set-private.hh | 8 +++++---
Date: Tue Apr 16 21:50:33 2013 -0400
Initialize set digests
-
- We were not initializing the digests properly and as a result
- they were
+
+ We were not initializing the digests properly and as a result they were
being initialized to zero, making digest1 to never do any useful work.
-
+
Speeds up Amiri shaping significantly.
src/hb-ot-layout.cc | 6 ++++++
Date: Tue Apr 16 21:47:40 2013 -0400
Revert "Speed up hb_set_digest_common_bits_t calcs"
-
+
This reverts commit 3d1b66a35e1ab3be19335705f310b278d76d66d2.
-
+
The calculations were buggy. It's not worth optimizing right now.
src/hb-set-private.hh | 6 +++---
Date: Thu Apr 11 16:31:01 2013 -0400
[util] Add --num-iterations
-
+
Useful for profiling shapers.
util/options.cc | 1 +
Date: Thu Apr 11 14:45:58 2013 -0400
[old] Speed up Unicode properties access in hb-old shaper
-
+
Just to be sure it's not punishing the old shaper performance
numbers. Doesn't seem to have a measurable effect.
- src/hb-old/harfbuzz-arabic.c | 44
- +++++++++++++++++++++---------------------
+ src/hb-old/harfbuzz-arabic.c | 44 +++++++++++++++++++++---------------------
src/hb-old/harfbuzz-external.h | 18 ++++++++---------
src/hb-old/harfbuzz-greek.c | 2 +-
src/hb-old/harfbuzz-hebrew.c | 2 +-
Date: Thu Apr 4 23:06:54 2013 -0400
Don't compose Hangul jamo
-
+
See thread "an issue regarding discrepancy between Korean and Unicode
standards" on the mailing list for the rationale. In short: Uniscribe
doesn't, so fonts are designed to work without it.
Date: Thu Apr 4 15:02:03 2013 -0400
Put back MemoryBarrier fallback implementation on MINGW32
-
+
This almost reverts 2761e8a632c14353f286708898be8df6ebad7407,
but only if under MINGW32, so it doesn't affect MSVC.
Date: Thu Apr 4 14:25:36 2013 -0400
[Arabic] Zero marks by GDEF, not Unicode category
-
+
Testing shows that this is closer to what Uniscribe does.
-
+
Reported by Khaled Hosny:
-
+
"""
commit 568000274c8edb5f41bc4f876ce21fcc8bdaeed8
...
- This commit is causing a regression with Amiri, the string
- “هَٰذ” with
+ This commit is causing a regression with Amiri, the string “هَٰذ” with
Uniscribe and HarfBuzz before this commit, gives:
-
+
[uni0630.fina=3+965|uni0670.medi=0+600|uni064E=0@-256,0+0|uni0647.init=0+926]
-
+
But now it gives:
-
+
[uni0630.fina=3+965|uni0670.medi=0+0|uni064E=0@-256,0+0|uni0647.init=0+926]
-
+
i.e. uni0670.medi is zeroed though it has a base glyph GDEF class.
"""
-
+
The test case is U+0647,U+064E,U+0670,U+0630 with Amiri.
src/hb-ot-shape-complex-arabic.cc | 2 +-
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Apr 4 12:06:46 2013 -0400
- Bug 63107 - FTBFS on ppc64: symbols marked with 'D' on powerpc64
- instead
+ Bug 63107 - FTBFS on ppc64: symbols marked with 'D' on powerpc64 instead
src/check-symbols.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Tue Apr 2 14:08:53 2013 -0400
[graphite2] Don't crash if language is not set
-
+
https://bugs.webkit.org/show_bug.cgi?id=113796
src/hb-graphite2.cc | 2 +-
Date: Thu Mar 21 16:26:39 2013 -0400
Remove gthread leftovers
-
+
We don't use gthread anymore, remove leftovers.
configure.ac | 6 ------
Date: Tue Mar 19 06:59:40 2013 -0400
Remove Hangul filler characters from Default_Ignorable chars
-
+
See discussion on mailing list.
- src/hb-unicode-private.hh |
- 10 +++++++---
+ src/hb-unicode-private.hh | 10 +++++++---
.../texts/in-tree/shaper-default/script-hangul/misc/misc.txt | 1 +
2 files changed, 8 insertions(+), 3 deletions(-)
Date: Tue Mar 19 05:53:26 2013 -0400
[Indic] Futher adjust ZWJ handling in Indic-like shapers
-
+
After the Ngapi hackfest work, we were assuming that fonts
won't use presentation features to choose specific forms
(eg. conjuncts). As such, we were using auto-joiner behavior
for such features. It proved to be troublesome as many fonts
used presentation forms ('pres') for example to form conjuncts,
which need to be disabled when a ZWJ is inserted.
-
+
Two examples:
-
+
U+0D2F,U+200D,U+0D4D,U+0D2F with kartika.ttf
U+0995,U+09CD,U+200D,U+09B7 with vrinda.ttf
-
+
What we do now is to never do magic to ZWJ during GSUB's main input
- match for Indic-style shapers. Note that backtrack/lookahead
- are still
+ match for Indic-style shapers. Note that backtrack/lookahead are still
matched liberally, as is GPOS. This seems to be an acceptable
compromise.
-
+
As to the bug that initially started this work, that one needs to
be fixed differently:
-
+
Bug 58714 - Kannada u+0cb0 u+200d u+0ccd u+0c95 u+0cbe does not
provide same results as Windows8
https://bugs.freedesktop.org/show_bug.cgi?id=58714
-
+
New numbers:
-
+
BENGALI: 353689 out of 354188 tests passed. 499 failed (0.140886%)
DEVANAGARI: 707305 out of 707394 tests passed. 89 failed (0.0125814%)
GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%)
KANNADA: 951030 out of 951913 tests passed. 883 failed (0.0927606%)
KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
- MALAYALAM: 1048102 out of 1048334 tests passed. 232 failed
- (0.0221304%)
+ MALAYALAM: 1048102 out of 1048334 tests passed. 232 failed (0.0221304%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
- src/hb-ot-layout-gsubgpos-private.hh | 30
- ++++++++--------------
+ src/hb-ot-layout-gsubgpos-private.hh | 30 ++++++++--------------
src/hb-ot-layout-private.hh | 4 +--
src/hb-ot-layout.cc | 8 +++---
src/hb-ot-map-private.hh | 8 +++---
src/hb-ot-map.cc | 18 ++++++-------
src/hb-ot-shape-complex-arabic-fallback.hh | 2 +-
- src/hb-ot-shape-complex-indic.cc | 30
- +++++++++++-----------
+ src/hb-ot-shape-complex-indic.cc | 30 +++++++++++-----------
src/hb-ot-shape-complex-myanmar.cc | 4 +--
src/hb-ot-shape-complex-sea.cc | 4 +--
src/hb-ot-shape-fallback.cc | 2 +-
Date: Mon Mar 11 19:53:44 2013 -0400
Add build system fallback to icu-config
-
+
Ubuntu doesn't (or didn't until recently?) ship icu pkg-config
files. That's quite unfortunate. Work around it.
-
+
Bug 57608 - ICU Detection fallback for non-pkgconfig systems
configure.ac | 37 +++++++++++++++++++++++++++++++++++++
Date: Sat Mar 9 20:27:55 2013 -0500
[ft] Remove TODO item re FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH
-
+
That flag is redundant, deprecated, and ignored since April 2011.
From FreeType git log:
-
+
commit 8c82ec5b17d0cfc9b0876a2d848acc207a62a25a
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Apr 21 08:21:37 2011 +0200
-
+
Always ignore global advance.
-
+
This makes FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH redundant,
- deprecated, and ignored. The new behavior is what every
- major user
+ deprecated, and ignored. The new behavior is what every major user
of FreeType has been requesting. Global advance is broken in many
CJK fonts. Just ignoring it by default makes most sense.
-
+
* src/truetype/ttdriver.c (tt_get_advances),
src/truetype/ttgload.c (TT_Get_HMetrics, TT_Get_VMetrics,
tt_get_metrics, compute_glyph_metrics, TT_Load_Glyph),
src/truetype/ttgload.h: Implement it.
-
+
* docs/CHANGES: Updated.
src/hb-ft.cc | 2 --
[OTLayout] Move code around
src/hb-ot-layout-gpos-table.hh | 33 ++++++------
- src/hb-ot-layout-gsub-table.hh | 115
- +++++++++++++++++++++--------------------
+ src/hb-ot-layout-gsub-table.hh | 115 +++++++++++++++++++++--------------------
2 files changed, 75 insertions(+), 73 deletions(-)
commit 9c5a9ee967120c8a968a1160c420e03620d46c24
[OTLayout] Rename process() to dispatch()
src/hb-open-type-private.hh | 2 +-
- src/hb-ot-layout-gpos-table.hh | 80
- ++++++++++++++++++------------------
- src/hb-ot-layout-gsub-table.hh | 78
- +++++++++++++++++------------------
+ src/hb-ot-layout-gpos-table.hh | 80 ++++++++++++++++++------------------
+ src/hb-ot-layout-gsub-table.hh | 78 +++++++++++++++++------------------
src/hb-ot-layout-gsubgpos-private.hh | 36 ++++++++--------
4 files changed, 98 insertions(+), 98 deletions(-)
Date: Thu Mar 7 20:51:30 2013 -0500
[win32] Remove MemoryBarrier() fallback implementation
-
+
I added these because the older mingw32 toolchain didn't have
MemoryBarrier(). The newer mingw-w64 toolchain however has.
As reported by John Emmas this was causing build failure with
Date: Wed Mar 6 20:05:34 2013 -0500
[build] Add AM_PROG_AR
-
+
Newer automake / libtools warns otherwise.
configure.ac | 1 +
Date: Wed Mar 6 19:37:31 2013 -0500
[FT] Just return if glyph name not found
-
+
The fallback happens in higher level already. No need to do here.
src/hb-ft.cc | 4 ++--
Date: Tue Mar 5 20:08:59 2013 -0500
[Indic] Work around fonts with broken new-spec tables
-
+
See comments, and this thread:
-
+
http://lists.freedesktop.org/archives/harfbuzz/2013-March/002990.html
-
+
Originally reported here:
-
+
https://code.google.com/p/chromium/issues/detail?id=96143
-
+
Doesn't change test suite numbers.
- src/hb-ot-shape-complex-indic.cc | 42
- +++++++++++++++++++++++++++-------------
+ src/hb-ot-shape-complex-indic.cc | 42 +++++++++++++++++++++++++++-------------
1 file changed, 29 insertions(+), 13 deletions(-)
commit dfb799f57572e8123035a42a30f93c7fc4d37692
Date: Tue Mar 5 01:37:44 2013 -0500
Add .travis.yml for continuous building with travis-ci.org
-
+
Notifications sent to IRC channel and mailing list.
.travis.yml | 12 ++++++++++++
Date: Mon Mar 4 20:56:15 2013 -0500
[git.mk] Update to commit efc928222179576270c5910416d8055dd7a97896
-
+
Move reusable list of files into variable definitions modules can
reuse
Makefile.am | 22 ++++------------------
- git.mk | 59
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
+ git.mk | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
2 files changed, 60 insertions(+), 21 deletions(-)
commit 66f7b3509a121b8f3289ad4c4aed2b5b10a6de2e
Date: Wed Feb 27 20:40:54 2013 -0500
[Indic] Help compiler put indic_features table in .rodata
-
+
The overridden "or" operator was preventing the flag expression from
being const, and putting the table in .data instead or .rodata.
Date: Wed Feb 27 18:39:37 2013 -0500
[buffer] Implement buffer deserialization for format=json
-
+
Using a ragel machine.
src/Makefile.am | 2 +
- src/hb-buffer-deserialize-json.rl | 129
- ++++++++++++++++++++++++++++++++++++++
+ src/hb-buffer-deserialize-json.rl | 129 ++++++++++++++++++++++++++++++++++++++
src/hb-buffer-deserialize-text.rl | 52 +--------------
src/hb-buffer-serialize.cc | 45 +++++++++++--
src/hb-private.hh | 6 +-
Date: Wed Feb 27 17:59:28 2013 -0500
[buffer] Implement buffer deserialization for format=text
-
+
Using a ragel machine.
src/Makefile.am | 2 +
- src/hb-buffer-deserialize-text.rl | 169
- ++++++++++++++++++++++++++++++++++++++
+ src/hb-buffer-deserialize-text.rl | 169 ++++++++++++++++++++++++++++++++++++++
src/hb-buffer-private.hh | 3 +-
src/hb-buffer-serialize.cc | 36 +++-----
src/hb-buffer.cc | 13 ++-
src/Makefile.am | 12 ++++-
src/hb-buffer-serialize.cc | 64 ++++++++++++++++++++++--
src/hb-buffer.h | 2 +-
- src/test-buffer-serialize.cc | 114
- +++++++++++++++++++++++++++++++++++++++++++
+ src/test-buffer-serialize.cc | 114 +++++++++++++++++++++++++++++++++++++++++++
4 files changed, 187 insertions(+), 5 deletions(-)
commit bcc8f32b4c46cd73f591924c64a6f63df6eaf9e7
Android.mk | 1 +
src/Makefile.am | 1 +
- src/hb-buffer-serialize.cc | 251
- +++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-buffer-serialize.cc | 251 +++++++++++++++++++++++++++++++++++++++++++++
src/hb-buffer.cc | 228 ----------------------------------------
4 files changed, 253 insertions(+), 228 deletions(-)
Date: Tue Feb 26 21:22:37 2013 -0500
[Indic] Sort pre-base reordering consonants with post-forms
-
+
Before, we were marking them as below-form for initial reordering.
However, there is a rule that says "post consonants should follow
below consonsnts" for base determination purposes. Malayalam has
YA,Virama,YA,Virama,RA, the correct base is at index 0. But
because the code was seeing RA as a below-base, it was stopping at
the second YA as base, instead of jumping it as a post-base.
-
+
By treating prebase-reordering consonants like post-forms, this
is fixed.
-
+
MALAYALAM went down from 351 to 265. Other numbers didn't change:
-
+
BENGALI: 353686 out of 354188 tests passed. 502 failed (0.141733%)
DEVANAGARI: 707305 out of 707394 tests passed. 89 failed (0.0125814%)
GUJARATI: 366262 out of 366457 tests passed. 195 failed (0.0532122%)
KANNADA: 950680 out of 951913 tests passed. 1233 failed (0.129529%)
KHMER: 299074 out of 299124 tests passed. 50 failed (0.0167155%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
- MALAYALAM: 1048069 out of 1048334 tests passed. 265 failed
- (0.0252782%)
+ MALAYALAM: 1048069 out of 1048334 tests passed. 265 failed (0.0252782%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271539 out of 271847 tests passed. 308 failed (0.113299%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
[tests] Add Malayalam tests frim cibu
.../indic/script-malayalam/misc/MANIFEST | 1 +
- .../indic/script-malayalam/misc/cibu.txt | 188
- +++++++++++++++++++++
+ .../indic/script-malayalam/misc/cibu.txt | 188 +++++++++++++++++++++
2 files changed, 189 insertions(+)
commit 1edc6b97b67363d55cfb5914c991ae54d42a6440
Date: Mon Feb 25 23:57:51 2013 -0500
Fix "comparison between signed and unsigned" warnings
-
+
Patch from Jonathan Kew.
src/hb-open-type-private.hh | 2 +-
Date: Mon Feb 25 19:09:57 2013 -0500
Give up sanitizing after 100 edit requests
-
+
Such fonts are *definitely* really broken. Give up.
Limits time spent in sanitize for extremely / deliberately broken
fonts. For example, two fonts with these md5sum / names:
-
+
9343f0a1b8c84b8123e7d201cae62ffd.ttf
eb8c978547f09d368fc204194fb34688.ttf
-
+
were spending over a second in sanitize! Not anymore.
src/hb-open-type-private.hh | 7 +++++++
Date: Mon Feb 25 19:04:56 2013 -0500
Add HB_DEBUG_VERBOSE
-
+
Only affects the verbosity of function name printing right now.
src/hb-private.hh | 6 +++++-
Fix blob test to match c3ba49b6fa1865e8318926eaa6c0f2063d1053bb
- test/api/test-blob.c | 57
- ++++++++++++++++++++++++++++++++++++++++++++++------
+ test/api/test-blob.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 51 insertions(+), 6 deletions(-)
commit c3ba49b6fa1865e8318926eaa6c0f2063d1053bb
Date: Mon Feb 25 17:06:35 2013 -0500
Always create sub-blobs in MEMORY_MODE_READONLY
-
+
This fixes a design bug with sanitize and sub-blobs that can
cause crashes. Jonathan and I found and debugged this issue
when we tested a corrupt font with the md5sum / filename:
debugging we found out that the font has overlapping GSUB/GPOS
tables, and as such, sanitizing the second table can modify
the first one, which can cause all kinds of undefined behavior.
-
+
The correct way to fix this is to make sure sub-blobs are
always created readonly, since we consider the parent blob
to be a shared resource and can't modify it, even if it *is*
writable.
-
+
This essentially makes the READONLY_MAY_MAKE_WRITABLE mode
unused... Maybe we should simply remove / deprecate it.
Date: Thu Feb 21 15:39:57 2013 -0500
Port TrueType-kerning to use skippy iterator
-
- It skips joiners and default ignorables now. Skips marks too,
- but only
+
+ It skips joiners and default ignorables now. Skips marks too, but only
if there is proper GDEF classes for marks.
- src/hb-ot-shape-fallback.cc | 50
- +++++++++++++++++++++++++--------------------
+ src/hb-ot-shape-fallback.cc | 50 +++++++++++++++++++++++++--------------------
1 file changed, 28 insertions(+), 22 deletions(-)
commit 722e8b857eafc52e07dee5d9b253b88ed5c5c8ed
Date: Thu Feb 21 15:37:51 2013 -0500
Fixup previous commit
-
+
Was not decreasing num_items. Ouch!
src/hb-ot-layout-gsubgpos-private.hh | 12 ++++++++----
Move code around
src/hb-ot-shape-fallback-private.hh | 5 +++++
- src/hb-ot-shape-fallback.cc | 40
- +++++++++++++++++++++++++++++++++++++
- src/hb-ot-shape.cc | 38
- +----------------------------------
+ src/hb-ot-shape-fallback.cc | 40 +++++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape.cc | 38 +----------------------------------
3 files changed, 46 insertions(+), 37 deletions(-)
commit 2b2a6e8944144755ab641f2842e36d9a847719f3
Date: Thu Feb 21 15:07:03 2013 -0500
[OTLayout] Correctly skip Default_Ignorable when match_func not set
-
+
When a match_func was not set on the matcher_t object (ie. from GPOS),
then the Default_Ignorables (including joiners) were never skipped.
This meant that they were not skipped as they should during GPOS
matching. Fix that.
-
+
A few Indic numbers have "regressed": BENGALI and DEVANAGARI went
up from 290 and 58 respectively, but in both cases new results are
superior to Uniscribe, as they apply GPOS when we weren't (and
KANNADA: 950680 out of 951913 tests passed. 1233 failed (0.129529%)
KHMER: 299074 out of 299124 tests passed. 50 failed (0.0167155%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
- MALAYALAM: 1047983 out of 1048334 tests passed. 351 failed
- (0.0334817%)
+ MALAYALAM: 1047983 out of 1048334 tests passed. 351 failed (0.0334817%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271539 out of 271847 tests passed. 308 failed (0.113299%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
- src/hb-ot-layout-gsubgpos-private.hh | 32
- ++++++++++++++++++++++----------
+ src/hb-ot-layout-gsubgpos-private.hh | 32 ++++++++++++++++++++++----------
1 file changed, 22 insertions(+), 10 deletions(-)
commit ff93ac8cb24cbc3d9dc1a2bfb0faa88950f4a507
[tests] Add Myanmar torture tests from Martin Hosken
.../shaper-myanmar/script-myanmar/misc/MANIFEST | 1 +
- .../shaper-myanmar/script-myanmar/misc/torture.txt | 23
- ++++++++++++++++++++++
+ .../shaper-myanmar/script-myanmar/misc/torture.txt | 23 ++++++++++++++++++++++
2 files changed, 24 insertions(+)
commit a3df9a7bf87aeba7a3d6110cd5e01a65bd0b16d0
Date: Tue Feb 19 00:50:46 2013 -0500
Minor
-
+
Moving files around
- test/shaping/texts/in-tree/MANIFEST |
- 2 --
- test/shaping/texts/in-tree/shaper-default/MANIFEST |
- 2 ++
- .../in-tree/{script-default => shaper-default/script-hangul}/MANIFEST
- | 0
- .../{script-default => shaper-default/script-hangul}/misc/MANIFEST
- | 0
- .../{shaper-hangul => shaper-default}/script-hangul/misc/misc.txt
- | 0
- .../script-hangul => shaper-default/script-tibetan}/MANIFEST |
- 0
- .../script-hangul => shaper-default/script-tibetan}/misc/MANIFEST
- | 0
- .../{script-default => shaper-default/script-tibetan}/misc/misc.txt
- | 0
- test/shaping/texts/in-tree/shaper-hangul/MANIFEST |
- 1 -
+ test/shaping/texts/in-tree/MANIFEST | 2 --
+ test/shaping/texts/in-tree/shaper-default/MANIFEST | 2 ++
+ .../in-tree/{script-default => shaper-default/script-hangul}/MANIFEST | 0
+ .../{script-default => shaper-default/script-hangul}/misc/MANIFEST | 0
+ .../{shaper-hangul => shaper-default}/script-hangul/misc/misc.txt | 0
+ .../script-hangul => shaper-default/script-tibetan}/MANIFEST | 0
+ .../script-hangul => shaper-default/script-tibetan}/misc/MANIFEST | 0
+ .../{script-default => shaper-default/script-tibetan}/misc/misc.txt | 0
+ test/shaping/texts/in-tree/shaper-hangul/MANIFEST | 1 -
9 files changed, 2 insertions(+), 3 deletions(-)
commit b1f440759161cb5a54e1b1b910f3a8383b8e8472
Date: Sun Feb 17 12:12:37 2013 -0500
[SEA] Fix order of pre-base reordering Ra and left matras
-
+
The code was confused because it was expecting left matra to have
POS_PRE_M, like we do in the Myanmar shaper, but that is not what
we were doing in this shaper. Rewrite to rely on category only.
-
+
Test case: U+AA06,U+AA34,U+AA2F
- src/hb-ot-shape-complex-sea.cc | 13
- +++++++------
+ src/hb-ot-shape-complex-sea.cc | 13 +++++++------
.../texts/in-tree/shaper-sea/script-cham/misc/misc.txt | 1 +
2 files changed, 8 insertions(+), 6 deletions(-)
Date: Fri Feb 15 09:33:10 2013 -0500
Remove TODO items that don't make sense
-
+
The spec says those features need to be disabled by default.
TODO | 2 --
Date: Fri Feb 15 09:27:02 2013 -0500
[Arabic] Fix shaping of left-joining 'Phags-Pa U+A872
-
+
This is the first character in Unicode to have Arabic left-joining
behavior. Update the machine to recognize that.
-
+
Test case: U+A840,U+A872,U+A840.
- src/hb-ot-shape-complex-arabic.cc | 40
- +++++++++++++++++++--------------------
+ src/hb-ot-shape-complex-arabic.cc | 40 +++++++++++++++++++--------------------
1 file changed, 19 insertions(+), 21 deletions(-)
commit 05ac87813d17d9ebbfa315eee3f80f25b53135c5
[tests] Add Syriac Alaph shaping test cases
.../shaper-arabic/script-syriac/misc/MANIFEST | 1 +
- .../shaper-arabic/script-syriac/misc/alaph.txt | 98
- ++++++++++++++++++++++
+ .../shaper-arabic/script-syriac/misc/alaph.txt | 98 ++++++++++++++++++++++
2 files changed, 99 insertions(+)
commit c462b32dcb883a7aca066af24c4d28c7a2b7fa28
Date: Fri Feb 15 07:51:47 2013 -0500
Disable automatic segment properties guessing
-
+
Before, if one called hb_shape() without setting script, language, and
direction on the buffer, hb_shape() was calling
hb_buffer_guess_segment_properties() on the user's behalf to guess
these.
-
+
This is very dangerous, since any serious user of HarfBuzz must set
these properly (specially important is direction). So now, we don't
guess properties by default. People not setting direction will get
Date: Fri Feb 15 07:41:07 2013 -0500
Allow disabling of TrueType kerning
-
+
Responds to the same feature tag that GPOS kerning does:
'kern' for horizontal and 'vkrn' for vertical.
TODO | 2 --
- src/hb-ot-shape.cc | 55
- ++++++++++++++++++++++++++++++++++--------------------
+ src/hb-ot-shape.cc | 55 ++++++++++++++++++++++++++++++++++--------------------
2 files changed, 35 insertions(+), 22 deletions(-)
commit 398238a2526d322eb79e255c24634a275473920f
Date: Fri Feb 15 07:40:10 2013 -0500
Fix partial disabling of default-on features
-
- Surprisingly, if user ever tried to turn a default feature off
- partially
+
+ Surprisingly, if user ever tried to turn a default feature off partially
(say, disable liga for a range), the feature was being turned off
globally! Fixed now.
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Fri Feb 15 07:02:08 2013 -0500
- [OTLayout] Respect syllable boundaries for backtrack/lookahead
- matching
-
+ [OTLayout] Respect syllable boundaries for backtrack/lookahead matching
+
Originally we meant to match backtrack/lookahead across syllable
boundaries. But a bug in the code meant that this was NOT done for
- backtrack. We "fixed" that in
- 2c7d0b6b80d412de3fddd443ed1a485ea1cbb03c,
+ backtrack. We "fixed" that in 2c7d0b6b80d412de3fddd443ed1a485ea1cbb03c,
but that broke Myanmar shaping.
-
- We now believe that for Indic-like shapers (which is where syllables
- are
+
+ We now believe that for Indic-like shapers (which is where syllables are
used), all basic shaping forms should be fully contained within their
- syllables, so now we limit backtrack/lookahead matching to the
- syllable
+ syllables, so now we limit backtrack/lookahead matching to the syllable
too. Unbreaks Myanmar.
src/hb-ot-layout-gsubgpos-private.hh | 4 ++--
Minor refactoring
- src/hb-ot-shape-complex-myanmar.cc | 36
- ++++++++++--------------------------
- src/hb-ot-shape-complex-sea.cc | 37
- ++++++++++---------------------------
+ src/hb-ot-shape-complex-myanmar.cc | 36 ++++++++++--------------------------
+ src/hb-ot-shape-complex-sea.cc | 37 ++++++++++---------------------------
src/hb-ot-shape.cc | 17 ++++++-----------
3 files changed, 26 insertions(+), 64 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Feb 14 10:40:12 2013 -0500
- [Indic-like] Disable automatic joiner handling for basic shaping
- features
-
+ [Indic-like] Disable automatic joiner handling for basic shaping features
+
Not for Arabic, but for Indic-like scripts. ZWJ/ZWNJ have special
meanings in those scripts, so let font lookups take full control.
-
+
This undoes the regression caused by automatic-joiners handling
introduced two commits ago.
-
+
We only disable automatic joiner handling for the "basic shaping
features" of Indic, Myanmar, and SEAsian shapers. The "presentation
forms" and other features are still applied with automatic-joiner
handling.
-
+
This change also changes the test suite failure statistics, such that
a few scripts show more "failures". The most affected is Kannada.
However, upon inspection, we believe that in most, if not all, of the
new failures, we are producing results superior to Uniscribe. Hard to
count those!
-
+
Here's an example of what is fixed by the recent joiner-handling
changes:
-
+
https://bugs.freedesktop.org/show_bug.cgi?id=58714
-
+
New numbers, for future reference:
-
+
BENGALI: 353892 out of 354188 tests passed. 296 failed (0.0835714%)
DEVANAGARI: 707336 out of 707394 tests passed. 58 failed (0.00819911%)
GUJARATI: 366262 out of 366457 tests passed. 195 failed (0.0532122%)
KANNADA: 950680 out of 951913 tests passed. 1233 failed (0.129529%)
KHMER: 299074 out of 299124 tests passed. 50 failed (0.0167155%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
- MALAYALAM: 1047983 out of 1048334 tests passed. 351 failed
- (0.0334817%)
+ MALAYALAM: 1047983 out of 1048334 tests passed. 351 failed (0.0334817%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271539 out of 271847 tests passed. 308 failed (0.113299%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
- src/hb-ot-layout-gsubgpos-private.hh | 35
- +++++++++++++++++++-----------
+ src/hb-ot-layout-gsubgpos-private.hh | 35 +++++++++++++++++++-----------
src/hb-ot-layout-private.hh | 6 +++--
src/hb-ot-layout.cc | 10 +++++----
src/hb-ot-map-private.hh | 12 ++++++----
- src/hb-ot-map.cc | 32
- +++++++++++++++++++++------
+ src/hb-ot-map.cc | 32 +++++++++++++++++++++------
src/hb-ot-shape-complex-arabic-fallback.hh | 2 +-
src/hb-ot-shape-complex-indic.cc | 29 +++++++++++++------------
src/hb-ot-shape-complex-myanmar.cc | 4 ++--
Date: Thu Feb 14 10:46:52 2013 -0500
[OTLayout] Add fine-grained control over ZWJ matching
-
+
Not used yet. Next commit...
src/hb-ot-layout-gsubgpos-private.hh | 10 ++++++++--
Date: Thu Feb 14 07:43:13 2013 -0500
[OTLayout] Ignore default-ignorables when matching GSUB/GPOS
-
+
When matching lookups, be smart about default-ignorable characters.
In particular:
-
+
Do nothing specific about ZWNJ, but for the other default-ignorables:
-
+
If the lookup in question uses the ignorable character in a sequence,
then match it as we used to do. However, if the sequence match will
fail because the default-ignorable blocked it, try skipping the
ignorable character and continue.
-
- The most immediate thing it means is that if Lam-Alef forms a
- ligature,
+
+ The most immediate thing it means is that if Lam-Alef forms a ligature,
then Lam-ZWJ-Alef will do to. Finally!
-
+
One exception: when matching for GPOS, or for backtrack/lookahead of
GSUB, we ignore ZWNJ too. That's the right thing to do.
-
+
It certainly is possible to build fonts that this feature will result
in undesirable glyphs, but it's hard to think of a real-world case
that that would happen.
-
+
This *does* break Indic shaping right now, since Indic Unicode has
specific rules for what ZWJ/ZWNJ mean, and skipping ZWJ is breaking
those rules. That will be fixed in upcoming commits.
src/hb-ot-layout-gpos-table.hh | 1 +
src/hb-ot-layout-gsub-table.hh | 2 +-
- src/hb-ot-layout-gsubgpos-private.hh | 279
- ++++++++++++++++++++++++-----------
+ src/hb-ot-layout-gsubgpos-private.hh | 279 ++++++++++++++++++++++++-----------
src/hb-ot-layout-private.hh | 45 ++++++
src/hb-ot-shape-private.hh | 44 ------
5 files changed, 237 insertions(+), 134 deletions(-)
Date: Thu Feb 14 11:25:10 2013 -0500
Add hb_ot_map_feature_flags_t
-
+
Code cleanup. No (intended) functional change.
src/hb-ot-map-private.hh | 29 +++++++++++++++++---
src/hb-ot-map.cc | 24 ++++++++---------
src/hb-ot-shape-complex-arabic.cc | 4 +--
- src/hb-ot-shape-complex-indic.cc | 55
- +++++++++++++++++++-------------------
+ src/hb-ot-shape-complex-indic.cc | 55 +++++++++++++++++++-------------------
src/hb-ot-shape-complex-myanmar.cc | 4 +--
src/hb-ot-shape-complex-sea.cc | 2 +-
src/hb-ot-shape.cc | 6 +++--
[OTLayout] Port apply_lookup to skippy_iter
- src/hb-ot-layout-gsubgpos-private.hh | 50
- +++++++++++++++++++++++++-----------
+ src/hb-ot-layout-gsubgpos-private.hh | 50 +++++++++++++++++++++++++-----------
1 file changed, 35 insertions(+), 15 deletions(-)
commit dfca269f069dae2f99990dac24da15d316eccb9f
Date: Thu Feb 14 06:24:30 2013 -0500
[OTLayout] Minor fix for apply_lookup()
-
+
Should NOT change behavior, since first glyph is a match.
src/hb-ot-layout-gsubgpos-private.hh | 16 +++++++++-------
Date: Wed Feb 13 12:10:08 2013 -0500
[OTLayou] Unbreak backtrack matching
-
+
Was introduced by 28b9d502bb69a8045818d5f6113ded9c59a56bd7.
src/hb-ot-layout-gsubgpos-private.hh | 7 +++----
src/hb-ot-layout-gpos-table.hh | 21 ++++++++-----------
src/hb-ot-layout-gsub-table.hh | 7 +++----
- src/hb-ot-layout-gsubgpos-private.hh | 40
- ++++++++++++++----------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 40 ++++++++++++++----------------------
3 files changed, 26 insertions(+), 42 deletions(-)
commit 6b1e3502e23c110dd810f854ba021f83baab1548
Date: Wed Feb 13 11:02:54 2013 -0500
Remember ZWNJ
-
+
To be used in upcoming changes.
src/hb-ot-shape-private.hh | 11 +++++++++--
Date: Wed Feb 13 09:26:55 2013 -0500
[Indic] Improve base finding in final_reordering
-
+
Fixes 5 Malayalam failures!
-
- MALAYALAM: 1048016 out of 1048334 tests passed. 318 failed
- (0.0303338%)
+
+ MALAYALAM: 1048016 out of 1048334 tests passed. 318 failed (0.0303338%)
src/hb-ot-shape-complex-indic.cc | 7 +++++++
1 file changed, 7 insertions(+)
Add more dot-reph tests
- .../shaper-indic/indic/script-malayalam/misc/dot-reph.txt |
- 10 ++++++++++
+ .../shaper-indic/indic/script-malayalam/misc/dot-reph.txt | 10 ++++++++++
1 file changed, 10 insertions(+)
commit f22b7e77783fa2f44365e0fe6413c4474c07048d
Date: Wed Feb 13 07:32:46 2013 -0500
[Indic] Track base position when reordering things
-
- Ouch, how did things ever work without this?! The added test that
- has a
- dot-reph as well as a pre-base reordering Ra perfectly demonstrates
- the
- bug (tested with Nirmala font from Win8 for example). Testing
- suggests
+
+ Ouch, how did things ever work without this?! The added test that has a
+ dot-reph as well as a pre-base reordering Ra perfectly demonstrates the
+ bug (tested with Nirmala font from Win8 for example). Testing suggests
that Win8 shaper has the *exact* same bug / behavior that we used to
have. Odd.
- src/hb-ot-shape-complex-indic.cc |
- 6 ++++++
+ src/hb-ot-shape-complex-indic.cc | 6 ++++++
.../in-tree/shaper-indic/indic/script-malayalam/misc/dot-reph.txt | 1 +
2 files changed, 7 insertions(+)
Date: Wed Feb 13 05:59:06 2013 -0500
[SEA] Don't zero any mark advances
-
+
Keep the logic simple, easier to explain to font developers.
src/hb-ot-shape-complex-sea.cc | 2 +-
Date: Wed Feb 13 05:57:24 2013 -0500
Further adjust mark advance zeroing
-
+
This is a followup to 568000274c8edb5f41bc4f876ce21fcc8bdaeed8.
Looks like in the Latin shaper, Uniscribe zeroes all Unicode NSM
advances *after* GPOS, not before. Match that.
-
+
Can be tested using DejaVu Sans Mono, since that font has GPOS
rules to zero the mark advances on its own.
Date: Tue Feb 12 18:17:12 2013 -0500
[tests] Add tests for Devanagary Eyelash Ra
-
+
Currently broken with Sanskrit 2003 font.
- .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/MANIFEST |
- 1 +
- .../in-tree/shaper-indic/indic/script-devanagari/misc/eyelash.txt |
- 3 +++
+ .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/MANIFEST | 1 +
+ .../in-tree/shaper-indic/indic/script-devanagari/misc/eyelash.txt | 3 +++
2 files changed, 4 insertions(+)
commit 63e48bc33b68f940c351af623a55a4cf650db102
Date: Tue Feb 12 17:57:49 2013 -0500
[Indic] Apply 'blwf' before 'half'
-
+
This reverts 167b625d988b74572d6b2f646c285b666b650d49. It didn't
matter before, but that's going to change with next commit.
Date: Tue Feb 12 18:01:21 2013 -0500
[Indic] Apply 'vatu' before 'cjct'
-
+
This essentially reverts 1d6846db9ebf84561bb30a4e48c6c43184914099,
but that commit is from way back when. We should be better
following the spec order now again.
Date: Tue Feb 12 16:29:25 2013 -0500
Didn't mean to push this out
-
+
Ouch!
test/shaping/hb_test_tools.py | 1 -
[Myanmar] Use master Indic table for syllable data
- src/hb-ot-shape-complex-myanmar.cc | 144
- +++++++++----------------------------
+ src/hb-ot-shape-complex-myanmar.cc | 144 +++++++++----------------------------
test/shaping/hb_test_tools.py | 1 +
2 files changed, 35 insertions(+), 110 deletions(-)
Date: Tue Feb 12 15:35:32 2013 -0500
Improve checks for setmode()
-
+
As reported by Jonathan, OS X has setmode() that is something other
than what setmode() is on Win32. So, limit invocation to Windows
platforms only.
Date: Tue Feb 12 15:31:58 2013 -0500
Improve check for Windows platforms
-
+
Instead of checking for compiler, check for platform.
src/hb-atomic-private.hh | 2 +-
Date: Tue Feb 12 15:26:45 2013 -0500
Rename HB_OT_INDIC_OPTIONS env var to HB_OPTIONS
-
+
The Myanmar shaper now respects the uniscribe-bug-compatibility
option too.
src/hb-common.cc | 20 ++++++++++++--
- src/hb-ot-shape-complex-indic.cc | 53
- ++++----------------------------------
+ src/hb-ot-shape-complex-indic.cc | 53 ++++----------------------------------
src/hb-ot-shape-complex-myanmar.cc | 7 ++---
src/hb-private.hh | 29 +++++++++++++++++++++
4 files changed, 54 insertions(+), 55 deletions(-)
Date: Tue Feb 12 12:14:10 2013 -0500
Add South-East Asian shaper
-
+
Handles Tai Tham, Cham, and New Tai Lue for now.
src/Makefile.am | 12 +-
src/hb-ot-shape-complex-myanmar.cc | 2 +-
src/hb-ot-shape-complex-private.hh | 28 +-
src/hb-ot-shape-complex-sea-machine.rl | 102 ++++++
- src/hb-ot-shape-complex-sea.cc | 400
- +++++++++++++++++++++
+ src/hb-ot-shape-complex-sea.cc | 400 +++++++++++++++++++++
test/shaping/texts/in-tree/MANIFEST | 1 +
.../in-tree/shaper-indic/south-east-asian/MANIFEST | 1 -
test/shaping/texts/in-tree/shaper-myanmar/MANIFEST | 1 +
Minor test reshufflings
- test/shaping/texts/in-tree/MANIFEST
- | 1 +
- .../{shaper-indic/south-asian/script-tibetan => script-default}/MANIFEST
- | 0
- .../south-asian/script-tibetan => script-default}/misc/MANIFEST
- | 0
- .../south-asian/script-tibetan => script-default}/misc/misc.txt
- | 0
- test/shaping/texts/in-tree/shaper-indic/MANIFEST
- | 1 -
- test/shaping/texts/in-tree/shaper-indic/south-asian/MANIFEST
- | 1 -
- test/shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST
- | 1 -
- .../texts/in-tree/shaper-indic/south-east-asian/script-thai/MANIFEST
- | 1 -
- .../in-tree/shaper-indic/south-east-asian/script-thai/misc/MANIFEST
- | 0
+ test/shaping/texts/in-tree/MANIFEST | 1 +
+ .../{shaper-indic/south-asian/script-tibetan => script-default}/MANIFEST | 0
+ .../south-asian/script-tibetan => script-default}/misc/MANIFEST | 0
+ .../south-asian/script-tibetan => script-default}/misc/misc.txt | 0
+ test/shaping/texts/in-tree/shaper-indic/MANIFEST | 1 -
+ test/shaping/texts/in-tree/shaper-indic/south-asian/MANIFEST | 1 -
+ test/shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST | 1 -
+ .../texts/in-tree/shaper-indic/south-east-asian/script-thai/MANIFEST | 1 -
+ .../in-tree/shaper-indic/south-east-asian/script-thai/misc/MANIFEST | 0
9 files changed, 1 insertion(+), 4 deletions(-)
commit 5676d5d52784e16068ae483103d59111a8081854
[Indic] Make sure New Tai Lue works!
- src/hb-ot-shape-complex-private.hh | 12
- ++++++++----
+ src/hb-ot-shape-complex-private.hh | 12 ++++++++----
.../texts/in-tree/shaper-indic/south-east-asian/MANIFEST | 1 +
.../south-east-asian/script-new-tai-lue/MANIFEST | 1 +
.../south-east-asian/script-new-tai-lue/misc/MANIFEST | 1 +
Date: Tue Feb 12 09:44:57 2013 -0500
Adjust mark advance-width zeroing logic for Myanmar
-
+
Before, we were zeroing advance width of attached marks for
non-Indic scripts, and not doing it for Indic.
-
+
We have now three different behaviors, which seem to better
reflect what Uniscribe is doing:
-
+
- For Indic, no explicit zeroing happens whatsoever, which
is the same as before,
-
+
- For Myanmar, zero advance width of glyphs marked as marks
*in GDEF*, and do that *before* applying GPOS. This seems
to be what the new Win8 Myanmar shaper does,
-
+
- For everything else, zero advance width of glyphs that are
from General_Category=Mn Unicode characters, and do so
before applying GPOS. This seems to be what Uniscribe does
for Latin at least.
-
+
With these changes, positioning of all tests matches for Myanmar,
except for the glitch in Uniscribe not applying 'mark'. See preivous
commit.
Date: Mon Feb 11 16:16:16 2013 -0500
[Myanmar] Fix handling of Punctuation and Symbol types
-
+
Testing with "clusters" now on par with testing without them. 15
failures both.
Date: Mon Feb 11 14:27:02 2013 -0500
[Myanmar] Prevent reordering between Asat and Dot below
-
+
Implemented as a hack for now. Myanmar failures down from 23 to 15.
-
+
MYANMAR: 1123868 out of 1123883 tests passed. 15 failed (0.00133466%)
-
- The remaining 15 cases are all where the syllable is wrong according
- to
- the OpenType spec. We insert dottedcircle. Uniscribe fails to
- do that,
+
+ The remaining 15 cases are all where the syllable is wrong according to
+ the OpenType spec. We insert dottedcircle. Uniscribe fails to do that,
but it also fails to reorder the prebase-reordering medial-Ra. So it
gets it wrong.
Shuffle test data around
- test/shaping/texts/in-tree/MANIFEST
- | 1 +
- test/shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST
- | 1 -
- .../in-tree/shaper-indic/south-east-asian/script-thai/misc/MANIFEST
- | 1 -
- .../south-east-asian => shaper-myanmar}/script-myanmar/MANIFEST
- | 0
- .../south-east-asian => shaper-myanmar}/script-myanmar/misc/MANIFEST
- | 0
- .../south-east-asian => shaper-myanmar}/script-myanmar/misc/misc.txt
- | 0
- .../south-east-asian => shaper-myanmar}/script-myanmar/misc/utn11.txt
- | 0
- test/shaping/texts/in-tree/shaper-thai/script-thai/misc/MANIFEST
- | 1 +
- .../south-east-asian => shaper-thai}/script-thai/misc/misc.txt
- | 0
+ test/shaping/texts/in-tree/MANIFEST | 1 +
+ test/shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST | 1 -
+ .../in-tree/shaper-indic/south-east-asian/script-thai/misc/MANIFEST | 1 -
+ .../south-east-asian => shaper-myanmar}/script-myanmar/MANIFEST | 0
+ .../south-east-asian => shaper-myanmar}/script-myanmar/misc/MANIFEST | 0
+ .../south-east-asian => shaper-myanmar}/script-myanmar/misc/misc.txt | 0
+ .../south-east-asian => shaper-myanmar}/script-myanmar/misc/utn11.txt | 0
+ test/shaping/texts/in-tree/shaper-thai/script-thai/misc/MANIFEST | 1 +
+ .../south-east-asian => shaper-thai}/script-thai/misc/misc.txt | 0
9 files changed, 2 insertions(+), 2 deletions(-)
commit 98628cac9f733f2674d6409954cddb7d0634c233
Date: Mon Feb 11 13:36:23 2013 -0500
Add Win8-style Myanmar shaper
-
+
Myanmar failures down from 51% to 0.00204648%!
-
+
MYANMAR: 1123860 out of 1123883 tests passed. 23 failed (0.00204648%)
src/Makefile.am | 14 +-
src/hb-ot-shape-complex-indic.cc | 2 -
src/hb-ot-shape-complex-myanmar-machine.rl | 127 ++++++
- src/hb-ot-shape-complex-myanmar.cc | 599
- +++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-myanmar.cc | 599 +++++++++++++++++++++++++++++
src/hb-ot-shape-complex-private.hh | 5 +-
5 files changed, 740 insertions(+), 7 deletions(-)
Date: Mon Feb 11 13:27:17 2013 -0500
[OTLayout] Respect lookup-flags skipping over non-mark glyphs
-
+
Before, when matching ligatures, we never skipping over base / liga
glyphs even if that was what the LookupFlags asked for.
-
- Fixed now. We carefully reviewed all instances of this, and
- tested with
- Amiri as well as some Indic scripts, and are confident that this
- should
+
+ Fixed now. We carefully reviewed all instances of this, and tested with
+ Amiri as well as some Indic scripts, and are confident that this should
NOT break anyone's fonts. It's also how Uniscribe does it, from what
we can tell.
Date: Mon Feb 11 13:14:15 2013 -0500
[OTLayout] s/mark_skipping/skipping/
-
+
In aticipation of upcoming changes.
src/hb-ot-layout-gpos-table.hh | 12 ++++++------
Date: Mon Feb 11 06:58:27 2013 -0500
[Indic] Fix bug introduced in 8b217f5ac54aa0dcbba2dd6d59aa89dde33e56c2
-
+
Was breaking reph formation logic when the Ra is the only consonant.
Devanagari regression fixed. Down to 57 failures again. Ouch.
Date: Mon Feb 11 06:50:17 2013 -0500
Improve normalization heuristic
-
- Before, for most scripts, we were not trying to recompose two
- characters
+
+ Before, for most scripts, we were not trying to recompose two characters
if the second one had ccc=0. That fails for Myanmar where U+1026
decomposes to U+1025,U+102E, both of which have ccc=0. However, we do
want to try to recompose those. We now check whether the second is a
mark, using general category instead.
-
+
At the same time, remove optimization that was conflicting with this.
-
+
[Let the Ngapi hackfest begin!]
src/hb-ot-shape-normalize.cc | 39 +++++++++++++--------------------------
Date: Wed Feb 6 23:45:27 2013 -0500
Revert "Include config.h.in in tree"
-
+
This reverts commit 01013a0f5c58d5d54a37e5b4d6692e0bbd4baf80.
-
+
Conflicts:
config.h.in
-
+
Same argument as previous commit.
Makefile.am | 1 +
- config.h.in | 153
- ------------------------------------------------------------
+ config.h.in | 153 ------------------------------------------------------------
2 files changed, 1 insertion(+), 153 deletions(-)
commit adff3778155facb7b149ce66ab7d573368e048de
Date: Wed Feb 6 23:43:27 2013 -0500
Revert "[Indic] Import ragel-generated Indic machine in git"
-
+
This reverts commit fab7a71f110ed646745d54b23284537c50058c21.
-
+
Conflicts:
src/hb-ot-shape-complex-indic-machine.hh
-
- Keeping that generated file in-tree causes problems with processes
- like
- tinderbox that automatically fetch and build harfbuzz. It's harder
- to
- bootstrap harfbuzz now (as was previously), but I'm willing to
- give this
+
+ Keeping that generated file in-tree causes problems with processes like
+ tinderbox that automatically fetch and build harfbuzz. It's harder to
+ bootstrap harfbuzz now (as was previously), but I'm willing to give this
another chance and see how it goes.
autogen.sh | 6 +
src/Makefile.am | 1 +
- src/hb-ot-shape-complex-indic-machine.hh | 1443
- ------------------------------
+ src/hb-ot-shape-complex-indic-machine.hh | 1443 ------------------------------
3 files changed, 7 insertions(+), 1443 deletions(-)
commit 5898fa94d12b19686f649104bd6efe8daa1ba0c9
Date: Wed Feb 6 15:29:07 2013 -0500
Don't use $(ENV)
-
+
As reported by Peter Breitenlohner:
-
- I think this is a very bad idea because ENV is used to specify
- a startup
+
+ I think this is a very bad idea because ENV is used to specify a startup
file to be read by some/all shells.
test/api/Makefile.am | 2 +-
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Mon Feb 4 23:24:16 2013 -0500
- Bug 59637 - check-exported-symbols.sh & check-internal-symbols.sh
- fail on mips/mipsel
+ Bug 59637 - check-exported-symbols.sh & check-internal-symbols.sh fail on mips/mipsel
src/check-symbols.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Merge check-internal-symbols.sh and check-exported-symbols.sh
src/Makefile.am | 3 +-
- src/check-internal-symbols.sh | 34
- ----------------------
+ src/check-internal-symbols.sh | 34 ----------------------
...{check-exported-symbols.sh => check-symbols.sh} | 16 ++++++++--
3 files changed, 14 insertions(+), 39 deletions(-)
Date: Thu Jan 31 19:27:36 2013 -0500
Really fix setmode this time
-
+
Thanks to Khaled for spotting it.
util/options.cc | 2 +-
Date: Thu Jan 31 18:37:10 2013 -0500
Fixup previous commit
-
- Now, it looks like this breaks Cygwin again. Have to figure out
- what's
+
+ Now, it looks like this breaks Cygwin again. Have to figure out what's
going on.
util/options.cc | 4 ++--
Date: Thu Jan 31 18:18:05 2013 -0500
Use setmode() instead of _setmode()
-
+
Looks like Cygwin / MSVC declare it that way, and it still works on
MinGW32 cross.
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue Jan 29 22:45:00 2013 -0500
- Bug 60053 - hb-common.cc:181:6: warning: ‘void free_langs()’
- defined but not used
+ Bug 60053 - hb-common.cc:181:6: warning: ‘void free_langs()’ defined but not used
src/hb-common.cc | 2 +-
src/hb-ft.cc | 2 +-
Date: Mon Jan 14 00:32:12 2013 -0600
Revert "Minor"
-
+
This reverts commit 0a492357016bc9a614d2a726f2006c10af68ca58.
-
+
Enables code on more compilers.
src/hb-warning.cc | 33 ++++++++++++++++++++++++++++++---
Date: Thu Jan 10 01:17:59 2013 -0600
Add atomic ops for Solaris
-
+
Based on fontconfig patch from Raimund Steger.
config.h.in | 5 ++++-
Date: Thu Jan 10 00:03:36 2013 -0600
Fix crasher during multi-thread shaper data creation
-
+
Sample crash:
-
+
0 _hb_graphite2_shaper_face_data_destroy (data=0xffffffffffffffff)
at ../../src/hb-graphite2.cc:129
1 0x00007ffff4271d7d in hb_graphite2_shaper_face_data_ensure (
face=<optimized out>) at ../../src/hb-shaper-list.hh:35
- 2 hb_shape_plan_plan (shaper_list=<optimized out>,
- num_user_features=0,
- user_features=0x0, shape_plan=0xf7b490) at
- ../../src/hb-shaper-list.hh:35
+ 2 hb_shape_plan_plan (shaper_list=<optimized out>, num_user_features=0,
+ user_features=0x0, shape_plan=0xf7b490) at ../../src/hb-shaper-list.hh:35
3 hb_shape_plan_create (face=<optimized out>, props=<optimized out>,
- user_features=0x0, num_user_features=0, shaper_list=<optimized
- out>)
+ user_features=0x0, num_user_features=0, shaper_list=<optimized out>)
at ../../src/hb-shape-plan.cc:108
4 0x00007ffff4272c93 in hb_shape_plan_create_cached (face=0x10cf2b0,
- props=0x11980d8, user_features=0x0, num_user_features=<optimized
- out>,
+ props=0x11980d8, user_features=0x0, num_user_features=<optimized out>,
shaper_list=0x0) at ../../src/hb-shape-plan.cc:283
src/hb-shaper-private.hh | 5 ++++-
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue Jan 8 18:09:46 2013 -0600
- [Indic] In old-spec shaping, don't move viramas around if seq ends
- with one
-
+ [Indic] In old-spec shaping, don't move viramas around if seq ends with one
+
For example: u0c9a u0ccd u0c9a u0ccd with Lohit. See:
-
+
https://bugs.freedesktop.org/show_bug.cgi?id=59118
- src/hb-ot-shape-complex-indic.cc |
- 7 ++++---
+ src/hb-ot-shape-complex-indic.cc | 7 ++++---
.../texts/in-tree/shaper-indic/indic/script-kannada/misc/misc.txt | 1 +
2 files changed, 5 insertions(+), 3 deletions(-)
Date: Tue Jan 8 16:15:46 2013 -0600
[GPOS] If an Anchor offset is NULL, return false
-
- If in a MarkPos table, a base has no anchor for a particular mark
- class,
+
+ If in a MarkPos table, a base has no anchor for a particular mark class,
return NULL such that the subsequent subtables get a chance at it.
-
+
Test case:
hb-shape ./EBGaramond12-Regular.otf ἂ --features="ss20","smcp"
Date: Mon Jan 7 16:46:37 2013 -0600
Rename hb_buffer_clear() to hb_buffer_clear_contents()
-
+
The previous name was clashing with harfbuzz.old. There are systems
that need to link both...
-
+
Clash-free now again.
src/hb-buffer.cc | 2 +-
Date: Fri Jan 4 01:25:27 2013 -0600
Remove a few unnecessary const's
-
+
Apparently helps with MSVC compilation.
src/hb-ot-layout-gsubgpos-private.hh | 8 ++++----
Date: Thu Jan 3 00:07:16 2013 -0600
[OTLayout] Always collect default language system in collect_lookups
-
+
Not sure if this is the most desired behavior. It's the most easily
defined though.
Date: Thu Jan 3 00:04:40 2013 -0600
[OTLayout] Fix feature iteration in collect_lookups
-
+
Previous logic was just wrong.
src/hb-ot-layout.cc | 46 ++++++++++++++++++++++++++++++++--------------
[OTLayout] Whitespace
- src/hb-ot-layout.cc | 82
- ++++++++++++++++++++++++++++++++++++++++++++---------
+ src/hb-ot-layout.cc | 82 ++++++++++++++++++++++++++++++++++++++++++++---------
1 file changed, 68 insertions(+), 14 deletions(-)
commit d37ae38047bee12639741af9bb083b857fab950d
Date: Wed Jan 2 23:36:37 2013 -0600
[OTLayout] Fix various introspection issues with ClassDef's
-
+
As reported by Jonathan Kew.
src/hb-ot-layout-gsubgpos-private.hh | 19 +++++++++++++++----
Date: Wed Jan 2 23:22:54 2013 -0600
[tests] Finish test-set.c
-
+
All passing now.
- test/api/test-set.c | 373
- +++++++++++++++++++++-------------------------------
+ test/api/test-set.c | 373 +++++++++++++++++++++-------------------------------
1 file changed, 149 insertions(+), 224 deletions(-)
commit 7b1b720a8da69b68b775ce17104a40d55401b7ef
Date: Wed Jan 2 23:02:59 2013 -0600
Protect sets in-error from further modication
-
+
Fixes test-set.c
src/hb-set-private.hh | 13 +++++++++++++
Date: Wed Jan 2 22:50:36 2013 -0600
[tests] Start adding tests for hb-set.h
-
+
Fails now. Fixing.
TODO | 2 -
src/hb-set.cc | 9 +-
src/hb-set.h | 3 +
test/api/Makefile.am | 1 +
- test/api/test-set.c | 312
- ++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/api/test-set.c | 312 ++++++++++++++++++++++++++++++++++++++++++++++++++
6 files changed, 330 insertions(+), 3 deletions(-)
commit b9d28f696c433b94c5ffbad8d7c87cf3acff4056
[Indic] Insert dottedcircle after a lone Malayalam dot-reph
- src/hb-ot-shape-complex-indic-machine.hh | 1617
- ++++++++++++++++--------------
+ src/hb-ot-shape-complex-indic-machine.hh | 1617 ++++++++++++++++--------------
src/hb-ot-shape-complex-indic-machine.rl | 2 +-
src/hb-ot-shape-complex-indic.cc | 13 +-
3 files changed, 881 insertions(+), 751 deletions(-)
Date: Fri Dec 21 16:01:52 2012 -0500
[util] Default to "text" output format in hb-shape
-
+
If you say:
-
+
hb-shape font.ttf text --output-file out.txt
-
+
This was previously failing:
-
+
Unknown output format `txt'; supported formats are: TEXT / JSON
-
+
Now we simply fallback to TEXT if no explicit format was requested.
util/hb-shape.cc | 11 ++++++++---
Date: Fri Dec 21 15:48:32 2012 -0500
[Indic] Reorder Malayalam dot-reph to after base
-
+
Test sequence is simple: U+0D4E,U+0D15. The doth-reph should be
reordered to after the Ka.
-
+
https://bugzilla.redhat.com/show_bug.cgi?id=799565
- src/hb-ot-shape-complex-indic.cc | 13
- ++++++++++---
+ src/hb-ot-shape-complex-indic.cc | 13 ++++++++++---
.../shaper-indic/indic/script-malayalam/misc/MANIFEST | 1 +
.../shaper-indic/indic/script-malayalam/misc/dot-reph.txt | 1 +
3 files changed, 12 insertions(+), 3 deletions(-)
Add Android.mk
- Android.mk | 74
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Android.mk | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Makefile.am | 1 +
2 files changed, 75 insertions(+)
Date: Tue Dec 18 20:39:40 2012 -0500
Use C++ linker if ICU is disabled
-
+
Bug 54948 - Undefined symbols: "operator delete(void*)" "operator
new(unsigned long)" "___cxa_pure_virtual"
Date: Mon Dec 17 23:21:05 2012 -0500
[OTLayout] Fix 'size' featureParams implementation
-
+
Looks at alternate location now.
- src/hb-ot-layout-common-private.hh | 133
- ++++++++++++++++++++++++++++---------
+ src/hb-ot-layout-common-private.hh | 133 ++++++++++++++++++++++++++++---------
src/hb-ot-layout.cc | 93 ++++----------------------
2 files changed, 117 insertions(+), 109 deletions(-)
Date: Fri Dec 14 17:48:23 2012 -0500
[OTLayout] Wire tag and list start all the way to Feature
-
+
To fix FeatureParam issues. No actual fix yet, just plumbing.
src/hb-ot-layout-common-private.hh | 16 ++++++++++++----
Date: Wed Dec 12 11:38:49 2012 -0500
[OTLayout] More 'size' feature sanity checking
-
+
We still don't look for the old incorrect place of the featureParams.
I'll wait till someone actually complains about it...
- src/hb-ot-layout.cc | 99
- ++++++++++++++++++++++++++++++++++++++++++-----------
+ src/hb-ot-layout.cc | 99 ++++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 79 insertions(+), 20 deletions(-)
commit 0bae50a36f3022f9bb6b2c001c191eeaaa4ef954
Date: Tue Dec 11 16:01:31 2012 -0500
[OTLayout] Add FeatureParamsCharacterVariants struct
-
+
No API yet.
- src/hb-ot-layout-common-private.hh | 52
- +++++++++++++++++++++++++++++++++++---
+ src/hb-ot-layout-common-private.hh | 52 +++++++++++++++++++++++++++++++++++---
1 file changed, 49 insertions(+), 3 deletions(-)
commit bd61bc13ea8ff350ada5449b2cfeb612e66ecafa
Date: Tue Dec 11 14:17:01 2012 -0500
[OTLayout] Change hb_ot_layout_get_params() API
-
+
And add implementation for StylisticSet UINameID. No API yet.
- src/hb-ot-layout-common-private.hh | 85
- ++++++++++++++++++++++++++++++++++++--
+ src/hb-ot-layout-common-private.hh | 85 ++++++++++++++++++++++++++++++++++++--
src/hb-ot-layout.cc | 28 +++++++++----
src/hb-ot-layout.h | 8 +++-
src/test-size-params.cc | 9 +++-
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Mon Dec 10 17:44:22 2012 -0500
- [uniscribe] Enable Uniscribe backend only if it has
- ScriptShapeOpenType()
-
+ [uniscribe] Enable Uniscribe backend only if it has ScriptShapeOpenType()
+
Bug 55494 - ScriptItemizeOpenType doesn't exists under Windows XP
config.h.in | 6 ------
Date: Mon Dec 10 16:24:24 2012 -0500
[coretext] Better test for CoreText
-
+
Instead of checking for ApplicationServices.h, which is present in all
versions of MacOSX, check for CTFontRef, a CoreText basic type.
Date: Mon Dec 10 15:25:21 2012 -0500
Fix atomic ops on iOS
-
+
Patch from John Ralls.
src/hb-atomic-private.hh | 8 +++++---
Date: Mon Dec 10 00:57:00 2012 -0500
Work around missing OSAtomicCompareAndSwapPtrBarrier() on OS X 10.4
-
+
Not sure how to handle iOS.
src/hb-atomic-private.hh | 11 +++++++++++
Date: Sun Dec 9 19:39:40 2012 -0500
[coretext] Fixed typo
-
+
Oops. Thanks Khaled for catching this.
src/hb-coretext.cc | 2 +-
Date: Sun Dec 9 18:47:36 2012 -0500
[coretext] Add hb_coretext_face_get_cg_font()
-
+
Not sure if it's useful, but it was missing.
src/hb-coretext.cc | 20 ++++++++++++++------
Date: Sun Dec 9 18:47:09 2012 -0500
[coretext] Remove hack around GlyphID
-
+
We not namespace our types, so the hack is not needed anymore.
src/hb-coretext.cc | 4 ----
Date: Sun Dec 9 18:45:47 2012 -0500
[graphite2] "Update to new API"
-
+
Part of patch from Martin Hosken. I believe he knows what he's doing
:).
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Sun Dec 9 18:44:41 2012 -0500
- [graphite2] Add hb_graphite2_face_get_gr_face and
- hb_graphite2_font_get_gr_font
-
+ [graphite2] Add hb_graphite2_face_get_gr_face and hb_graphite2_font_get_gr_font
+
Based on patch from Martin Hosken. I believe it returns NULL if the
font doesn't have graphite tables, but have not tested.
Date: Sun Dec 9 18:43:03 2012 -0500
[graphite2] Preload all tables
-
+
Part of patch from Martin Hosken.
src/hb-graphite2.cc | 2 +-
Date: Sun Dec 9 18:20:19 2012 -0500
Remove excess return
-
+
Oops!
src/hb-uniscribe.cc | 1 -
Date: Sat Dec 8 19:28:41 2012 -0500
Update OT language tags
-
+
Patch from Roozbeh Pournader.
- src/hb-ot-tag.cc | 212
- +++++++++++++++++++++++++++++--------------------------
+ src/hb-ot-tag.cc | 212 +++++++++++++++++++++++++++++--------------------------
1 file changed, 110 insertions(+), 102 deletions(-)
commit aba38173c6b464c2884b73ef6cd4577d4efcebbc
Date: Wed Dec 5 19:42:10 2012 -0500
Fix test with gold linker
-
+
Bug 57633 - Symbol tests should ignore __bss_start, _edata, _end
src/check-exported-symbols.sh | 2 +-
src/hb-ot-shape-complex-thai.cc | 2 +-
src/hb-ot-shape-fallback.cc | 4 ++--
src/hb-private.hh | 8 ++++----
- src/hb-ucdn.cc | 27
- +++++++++++++++------------
+ src/hb-ucdn.cc | 27 +++++++++++++++------------
src/hb-utf-private.hh | 4 ++--
16 files changed, 61 insertions(+), 60 deletions(-)
Date: Wed Dec 5 16:49:47 2012 -0500
Rename VOID and void_t to have HarfBuzz prefix
-
+
Fixes build on Windows. Ouch!
src/hb-ot-layout-gsubgpos-private.hh | 22 +++++++++++-----------
Date: Tue Dec 4 17:08:41 2012 -0500
Minor
-
- Use pointers instead of references, in preparation for upcoming
- change.
+
+ Use pointers instead of references, in preparation for upcoming change.
src/hb-ot-layout-gpos-table.hh | 28 +++++++++++++-------------
src/hb-ot-layout-gsub-table.hh | 30 ++++++++++++++--------------
- src/hb-ot-layout-gsubgpos-private.hh | 38
- ++++++++++++++++++------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 38 ++++++++++++++++++------------------
3 files changed, 48 insertions(+), 48 deletions(-)
commit 1bcfa06d1173f219809542a7380ce77f1c907bec
Date: Tue Dec 4 00:35:54 2012 +0200
Move object mutext into the user-data array
-
+
We are not using it for anything lse it seems.
src/hb-common.cc | 12 ++----------
Date: Sun Dec 2 19:14:29 2012 +0200
"Update" to Unicode 6.2.0 tables
-
+
Nothing changed...
src/hb-ot-shape-complex-arabic-table.hh | 4 ++--
test/shaping/texts/in-tree/shaper-arabic/script-arabic/MANIFEST | 1 +
.../in-tree/shaper-arabic/script-arabic/language-persian/MANIFEST | 1 +
- .../shaper-arabic/script-arabic/language-persian/mehran.txt |
- 8 ++++++++
+ .../shaper-arabic/script-arabic/language-persian/mehran.txt | 8 ++++++++
3 files changed, 10 insertions(+)
commit 0f3f5299047e3cfc4d1202fee83d484b871279ad
Date: Fri Nov 30 09:06:59 2012 +0200
Add test-size-params
-
+
Eventually this will become part of a yet-to-be-written hb-ot cmdline
tool.
src/Makefile.am | 10 ++++-
- src/test-size-params.cc | 98
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/test-size-params.cc | 98 +++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 107 insertions(+), 1 deletion(-)
commit 8465a05a89742295d4b009a9b4442eb0a899fd80
Date: Fri Nov 30 08:46:43 2012 +0200
Fix hb_buffer_guess_segment_properties() for empty buffer
-
+
Was causing assertion failure in shape_plan().
src/hb-buffer.cc | 4 ++--
Date: Fri Nov 30 08:14:20 2012 +0200
[OTLayout] Look for any 'size' feature, not only in DFLT script
-
+
The old code doesn't work with all fonts, as Khaled has reported.
src/hb-ot-layout.cc | 14 +++++---------
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Fri Nov 30 08:10:26 2012 +0200
- [OTLayout] Rename hb_ot_layout_position_get_size() to
- hb_ot_layout_get_size_params()
+ [OTLayout] Rename hb_ot_layout_position_get_size() to hb_ot_layout_get_size_params()
src/hb-ot-layout.cc | 4 ++--
src/hb-ot-layout.h | 7 ++++---
Date: Fri Nov 30 08:07:06 2012 +0200
[OTLayout] Return correct value from recursion
-
- Commit 4c4e8f0e754b79ac6190d21878eaaf0b790c7579 broke contextual
- lookups
+
+ Commit 4c4e8f0e754b79ac6190d21878eaaf0b790c7579 broke contextual lookups
by making the recurse() function always return false.
-
+
Reported by Khaled. Test case: لا in Amiri.
src/hb-ot-layout-gsubgpos-private.hh | 9 ++++-----
[OTLayout] Implement 'size' feature
- src/hb-ot-layout-common-private.hh | 36
- ++++++++++++++++++++++++++++++++++--
+ src/hb-ot-layout-common-private.hh | 36 ++++++++++++++++++++++++++++++++++--
src/hb-ot-layout.cc | 31 +++++++++++++++++++++++++++++++
src/hb-ot-layout.h | 5 +++++
3 files changed, 70 insertions(+), 2 deletions(-)
Date: Sat Nov 24 02:31:02 2012 -0500
[OTLayout] Implement hb_ot_layout_collect_lookups()
-
+
Untested.
- src/hb-ot-layout.cc | 97
- +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout.cc | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-layout.h | 4 +--
2 files changed, 98 insertions(+), 3 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Sat Nov 24 02:05:52 2012 -0500
- [OTLayout] Only collect output glyphs during recursion in
- collect_glyphs()
+ [OTLayout] Only collect output glyphs during recursion in collect_glyphs()
src/hb-ot-layout-gsubgpos-private.hh | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Date: Sat Nov 24 01:55:34 2012 -0500
[OTLayout] Implement ChainContext collect_glyphs()
-
+
All of collect_glyphs() complete and untested now.
- src/hb-ot-layout-gsubgpos-private.hh | 103
- ++++++++++++++++++++++++++++++++---
+ src/hb-ot-layout-gsubgpos-private.hh | 103 ++++++++++++++++++++++++++++++++---
1 file changed, 96 insertions(+), 7 deletions(-)
commit cdd756b9f40665a201f5c4e65a87b9a27c390601
[OTLayout] Implement GPOS collect_glyphs()
- src/hb-ot-layout-gpos-table.hh | 95
- +++++++++++++++++++++++++++++++++++++++++-
+ src/hb-ot-layout-gpos-table.hh | 95 +++++++++++++++++++++++++++++++++++++++++-
src/hb-ot-layout.cc | 9 ++--
2 files changed, 99 insertions(+), 5 deletions(-)
[OTLayout] Implement Context::collect_glyphs()
- src/hb-ot-layout-gsubgpos-private.hh | 122
- +++++++++++++++++++++++++++++++----
+ src/hb-ot-layout-gsubgpos-private.hh | 122 +++++++++++++++++++++++++++++++----
1 file changed, 111 insertions(+), 11 deletions(-)
commit 26514d51b6669f092d9ccb7523443a5ece74169a
src/hb-ot-layout-gpos-table.hh | 6 ++---
src/hb-ot-layout-gsub-table.hh | 32 +++++++++++++++-------
- src/hb-ot-layout-gsubgpos-private.hh | 51
- ++++++++++++++++++++++++++++++++----
+ src/hb-ot-layout-gsubgpos-private.hh | 51 ++++++++++++++++++++++++++++++++----
3 files changed, 71 insertions(+), 18 deletions(-)
commit c6fb843f2a1c26322c6f4c85d1589f01a9e7a2ef
[OTLayout] Add process() tracing
- src/hb-ot-layout-gpos-table.hh | 60
- ++++++++++++++++++++----------------
+ src/hb-ot-layout-gpos-table.hh | 60 ++++++++++++++++++++----------------
src/hb-ot-layout-gsub-table.hh | 51 +++++++++++++++++-------------
src/hb-ot-layout-gsubgpos-private.hh | 17 +++++-----
3 files changed, 72 insertions(+), 56 deletions(-)
[OTLayout] Start adding process() tracing
- src/hb-ot-layout-gsubgpos-private.hh | 44
- +++++++++++++++++++++++++++---------
+ src/hb-ot-layout-gsubgpos-private.hh | 44 +++++++++++++++++++++++++++---------
src/hb-private.hh | 6 +++--
2 files changed, 37 insertions(+), 13 deletions(-)
src/hb-ot-layout-common-private.hh | 36 +++++------
src/hb-ot-layout-gdef-table.hh | 20 +++---
src/hb-ot-layout-gpos-table.hh | 80 +++++++++++------------
- src/hb-ot-layout-gsub-table.hh | 122
- +++++++++++++++++------------------
+ src/hb-ot-layout-gsub-table.hh | 122 +++++++++++++++++------------------
src/hb-ot-layout-gsubgpos-private.hh | 100 ++++++++++++++--------------
src/hb-ot-maxp-table.hh | 2 +-
src/hb-ot-name-table.hh | 6 +-
[OTLayout] Start unbreaking tracing
- src/hb-open-type-private.hh | 37
- +++++++++++++++++++++---------------
- src/hb-ot-layout-gsubgpos-private.hh | 37
- +++++++++++++++++++++++++-----------
+ src/hb-open-type-private.hh | 37 +++++++++++++++++++++---------------
+ src/hb-ot-layout-gsubgpos-private.hh | 37 +++++++++++++++++++++++++-----------
src/hb-private.hh | 30 +++++++++++++++++++----------
3 files changed, 68 insertions(+), 36 deletions(-)
Move code around
- src/hb-ot-layout-gsubgpos-private.hh | 44
- ++++++++++++++++++------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 44 ++++++++++++++++++------------------
1 file changed, 22 insertions(+), 22 deletions(-)
commit ec35a72a44301934b8f123ab2833f59d8c875a09
[OTLayout] Port apply() operator to process() template
- src/hb-ot-layout-gpos-table.hh | 117
- ++++-------------------------------
- src/hb-ot-layout-gsub-table.hh | 108
- +++-----------------------------
+ src/hb-ot-layout-gpos-table.hh | 117 ++++-------------------------------
+ src/hb-ot-layout-gsub-table.hh | 108 +++-----------------------------
src/hb-ot-layout-gsubgpos-private.hh | 99 +++++++++++++----------------
src/hb-ot-layout.cc | 2 +-
4 files changed, 65 insertions(+), 261 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Nov 22 14:38:10 2012 -0500
- [OTLayout] Port would_apply() and get_coverage() to process()
- templates
+ [OTLayout] Port would_apply() and get_coverage() to process() templates
- src/hb-ot-layout-gpos-table.hh | 175
- +++++++++++--------------------
- src/hb-ot-layout-gsub-table.hh | 198
- ++++++++++++-----------------------
+ src/hb-ot-layout-gpos-table.hh | 175 +++++++++++--------------------
+ src/hb-ot-layout-gsub-table.hh | 198 ++++++++++++-----------------------
src/hb-ot-layout-gsubgpos-private.hh | 76 +++++---------
3 files changed, 156 insertions(+), 293 deletions(-)
[OTLayout] Port closure() to process() template
- src/hb-ot-layout-gsub-table.hh | 297
- ++++++++---------------------------
+ src/hb-ot-layout-gsub-table.hh | 297 ++++++++---------------------------
src/hb-ot-layout-gsubgpos-private.hh | 209 ++++++++++++------------
src/hb-ot-layout.cc | 10 +-
3 files changed, 171 insertions(+), 345 deletions(-)
0.9.7
- NEWS | 86
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ NEWS | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
configure.ac | 2 +-
2 files changed, 87 insertions(+), 1 deletion(-)
Date: Wed Nov 21 01:04:15 2012 -0500
[Indic] One more try at unbreaking Khmer fonts
-
+
See comments and discussion on the list.
src/hb-ot-shape-complex-private.hh | 16 ++++++++++------
Date: Fri Nov 16 19:07:06 2012 -0800
Start implementing collect_glyphs() operation
-
+
Not functional yet.
- src/hb-ot-layout-gsub-table.hh | 185
- +++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout-gsub-table.hh | 185 +++++++++++++++++++++++++++++++++++
src/hb-ot-layout-gsubgpos-private.hh | 57 +++++++++++
src/hb-ot-layout.cc | 29 ++++++
src/hb-ot-layout.h | 4 +-
src/hb-ot-layout-gsubgpos-private.hh | 2 +-
src/hb-ot-maxp-table.hh | 2 +-
src/hb-ot-name-table.hh | 2 +-
- src/hb-ot-shape-complex-default.cc | 109
- ++++++++++++++++++-----------------
+ src/hb-ot-shape-complex-default.cc | 109 ++++++++++++++++++-----------------
src/hb-tt-font.cc | 2 +-
17 files changed, 87 insertions(+), 92 deletions(-)
Date: Fri Nov 16 13:23:37 2012 -0800
Implement hb_shape_plan_get_shaper()
-
+
Untested.
src/hb-shape-plan-private.hh | 1 +
Date: Fri Nov 16 13:12:35 2012 -0800
[Indic] Another try to unbreak Sinhala split matras
-
+
Just read the comments...
- src/hb-ot-shape-complex-indic.cc | 43
- ++++++++++++++++++----
+ src/hb-ot-shape-complex-indic.cc | 43 ++++++++++++++++++----
.../indic/script-sinhala/misc/MANIFEST | 1 +
.../indic/script-sinhala/misc/split-matras.txt | 4 ++
3 files changed, 40 insertions(+), 8 deletions(-)
Date: Fri Nov 16 12:39:23 2012 -0800
Plumbing to get shape plan and font into complex decompose function
-
+
So we can handle Sinhala split matras smartly... Coming soon.
src/hb-ot-shape-complex-default.cc | 6 ++--
src/hb-ot-shape-complex-indic.cc | 14 ++++-----
src/hb-ot-shape-complex-private.hh | 16 +++++------
src/hb-ot-shape-normalize-private.hh | 22 ++++++++++++--
- src/hb-ot-shape-normalize.cc | 56
- ++++++++++++++----------------------
+ src/hb-ot-shape-normalize.cc | 56 ++++++++++++++----------------------
src/hb-ot-shape.cc | 2 +-
6 files changed, 61 insertions(+), 55 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Nov 15 18:45:31 2012 -0800
- Rename hb_buffer_guess_properties() to
- hb_buffer_guess_segment_properties()
+ Rename hb_buffer_guess_properties() to hb_buffer_guess_segment_properties()
src/hb-buffer-private.hh | 2 +-
src/hb-buffer.cc | 6 +++---
Date: Thu Nov 15 18:39:46 2012 -0800
Bunch of independent changes (ouch)
-
+
API additions:
-
+
hb_segment_properties_t
HB_SEGMENT_PROPERTIES_DEFAULT
hb_segment_properties_equal()
hb_segment_properties_hash()
-
+
hb_buffer_set_segment_properties()
hb_buffer_get_segment_properties()
-
+
hb_ot_layout_glyph_class_t
-
+
hb_shape_plan_t
hb_shape_plan_create()
hb_shape_plan_create_cached()
hb_shape_plan_set_user_data()
hb_shape_plan_get_user_data()
hb_shape_plan_execute()
-
+
hb_ot_shape_plan_collect_lookups()
-
+
API changes:
-
+
Rename hb_ot_layout_feature_get_lookup_indexes() to
hb_ot_layout_feature_get_lookups().
-
+
New header file:
-
+
hb-shape-plan.h
-
+
And a bunch of prototyped but not implemented stuff. Coming soon.
(Tests fail because of the prototypes right now.)
src/hb-buffer.h | 47 +++++++++++++++++--
src/hb-ot-layout-private.hh | 8 ----
src/hb-ot-layout.cc | 12 ++---
- src/hb-ot-layout.h | 108
- ++++++++++++++++++++++++++++++++++++++++---
+ src/hb-ot-layout.h | 108 ++++++++++++++++++++++++++++++++++++++++---
src/hb-ot-map-private.hh | 2 +-
src/hb-ot-map.cc | 15 +++---
src/hb-ot-shape-private.hh | 11 ++++-
src/hb-ot-shape.cc | 2 +-
src/hb-set-private.hh | 35 ++++++++++++++++--
- src/hb-set.cc | 86
- ++++++++++++++++++++++++++++++---------------
+ src/hb-set.cc | 86 ++++++++++++++++++++++++++++++---------------
src/hb-set.h | 55 +++++++++++++++++++----------
util/hb-ot-shape-closure.cc | 2 +-
5 files changed, 128 insertions(+), 52 deletions(-)
Date: Thu Nov 15 15:38:08 2012 -0800
[Thai] Remove U+0E2C from "AC" consonants
-
+
WinXP doesn't include it.
src/hb-ot-shape-complex-thai.cc | 2 +-
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Nov 15 14:57:31 2012 -0800
- Rename hb_ot_layout_would_substitute_lookup() and
- hb_ot_layout_substitute_closure_lookup()
-
+ Rename hb_ot_layout_would_substitute_lookup() and hb_ot_layout_substitute_closure_lookup()
+
To match upcoming API.
src/hb-ot-layout-private.hh | 2 +-
Date: Thu Nov 15 13:29:51 2012 -0800
[util] Make hb-shape err if output-format is not understood
-
+
And list supported formats.
util/hb-shape.cc | 6 ++++++
Date: Thu Nov 15 12:14:09 2012 -0800
Add buffer serialization / deserialization API
-
+
Two output formats for now: TEXT, and JSON. For example:
-
+
hb-shape --output-format=json
-
+
Deserialization API is added, but not implemented yet.
- src/hb-buffer.cc | 222
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-buffer.cc | 222 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-buffer.h | 42 +++++++++++
util/hb-shape.cc | 21 +++++-
util/options.cc | 57 +++++---------
Date: Thu Nov 15 10:47:14 2012 -0800
Avoid C++ undefined behavior
-
+
https://bugzilla.mozilla.org/show_bug.cgi?id=810823
src/hb-open-type-private.hh | 4 ++--
Date: Thu Nov 15 10:36:43 2012 -0800
Fix undefined behavior in Indic dottedcircle
-
+
Chromium Issue 158998: Conditional jump in harfbuzz-ng
http://code.google.com/p/chromium/issues/detail?id=158998
Date: Wed Nov 14 17:25:03 2012 -0800
[Thai] Implement PUA-based fallback shaping
-
+
As explained here:
-
+
http://linux.thai.net/~thep/th-otf/shaping.html
-
+
Our output now matches Uniscribe for old fonts (eg. XP Tahoma) with no
Thai GSUB table.
- src/hb-ot-shape-complex-thai.cc | 217
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-thai.cc | 217 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 217 insertions(+)
commit 851784f8372004e0a40b698c0cdc2d7db8629aa2
Add test cases for Thai PUA shaping
.../texts/in-tree/shaper-thai/script-thai/misc/MANIFEST | 1 +
- .../in-tree/shaper-thai/script-thai/misc/pua-shaping.txt |
- 11 +++++++++++
+ .../in-tree/shaper-thai/script-thai/misc/pua-shaping.txt | 11 +++++++++++
2 files changed, 12 insertions(+)
commit 43f04a7456419153cb03e610a825056a47824780
Move Thai shaper into a separate file
src/Makefile.am | 3 +-
- ...plex-misc.cc => hb-ot-shape-complex-default.cc} | 114
- -----------------
- src/hb-ot-shape-complex-thai.cc | 141
- +++++++++++++++++++++
+ ...plex-misc.cc => hb-ot-shape-complex-default.cc} | 114 -----------------
+ src/hb-ot-shape-complex-thai.cc | 141 +++++++++++++++++++++
3 files changed, 143 insertions(+), 115 deletions(-)
commit ba82325b7a6311b787ae47f41a56964e2f2cba9f
Date: Wed Nov 14 15:05:19 2012 -0800
Don't route Kharoshthi through the Indic shaper
-
+
It's a simple, right-to-left, script.
src/hb-ot-shape-complex-private.hh | 2 +-
Date: Wed Nov 14 14:09:46 2012 -0800
Reposition Lao marks
-
+
Lao marks are center-aligned, unlike Thai ones.
src/hb-ot-shape-fallback.cc | 4 ++--
Date: Wed Nov 14 13:38:16 2012 -0800
[Indic] If Khmer fonts have a 'liga' feature, use generic shaper
-
+
Seems to produce more coherent results than trying the Indic shaper on
them. I'm looking at you, Kh-* fonts...
Date: Wed Nov 14 11:37:04 2012 -0800
[Indic] Don't move virama with left matra
-
- This is important for the Sinhala U+0DDA split matra since it
- decomposes
- to U+0DD9,U+0DCA where U+0DD9 is a left matra and U+0DCA is the
- virama.
+
+ This is important for the Sinhala U+0DDA split matra since it decomposes
+ to U+0DD9,U+0DCA where U+0DD9 is a left matra and U+0DCA is the virama.
We don't want to move the virama with the left matra.
TEST: U+0D9A,U+0DDA
-
- Note that we were already doing this in the Uniscribe bug
- compatibility
+
+ Note that we were already doing this in the Uniscribe bug compatibility
mode. We now do it all the time.
src/hb-ot-shape-complex-indic.cc | 8 ++++++--
Add Sinhala test case for split matra U+0DDA
- .../texts/in-tree/shaper-indic/indic/script-sinhala/misc/misc.txt
- | 1 +
+ .../texts/in-tree/shaper-indic/indic/script-sinhala/misc/misc.txt | 1 +
1 file changed, 1 insertion(+)
commit d04b12853167d756a8cccaf4154f0fd894bce6de
Date: Tue Nov 13 16:26:32 2012 -0800
API change: Remove "mask" from hb_buffer_add()
-
+
I don't expect anybody using hb_buffer_add(), so this shouldn't break
anyone's code.
Date: Tue Nov 13 15:12:24 2012 -0800
[util] Add --text-before and --text-after to hb-shape / hb-view
-
+
Use with Arabic, for example, to see the effect on joining.
util/hb-ot-shape-closure.cc | 4 +++-
Date: Tue Nov 13 15:12:06 2012 -0800
Fix UTF-8 backward iteration
-
+
Ouch!
src/hb-utf-private.hh | 4 ++--
Date: Tue Nov 13 15:11:51 2012 -0800
[Arabic] Fix post-context handling
-
+
Ouch!
src/hb-ot-shape-complex-arabic.cc | 2 +-
Date: Tue Nov 13 14:42:35 2012 -0800
Add buffer flags
-
+
New API:
-
+
hb_buffer_flags_t
-
+
HB_BUFFER_FLAGS_DEFAULT
HB_BUFFER_FLAG_BOT
HB_BUFFER_FLAG_EOT
HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES
-
+
hb_buffer_set_flags()
hb_buffer_get_flags()
-
+
We use the BOT flag to decide whether to insert dottedcircle if the
first char in the buffer is a combining mark.
-
- The PRESERVE_DEFAULT_IGNORABLES flag prevents removal of characters
- like
+
+ The PRESERVE_DEFAULT_IGNORABLES flag prevents removal of characters like
ZWNJ/ZWJ/...
src/hb-buffer-private.hh | 1 +
src/hb-buffer.cc | 18 ++++++++++++++++++
src/hb-buffer.h | 13 +++++++++++++
- src/hb-ot-shape-complex-arabic.cc | 40
- ++++++++++++++++++++-------------------
+ src/hb-ot-shape-complex-arabic.cc | 40 ++++++++++++++++++++-------------------
src/hb-ot-shape.cc | 9 ++++++---
test/api/test-buffer.c | 9 +++++++++
6 files changed, 68 insertions(+), 22 deletions(-)
Date: Tue Nov 13 14:42:22 2012 -0800
Minor fix
-
+
Ouch
src/hb-shape.cc | 2 +-
Date: Tue Nov 13 13:57:52 2012 -0800
Add hb_buffer_clear()
-
+
Which is like _reset(), but does NOT clear unicode-funcs.
src/hb-buffer-private.hh | 1 +
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue Nov 13 12:35:35 2012 -0800
- [Indic] Decompose Sinhala split matras the way old HarfBuzz /
- Pango did
-
+ [Indic] Decompose Sinhala split matras the way old HarfBuzz / Pango did
+
Had to do some refactoring to make this happen...
-
+
Under uniscribe bug compatibility mode, we still plit them
- Uniscrie-style, but Jonathan and I convinced ourselves that there
- is no
+ Uniscrie-style, but Jonathan and I convinced ourselves that there is no
harm doing this the Unicode way. This change makes that happen, and
unbreaks free Sinhala fonts.
src/hb-ot-shape-complex-misc.cc | 133 ++++++++++++++++-
src/hb-ot-shape-complex-private.hh | 28 +++-
src/hb-ot-shape-normalize-private.hh | 6 +-
- src/hb-ot-shape-normalize.cc | 278
- ++++++++++-------------------------
+ src/hb-ot-shape-normalize.cc | 278 ++++++++++-------------------------
src/hb-ot-shape.cc | 5 +-
7 files changed, 312 insertions(+), 214 deletions(-)
Date: Tue Nov 13 11:07:20 2012 -0800
[hb-shape] Adjust postioning output format
-
+
1. If there is any offset (x or y), print out both x and y offsets.
-
+
2. Always print out the advance in the major direction of the buffer.
- Ie. even for zero-advance glyphs, print a "+0". This is more
- intuitive.
+ Ie. even for zero-advance glyphs, print a "+0". This is more intuitive.
util/options.cc | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
[Indic] Update auto-generated Indic machine to reflect previous commit
- src/hb-ot-shape-complex-indic-machine.hh | 1126
- +++++++++++++++---------------
+ src/hb-ot-shape-complex-indic-machine.hh | 1126 +++++++++++++++---------------
1 file changed, 567 insertions(+), 559 deletions(-)
commit 9cac1338c4bc3e9034cbfa104291ed0329debefe
Date: Mon Nov 12 18:41:22 2012 -0800
[Indic] Allow Consonant_Medial's after Consonant's
-
+
Mostly affects Myanmar, but also Tai Tham, Javanese, and Cham. The
latter three are untested (no fonts!).
Date: Mon Nov 12 18:36:10 2012 -0800
[Indic] Route "new" Myanmar tag through the Indic shaper
-
+
Windows 8 adds a Myanmar shaper using the 'mym2' tag. Route that
through the Indic shaper. It's still very broken, but at least this
does NOT break old-style Myanmar shaping using the generic shaper.
Date: Mon Nov 12 18:27:42 2012 -0800
Choose shaper based on chosen OT script tag
-
+
For Arabic and Indic shapers, if the font doesn't have a script system
for the script, use default shaper.
-
+
Make an exception for Arabic script since we have fallback logic for
that one.
Refactoring ot-map building to make chosen script available earlier
src/hb-ot-map-private.hh | 13 ++++++++----
- src/hb-ot-map.cc | 51
- ++++++++++++++++++++++++++--------------------
+ src/hb-ot-map.cc | 51 ++++++++++++++++++++++++++--------------------
src/hb-ot-shape-private.hh | 4 ++--
3 files changed, 40 insertions(+), 28 deletions(-)
Date: Mon Nov 12 17:27:51 2012 -0800
Add "new" Myanmar OT Script tag
-
- Windows 8 added support for Myanmar shaping using the "mym2"
- script tag,
+
+ Windows 8 added support for Myanmar shaping using the "mym2" script tag,
even though Windows never supported the old "mymr" tag.
src/hb-ot-tag.cc | 2 ++
Add Myanmar tests from UTN#11
.../south-east-asian/script-myanmar/misc/MANIFEST | 1 +
- .../south-east-asian/script-myanmar/misc/utn11.txt | 34
- ++++++++++++++++++++++
+ .../south-east-asian/script-myanmar/misc/utn11.txt | 34 ++++++++++++++++++++++
2 files changed, 35 insertions(+)
commit e9334ce97bb7f1de87fb211bb5a8168033629b14
Date: Mon Nov 12 14:48:33 2012 -0800
[Indic] Make more room in the table
-
+
To be used in upcoming commits.
src/hb-ot-shape-complex-indic-private.hh | 10 +++++-----
Date: Mon Nov 12 14:09:40 2012 -0800
[Indic] Port 'pref' logic to look into font tables
-
+
...instead of using a hardcoded list of Ra characters.
src/hb-ot-shape-complex-indic.cc | 7 ++++---
Date: Mon Nov 12 14:02:02 2012 -0800
[Indic] Port reph handling logic to look into font features
-
+
...instead of using a hardcoded list of Ra characters.
- src/hb-ot-shape-complex-indic.cc | 48
- +++++++++++++++++++++++++---------------
+ src/hb-ot-shape-complex-indic.cc | 48 +++++++++++++++++++++++++---------------
1 file changed, 30 insertions(+), 18 deletions(-)
commit 43149afbc0007ea075a7017c0e56056c3c0f3614
Date: Mon Nov 12 13:34:17 2012 -0800
Route MEETEI_MAYEK through the Indic shaper
-
+
Since it has a couple of left-"matras".
src/hb-ot-shape-complex-private.hh | 5 ++---
Date: Mon Nov 12 11:16:57 2012 -0800
Work around older compilers
-
+
As reported on the list:
-
+
I am seeing a similar problem building harfbuzz 0.9.5 with Apple gcc
4.0.1 on OS X 10.5 Leopard:
-
+
hb-ot-layout-common-private.hh:406: error: 'struct
OT::CoverageFormat1::Iter' is private
hb-ot-layout-common-private.hh:646: error: within this context
OT::CoverageFormat2::Iter' is private
hb-ot-layout-common-private.hh:647: error: within this context
make[4]: *** [libharfbuzz_la-hb-ot-layout.lo] Error 1
-
+
Also reported as happening with MSVC 2005.
src/hb-ot-layout-common-private.hh | 6 ++++++
Date: Mon Nov 12 11:02:56 2012 -0800
[Indic] Don't apply 'liga'
-
+
Uniscribe doesn't. And some fonts abuse this feature to get Indic
shaping working in non-complex applications like Adobe's apps.
-
+
No change in numbers:
-
+
BENGALI: 353897 out of 354188 tests passed. 291 failed (0.0821598%)
DEVANAGARI: 707337 out of 707394 tests passed. 57 failed (0.00805774%)
GUJARATI: 366440 out of 366457 tests passed. 17 failed (0.00463902%)
KANNADA: 951046 out of 951913 tests passed. 867 failed (0.0910798%)
KHMER: 299074 out of 299124 tests passed. 50 failed (0.0167155%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
- MALAYALAM: 1048011 out of 1048334 tests passed. 323 failed
- (0.0308108%)
+ MALAYALAM: 1048011 out of 1048334 tests passed. 323 failed (0.0308108%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
Date: Mon Nov 5 15:20:10 2012 -0800
Adjust Mongolian shaping
-
+
For U+1880..U+1886 Uniscribe thinks they are non-joining.
For U+1887 Uniscribe thinks it's joining, but looks wrong to me.
For now, match Uniscribe.
Date: Mon Nov 5 15:18:49 2012 -0800
Add test for non-joining Mongolian letters
-
+
For U+1880..U+1886 Uniscribe thinks they are non-joining.
For U+1887 Uniscribe thinks it's joining, but looks wrong to me.
.../texts/in-tree/shaper-arabic/script-mongolian/misc/MANIFEST | 1 +
- .../in-tree/shaper-arabic/script-mongolian/misc/non-joining.txt |
- 8 ++++++++
+ .../in-tree/shaper-arabic/script-mongolian/misc/non-joining.txt | 8 ++++++++
2 files changed, 9 insertions(+)
commit c26a52fbe62e5ba4d0e1e2ba13bfb6ceb3f773dc
test/shaping/texts/in-tree/shaper-default/MANIFEST | 2 ++
.../texts/in-tree/shaper-default/script-tifinagh/MANIFEST | 1 +
.../in-tree/shaper-default/script-tifinagh/misc/MANIFEST | 1 +
- .../in-tree/shaper-default/script-tifinagh/misc/misc.txt |
- 11 +++++++++++
+ .../in-tree/shaper-default/script-tifinagh/misc/misc.txt | 11 +++++++++++
4 files changed, 15 insertions(+)
commit 10a33296e674ee84b9ed2df25cf373de7d020b8d
.../in-tree/shaper-arabic/script-mongolian/misc/misc.txt | 3 +++
.../texts/in-tree/shaper-arabic/script-phags-pa/MANIFEST | 1 +
.../in-tree/shaper-arabic/script-phags-pa/misc/MANIFEST | 1 +
- .../in-tree/shaper-arabic/script-phags-pa/misc/misc.txt | 14
- ++++++++++++++
+ .../in-tree/shaper-arabic/script-phags-pa/misc/misc.txt | 14 ++++++++++++++
5 files changed, 20 insertions(+)
commit 3ba7bc14ea652d27639f34109e51a497a678a54a
Date: Thu Nov 1 20:05:04 2012 -0700
Implement 'Phags-pa shaping
-
+
Through the Arabic shaper. It's similar to Mongolian.
src/hb-ot-shape-complex-arabic.cc | 15 ++++++++++++---
Date: Wed Oct 31 13:45:30 2012 -0700
Don't clear buffer pre-context if no new context is being provided
-
+
Patch from Jonathan Kew.
-
+
Part of fixing:
-
+
Mozilla Bug 801410 - avoid inserting dotted-circle for run-initial
Unicode combining characters in "simple" scripts such as Latin
-
+
https://bugzilla.mozilla.org/show_bug.cgi?id=801410
src/hb-buffer.cc | 9 ++++++++-
Date: Mon Oct 29 22:02:45 2012 -0700
[OT] Fix ReverseChainingSubst
-
+
We should make it clear that we don't want output buffer in this case,
otherwise buffer->backtrack_len() would be wrong.
Date: Mon Oct 29 21:49:33 2012 -0700
[Arabic] Enable dlig and mset for Arabic
-
+
That's what the spec says, and what Uniscribe does.
src/hb-ot-shape-complex-arabic.cc | 3 ++-
Date: Mon Oct 29 18:18:24 2012 -0700
Add Ethiopic test case
-
+
This sequence: U+120B,U+135F,U+120B with the Nyala font from Win7
- exposes a GPOS bug in Uniscribe, in that the positioned mark is
- wrongly
+ exposes a GPOS bug in Uniscribe, in that the positioned mark is wrongly
moved as a result a following kern.
-
+
This is the one "failure" in the Ethiopic test suite :-).
-
+
ETHIOPIC: 118900 out of 118901 tests passed. 1 failed (0.000841036%)
- test/shaping/texts/in-tree/shaper-default/script-ethiopic/MANIFEST |
- 1 +
- test/shaping/texts/in-tree/shaper-default/script-ethiopic/misc/MANIFEST |
- 1 +
- test/shaping/texts/in-tree/shaper-default/script-ethiopic/misc/misc.txt |
- 1 +
+ test/shaping/texts/in-tree/shaper-default/script-ethiopic/MANIFEST | 1 +
+ test/shaping/texts/in-tree/shaper-default/script-ethiopic/misc/MANIFEST | 1 +
+ test/shaping/texts/in-tree/shaper-default/script-ethiopic/misc/misc.txt | 1 +
3 files changed, 3 insertions(+)
commit 88d3c98e309e14c3115825d1d8d40d0b3eec2d97
Date: Mon Oct 29 16:27:02 2012 -0700
[Indic] Position pre-base reordering Ra after Chillus in Malayalam
-
+
The logic for pre-base reordering follows the left matra logic.
- We had an exception for Malayalam/Tamil in the left matra
- repositioning
+ We had an exception for Malayalam/Tamil in the left matra repositioning
which was not reflected in pre-base reordering.
-
+
Malayalam failures down from 337 to 323.
-
+
BENGALI: 353996 out of 354285 tests passed. 289 failed (0.0815727%)
DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.00777502%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%)
KHMER: 299106 out of 299124 tests passed. 18 failed (0.00601757%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
- MALAYALAM: 1048011 out of 1048334 tests passed. 323 failed
- (0.0308108%)
+ MALAYALAM: 1048011 out of 1048334 tests passed. 323 failed (0.0308108%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271726 out of 271847 tests passed. 121 failed (0.0445103%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
Date: Mon Oct 29 10:56:04 2012 -0700
Include config.h.in in tree
-
- I typically don't like including generating files in tree.
- But like to
+
+ I typically don't like including generating files in tree. But like to
make an exception for this, since this forms the canonical list of
options one would need to go through when building with alternative
build systems.
Makefile.am | 1 -
- config.h.in | 160
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ config.h.in | 160 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 160 insertions(+), 1 deletion(-)
commit 02ed52169ad3bb48f4989f721b0c6572e064a712
Date: Sun Oct 28 20:11:47 2012 -0700
Fix hb_buffer_set_length(buffer, 0)
-
+
Was causing invalid realloc()s.
src/hb-buffer.cc | 2 +-
Date: Sun Oct 28 19:18:11 2012 -0700
Port to ICU LayoutEngine C API
-
+
Incidentally, this makes it not crash with icu-le-hb anymore...
I'm not smart / stupid enough to spend two more days debugging C++
linking issues, and this is ABI-stable at least.
Date: Thu Oct 25 16:32:54 2012 -0700
Rename and revamp is_zero_width() to be is_default_ignorable()
-
- That's really the logic desired. Except that MONGOLIAN VOWEL
- SEPARATOR
- is not default_ignorable but it really should be. Reported to
- Unicode.
-
+
+ That's really the logic desired. Except that MONGOLIAN VOWEL SEPARATOR
+ is not default_ignorable but it really should be. Reported to Unicode.
+
Based on suggestion from Konstantin Ritt.
src/hb-fallback-shape.cc | 2 +-
src/hb-ot-shape-private.hh | 4 +--
src/hb-ot-shape.cc | 2 +-
- src/hb-unicode-private.hh | 90
- +++++++++++++++++++++++++++++-----------------
+ src/hb-unicode-private.hh | 90 +++++++++++++++++++++++++++++-----------------
4 files changed, 62 insertions(+), 36 deletions(-)
commit a724139e641bf1592b1ff786a75a9de2ea8163cf
Date: Sun Oct 7 17:19:58 2012 -0400
Fixup hb_ot_shape_closure()
-
+
Broke it when merged cmap mapping and normalizer. Ouch!
src/hb-ot-shape.cc | 2 +-
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue Oct 2 20:44:43 2012 -0400
- Update UCDN to upstream commit
- 3f159c87824230b59af56e40e2db32caf6afa51a
-
+ Update UCDN to upstream commit 3f159c87824230b59af56e40e2db32caf6afa51a
+
- Unicode 6.2.0 goodness,
- - Unassigned codepoints now have correct properties. Passes test
- suite.
+ - Unassigned codepoints now have correct properties. Passes test suite.
- src/hb-ucdn/unicodedata_db.h | 1966
- ++++++++++++++++++++++--------------------
+ src/hb-ucdn/unicodedata_db.h | 1966 ++++++++++++++++++++++--------------------
1 file changed, 1036 insertions(+), 930 deletions(-)
commit 32dbfcf763d1ae497d3c95de986a83441331678f
Date: Tue Oct 2 16:03:18 2012 -0400
Import UCDN into source tree
-
+
https://github.com/grigorig/ucdn
configure.ac | 11 +-
src/hb-ucdn/README | 33 +
src/hb-ucdn/ucdn.c | 282 +++
src/hb-ucdn/ucdn.h | 290 +++
- src/hb-ucdn/unicodedata_db.h | 4648
- ++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ucdn/unicodedata_db.h | 4648 ++++++++++++++++++++++++++++++++++++++++++
src/hb-unicode.cc | 3 +
9 files changed, 5498 insertions(+), 1 deletion(-)
Date: Tue Oct 2 14:59:00 2012 -0400
Remove Glib thread-safety support
-
+
Now that we have pthread detection in configure, we don't need Glib
anymore. Glib will only be a Unicode data provider.
Add ax_pthread.m4
- m4/ax_pthread.m4 | 309
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ m4/ax_pthread.m4 | 309 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 309 insertions(+)
commit 8ac34bc6ff1d0646503a45659b1846d8cf9c0603
Add pkg.m4 to git repo
- m4/pkg.m4 | 157
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ m4/pkg.m4 | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 157 insertions(+)
commit c7afac0aa6e51e6a49ebf13f72537398698c9e49
Date: Tue Sep 25 21:35:35 2012 -0400
[OT] Only insert dottedcircle if at the beginning of paragraph
-
+
If the first char in the run is a combining mark, but there is text
before the run, don't insert dottedcircle.
-
+
Part of addressing:
https://bugzilla.redhat.com/show_bug.cgi?id=858736
Date: Tue Sep 25 21:32:35 2012 -0400
[Arabic] Respect Arabic joining from neighboring context
-
+
Now we respect Arabic joining across runs.
src/hb-ot-shape-complex-arabic.cc | 31 +++++++++++++++++++++++++++++--
Date: Tue Sep 25 17:44:53 2012 -0400
[buffer] Save pre/post textual context
-
+
To be used for a variety of purposes. We save up to five characters
in each direction. No public API changes, everything is taken care
of already. All clients need to do is to call hb_buffer_add_utf* with
the full text + segment info (or at least some context) instead of
just passing in the segment.
-
+
Various operations (hb_buffer_reset, hb_buffer_set_length,
hb_buffer_add*) automatically reset the relevant contexts.
src/hb-buffer-private.hh | 13 ++++++++++++-
- src/hb-buffer.cc | 44
- ++++++++++++++++++++++++++++++++++++++++----
+ src/hb-buffer.cc | 44 ++++++++++++++++++++++++++++++++++++++++----
src/hb-buffer.h | 2 +-
3 files changed, 53 insertions(+), 6 deletions(-)
Add hb_utf_prev()
- src/hb-utf-private.hh | 71
- +++++++++++++++++++++++++++++++++++++++++++++++++--
+ src/hb-utf-private.hh | 71 +++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 69 insertions(+), 2 deletions(-)
commit 70ea4ac6887c7057113d714a98e55738b6196562
Date: Tue Sep 25 11:42:16 2012 -0400
Add hb_utf_strlen()
-
+
Speeds up UTF-8 parsing by calling strlen().
src/hb-buffer.cc | 13 ++-----------
Date: Tue Sep 25 11:22:28 2012 -0400
[buffer] Templatize UTF handling
-
+
Also move UTF routines into a separate file, to be reused from shapers
that need it.
src/Makefile.am | 1 +
- src/hb-buffer.cc | 157
- +++++++++++++-------------------------------------
+ src/hb-buffer.cc | 157 +++++++++++++-------------------------------------
src/hb-utf-private.hh | 113 ++++++++++++++++++++++++++++++++++++
3 files changed, 155 insertions(+), 116 deletions(-)
Date: Mon Sep 24 21:51:13 2012 -0400
[Indic] Import ragel-generated Indic machine in git
-
+
I don't expect ragel to be creating too much noise in its generated
output, and including this in-tree helps users right now. We can
revisit this later if it proved to be too much trouble.
autogen.sh | 6 -
src/Makefile.am | 1 -
- src/hb-ot-shape-complex-indic-machine.hh | 1314
- ++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-indic-machine.hh | 1314 ++++++++++++++++++++++++++++++
3 files changed, 1314 insertions(+), 7 deletions(-)
commit 20a840c7cd08069720050782b4533cde505df09a
Date: Mon Sep 24 20:23:00 2012 -0400
Use a C++ linker on Windows
-
+
On Windows we don't care whether or not we link to libstdc++.
Seems to fix build with mingw32 on msys, as reported by Werner.
Date: Mon Sep 10 09:56:27 2012 -0400
Return NULL, not false
-
+
Oh well...
src/hb-open-type-private.hh | 2 +-
Date: Fri Sep 7 14:55:07 2012 -0400
[Indic] Find syllables before any features are applied
-
+
With FreeSerif, it seems that the 'ccmp' feature does ligature
- substituttions. That was then causing syllable match failures.
- We now
+ substituttions. That was then causing syllable match failures. We now
find syllables before any features have been applied.
-
+
Test sequence: U+0D9A,U+0DCA,U+200D,U+0DBB,U+0DCF
src/hb-ot-shape-complex-indic-machine.rl | 4 +-
- src/hb-ot-shape-complex-indic.cc | 56
- +++++++++++++++-------
+ src/hb-ot-shape-complex-indic.cc | 56 +++++++++++++++-------
.../indic/script-sinhala/misc/misc.txt | 1 +
3 files changed, 43 insertions(+), 18 deletions(-)
Date: Thu Sep 6 22:26:16 2012 -0400
Add hb_buffer_[sg]et_content_type
-
+
And hb_buffer_content_type_t and enum values.
TODO | 1 +
TODO | 4 +-
src/hb-common.cc | 9 +++
src/hb-common.h | 6 +-
- src/hb-shape.cc | 168
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-shape.cc | 168 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-shape.h | 13 +++++
util/options.cc | 132 ++-----------------------------------------
6 files changed, 201 insertions(+), 131 deletions(-)
Date: Thu Sep 6 17:22:31 2012 -0400
[OT] Do per-ligature-component fallback mark positioning
-
+
With this in place, you can remove GDEF/GSUB/GPOS tables from Arabic
fonts and still get per-component marks positioned on
- oh-yeah-fallback-formed LAM-ALEF ligatures with marks in between
- the LAM
+ oh-yeah-fallback-formed LAM-ALEF ligatures with marks in between the LAM
and ALEF.
-
+
Now *that*'s pretty cool, if a bit anachronistic...
- src/hb-ot-shape-fallback.cc | 43
- ++++++++++++++++++++++++++++++++++++-------
+ src/hb-ot-shape-fallback.cc | 43 ++++++++++++++++++++++++++++++++++++-------
1 file changed, 36 insertions(+), 7 deletions(-)
commit 525c6855783a018d52867b9ece2ee90868ff1f91
Date: Thu Sep 6 16:02:07 2012 -0400
[OT] Make fallback mark positioning more robust
-
+
...with clusters spanning multiple base characters.
src/hb-ot-shape-fallback.cc | 11 +++++++++--
src/gen-arabic-table.py | 6 +-
src/hb-ot-shape-complex-arabic-fallback.hh | 2 +-
- src/hb-ot-shape-complex-arabic-table.hh | 266
- ++++++++++++++---------------
+ src/hb-ot-shape-complex-arabic-table.hh | 266 ++++++++++++++---------------
3 files changed, 137 insertions(+), 137 deletions(-)
commit 82f6b6f388b801a1483854cb56a2cadbb94e0f2b
Date: Wed Sep 5 22:19:28 2012 -0400
[OT] Port Arabic fallback shaping to synthetic GSUB
-
+
All of init/medi/fina/isol and rlig implemented.
-
+
Let there be dragons... ⻯
src/Makefile.am | 1 +
src/hb-ot-layout-gsub-table.hh | 11 +-
src/hb-ot-map-private.hh | 6 +
src/hb-ot-map.cc | 1 +
- src/hb-ot-shape-complex-arabic-fallback.hh | 252
- +++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-arabic-fallback.hh | 252 +++++++++++++++++++++++++++++
src/hb-ot-shape-complex-arabic.cc | 158 ++++++------------
src/hb-ot-shape.cc | 7 +-
src/hb-private.hh | 11 +-
Date: Wed Sep 5 17:32:57 2012 -0400
[Indic] Allow "H,ZWJ,M"
-
+
Uniscribe accepts a Halant,ZWJ before matras. Allow that.
-
+
BENGALI down from 295 to 291
DEVANAGARI down from 69 to 57
GUJARATI down from 19 to 17
KANNADA down from 871 to 867
MALAYALAM down from 340 to 337
TELUGU down from 20 to 16
-
+
Currently at:
-
+
BENGALI: 353897 out of 354188 tests passed. 291 failed (0.0821598%)
DEVANAGARI: 707337 out of 707394 tests passed. 57 failed (0.00805774%)
GUJARATI: 366440 out of 366457 tests passed. 17 failed (0.00463902%)
KANNADA: 951046 out of 951913 tests passed. 867 failed (0.0910798%)
KHMER: 299077 out of 299124 tests passed. 47 failed (0.0157125%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
- MALAYALAM: 1047997 out of 1048334 tests passed. 337 failed
- (0.0321462%)
+ MALAYALAM: 1047997 out of 1048334 tests passed. 337 failed (0.0321462%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
Date: Wed Sep 5 17:21:17 2012 -0400
[Indic] Relax grammar
-
- Now that we insert dotted-circle, tests break more easily when
- our indic
+
+ Now that we insert dotted-circle, tests break more easily when our indic
machine breaks.
-
+
In particular, a few Devanagari tests were having sequences like
- "C,H,ZWJ,N", and because of the ZWJ the Nukta does NOT get reordered
- to
+ "C,H,ZWJ,N", and because of the ZWJ the Nukta does NOT get reordered to
before the Halant as the grammar used to expect... Fixup.
-
+
Another case is as simple as "C,ZWJ,SM".
-
+
Fixes 10 out of 79 failures:
-
+
DEVANAGARI: 707325 out of 707394 tests passed. 69 failed (0.00975411%)
src/hb-ot-shape-complex-indic-machine.rl | 4 ++--
Date: Wed Sep 5 15:54:21 2012 -0400
[Indic] Fix Khmer syllable-final coeng-consonant
-
+
Brings down Khmer failures from 162 to 47.
-
+
KHMER: 299077 out of 299124 tests passed. 47 failed (0.0157125%)
-
+
Also rebaselined some of the test files that had only-inherited lines.
Removing those, the stats are:
-
+
BENGALI: 353893 out of 354188 tests passed. 295 failed (0.0832891%)
DEVANAGARI: 707315 out of 707394 tests passed. 79 failed (0.0111678%)
GUJARATI: 366438 out of 366457 tests passed. 19 failed (0.00518478%)
KANNADA: 951042 out of 951913 tests passed. 871 failed (0.0915%)
KHMER: 299077 out of 299124 tests passed. 47 failed (0.0157125%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
- MALAYALAM: 1047994 out of 1048334 tests passed. 340 failed
- (0.0324324%)
+ MALAYALAM: 1047994 out of 1048334 tests passed. 340 failed (0.0324324%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970553 out of 970573 tests passed. 20 failed (0.00206064%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
-
+
Still some regressions, but some of the more egregious cases are
addressed.
Date: Wed Sep 5 15:50:47 2012 -0400
Fixup test failure reporting
-
+
After we implemented dotted-circle, we were still ignoring any tests
- that had dottedcircle in it for any of the shapers. That meant
- that if
+ that had dottedcircle in it for any of the shapers. That meant that if
we wrongly outputted dottedcircle, the test was being ignored. Ouch!
-
+
Fixing that shows regressions across the board. Most are Uniscribe
bugs: NOT inserting dotted-circle when it should. Some are arou
machine bugs. This is in fact a nice way to catch Indic-machine
deficiencies and when I fix the regressions, our clusters should be
much closer to Uniscribe. For now, we regressed from:
-
+
BENGALI: 353997 out of 354285 tests passed. 288 failed (0.0812905%)
DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.00777502%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%)
KHMER: 299106 out of 299124 tests passed. 18 failed (0.00601757%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
- MALAYALAM: 1048104 out of 1048416 tests passed. 312 failed
- (0.0297592%)
+ MALAYALAM: 1048104 out of 1048416 tests passed. 312 failed (0.0297592%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271747 out of 271847 tests passed. 100 failed (0.0367854%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970558 out of 970573 tests passed. 15 failed (0.00154548%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
-
+
To:
-
+
BENGALI: 353990 out of 354285 tests passed. 295 failed (0.0832663%)
DEVANAGARI: 707315 out of 707394 tests passed. 79 failed (0.0111678%)
GUJARATI: 366447 out of 366506 tests passed. 59 failed (0.016098%)
KANNADA: 951042 out of 951913 tests passed. 871 failed (0.0915%)
KHMER: 298962 out of 299124 tests passed. 162 failed (0.0541581%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
- MALAYALAM: 1048074 out of 1048416 tests passed. 342 failed
- (0.0326206%)
+ MALAYALAM: 1048074 out of 1048416 tests passed. 342 failed (0.0326206%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%)
TAMIL: 1091835 out of 1091837 tests passed. 2 failed (0.000183178%)
TELUGU: 970553 out of 970573 tests passed. 20 failed (0.00206064%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
-
+
Investigating.
test/shaping/hb_test_tools.py | 8 +++++---
Date: Wed Sep 5 15:11:14 2012 -0400
[Indic] Tamil does not have half-forms either
-
+
The Win7 Tamil font does not realy on this behavior, but the WinXP
version does. Handle Tamil like Malayalam: Matras always move to
before base.
-
+
WinXP Tamil failures went down from 168964 (15.4752%) to 167
(0.0152953%) (two orders of magnitude reduction!).
-
+
Included in this is a minor fixup that actually fixed a few tests
with non-Tamil too. Numbers at:
-
+
BENGALI: 353997 out of 354285 tests passed. 288 failed (0.0812905%)
DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.00777502%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%)
KHMER: 299106 out of 299124 tests passed. 18 failed (0.00601757%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
- MALAYALAM: 1048104 out of 1048416 tests passed. 312 failed
- (0.0297592%)
+ MALAYALAM: 1048104 out of 1048416 tests passed. 312 failed (0.0297592%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271747 out of 271847 tests passed. 100 failed (0.0367854%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
[OT] Add SubstLookup serialize API
src/hb-ot-layout-common-private.hh | 2 +-
- src/hb-ot-layout-gsub-table.hh | 65
- +++++++++++++++++++++++++++++++++++++-
+ src/hb-ot-layout-gsub-table.hh | 65 +++++++++++++++++++++++++++++++++++++-
2 files changed, 65 insertions(+), 2 deletions(-)
commit 715e03bc21d6adaa8e1f647235843839dc47dad1
src/hb-open-type-private.hh | 53 +++++++++++++++-
src/hb-ot-layout-common-private.hh | 8 ++-
- src/hb-ot-layout-gsub-table.hh | 125
- +++++++++++++++++++++++++++++--------
+ src/hb-ot-layout-gsub-table.hh | 125 +++++++++++++++++++++++++++++--------
3 files changed, 156 insertions(+), 30 deletions(-)
commit 1b38b4e817d871b9549be65af6030bd0eea7f775
[OT] Implement serialize() for MultiSubst
src/hb-open-type-private.hh | 10 ++++++++++
- src/hb-ot-layout-gsub-table.hh | 43
- ++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout-gsub-table.hh | 43 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 53 insertions(+)
commit 4912030dfba740c822e200d33cbb5c6dbbeaf79e
Date: Mon Sep 3 20:19:46 2012 -0400
Fix possible NULL dereference
-
+
As reported by Kenichi Ishibashi.
src/hb-ot-layout-gsubgpos-private.hh | 2 +-
Date: Sat Sep 1 21:56:06 2012 -0400
[OT] Remove serialize alignment
-
+
Will reintroduce in a different way when we actually need it.
src/hb-open-type-private.hh | 24 +++++++++++-------------
src/hb-open-type-private.hh | 14 +++++++++++++
src/hb-ot-layout-common-private.hh | 2 +-
- src/hb-ot-layout-gsub-table.hh | 43
- ++++++++++++++++++++++++++++++++++++--
+ src/hb-ot-layout-gsub-table.hh | 43 ++++++++++++++++++++++++++++++++++++--
3 files changed, 56 insertions(+), 3 deletions(-)
commit abcc5ac1fde1c493e4055dd2f27b8aade7713156
Date: Sat Sep 1 21:30:17 2012 -0400
[OT] Improve serialize syntax
-
+
For some definition of improvement...
src/hb-open-type-private.hh | 6 ++++--
[OT] Restart work on serialize()
src/hb-open-type-private.hh | 39 ++++++++++++++++++------
- src/hb-ot-layout-common-private.hh | 61
- +++++++++++++++++++-------------------
+ src/hb-ot-layout-common-private.hh | 61 +++++++++++++++++++-------------------
src/hb-ot-layout-gsub-table.hh | 13 ++++++++
3 files changed, 73 insertions(+), 40 deletions(-)
Date: Sat Sep 1 20:38:45 2012 -0400
[OT] Insert dotted-circle for run-initial marks
-
+
Unfortunately if the font has GPOS and 'mark' feature does
not position mark on dotted-circle, our inserted dotted-circle
will not get the mark repositioned to itself. Uniscribe cheats
here.
-
+
If there is no GPOS however, the fallback positioning kicks in
and sorts this out.
-
+
I'm not willing to address the first case.
src/hb-ot-shape.cc | 32 ++++++++++++++++++++++++++++++++
Date: Sat Sep 1 20:06:26 2012 -0400
[OT] Fallback-position ccc=0 Thai / Lao marks
-
+
Not perfect, but so is fallback positioning in 2012...
- src/hb-ot-shape-fallback.cc | 56
- +++++++++++++++++++++++++++++++++++++--------
+ src/hb-ot-shape-fallback.cc | 56 +++++++++++++++++++++++++++++++++++++--------
1 file changed, 46 insertions(+), 10 deletions(-)
commit 3992b5ec4cb43d114d87ff7ee2b992bcf819c9cd
Move code around
src/hb-ot-shape-fallback-private.hh | 5 ++++
- src/hb-ot-shape-fallback.cc | 46
- +++++++++++++++++++++++++------------
+ src/hb-ot-shape-fallback.cc | 46 +++++++++++++++++++++++++------------
src/hb-ot-shape-private.hh | 6 +++++
src/hb-ot-shape.cc | 4 ++++
4 files changed, 46 insertions(+), 15 deletions(-)
Date: Fri Aug 31 18:12:01 2012 -0400
[Indic] Implement dotted-circle insertion for broken clusters
-
+
No panic, we reeally insert dotted circle when it's absolutely broken.
-
- Fixes most of the dotted-circle cases against Uniscribe. (for
- Devanagari
+
+ Fixes most of the dotted-circle cases against Uniscribe. (for Devanagari
fixes 80% of them, for Khmer 70%; the rest look like Uniscribe being
really bogus...)
-
+
I had to make a decision. Apparently Uniscribe adds one dotted circle
- to each broken character. I tried that, but that goes wrong
- easily with
+ to each broken character. I tried that, but that goes wrong easily with
split matras. So I made it add only one dotted circle to an entire
broken syllable tail. As in: "if there was a dotted circle here, this
would have formed a correct cluster." That works better for split
src/hb-buffer.cc | 10 +++++
src/hb-ot-shape-complex-indic-machine.rl | 4 +-
src/hb-ot-shape-complex-indic-private.hh | 2 +-
- src/hb-ot-shape-complex-indic.cc | 67
- +++++++++++++++++++++++++++++---
+ src/hb-ot-shape-complex-indic.cc | 67 +++++++++++++++++++++++++++++---
src/hb-ot-shape-normalize-private.hh | 1 +
src/hb-ot-shape-normalize.cc | 11 +++---
7 files changed, 83 insertions(+), 13 deletions(-)
[Indic] Start adding dotted-circle instrastructure
src/hb-ot-shape-complex-indic-machine.rl | 19 +++++++------
- src/hb-ot-shape-complex-indic.cc | 46
- +++++++++++++++++++++++++++++---
+ src/hb-ot-shape-complex-indic.cc | 46 +++++++++++++++++++++++++++++---
2 files changed, 51 insertions(+), 14 deletions(-)
commit 1be368e96fb7de8c77bf992874e0d5bd6b272ebe
[OT] Add serialize() for Coverage
src/hb-open-type-private.hh | 34 +++++++++++++++++----
- src/hb-ot-layout-common-private.hh | 62
- ++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout-common-private.hh | 62 ++++++++++++++++++++++++++++++++++++++
2 files changed, 90 insertions(+), 6 deletions(-)
commit e901b954c6ec44ac3ae7fb3c326e6e7a40718e4b
[OT] Start adding serialize() API
- src/hb-open-type-private.hh | 77
- +++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-open-type-private.hh | 77 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 77 insertions(+)
commit 965c280de09b49d711cb78d629da321c802084de
Date: Wed Aug 29 13:59:16 2012 -0400
Add HB_BUFFER_ASSERT_VAR
-
+
To be used in places we access buffer vars...
src/hb-buffer-private.hh | 3 +++
Date: Wed Aug 29 11:11:54 2012 -0400
Port Arabic fallback ligating to share code with GSUB
-
+
This will eventually allow us to skip marks, as well as (fallback)
attach marks to ligature components of fallback-shaped Arabic.
That would be pretty cool. I kludged GDEF props in, so mark-skipping
works, but the produced ligature id/components will be cleared later
by substitute_start() et al.
-
- Perhaps using a synthetic table for Arabic fallback shaping was
- a better
+
+ Perhaps using a synthetic table for Arabic fallback shaping was a better
idea. The current approach has way too many layering violations...
src/hb-ot-layout-gsubgpos-private.hh | 4 ++
- src/hb-ot-shape-complex-arabic.cc | 72
- ++++++++++++++++++++++++------------
+ src/hb-ot-shape-complex-arabic.cc | 72 ++++++++++++++++++++++++------------
src/hb-ot-shape.cc | 4 +-
3 files changed, 56 insertions(+), 24 deletions(-)
[GSUB] Move ligation logic over
- src/hb-ot-layout-gsub-table.hh | 78
- ++++-------------------------------
- src/hb-ot-layout-gsubgpos-private.hh | 80
- ++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout-gsub-table.hh | 78 ++++-------------------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 80 ++++++++++++++++++++++++++++++++++++
2 files changed, 89 insertions(+), 69 deletions(-)
commit 191fa885d9e0a2dce92dd8727cddd18495e62409
Date: Tue Aug 28 22:58:55 2012 -0400
[GSUB] Merge Ligature and context input matching
-
+
Looks better now...
TODO | 4 --
- src/hb-ot-layout-gsub-table.hh | 71
- +++++++-----------------------------
+ src/hb-ot-layout-gsub-table.hh | 71 +++++++-----------------------------
src/hb-ot-layout-gsubgpos-private.hh | 29 ++++++++++++++-
3 files changed, 40 insertions(+), 64 deletions(-)
Start converging Ligature and match_input
- src/hb-ot-layout-gsub-table.hh | 58
- +++++++++++++++++----------------
- src/hb-ot-layout-gsubgpos-private.hh | 62
- ++++++++++++++++++++++++++++--------
+ src/hb-ot-layout-gsub-table.hh | 58 +++++++++++++++++----------------
+ src/hb-ot-layout-gsubgpos-private.hh | 62 ++++++++++++++++++++++++++++--------
2 files changed, 78 insertions(+), 42 deletions(-)
commit 2eef71737ea29ffadbb5a2be4a898b44f53f66ac
[hb-icu-le] Add visbility
src/hb-icu-le/FontTableCache.h | 6 +++++-
- src/hb-icu-le/PortableFontInstance.cpp | 39
- ----------------------------------
+ src/hb-icu-le/PortableFontInstance.cpp | 39 ----------------------------------
src/hb-icu-le/PortableFontInstance.h | 7 ++++--
src/hb-icu-le/cmaps.cpp | 2 +-
src/hb-icu-le/cmaps.h | 5 ++++-
Date: Tue Aug 28 17:57:49 2012 -0400
Use namespace for OpenType tables
-
+
Avoids USHORT, SHORT, ULONG, LONG clashes with Windows API.
src/hb-font.cc | 12 ++---
src/hb-ot-layout-gsub-table.hh | 4 ++
src/hb-ot-layout-gsubgpos-private.hh | 4 ++
src/hb-ot-layout-private.hh | 12 +++--
- src/hb-ot-layout.cc | 91
- ++++++++++++++++++------------------
+ src/hb-ot-layout.cc | 91 ++++++++++++++++++------------------
src/hb-ot-maxp-table.hh | 4 ++
src/hb-ot-name-table.hh | 4 ++
src/hb-uniscribe.cc | 8 ++--
Date: Tue Aug 28 16:31:23 2012 -0400
Revert "Minor"
-
+
This reverts commit 3e0a03978b91994bb7fa7922593cbdfc50878dfc.
-
+
I know remember why that line is there :).
src/hb-ot-shape-complex-arabic.cc | 1 +
Date: Mon Aug 27 16:54:34 2012 -0400
Only fallback-position glyphs if we have the ccc
-
+
Previously, ccc=0 Thai / Lao marks were being
mispositioned. Don't touch them.
Date: Sun Aug 26 14:30:18 2012 -0400
[Indic] Fix switch
-
+
D'oh. Was working by pure chance :)).
src/hb-ot-shape-complex-indic.cc | 2 +-
[graphite2] Cleanup scratch buffer allocation
- src/hb-graphite2.cc | 77
- ++++++++++++++++++++++++++++++-----------------------
+ src/hb-graphite2.cc | 77 ++++++++++++++++++++++++++++++-----------------------
1 file changed, 44 insertions(+), 33 deletions(-)
commit 2f7586c6229096143ca0a96712a27416ee0d3c85
[icu-le] Implement icu layout engine shaper
configure.ac | 2 +-
- src/hb-icu-le.cc | 113
- +++++++++++++++++++++++++++++++++++++++++++++-----
+ src/hb-icu-le.cc | 113 +++++++++++++++++++++++++++++++++++++++++++++-----
src/hb-icu-le/cmaps.h | 1 -
src/hb-shaper-list.hh | 4 ++
4 files changed, 108 insertions(+), 12 deletions(-)
src/hb-icu-le.cc | 17 +++-
src/hb-icu-le/FontTableCache.cpp | 34 ++++----
src/hb-icu-le/FontTableCache.h | 9 ++-
- src/hb-icu-le/PortableFontInstance.cpp | 144
- +++------------------------------
+ src/hb-icu-le/PortableFontInstance.cpp | 144 +++------------------------------
src/hb-icu-le/PortableFontInstance.h | 21 ++---
src/hb-icu-le/README | 1 +
6 files changed, 57 insertions(+), 169 deletions(-)
Date: Thu Aug 23 21:23:41 2012 -0400
[icu-le] Start adding a icu-layout-engine backend
-
+
Import PortableFontInstance and add shaper stub.
configure.ac | 9 +
src/hb-icu-le/FontTableCache.cpp | 91 +++++++
src/hb-icu-le/FontTableCache.h | 41 +++
src/hb-icu-le/Makefile.am | 25 ++
- src/hb-icu-le/PortableFontInstance.cpp | 436
- ++++++++++++++++++++++++++++++++
+ src/hb-icu-le/PortableFontInstance.cpp | 436 ++++++++++++++++++++++++++++++++
src/hb-icu-le/PortableFontInstance.h | 117 +++++++++
src/hb-icu-le/README | 2 +
src/hb-icu-le/cmaps.cpp | 200 +++++++++++++++
src/hb-icu-le/cmaps.h | 85 +++++++
src/hb-icu-le/letest.h | 49 ++++
src/hb-icu-le/license.html | 51 ++++
- src/hb-icu-le/sfnt.h | 449
- +++++++++++++++++++++++++++++++++
+ src/hb-icu-le/sfnt.h | 449 +++++++++++++++++++++++++++++++++
14 files changed, 1674 insertions(+)
commit b5584ee4be46b47e1678acf28426970a6d670b4f
Date: Thu Aug 23 16:26:07 2012 -0400
[Indic] For old-spec, match non-zero context
-
- Fixes consonant-position with old-spec Malayalam. Uniscribe seem
- to be
+
+ Fixes consonant-position with old-spec Malayalam. Uniscribe seem to be
doing this. Fixes below-base La (eg. Pa,H,La) with AnjaliNewLipi.ttf.
Doesn't regress new-spec or other scripts.
Date: Thu Aug 23 16:22:28 2012 -0400
[GSUB] Allow non-zero-context matching in would_apply()
-
+
To be used in the next patch.
src/hb-ot-layout-gsubgpos-private.hh | 6 ++++--
Date: Thu Aug 23 16:10:37 2012 -0400
Revert "[Indic/GSUB] Ignore context when matching would_apply()"
-
+
This reverts commit 24dd4e56743c6ce5e01cb710ca9e01b3e527af58.
-
+
Oops. My bad. The change _regressed_ Malayalam test suite, not
improved it. I'll redo it, differentiating between old-spec and
new-spec cases.
Date: Thu Aug 23 15:47:10 2012 -0400
[Indic/GSUB] Ignore context when matching would_apply()
-
- The MS Indic specs say "...all classifications are determined
- ... using
- context-free substitutions." However, testing shows that MS's
- Malayalam
- shapers (both old and new), "match" even if there is no zero-context
- rule.
+
+ The MS Indic specs say "...all classifications are determined ... using
+ context-free substitutions." However, testing shows that MS's Malayalam
+ shapers (both old and new), "match" even if there is no zero-context rule.
We follow.
-
+
Fixes below-base La (eg. Pa,H,La) with AnjaliNewLipi.ttf (old spec).
Moreover, test suite Malayalam failures are down to 312 from 875! No
change in other scripts.
-
+
Current numbers:
-
+
BENGALI: 353996 out of 354285 tests passed. 289 failed (0.0815727%)
DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.00777502%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%)
KHMER: 299106 out of 299124 tests passed. 18 failed (0.00601757%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
- MALAYALAM: 1047541 out of 1048416 tests passed. 875 failed
- (0.0834592%)
+ MALAYALAM: 1047541 out of 1048416 tests passed. 875 failed (0.0834592%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271726 out of 271847 tests passed. 121 failed (0.0445103%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
Date: Thu Aug 23 15:19:45 2012 -0400
[Indic] Implement pre-base reordering Ra for old-spec Malayalam
-
+
Fixes Pa,H,Ra sequence with AnjaliNewLipi.ttf.
src/hb-ot-shape-complex-indic.cc | 5 ++---
Date: Thu Aug 23 12:06:14 2012 -0400
[Indic] Only apply basic features per-syllable
-
+
Free up syllables and let features work across syllables for the
presentation forms features and GPOS.
-
+
Fixed:
- 1 GURMUKHI test (remains 40)
- 12 KHMER tests (remains 18)
- 11 SINHALA tests (remains 121)
-
+
Regresses:
- 5 MALAYALAM tests (up to 312)
-
+
Current numbers:
-
+
BENGALI: 353996 out of 354285 tests passed. 289 failed (0.0815727%)
DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.00777502%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%)
KHMER: 299106 out of 299124 tests passed. 18 failed (0.00601757%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
- MALAYALAM: 1048104 out of 1048416 tests passed. 312 failed
- (0.0297592%)
+ MALAYALAM: 1048104 out of 1048416 tests passed. 312 failed (0.0297592%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271726 out of 271847 tests passed. 121 failed (0.0445103%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
Date: Thu Aug 16 11:35:50 2012 -0400
[OT] Fix Arabic shaper OOB access
-
+
https://bugzilla.mozilla.org/show_bug.cgi?id=782908
src/hb-ot-shape-complex-arabic.cc | 2 +-
Date: Thu Aug 16 08:09:44 2012 -0400
[configure] Cleanup check for ICU
-
+
Check for upstream-provided 'icu-uc' pkgconfig package.
configure.ac | 21 +--------------------
Date: Thu Aug 16 07:32:59 2012 -0400
[ICU] Fix includes
-
+
As reported by Steven Loomis, including uversion.h works everywhere.
src/hb-icu.cc | 6 ------
Date: Wed Aug 15 17:24:28 2012 -0400
[NEWS] Fix date
-
+
Oops!
NEWS | 2 +-
Date: Sat Aug 11 21:26:25 2012 -0400
[ICU] Use new normalizer2 compose/decompose API
-
+
It's considerably faster than the fallback implementation we had
previously!
src/hb-buffer.cc | 9 +++---
src/hb-glib.cc | 26 +++++++---------
- src/hb-icu.cc | 75
- +++++++++++++++++++++++++++++++++++++----------
+ src/hb-icu.cc | 75 +++++++++++++++++++++++++++++++++++++----------
src/hb-unicode-private.hh | 13 ++------
src/hb-unicode.cc | 35 ++++++++++++++++++++--
src/hb-warning.cc | 8 -----
Date: Sat Aug 11 18:34:13 2012 -0400
[OT] Unbreak Thai shaping and fallback Arabic shaping
-
+
The merger of normalizer and glyph-mapping broke shapers that
modified text stream. Unbreak them by adding a new preprocess_text
shaping stage that happens before normalizing/cmap and disallow
setup_mask modification of actual text.
- src/hb-ot-shape-complex-arabic.cc | 42
- ++++++++++++++++++++++++++++----------
+ src/hb-ot-shape-complex-arabic.cc | 42 ++++++++++++++++++++++++++++----------
src/hb-ot-shape-complex-indic.cc | 1 +
src/hb-ot-shape-complex-misc.cc | 12 ++++++-----
src/hb-ot-shape-complex-private.hh | 15 +++++++++++---
[OT] Add shape_plan to Arabic shaper
- src/hb-ot-shape-complex-arabic.cc | 82
- +++++++++++++++++++++++++--------------
+ src/hb-ot-shape-complex-arabic.cc | 82 +++++++++++++++++++++++++--------------
1 file changed, 53 insertions(+), 29 deletions(-)
commit 344cc56698a8c84c4c1a05a71d829e5171aa3a60
Date: Fri Aug 10 16:34:04 2012 -0400
[OT] Fix fallback mark positioning with left-to-right text
-
+
Ouch!
src/hb-ot-shape-fallback.cc | 13 +++++++++++--
Date: Fri Aug 10 14:49:37 2012 -0400
Bump version to 0.9.2
-
+
A *real* release this time, with NEWS, ChangeLog, etc.
AUTHORS | 8 ++++
COPYING | 9 ++--
Makefile.am | 13 +++---
- NEWS | 136
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ NEWS | 136 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
THANKS | 7 +++
configure.ac | 4 +-
6 files changed, 165 insertions(+), 12 deletions(-)
[test] Move around
- test/shaping/texts/in-tree/shaper-arabic/script-arabic/MANIFEST |
- 2 +-
- .../texts/in-tree/shaper-arabic/script-arabic/language-urdu/MANIFEST |
- 1 +
- .../shaper-arabic/script-arabic/{ => language-urdu}/crulp/MANIFEST
- | 0
- .../script-arabic/{ => language-urdu}/crulp/ligatures/2grams.txt
- | 0
- .../script-arabic/{ => language-urdu}/crulp/ligatures/3grams.txt
- | 0
- .../script-arabic/{ => language-urdu}/crulp/ligatures/4grams.txt
- | 0
- .../script-arabic/{ => language-urdu}/crulp/ligatures/5grams.txt
- | 0
- .../script-arabic/{ => language-urdu}/crulp/ligatures/6grams.txt
- | 0
- .../script-arabic/{ => language-urdu}/crulp/ligatures/7grams.txt
- | 0
- .../script-arabic/{ => language-urdu}/crulp/ligatures/8grams.txt
- | 0
- .../script-arabic/{ => language-urdu}/crulp/ligatures/LICENSE
- | 0
- .../script-arabic/{ => language-urdu}/crulp/ligatures/MANIFEST
- | 0
- .../script-arabic/{ => language-urdu}/crulp/ligatures/README |
- 0
- .../script-arabic/{ => language-urdu}/crulp/ligatures/SOURCES
- | 0
+ test/shaping/texts/in-tree/shaper-arabic/script-arabic/MANIFEST | 2 +-
+ .../texts/in-tree/shaper-arabic/script-arabic/language-urdu/MANIFEST | 1 +
+ .../shaper-arabic/script-arabic/{ => language-urdu}/crulp/MANIFEST | 0
+ .../script-arabic/{ => language-urdu}/crulp/ligatures/2grams.txt | 0
+ .../script-arabic/{ => language-urdu}/crulp/ligatures/3grams.txt | 0
+ .../script-arabic/{ => language-urdu}/crulp/ligatures/4grams.txt | 0
+ .../script-arabic/{ => language-urdu}/crulp/ligatures/5grams.txt | 0
+ .../script-arabic/{ => language-urdu}/crulp/ligatures/6grams.txt | 0
+ .../script-arabic/{ => language-urdu}/crulp/ligatures/7grams.txt | 0
+ .../script-arabic/{ => language-urdu}/crulp/ligatures/8grams.txt | 0
+ .../script-arabic/{ => language-urdu}/crulp/ligatures/LICENSE | 0
+ .../script-arabic/{ => language-urdu}/crulp/ligatures/MANIFEST | 0
+ .../script-arabic/{ => language-urdu}/crulp/ligatures/README | 0
+ .../script-arabic/{ => language-urdu}/crulp/ligatures/SOURCES | 0
14 files changed, 2 insertions(+), 1 deletion(-)
commit 7a484c601e0958533eb85a6902296733c39537fe
.../shaper-arabic/script-arabic/crulp/MANIFEST | 1 +
.../script-arabic/crulp/ligatures/2grams.txt | 601 ++
.../script-arabic/crulp/ligatures/3grams.txt | 3415 +++++++++++
- .../script-arabic/crulp/ligatures/4grams.txt | 6316
- ++++++++++++++++++++
- .../script-arabic/crulp/ligatures/5grams.txt | 5029
- ++++++++++++++++
+ .../script-arabic/crulp/ligatures/4grams.txt | 6316 ++++++++++++++++++++
+ .../script-arabic/crulp/ligatures/5grams.txt | 5029 ++++++++++++++++
.../script-arabic/crulp/ligatures/6grams.txt | 1542 +++++
.../script-arabic/crulp/ligatures/7grams.txt | 354 ++
.../script-arabic/crulp/ligatures/8grams.txt | 26 +
Date: Fri Aug 10 03:51:44 2012 -0400
[OT] Slightly adjust normalizer
-
+
The change is very subtle. If we have a single-char cluster that
decomposes to three or more characters, then try recomposition, in
case the farther mark may compose with the base.
- src/hb-ot-shape-normalize.cc | 81
- +++++++++++++++++++++++++++++---------------
+ src/hb-ot-shape-normalize.cc | 81 +++++++++++++++++++++++++++++---------------
1 file changed, 54 insertions(+), 27 deletions(-)
commit 07d682806349aee81f53114778ce0beb23909ed7
Date: Thu Aug 9 22:33:32 2012 -0400
[OT] Avoid calling get_glyph() twice
-
+
Essentially move the glyph mapping to normalization process.
The effect on Devanagari is small (but observable). Should be more
observable in simple text, like ASCII.
src/hb-ot-shape-normalize-private.hh | 2 +
- src/hb-ot-shape-normalize.cc | 76
- +++++++++++++++++++++++++-----------
+ src/hb-ot-shape-normalize.cc | 76 +++++++++++++++++++++++++-----------
src/hb-ot-shape.cc | 44 ++++++++++-----------
3 files changed, 77 insertions(+), 45 deletions(-)
Date: Thu Aug 9 21:58:07 2012 -0400
[OT] More code shuffling around
-
+
Preparing for merging map_glyphs() and normalize().
- src/hb-ot-shape.cc | 167
- +++++++++++++++++++++++++++--------------------------
+ src/hb-ot-shape.cc | 167 +++++++++++++++++++++++++++--------------------------
1 file changed, 86 insertions(+), 81 deletions(-)
commit cd0c6e148f6d078b364370cb2f808b793b921be2
Date: Thu Aug 9 21:48:55 2012 -0400
Shuffle buffer variable allocations around
-
+
To room for more allocations, coming.
src/hb-ot-layout-private.hh | 6 +++---
Minor
- src/hb-ot-shape-normalize.cc | 50
- +++++++++++++++++++++++++++-----------------
+ src/hb-ot-shape-normalize.cc | 50 +++++++++++++++++++++++++++-----------------
1 file changed, 31 insertions(+), 19 deletions(-)
commit 56c9e7c004e802ddcb8c704346026f1d7a812f9f
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Aug 9 21:12:30 2012 -0400
- Fill out combining class resetting for fallback shaping
- Thai/Lao/Tibetan
+ Fill out combining class resetting for fallback shaping Thai/Lao/Tibetan
src/hb-ot-shape-fallback.cc | 38 +++++++++++++++++++++++++++++++++++++-
src/hb-unicode-private.hh | 7 ++++---
Date: Thu Aug 9 18:30:34 2012 -0400
Revert "Reject lookups with no subTable"
-
+
This reverts commit 30ec9002d84e8b49290e782e6192069821ffa942.
-
+
See previous commit.
src/hb-ot-layout-common-private.hh | 1 -
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Aug 9 18:30:05 2012 -0400
- Revert "[GSUB/GPOS] Reject Context/ChainContext lookups with zero
- input"
-
+ Revert "[GSUB/GPOS] Reject Context/ChainContext lookups with zero input"
+
This reverts commit 0981068b75710397f08e0d2d776a0a2ea68d7117.
-
- I was confused. Even if we access coverage[0] unconditionally,
- we don't
+
+ I was confused. Even if we access coverage[0] unconditionally, we don't
need bound checks since the array machinary already handles that.
src/hb-ot-layout-gsubgpos-private.hh | 2 --
Date: Wed Aug 8 18:04:29 2012 -0400
Add check-exported-symbols.sh
-
+
And misc linking fixes.
src/Makefile.am | 1 +
- src/check-exported-symbols.sh | 40
- ++++++++++++++++++++++++++++++++++++++++
+ src/check-exported-symbols.sh | 40 ++++++++++++++++++++++++++++++++++++++++
src/check-internal-symbols.sh | 2 +-
src/hb-ot-shape-complex-indic.cc | 2 +-
src/hb-ot-shape.cc | 6 +++---
src/hb-ot-shape.cc | 2 +-
src/hb-shape-plan.cc | 2 +-
src/hb-shape-plan.h | 2 +-
- src/hb-tt-font.cc | 166
- +-----------------------------------------
+ src/hb-tt-font.cc | 166 +-----------------------------------------
12 files changed, 72 insertions(+), 226 deletions(-)
commit 560d68af8168d1baff607b9616a3590af70fe9ec
Date: Wed Aug 8 17:16:01 2012 -0400
Use a export-file for Windows builds
-
+
Apparently even that doesn't make check-internal-symbols.sh happy with
mingw32. Going to disable that for DLLs again, but hopefully the
export-file is doing *something*.
Minor renaming
- src/Makefile.am |
- 4 ++--
- ...sition-fallback-private.hh => hb-ot-shape-fallback-private.hh} |
- 8 ++++----
- src/{hb-ot-shape-position-fallback.cc => hb-ot-shape-fallback.cc} |
- 4 ++--
- src/hb-ot-shape.cc |
- 4 ++--
+ src/Makefile.am | 4 ++--
+ ...sition-fallback-private.hh => hb-ot-shape-fallback-private.hh} | 8 ++++----
+ src/{hb-ot-shape-position-fallback.cc => hb-ot-shape-fallback.cc} | 4 ++--
+ src/hb-ot-shape.cc | 4 ++--
4 files changed, 10 insertions(+), 10 deletions(-)
commit 801298b590effd768607bb532dc83c73ba65d16b
Date: Wed Aug 8 14:26:36 2012 -0400
Fix cast
-
+
https://bugs.freedesktop.org/show_bug.cgi?id=53233
src/hb-buffer-private.hh | 10 ++++++----
Date: Wed Aug 8 01:20:45 2012 -0400
[OT] Implement fallback positioning
-
+
Implemented for Arabic, Hebrew, and generic marks.
Activated if no GPOS table present.
src/hb-font.h | 3 +-
src/hb-ft.cc | 3 +-
src/hb-old.cc | 2 +-
- src/hb-ot-shape-position-fallback.cc | 237
- ++++++++++++++++++++++++++++++++++-
+ src/hb-ot-shape-position-fallback.cc | 237 ++++++++++++++++++++++++++++++++++-
src/hb-unicode-private.hh | 81 ++++++++++++
src/hb-unicode.cc | 107 ++++++----------
6 files changed, 356 insertions(+), 77 deletions(-)
Date: Tue Aug 7 22:41:38 2012 -0400
[OT] Start adding fallback positioning
-
+
Used when there is no GPOS.
src/Makefile.am | 2 ++
src/hb-ot-shape-position-fallback-private.hh | 39 +++++++++++++++++++++++
- src/hb-ot-shape-position-fallback.cc | 47
- ++++++++++++++++++++++++++++
+ src/hb-ot-shape-position-fallback.cc | 47 ++++++++++++++++++++++++++++
src/hb-ot-shape.cc | 23 +++-----------
4 files changed, 93 insertions(+), 18 deletions(-)
Date: Tue Aug 7 22:25:24 2012 -0400
[GSUB] Generalize would_apply()
-
- Fixes logic also, where before we were always matching if
- glyphs_len==1
+
+ Fixes logic also, where before we were always matching if glyphs_len==1
and a ligature started with the glyph.
src/hb-ot-layout-gsub-table.hh | 26 ++++++++++++++++++++-----
- src/hb-ot-layout-gsubgpos-private.hh | 37
- ++++++++++++++++++------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 37 ++++++++++++++++++------------------
src/hb-ot-layout.cc | 3 +--
3 files changed, 40 insertions(+), 26 deletions(-)
Add hb_font_glyph_from/to_string
- src/hb-font-private.hh | 43
- +++++++++++++++++++++++++++++++++++++++++++
+ src/hb-font-private.hh | 43 +++++++++++++++++++++++++++++++++++++++++++
src/hb-font.cc | 24 ++++++++++++++++++++----
src/hb-font.h | 11 +++++++++++
src/hb-private.hh | 16 ++++++++++++++++
Date: Tue Aug 7 21:12:49 2012 -0400
[OT] Apply 'rclt' feature in horizontal mode
-
+
'rclt' is "Required Contextual Forms" being proposed by Microsoft.
It's like 'calt', but supposedly always on. We apply 'calt' anyway,
and now apply this too.
More refactoring
- src/hb-ot-shape-normalize.cc | 161
- +++++++++++++++++++++++++++++++++++++++++-
- src/hb-unicode-private.hh | 164
- +------------------------------------------
+ src/hb-ot-shape-normalize.cc | 161 +++++++++++++++++++++++++++++++++++++++++-
+ src/hb-unicode-private.hh | 164 +------------------------------------------
2 files changed, 162 insertions(+), 163 deletions(-)
commit 428dfcab6634ff264570a0a5d715efb8048c3db5
Date: Tue Aug 7 16:45:27 2012 -0400
Add Hebrew presentation forms shaping
-
+
Lifted from https://bugzilla.mozilla.org/show_bug.cgi?id=728866
- src/hb-unicode-private.hh | 121
- +++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-unicode-private.hh | 121 +++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 120 insertions(+), 1 deletion(-)
commit 32d71dc13317b322e2c5de00d767b2cb15fddd8b
[Graphite] Minor
- src/hb-graphite2.cc | 60
- +++++++++++++++++++++++++----------------------------
+ src/hb-graphite2.cc | 60 +++++++++++++++++++++++++----------------------------
1 file changed, 28 insertions(+), 32 deletions(-)
commit 030ac5022e8a43b9329c26e72527bafc582ef44b
Date: Tue Aug 7 13:01:12 2012 -0400
Remove enum trailing comma
-
+
...again.
src/hb-ot-shape-normalize-private.hh | 2 +-
Date: Mon Aug 6 19:35:04 2012 -0700
[Graphite] Fix graphite2 backend with RTL text
-
+
Patch from Martin Hosken.
src/hb-graphite2.cc | 33 ++++++++++++++++++---------------
[Graphite] Port graphite2 backend to new shaper infrastructure
- src/hb-graphite2.cc | 234
- +++++++++++++++++++++++---------------------------
+ src/hb-graphite2.cc | 234 +++++++++++++++++++++++---------------------------
src/hb-graphite2.h | 2 +-
src/hb-shaper-list.hh | 2 +-
3 files changed, 109 insertions(+), 129 deletions(-)
Date: Mon Aug 6 17:07:19 2012 -0700
Remove unnecessary lifecycle bits
-
+
We already set recount to INVALID when destroying.
This block was not necessary.
Date: Sun Aug 5 21:16:26 2012 -0700
[Indic] Minor, move 'blwf' after 'half'
-
+
We don't apply them together anyway. Should not make any difference
right now.
Date: Sat Aug 4 17:08:38 2012 -0700
Enlarge glyph_name buffer
-
+
Lohit Devanagari has a glyph named:
u0924_u094D.half_u0930_u094D.blwf.vatu
Date: Sat Aug 4 16:43:18 2012 -0700
Rewrite ARRAY_LENGTH as a template function
-
+
Such it wouldn't apply to pointers accidentally.
src/hb-ot-shape-complex-arabic-table.hh | 4 ++--
Date: Fri Aug 3 18:54:54 2012 -0700
[Indic] Fix consonant position font lookup logic
-
+
Oops. I broken this badly and the test suite did not notice. That
worries me. Have to investigate.
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Fri Aug 3 17:40:07 2012 -0700
- [OT] Use general-category, not GDEF class, to decide to zero mark
- advances
-
+ [OT] Use general-category, not GDEF class, to decide to zero mark advances
+
At this point, the GDEF glyph synthesis looks pointless. Not that I
have many fonts without GDEF lying around.
-
- As for mark advance zeroing when GPOS not available, that also
- is being
+
+ As for mark advance zeroing when GPOS not available, that also is being
replaced by proper fallback mark positioning soon.
src/hb-ot-shape.cc | 7 ++-----
Date: Thu Aug 2 14:21:40 2012 -0400
[Indic] Add per-script configuration tables
-
+
This concludes the Indic shape_plan work. May do for Arabic also...
src/hb-ot-shape-complex-indic-private.hh | 16 +-
- src/hb-ot-shape-complex-indic.cc | 309
- +++++++++++++++----------------
+ src/hb-ot-shape-complex-indic.cc | 309 +++++++++++++++----------------
2 files changed, 159 insertions(+), 166 deletions(-)
commit 85fc6c483f6d734febbe39270e84701a651f01f1
Date: Thu Aug 2 12:21:44 2012 -0400
[Indic] Move more stuff to the shape_plan
-
+
Almost done. Need to add per-script static tables.
src/hb-ot-shape-complex-indic-machine.rl | 4 +-
- src/hb-ot-shape-complex-indic.cc | 216
- ++++++++++++++++---------------
+ src/hb-ot-shape-complex-indic.cc | 216 ++++++++++++++++---------------
2 files changed, 116 insertions(+), 104 deletions(-)
commit 914ffaa40fcca020f65bacdd709421e9047afd83
[Indic] Move more repeated work into shape_plan
- src/hb-ot-shape-complex-indic.cc | 63
- ++++++++++++++++++++++++++--------------
+ src/hb-ot-shape-complex-indic.cc | 63 ++++++++++++++++++++++++++--------------
1 file changed, 42 insertions(+), 21 deletions(-)
commit a8c6da90f4c6e8d27a3a1b758a55476776d9f750
Date: Thu Aug 2 10:46:34 2012 -0400
[OT] Add per-complex-shaper shape_plan data
-
+
Hookup some Indic data to it. More to come.
src/hb-ot-shape-complex-arabic.cc | 2 +
- src/hb-ot-shape-complex-indic.cc | 128
- ++++++++++++++++++++++---------------
+ src/hb-ot-shape-complex-indic.cc | 128 ++++++++++++++++++++++---------------
src/hb-ot-shape-complex-misc.cc | 4 ++
src/hb-ot-shape-complex-private.hh | 16 ++++-
src/hb-ot-shape-private.hh | 1 +
src/hb-ot-map-private.hh | 8 ++---
src/hb-ot-map.cc | 11 ++++---
src/hb-ot-shape-complex-indic-machine.rl | 4 +--
- src/hb-ot-shape-complex-indic.cc | 50
- +++++++++++++++-----------------
+ src/hb-ot-shape-complex-indic.cc | 50 +++++++++++++++-----------------
src/hb-ot-shape-private.hh | 6 ++++
src/hb-ot-shape.cc | 28 ++++++++++--------
6 files changed, 57 insertions(+), 50 deletions(-)
[Indic] Move consonant-position-setting into initial_reordering()
- src/hb-ot-shape-complex-indic.cc | 65
- +++++++++++++++++++++-------------------
+ src/hb-ot-shape-complex-indic.cc | 65 +++++++++++++++++++++-------------------
1 file changed, 35 insertions(+), 30 deletions(-)
commit afbcc24be01a64bdb5c05c63880269145fa1d3c8
Date: Thu Aug 2 08:36:40 2012 -0400
[GSUB] Wire the font, not just the face, down to substitute()
-
+
We need the font for glyph lookup during GSUB pauses in Indic shaper.
Could perhaps be avoided, but at this point, we don't mean to support
separate substitute()/position() entry points (anymore), so there is
Date: Thu Aug 2 08:11:14 2012 -0400
[OT] Hide some API
-
- It was impossible to meaningfully use them from the outside these
- days.
+
+ It was impossible to meaningfully use them from the outside these days.
src/hb-ot-layout-private.hh | 40 ++++++++++++++++++++++++++++++++--------
src/hb-ot-layout.cc | 20 --------------------
Date: Thu Aug 2 07:53:18 2012 -0400
[Indic] More refactoring of consonant position peeking in the font
-
+
To be moved to initial_reordering next...
- src/hb-ot-shape-complex-indic.cc | 59
- ++++++++++++++++++++++++++++------------
+ src/hb-ot-shape-complex-indic.cc | 59 ++++++++++++++++++++++++++++------------
1 file changed, 41 insertions(+), 18 deletions(-)
commit 3eb6f81fd3f1e56679eec10d08f5e2303121753f
Date: Thu Aug 2 07:37:46 2012 -0400
[Indic] Refactor
-
+
Move all the logic that needs to eventually move into the indic table
into hb-ot-shape-complex-indic-private.hh.
- src/hb-ot-shape-complex-indic-private.hh | 210
- ++++++++++++++++++++++++++++
- src/hb-ot-shape-complex-indic.cc | 227
- ++-----------------------------
+ src/hb-ot-shape-complex-indic-private.hh | 210 ++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-indic.cc | 227 ++-----------------------------
2 files changed, 218 insertions(+), 219 deletions(-)
commit 3614ba242fc7d338761acdda365a134706035b6d
[Indic] Rename
- src/hb-ot-shape-complex-indic.cc | 40
- +++++++++++++++++++++-------------------
+ src/hb-ot-shape-complex-indic.cc | 40 +++++++++++++++++++++-------------------
1 file changed, 21 insertions(+), 19 deletions(-)
commit 610e5e8f713bb2a68939b72cb2b801a7aaede4f9
Date: Thu Aug 2 05:27:46 2012 -0400
[Indic] Streamline feature would_apply()
-
+
Comes with some 10% speedup for Devanagari even!
- src/hb-ot-map-private.hh | 85
- +++++++++++++++++++++++++---------------
+ src/hb-ot-map-private.hh | 85 +++++++++++++++++++++++++---------------
src/hb-ot-map.cc | 18 ++++-----
- src/hb-ot-shape-complex-indic.cc | 85
- +++++++++++++++++++++++-----------------
+ src/hb-ot-shape-complex-indic.cc | 85 +++++++++++++++++++++++-----------------
3 files changed, 110 insertions(+), 78 deletions(-)
commit 1d002048d5afcd45abbb09fdf0419f13b2e2265c
[Indic] Minor
src/hb-ot-shape-complex-indic-private.hh | 16 --------
- src/hb-ot-shape-complex-indic.cc | 64
- +++++++++++++++++++++-----------
+ src/hb-ot-shape-complex-indic.cc | 64 +++++++++++++++++++++-----------
2 files changed, 43 insertions(+), 37 deletions(-)
commit 6f7611375521c6d285a9aa763f2ea5cb44cd0d39
Date: Wed Aug 1 21:46:36 2012 -0400
[GSUB/GPOS] Use Coverage digests as gatekeeper
-
+
Gives me a good 10% speedup for the Devanagari test case. Less so
for less lookup-intensive tests.
-
- For the Devanagari test case, the false positive rate of the GSUB
- digest
+
+ For the Devanagari test case, the false positive rate of the GSUB digest
is 4%.
src/hb-ot-layout-gpos-table.hh | 30 +++++++++---------------------
- src/hb-ot-layout-gsub-table.hh | 35
- ++++++++++++-----------------------
+ src/hb-ot-layout-gsub-table.hh | 35 ++++++++++++-----------------------
src/hb-ot-layout-gsubgpos-private.hh | 8 ++++++--
src/hb-ot-layout-private.hh | 4 ++++
src/hb-ot-layout.cc | 29 +++++++++++++++++++++++++----
Date: Wed Aug 1 21:06:27 2012 -0400
Add hb_set_digest_t
-
+
Implement two set digests, and one that combines the two.
- src/hb-set-private.hh | 95
- +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-set-private.hh | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 95 insertions(+)
commit c8accf1dd2d92cc4f714393eb0ea46f69bb182a6
Inline font getters
src/hb-fallback-shape.cc | 21 ++--
- src/hb-font-private.hh | 204
- ++++++++++++++++++++++++++++++++++++++
+ src/hb-font-private.hh | 204 ++++++++++++++++++++++++++++++++++++++
src/hb-font.cc | 129 ++++--------------------
src/hb-graphite2.cc | 6 +-
src/hb-old.cc | 10 +-
Use a lookup table for modified_combining_class
src/hb-unicode-private.hh | 10 ++-
- src/hb-unicode.cc | 213
- +++++++++++++++++++++++++++++++---------------
+ src/hb-unicode.cc | 213 +++++++++++++++++++++++++++++++---------------
src/hb-unicode.h | 4 +
3 files changed, 157 insertions(+), 70 deletions(-)
src/hb-ot-shape-normalize.cc | 13 +++--
src/hb-ot-shape-private.hh | 6 +--
src/hb-ot-shape.cc | 4 +-
- src/hb-unicode-private.hh | 112
- ++++++++++++++++++++--------------------
+ src/hb-unicode-private.hh | 112 ++++++++++++++++++++--------------------
src/hb-unicode.cc | 5 +-
9 files changed, 73 insertions(+), 75 deletions(-)
Move unicode accessors around
- src/hb-unicode-private.hh | 73
- ++++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-unicode-private.hh | 73 ++++++++++++++++++++++++++++++++++++++++++++++-
src/hb-unicode.cc | 65 ++++-------------------------------------
2 files changed, 78 insertions(+), 60 deletions(-)
src/hb-icu.cc | 4 +-
src/hb-unicode-private.hh | 2 +-
src/hb-unicode.cc | 11 ++--
- src/hb-unicode.h | 124
- +++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-unicode.h | 124 +++++++++++++++++++++++++++++++++++++++++++++-
6 files changed, 134 insertions(+), 49 deletions(-)
commit 84186a64004e5dcd2ce98b564d0e0a09aa5d68b2
Date: Wed Aug 1 00:21:09 2012 -0400
[hb-old] Adjust mark positioning parameters
-
+
Fallback mark positioning works now... With hb-ft and hb-view /
hb-shape at least.
Date: Tue Jul 31 23:41:06 2012 -0400
[GPOS] Adjust mark advance-width zeroing logic
-
+
If there is no GPOS, zero mark advances.
-
+
If there *is* GPOS and the shaper requests so, zero mark advances for
attached marks.
-
+
Fixes regression with Tibetan, where the font has GPOS, and marks a
glyph as mark where it shouldn't get zero advance.
Date: Tue Jul 31 23:08:25 2012 -0400
[OT] Zero mark advances if the shaper desires so
-
+
Enabled for all shapers except for Indic.
src/hb-ot-shape-complex-arabic.cc | 1 +
Date: Tue Jul 31 22:43:32 2012 -0400
[hb-old] Implement getGlyphMetrics()
-
+
Still working on it.
src/hb-old.cc | 13 ++++++++++++-
Date: Tue Jul 31 21:36:16 2012 -0400
Implement Unicode compatibility decompositions
-
+
Based on patch from Philip Withnall.
https://bugs.freedesktop.org/show_bug.cgi?id=41095
src/hb-glib.cc | 30 +++++++++++++++++++++++++
src/hb-icu.cc | 36 +++++++++++++++++++++++++++++-
- src/hb-ot-shape-normalize.cc | 53
- +++++++++++++++++++++++++++++---------------
+ src/hb-ot-shape-normalize.cc | 53 +++++++++++++++++++++++++++++---------------
src/hb-unicode-private.hh | 1 +
src/hb-unicode.cc | 27 +++++++++++++++++++++-
src/hb-unicode.h | 37 ++++++++++++++++++++++++++++++-
test/api/hb-test.h | 1 +
- test/api/test-unicode.c | 50
- +++++++++++++++++++++++++++++++++++++++++
+ test/api/test-unicode.c | 50 +++++++++++++++++++++++++++++++++++++++++
8 files changed, 214 insertions(+), 21 deletions(-)
commit 321ec29cc270e7e66a529696b70b2caac553c95f
Date: Mon Jul 30 21:08:51 2012 -0400
[OT] Streamline complex shaper enumeration
-
+
Add a shaper class struct.
src/hb-ot-shape-complex-arabic.cc | 37 ++++----
src/hb-ot-shape-complex-indic.cc | 47 ++++++---
src/hb-ot-shape-complex-misc.cc | 67 ++++++-------
- src/hb-ot-shape-complex-private.hh | 179
- ++++++++++-------------------------
+ src/hb-ot-shape-complex-private.hh | 179 ++++++++++-------------------------
src/hb-ot-shape-normalize-private.hh | 4 +-
src/hb-ot-shape-private.hh | 2 +-
src/hb-ot-shape.cc | 16 ++--
src/hb-ot-layout-gpos-table.hh | 2 +-
src/hb-ot-layout-gsub-table.hh | 2 +-
- src/hb-ot-layout-gsubgpos-private.hh | 154
- +++++++++++++++++------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 154 +++++++++++++++++------------------
3 files changed, 76 insertions(+), 82 deletions(-)
commit 300c7307eb7943ba7416b672345506be1e27c6ba
src/hb-ot-layout-gpos-table.hh | 11 ++--
src/hb-ot-layout-gsub-table.hh | 18 +++---
- src/hb-ot-layout-gsubgpos-private.hh | 99
- +++++++++++++++++++++++++++++----
+ src/hb-ot-layout-gsubgpos-private.hh | 99 +++++++++++++++++++++++++++++----
src/hb-ot-layout-private.hh | 12 ----
- src/hb-ot-layout.cc | 104
- +++--------------------------------
+ src/hb-ot-layout.cc | 104 +++--------------------------------
src/hb-ot-layout.h | 12 ++--
src/hb-ot-shape.cc | 10 ++--
7 files changed, 127 insertions(+), 139 deletions(-)
[CoreText] Port to shape_plan infrastructure
- src/hb-coretext.cc | 161
- ++++++++++++++++++++++++++---------------------------
+ src/hb-coretext.cc | 161 ++++++++++++++++++++++++++---------------------------
1 file changed, 80 insertions(+), 81 deletions(-)
commit 6cdfd14bb19d60ac3d6b20ff611408432254f273
Date: Mon Jul 30 14:53:41 2012 -0400
Unbreak Hangul jamo composition
-
+
When we removed the separate Hangul shaper, the specific normalization
preference of Hangul was lost. Fix that. Also, the Thai shaper was
copied from Hangul, so had the fully-composed normalization behavior,
Date: Mon Jul 30 13:54:46 2012 -0400
[Indic] Recategorize Telugu length marks
-
+
Fixes 8 more Telugu tests. Failures at 15 (0.00154548%).
src/hb-unicode.cc | 8 ++++++++
Add Hebrew test
- .../texts/in-tree/shaper-default/script-hebrew/misc/diacritics.txt
- | 1 +
+ .../texts/in-tree/shaper-default/script-hebrew/misc/diacritics.txt | 1 +
1 file changed, 1 insertion(+)
commit f2377155e35c15919af4d7db21b6edc6783146b6
Date: Mon Jul 30 10:50:57 2012 -0400
[hb-old] Fix misc leaks
-
+
Backport (forward-port?!) from upstream:
-
+
commit 3ab7b37bdebf0f8773493a1fee910b151c4de30f
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Mon Jul 30 10:50:22 2012 -0400
-
+
Fix misc leaks
-
+
https://bugs.freedesktop.org/show_bug.cgi?id=31992
https://bugs.freedesktop.org/show_bug.cgi?id=31993
https://bugs.freedesktop.org/show_bug.cgi?id=31994
[OT] Gain back some lost speed
src/hb-ot-layout-private.hh | 27 +++++++++++++++-
- src/hb-ot-layout.cc | 63
- ++++++++++++++++++++++++++++++++++----
+ src/hb-ot-layout.cc | 63 ++++++++++++++++++++++++++++++++++----
src/hb-ot-map-private.hh | 26 +++-------------
src/hb-ot-map.cc | 35 +++++++++++++++------
src/hb-ot-shape-complex-indic.cc | 2 +-
Date: Mon Jul 30 02:36:46 2012 -0400
[OT] Remove hb_ot_layout_ensure()
-
+
I didn't like it from the beginning.
src/hb-ot-layout.cc | 9 +++++----
Date: Mon Jul 30 01:46:34 2012 -0400
[GSUB] Further adjustments to mark-attachment vs ligation interaction
-
- The d1d69ec52e75a78575b620a1c456d528b6078170 change broke Kannada
- badly,
+
+ The d1d69ec52e75a78575b620a1c456d528b6078170 change broke Kannada badly,
since it was ligating consonants, pushing matra out, and then ligating
with the matra. Adjust for that. See comments.
- src/hb-ot-layout-gsub-table.hh |
- 11 ++++++++---
+ src/hb-ot-layout-gsub-table.hh | 11 ++++++++---
.../in-tree/shaper-indic/indic/script-kannada/misc/misc.txt | 1 +
2 files changed, 9 insertions(+), 3 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Mon Jul 30 00:51:47 2012 -0400
- [GSUB] Don't ligate glyphs attached to different components of
- ligatures
-
- This concludes the mark-attachment vs ligating interaction fixes
- (for now).
+ [GSUB] Don't ligate glyphs attached to different components of ligatures
+
+ This concludes the mark-attachment vs ligating interaction fixes (for now).
src/hb-ot-layout-gsub-table.hh | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
Date: Mon Jul 30 00:00:59 2012 -0400
[GSUB] Fix mark component stuff when ligatures form ligatures!
-
+
See comments.
-
+
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=437633
- src/hb-ot-layout-gsub-table.hh | 117
- +++++++++++++++++++++++------------
+ src/hb-ot-layout-gsub-table.hh | 117 +++++++++++++++++++++++------------
src/hb-ot-layout-gsubgpos-private.hh | 8 ---
src/hb-ot-layout-private.hh | 8 +--
3 files changed, 79 insertions(+), 54 deletions(-)
Date: Sun Jul 29 22:02:24 2012 -0400
[GSUB/GPOS] Minor
-
+
Start squeezing more out of lig_id/lig_comp.
src/hb-ot-layout-gsub-table.hh | 6 +++---
Date: Sun Jul 29 20:37:38 2012 -0400
[GSUB] Don't set new lig_id on mark ligatures
-
+
If two marks form a ligature, retain their previous lig_id, such that
the mark ligature can attach to ligature components...
-
+
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676343
-
- In fact, I noticed that we should not let ligatures form between
- glyphs
+
+ In fact, I noticed that we should not let ligatures form between glyphs
coming from different components of a previous ligature. For example,
if the sequence is: LAM,SHADDA,LAM,FATHA,HEH, the LAM,LAM,HEH form a
- ligature, putting SHADDA and FATHA next to eachother. However,
- it would
+ ligature, putting SHADDA and FATHA next to eachother. However, it would
be wrong to ligate them. Uniscribe has this bug also.
src/hb-ot-layout-gsub-table.hh | 18 ++++++++++++++----
Add Arabic tests for mark ligature component attachments
.../script-arabic/misc/diacritics/MANIFEST | 1 +
- .../misc/diacritics/ligature-components.txt | 18
- ++++++++++++++++++
+ .../misc/diacritics/ligature-components.txt | 18 ++++++++++++++++++
2 files changed, 19 insertions(+)
commit a15b70a81a609f024083cb04f9819483f4d5cab7
Date: Sun Jul 29 20:09:22 2012 -0400
[hb-old] Fix cluster formation in RTL
-
+
Unlike Uniscribe, hb-old returns glyphs in logical order, so the logic
does not need to duplicated for RTL.
Date: Sat Jul 28 21:16:08 2012 -0400
[Uniscribe] Remove hb_uniscribe_font_ensure()
-
- Wasn't a huge fan of putting the burden on the user. Just remove
- it and
+
+ Wasn't a huge fan of putting the burden on the user. Just remove it and
do what we've got to do transparently.
src/hb-uniscribe.cc | 6 +++++-
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Sat Jul 28 21:05:25 2012 -0400
- [GPOS] Fix mark-to-mark positioning when one of the marks is
- a ligature
-
- This commit: a3313e54008167e415b72c780ca7b9cda958d07e broke
- MarkMarkPos
+ [GPOS] Fix mark-to-mark positioning when one of the marks is a ligature
+
+ This commit: a3313e54008167e415b72c780ca7b9cda958d07e broke MarkMarkPos
when one of the marks itself is a ligature. That regressed 26 Tibetan
tests (up from zero!). Fix that. Tibetan back to zero.
- src/hb-ot-layout-gpos-table.hh | 27
- ++++++++++++++++------
+ src/hb-ot-layout-gpos-table.hh | 27 ++++++++++++++++------
src/hb-ot-layout-private.hh | 5 ++--
test/shaping/texts/in-tree/shaper-indic/MANIFEST | 1 +
.../indic/script-sinhala/misc/MANIFEST | 1 +
[GSUB] Simplify would-apply
- src/hb-ot-layout-gsub-table.hh | 71
- +++---------------------------------
+ src/hb-ot-layout-gsub-table.hh | 71 +++---------------------------------
src/hb-ot-layout-gsubgpos-private.hh | 24 +++---------
2 files changed, 11 insertions(+), 84 deletions(-)
Date: Sat Jul 28 17:31:01 2012 -0400
[GSUB/GPOS] Add get_coverage() and use it to speed up main loop
-
+
And use it to speed up the hotspot by checking coverage directly in
the main loop, not 10 functions deep in.
-
+
Gives me a solid 20% boost with Indic test suite. Less so for less
lookup-intensive scenarios.
-
+
Remove the "fast_path" hack from before.
- src/hb-ot-layout-gpos-table.hh | 179
- ++++++++++++++++++++++++++++++-----
- src/hb-ot-layout-gsub-table.hh | 166
- ++++++++++++++++++++++++++------
+ src/hb-ot-layout-gpos-table.hh | 179 ++++++++++++++++++++++++++++++-----
+ src/hb-ot-layout-gsub-table.hh | 166 ++++++++++++++++++++++++++------
src/hb-ot-layout-gsubgpos-private.hh | 26 +++++
3 files changed, 321 insertions(+), 50 deletions(-)
Date: Fri Jul 27 04:02:38 2012 -0400
Implement shape_plan caching
-
+
Should give us some performance boost.
TODO | 4 ++
src/hb-buffer-private.hh | 30 ++++++++++++++
src/hb-font-private.hh | 6 +++
src/hb-font.cc | 15 ++++++-
- src/hb-shape-plan.cc | 100
- +++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-shape-plan.cc | 100 +++++++++++++++++++++++++++++++++++++++++++++++
src/hb-shape-plan.h | 7 ++++
src/hb-shape.cc | 2 +-
7 files changed, 162 insertions(+), 2 deletions(-)
Date: Fri Jul 27 03:12:23 2012 -0400
Don't fail choosing shaper on planning failure
-
+
Shapers have a chance to reject a font in face shaper_data creation.
No need to allow failing during planning.
Move ot shaper completely to shape_plan
src/hb-ot-shape-private.hh | 6 --
- src/hb-ot-shape.cc | 181
- +++++++++++++++++++++------------------------
+ src/hb-ot-shape.cc | 181 +++++++++++++++++++++------------------------
src/hb-uniscribe.cc | 2 +-
3 files changed, 84 insertions(+), 105 deletions(-)
src/hb-shape.cc | 5 ++
src/hb-shaper-impl-private.hh | 3 +-
src/hb-shaper-private.hh | 4 --
- src/hb-uniscribe.cc | 130
- ++++++++++++------------------------------
+ src/hb-uniscribe.cc | 130 ++++++++++++------------------------------
5 files changed, 48 insertions(+), 174 deletions(-)
commit c32c096a429da3e64896cf42ff5ab8c775d3c2ec
Date: Fri Jul 27 01:13:53 2012 -0400
Switch to shape_plan
-
+
Not optimized yet. Eats babies. And no shaper uses the shape_plan.
src/hb-shape-plan.cc | 37 +++++++++++++++++++++++++++++++++++--
src/hb-old.cc | 4 ++-
src/hb-ot-shape.cc | 4 ++-
src/hb-shape-plan-private.hh | 7 ++++
- src/hb-shape-plan.cc | 76
- ++++++++++++++++++++++++++++++++++++++++++--
+ src/hb-shape-plan.cc | 76 ++++++++++++++++++++++++++++++++++++++++++--
src/hb-shape.cc | 4 +++
src/hb-shaper-private.hh | 4 +--
src/hb-uniscribe.cc | 4 ++-
src/hb-shape-plan.cc | 2 +
src/hb-shape.cc | 98 ++++----------------------------------
src/hb-shaper-private.hh | 16 ++++++-
- src/hb-shaper.cc | 109
- +++++++++++++++++++++++++++++++++++++++++++
+ src/hb-shaper.cc | 109 +++++++++++++++++++++++++++++++++++++++++++
src/hb-uniscribe.cc | 3 +-
10 files changed, 145 insertions(+), 95 deletions(-)
Date: Thu Jul 26 17:34:25 2012 -0400
Start adding a unified shaper access infrastructure
-
+
Add global shape_plan. Unused so far.
src/Makefile.am | 15 +-
...scribe-private.hh => hb-shaper-impl-private.hh} | 20 ++-
src/{hb-old-private.hh => hb-shaper-list.hh} | 30 ++--
src/hb-shaper-private.hh | 81 +++++++++
- src/hb-uniscribe.cc | 186
- +++++++++++++--------
+ src/hb-uniscribe.cc | 186 +++++++++++++--------
17 files changed, 608 insertions(+), 238 deletions(-)
commit fa2dfcd560444d8c54b6349ee106134d3536f79b
Date: Thu Jul 26 15:58:45 2012 -0400
[CoreText] Ensure cluster indices in output buffer are non-decreasing.
-
- Does not provide Uniscribe-compatible results, but should at least
- avoid
+
+ Does not provide Uniscribe-compatible results, but should at least avoid
breaking hb-view due to out-of-order cluster values.
-
+
For RTL runs, ensure cluster values are non-increasing (instead of
non-decreasing).
Date: Wed Jul 25 19:30:15 2012 -0400
[hb-old] Fix Arabic cursive positioning
-
+
Backporting from upstream:
-
+
commit b847f24ce855d24f6822bcd9c0006905e81b94d8
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Wed Jul 25 19:29:16 2012 -0400
-
+
[arabic] Fix Arabic cursive positioning
-
+
This was clearly broken in testing. Who knows... Fixes for me.
Test with a Nastaleeq font, or with Arabic Typesetting.
-
+
Backporting from Chromium.
src/hb-old/harfbuzz-shaper.cpp | 2 +-
Date: Wed Jul 25 19:20:34 2012 -0400
[hb-old] Fix clusters
-
+
Unlike its "documentation", hb-old's log_clusters are, well, indeed
logical, not visual. Fixup. Adapted / copied from hb-uniscribe.
- src/hb-old.cc | 51
- ++++++++++++++++++++++++++++++++++----------
+ src/hb-old.cc | 51 ++++++++++++++++++++++++++++++++++----------
src/hb-old/harfbuzz-shaper.h | 1 +
src/hb-uniscribe.cc | 5 +++--
3 files changed, 44 insertions(+), 13 deletions(-)
Date: Wed Jul 25 18:37:51 2012 -0400
[GPOS] Fix MarkMarkPos applied to results of MultipleSubst
-
- This was broken as a result of
- 7b84c536c10ab90ed96a033d88e9ad232d46c5b8.
+
+ This was broken as a result of 7b84c536c10ab90ed96a033d88e9ad232d46c5b8.
As Khaled reported, MarkMark positioning was broken with glyphs
resulting from a MultipleSubst. Fixed. Test with the ALLAH character
in Amiri.
Date: Tue Jul 24 21:05:12 2012 -0400
[hb-old] Add HarfBuzz.old shaper
-
+
Choose using shaper name "old".
configure.ac | 8 +
src/hb-old.cc | 369 ++++++++++++++++++++++++
src/hb-old/.gitignore | 7 -
src/hb-old/Makefile.am | 2 +
- src/hb-old/Makefile.in | 762
- -------------------------------------------------
+ src/hb-old/Makefile.in | 762 -------------------------------------------------
src/hb-shape.cc | 8 +-
8 files changed, 436 insertions(+), 774 deletions(-)
[hb-old] Define Unicode funcs in terms of new HarfBuzz
src/hb-old/Makefile.am | 4 +
- src/hb-old/Makefile.in | 182
- ++++++++++++++++++++++++++++++++++++-----
+ src/hb-old/Makefile.in | 182 ++++++++++++++++++++++++++++++++++++-----
src/hb-old/harfbuzz-external.h | 100 +++++++++++++---------
3 files changed, 224 insertions(+), 62 deletions(-)
src/hb-old/harfbuzz-khmer.c | 25 ---
src/hb-old/harfbuzz-myanmar.c | 28 ---
src/hb-old/harfbuzz-shaper-private.h | 12 --
- src/hb-old/harfbuzz-shaper.cpp | 403
- +++--------------------------------
+ src/hb-old/harfbuzz-shaper.cpp | 403 +++--------------------------------
src/hb-old/harfbuzz-shaper.h | 31 ---
src/hb-old/harfbuzz-thai.c | 111 ----------
src/hb-old/harfbuzz-tibetan.c | 26 ---
[hb-old] Remove unused header file
- src/hb-old/harfbuzz-shape.h | 199
- --------------------------------------------
+ src/hb-old/harfbuzz-shape.h | 199 --------------------------------------------
1 file changed, 199 deletions(-)
commit fb47209c5b3aa992faf18d1a3f78b9d7682cf62f
src/hb-old/harfbuzz-gdef.h | 140 +
src/hb-old/harfbuzz-global.h | 118 +
src/hb-old/harfbuzz-gpos-private.h | 729 ++++
- src/hb-old/harfbuzz-gpos.c | 6094
- ++++++++++++++++++++++++++++++++++
+ src/hb-old/harfbuzz-gpos.c | 6094 ++++++++++++++++++++++++++++++++++
src/hb-old/harfbuzz-gpos.h | 155 +
src/hb-old/harfbuzz-greek.c | 447 +++
src/hb-old/harfbuzz-gsub-private.h | 483 +++
Date: Tue Jul 24 17:03:55 2012 -0400
[Mongolian] Remove Mongolian Vowel Separator at the end of shaping
-
+
Results match Uniscribe now.
src/hb-unicode-private.hh | 3 +++
Author: Jonathan Kew <jfkthame@gmail.com>
Date: Tue Jul 24 15:52:32 2012 -0400
- [CoreText] Add basic Core Text backend for comparison with our
- native shaping
-
- Does not attempt to handle clusters in a Uniscribe- or
- HarfBuzz-compatible way;
- just returns the original string indexes that CT maintains. These
- may even be
+ [CoreText] Add basic Core Text backend for comparison with our native shaping
+
+ Does not attempt to handle clusters in a Uniscribe- or HarfBuzz-compatible way;
+ just returns the original string indexes that CT maintains. These may even be
out-of-order in the case of reordrant glyphs.
configure.ac | 12 ++
src/Makefile.am | 7 +
src/hb-coretext-private.hh | 42 ++++++
- src/hb-coretext.cc | 323
- +++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-coretext.cc | 323 +++++++++++++++++++++++++++++++++++++++++++++
src/hb-coretext.h | 43 ++++++
src/hb-shape.cc | 6 +
6 files changed, 433 insertions(+)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue Jul 24 15:40:37 2012 -0400
- Make data members of various OpenType structs protected instead
- of private
-
- Should fix warnings generated when building with
- -Wunused-private-field.
+ Make data members of various OpenType structs protected instead of private
+
+ Should fix warnings generated when building with -Wunused-private-field.
Based on patch from Jonathan Kew.
src/hb-open-file-private.hh | 8 +++---
src/hb-ot-hmtx-table.hh | 2 +-
src/hb-ot-layout-common-private.hh | 14 ++++++-----
src/hb-ot-layout-gdef-table.hh | 20 +++++++--------
- src/hb-ot-layout-gpos-table.hh | 48
- ++++++++++++++++++------------------
+ src/hb-ot-layout-gpos-table.hh | 48 ++++++++++++++++++------------------
src/hb-ot-layout-gsub-table.hh | 30 +++++++++++-----------
src/hb-ot-layout-gsubgpos-private.hh | 32 ++++++++++++------------
src/hb-ot-maxp-table.hh | 2 +-
Date: Tue Jul 24 13:48:49 2012 -0400
[Indic] Reposition Gurmukhi top matras to after post
-
- The font is forming a post-base consonant in some samples, and
- Uniscribe
+
+ The font is forming a post-base consonant in some samples, and Uniscribe
positions top matra on the post-base. Do the same.
-
+
Gurmukhi failures down from 59 to 41 (0.0674242%).
- src/hb-ot-shape-complex-indic.cc |
- 2 +-
- .../texts/in-tree/shaper-indic/indic/script-gurmukhi/misc/misc.txt |
- 1 +
+ src/hb-ot-shape-complex-indic.cc | 2 +-
+ .../texts/in-tree/shaper-indic/indic/script-gurmukhi/misc/misc.txt | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
commit c3f769ba09df319fa69d04f68c57444f95eceee6
Date: Tue Jul 24 13:26:32 2012 -0400
[Indic] Ignore Uniscribe output containing two zero-width space glyphs
-
+
Uniscribe is buggy and sometimes /eats/ a mark next to a non-joiner.
Most of Malayalam failures where actually hitting this bug.
-
+
Ignore test output with two zero-width space glyphs. This is a hack
until we build up the test suite infrastructure better.
-
+
Bengali went down by 9, Devanagari by 2, Kannada by 130, Malayalm down
from 1197 to 307, Sinhala down by 16, Telugu down by 26. New stats:
-
+
BENGALI: 353996 out of 354285 tests passed. 289 failed (0.0815727%)
DEVANAGARI: 693573 out of 693628 tests passed. 55 failed (0.00792932%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
GURMUKHI: 60750 out of 60809 tests passed. 59 failed (0.0970251%)
KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%)
KHMER: 299094 out of 299124 tests passed. 30 failed (0.0100293%)
- MALAYALAM: 1048109 out of 1048416 tests passed. 307 failed
- (0.0292823%)
+ MALAYALAM: 1048109 out of 1048416 tests passed. 307 failed (0.0292823%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271715 out of 271847 tests passed. 132 failed (0.0485567%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970550 out of 970573 tests passed. 23 failed (0.00236973%)
- test/shaping/hb_test_tools.py |
- 1 +
- .../texts/in-tree/shaper-indic/indic/script-malayalam/misc/misc.txt |
- 2 ++
+ test/shaping/hb_test_tools.py | 1 +
+ .../texts/in-tree/shaper-indic/indic/script-malayalam/misc/misc.txt | 2 ++
2 files changed, 3 insertions(+)
commit 65c43accdc4d2082282d5cedba8514b8df0c18a2
Date: Tue Jul 24 03:36:47 2012 -0400
[Indic] Better position left-matra in Malayalam
-
+
Just put it before base, which is what's expected.
-
+
Malayalam failures down from 1559 to 1197 (0.114172%).
-
+
BENGALI: 353988 out of 354285 tests passed. 297 failed (0.0838308%)
DEVANAGARI: 693571 out of 693628 tests passed. 57 failed (0.00821766%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
GURMUKHI: 60750 out of 60809 tests passed. 59 failed (0.0970251%)
KANNADA: 950956 out of 951913 tests passed. 957 failed (0.100534%)
KHMER: 299094 out of 299124 tests passed. 30 failed (0.0100293%)
- MALAYALAM: 1047219 out of 1048416 tests passed. 1197 failed
- (0.114172%)
+ MALAYALAM: 1047219 out of 1048416 tests passed. 1197 failed (0.114172%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271699 out of 271847 tests passed. 148 failed (0.0544424%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970524 out of 970573 tests passed. 49 failed (0.00504856%)
- src/hb-ot-shape-complex-indic.cc | 41
- +++++++++++++++-------
+ src/hb-ot-shape-complex-indic.cc | 41 +++++++++++++++-------
.../indic/script-malayalam/misc/misc.txt | 1 +
2 files changed, 29 insertions(+), 13 deletions(-)
Date: Tue Jul 24 03:04:36 2012 -0400
[Indic] Implement Reph+Ya-Phalaa interaction
-
- The sequence Ra,H,Ya in Bengali is ambigious and Unicode encoded
- that to
- get Ya-Phalaa, one would place ZWJ before Halant. Ie. a ZWJ,H
- sequence
- requests subjoining, while a H,ZWJ requests Half form. Implement
- that.
-
+
+ The sequence Ra,H,Ya in Bengali is ambigious and Unicode encoded that to
+ get Ya-Phalaa, one would place ZWJ before Halant. Ie. a ZWJ,H sequence
+ requests subjoining, while a H,ZWJ requests Half form. Implement that.
+
Bengali failures go down from 377 to 297 (0.0838308%).
Gujarati is down by 4 to 17 (0.0046384%).
Kannada is down by 226 to 957 (0.100534%).
-
+
Current status:
-
+
BENGALI: 353988 out of 354285 tests passed. 297 failed (0.0838308%)
DEVANAGARI: 693571 out of 693628 tests passed. 57 failed (0.00821766%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
GURMUKHI: 60750 out of 60809 tests passed. 59 failed (0.0970251%)
KANNADA: 950956 out of 951913 tests passed. 957 failed (0.100534%)
KHMER: 299094 out of 299124 tests passed. 30 failed (0.0100293%)
- MALAYALAM: 1046857 out of 1048416 tests passed. 1559 failed
- (0.148701%)
+ MALAYALAM: 1046857 out of 1048416 tests passed. 1559 failed (0.148701%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271699 out of 271847 tests passed. 148 failed (0.0544424%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970524 out of 970573 tests passed. 49 failed (0.00504856%)
- src/hb-ot-shape-complex-indic.cc |
- 10 ++++++++--
+ src/hb-ot-shape-complex-indic.cc | 10 ++++++++--
.../in-tree/shaper-indic/indic/script-bengali/misc/reph.txt | 4 ++++
2 files changed, 12 insertions(+), 2 deletions(-)
Date: Tue Jul 24 02:30:38 2012 -0400
[Indic] Limit matras to 4 per syllable
-
+
Also limit joiners.
-
+
This limits our syllable length to a constant, and is
closer to what Uniscribe does anyway.
-
+
Two Devanagari tests regressed, but who cares about tests with 20
joiners in a row?! Devanagari at 57 (0.00821766%) now.
Date: Tue Jul 24 02:25:26 2012 -0400
[Indic] Unmark U+17D1 KHMER SIGN VIRIAM to NOT be a Virama
-
+
Fixes another 1 Khmer failure. Down to 30 (0.0100293%) now.
- src/hb-ot-shape-complex-indic.cc |
- 2 ++
- .../in-tree/shaper-indic/south-east-asian/script-khmer/misc/misc.txt |
- 1 +
+ src/hb-ot-shape-complex-indic.cc | 2 ++
+ .../in-tree/shaper-indic/south-east-asian/script-khmer/misc/misc.txt | 1 +
2 files changed, 3 insertions(+)
commit 6824a7194e01b77eddb95bd95a9b32e219140912
Date: Tue Jul 24 02:22:18 2012 -0400
[Indic] Recategorize Khmer various signs as top matras
-
+
Khmer failures down from 39 to 31 (0.0103636%).
src/hb-ot-shape-complex-indic.cc | 23 ++++++++++-------------
Date: Tue Jul 24 02:10:20 2012 -0400
[Indic] Reposition Khmer prebase-reordering Ra around split matras
-
- In Khmer coeng model, a V,Ra can go *after* matras. If it goes
- after a
- split matra, it should be reordered to *before* the left part of
- such matra.
-
+
+ In Khmer coeng model, a V,Ra can go *after* matras. If it goes after a
+ split matra, it should be reordered to *before* the left part of such matra.
+
Khmer failures down from 136 to 39 (0.0130381%).
- src/hb-ot-shape-complex-indic.cc | 13
- +++++++++++++
+ src/hb-ot-shape-complex-indic.cc | 13 +++++++++++++
.../south-east-asian/script-khmer/misc/misc.txt | 4 ++++
2 files changed, 17 insertions(+)
Date: Tue Jul 24 01:32:07 2012 -0400
[Indic] Position Khmer U+17CE
-
+
Fixes another 6 Khmer failures. Now at 136 (0.0454661%).
- src/hb-ot-shape-complex-indic.cc |
- 6 ++++++
+ src/hb-ot-shape-complex-indic.cc | 6 ++++++
.../shaper-indic/south-east-asian/script-khmer/misc/misc.txt | 1 +
2 files changed, 7 insertions(+)
Date: Tue Jul 24 01:04:18 2012 -0400
[Indic] Don't reposition Khmer Bindu
-
+
Khmer Bindu doesn't like to move to syllable end. Leave it where it
was.
-
+
Brings down Khmer failures from 510 to 142 (0.047572%).
src/hb-ot-shape-complex-indic.cc | 2 ++
Date: Tue Jul 24 00:26:43 2012 -0400
[Indic] In Sinhala, form forced Reph even if no other consonant found
-
+
Fixes another 10 Sinhala failures. Down to 148 (0.0544424%).
- src/hb-ot-shape-complex-indic.cc |
- 10 +++++-----
+ src/hb-ot-shape-complex-indic.cc | 10 +++++-----
.../in-tree/shaper-indic/indic/script-sinhala/misc/misc.txt | 1 +
2 files changed, 6 insertions(+), 5 deletions(-)
Date: Tue Jul 24 00:21:16 2012 -0400
[Indic] Further adjust base algorithm for Sinhala
-
+
Apparently if there is C,V,ZWJ,C, the first C will be base, but if
it's C,ZWJ,V,C, the second one will be.
-
- Note that Uniscribe implements this differently, by breaking
- syllable in
+
+ Note that Uniscribe implements this differently, by breaking syllable in
the case of C,ZWJ,V,C and putting the first consonant in one syllable
and the rest in the next syllable.
-
+
Sinhala failures down from 208 to 158 (0.0581209%). No changes to
Khmer.
- src/hb-ot-shape-complex-indic.cc |
- 11 +++++++----
+ src/hb-ot-shape-complex-indic.cc | 11 +++++++----
.../in-tree/shaper-indic/indic/script-sinhala/misc/misc.txt | 3 +++
2 files changed, 10 insertions(+), 4 deletions(-)
Date: Tue Jul 24 00:09:12 2012 -0400
[Indic] End Vowel-based syllable at ZWJ
-
+
One Devanagari test regressed, plus 10 Malayalam (at 1545 now).
-
+
Fixed 120 Sinhala failures. Now at 208 (0.0765136%).
- src/hb-ot-shape-complex-indic-machine.rl |
- 2 +-
- .../texts/in-tree/shaper-indic/indic/script-sinhala/misc/misc.txt |
- 1 +
+ src/hb-ot-shape-complex-indic-machine.rl | 2 +-
+ .../texts/in-tree/shaper-indic/indic/script-sinhala/misc/misc.txt | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
commit 34c215036f5fcdc7599b1ab0591b56dbb3811902
Date: Mon Jul 23 23:51:29 2012 -0400
[Indic] Improve Sinhala base algorithm and reph positioning
-
+
Sinhala does not have half forms. And most (all?) consonants can be
- base, except when preceded by ZWJ, which would request a subjoined
- form.
+ base, except when preceded by ZWJ, which would request a subjoined form.
Hence switch the base algorithm to categorize with Khmer, start search
at start, and stop at a ZWJ.
-
+
Also, mark all pos=base consonants after base to be subjoined. Mark
base itself to have pos=base.
-
+
Finally, adjust Sinhala's reph position to after-main.
-
+
Brings down Sinhala failures from 455 to 328 (0.120656%).
- src/hb-ot-shape-complex-indic.cc | 18
- +++++++++++++++++-
+ src/hb-ot-shape-complex-indic.cc | 18 +++++++++++++++++-
.../shaper-indic/indic/script-sinhala/misc/misc.txt | 1 +
2 files changed, 18 insertions(+), 1 deletion(-)
Date: Mon Jul 23 20:18:17 2012 -0400
When removing zero-width marks, don't remove ligatures
-
+
If a mark ligated, it probably should NOT be removed.
src/hb-ot-shape.cc | 6 +++---
Minor refactoring
- src/hb-ot-layout-gsubgpos-private.hh | 32
- --------------------------------
- src/hb-ot-layout-private.hh | 35
- +++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout-gsubgpos-private.hh | 32 --------------------------------
+ src/hb-ot-layout-private.hh | 35 +++++++++++++++++++++++++++++++++++
src/hb-ot-shape-complex-indic.cc | 2 +-
3 files changed, 36 insertions(+), 33 deletions(-)
Date: Mon Jul 23 20:11:42 2012 -0400
[Indic] Improve check on ligatures
-
+
Only skip actual ligatures, not marks in-between ligature components.
src/hb-ot-layout-gsubgpos-private.hh | 5 +++++
Date: Mon Jul 23 20:07:50 2012 -0400
[Indic] exclude ligatures when matching on Indic category
-
- If, say, a H,ZWJ,C ligature was formed, we don't want the code
- to detec
+
+ If, say, a H,ZWJ,C ligature was formed, we don't want the code to detec
that as a Halant. So, ignore ligatures when matching category in
final_reordering.
-
+
Sinhala failures down from 514 to 455 (0.167374%).
- src/hb-ot-shape-complex-indic.cc | 41
- ++++++++++++----------
+ src/hb-ot-shape-complex-indic.cc | 41 ++++++++++++----------
.../indic/script-sinhala/misc/misc.txt | 1 +
2 files changed, 23 insertions(+), 19 deletions(-)
Date: Mon Jul 23 18:25:02 2012 -0400
[Indic] Remove syllable length check before sorting
-
+
We now limit syllable lengths in the machine. No need to match here.
src/hb-ot-shape-complex-indic.cc | 2 --
Date: Mon Jul 23 18:19:17 2012 -0400
[Indic] Limit syllables to at most five consonants
-
- Seems to be about what Uniscribe does. Not exactly. But close
- enough.
+
+ Seems to be about what Uniscribe does. Not exactly. But close enough.
More consonants will start a new cluster.
-
+
A few scripts went way down in failures. In particular:
-
+
- Devanagari failures went down from 490 to 56.
- Telugu went down from 113 to 49.
-
+
Other scripts went down slightly or didn't change. New numbers:
-
+
BENGALI: 353908 out of 354285 tests passed. 377 failed (0.106412%)
DEVANAGARI: 693572 out of 693628 tests passed. 56 failed (0.00807349%)
GUJARATI: 366485 out of 366506 tests passed. 21 failed (0.00572978%)
GURMUKHI: 60750 out of 60809 tests passed. 59 failed (0.0970251%)
KANNADA: 950730 out of 951913 tests passed. 1183 failed (0.124276%)
KHMER: 298613 out of 299124 tests passed. 511 failed (0.170832%)
- MALAYALAM: 1046881 out of 1048416 tests passed. 1535 failed
- (0.146411%)
+ MALAYALAM: 1046881 out of 1048416 tests passed. 1535 failed (0.146411%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271333 out of 271847 tests passed. 514 failed (0.189077%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970524 out of 970573 tests passed. 49 failed (0.00504856%)
-
- Some of the remaining Telugu and Devanagari issues seem to be
- Uniscribe
+
+ Some of the remaining Telugu and Devanagari issues seem to be Uniscribe
eating Anusvara when placed before a non-joiner. Ouch!
src/hb-ot-shape-complex-indic-machine.rl | 6 +++---
Date: Mon Jul 23 14:04:42 2012 -0400
[Thai] Fix SARA AM handling
-
+
Oops, thinko.
src/hb-ot-shape-complex-misc.cc | 6 +++---
Date: Mon Jul 23 13:52:07 2012 -0400
[Thai] Reorder U+0E3A THAI VOWEL SIGN PHINTHU
-
- Uniscribe reorders U+0E3A to be after U+0E38 and U+0E39. We do
- that by
+
+ Uniscribe reorders U+0E3A to be after U+0E38 and U+0E39. We do that by
modifying the ccc for U+0E3A.
-
+
Fixes the two remaining Thai failures (see previous commit).
src/hb-ot-shape-complex-misc.cc | 7 +++++++
src/hb-unicode.cc | 6 ++++++
.../texts/in-tree/shaper-thai/script-thai/misc/MANIFEST | 1 +
- .../in-tree/shaper-thai/script-thai/misc/phinthu.txt | 16
- ++++++++++++++++
+ .../in-tree/shaper-thai/script-thai/misc/phinthu.txt | 16 ++++++++++++++++
4 files changed, 30 insertions(+)
commit 4a7f4f3e56f8f7640ae7337aa1b3324f31e0d4ab
Date: Mon Jul 23 13:15:33 2012 -0400
[Thai] Adjust SARA AM reordering to match Uniscribe
-
+
Adjust the list of marks before SARA AM that get the reordering
treatment. Also adjust cluster formation to match Uniscribe.
-
+
With Wikipedia test data, now I see:
-
- - For Thai, with the Angsana New font from Win7, I see 54
- failures out
+
+ - For Thai, with the Angsana New font from Win7, I see 54 failures out
of over 4M tests (0.00129107%). Of the 54, two are legitimate
reordering issues (fix coming soon), and the other 52 are simply
Uniscribe using a zero-width space char instead of an unknown
character for missing glyphs. No idea why. The missing-glyph
- sequences include one that is a Thai character followed by
- an Arabic
+ sequences include one that is a Thai character followed by an Arabic
Sokun. Someone confused it with Nikhahit I assume!
-
+
- For Lao, with the Dokchampa font from Win7, 33 tests fail out of
54k (0.0615167%). All seem to be insignificant mark positioning
with two marks on a base. Have to investigate.
- src/hb-ot-shape-complex-misc.cc | 42
- +++++++++++++---------
+ src/hb-ot-shape-complex-misc.cc | 42 +++++++++++++---------
src/hb-private.hh | 6 ++++
test/shaping/texts/in-tree/shaper-thai/MANIFEST | 1 +
.../texts/in-tree/shaper-thai/script-lao/MANIFEST | 1 +
Date: Mon Jul 23 08:22:55 2012 -0400
[Indic] Fix cluster formation with left-matras and conjunct forms
-
+
Test case was: <U+0D15,U+0D4D,U+0D15,U+0D4A>.
src/hb-ot-shape-complex-indic.cc | 4 ++--
Date: Mon Jul 23 00:11:26 2012 -0400
[Indic] Further streamline cluster formation
-
+
This should address all possible cluster misformations that I had in
mind.
Date: Sun Jul 22 23:58:55 2012 -0400
[Indic] Merge clusters before sorting
-
+
This should fix any instabilities in cluster formation that we were
speculating may happen with surrounding syllables. Or most of it
perhaps.
Date: Sun Jul 22 23:55:19 2012 -0400
[Indic] Update clusters for left-matra even if matra didn't move
-
+
Fixes crashes reported with left matra under
non-uniscribe-bug-compatibilty mode.
Date: Sun Jul 22 23:23:56 2012 -0400
[Indic] Merge in Malayalam tests
-
+
From:
http://silpa.org.in/pub/tests/hb/ml/ml-harfbuzz-testdata.txt
- .../indic/script-malayalam/misc/misc.txt | 94
- +++++++++++-----------
+ .../indic/script-malayalam/misc/misc.txt | 94 +++++++++++-----------
1 file changed, 46 insertions(+), 48 deletions(-)
commit 5c7081770c7a611bbe79b451b7b86dec4fa6395d
Date: Sun Jul 22 23:20:27 2012 -0400
[Indic] Add extensive Sinhala tests
-
+
Generated by:
http://git.savannah.gnu.org/cgit/sinhala.git/plain/utils/gen-unicode-sinhala.py
- .../indic/script-sinhala/misc/extensive.txt | 4390
- ++++++++++++++++++++
+ .../indic/script-sinhala/misc/extensive.txt | 4390 ++++++++++++++++++++
1 file changed, 4390 insertions(+)
commit 2efe4707b1b449962f6e161716477d9775456c46
Date: Sun Jul 22 23:17:59 2012 -0400
[Indic] Add Sinhala tests
-
+
Merge tests from:
http://git.savannah.gnu.org/cgit/sinhala.git/plain/patches/icu-sinhala-rendering.txt
- .../indic/script-sinhala/misc/misc.txt | 26
- ++++++++++++++++++++--
+ .../indic/script-sinhala/misc/misc.txt | 26 ++++++++++++++++++++--
1 file changed, 24 insertions(+), 2 deletions(-)
commit 3d4c111b7a13700b2f7a0b087eb3992283295f21
Add a test case
- .../texts/in-tree/shaper-indic/indic/script-bengali/misc/misc.txt
- | 1 +
+ .../texts/in-tree/shaper-indic/indic/script-bengali/misc/misc.txt | 1 +
1 file changed, 1 insertion(+)
commit 92a1ad7bef9efb456ab87bd63818cfbed7da3f6f
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Fri Jul 20 18:38:27 2012 -0400
- [Indic] Stop searching for base if a post form is found before
- below form
-
- Improves Bengali and Gurmukhi. Malayalam regressed a bit. We will
- deal
+ [Indic] Stop searching for base if a post form is found before below form
+
+ Improves Bengali and Gurmukhi. Malayalam regressed a bit. We will deal
with that later.
src/hb-ot-shape-complex-indic.cc | 5 ++++-
Date: Fri Jul 20 18:13:04 2012 -0400
[Indic] Recompose Bengali Ya,Nukta
-
+
This is a bunch of hacks for now.
-
+
Improves Bengali a bit.
src/hb-ot-shape-complex-indic.cc | 4 ++--
Date: Fri Jul 20 17:05:46 2012 -0400
[Uniscribe] Fix script fallback
-
+
Gurmukhi failures half now. Others changed slightly.
src/hb-uniscribe.cc | 34 ++++++++++++++--------------------
Date: Fri Jul 20 16:26:55 2012 -0400
[Indic] Allow a ZWNJ after SM's
-
- Malayalam failures go way down. Other scripts benefitted slightly
- too.
+
+ Malayalam failures go way down. Other scripts benefitted slightly too.
Sinhala had one or two test regressions, but...
src/hb-ot-shape-complex-indic-machine.rl | 2 +-
Date: Fri Jul 20 16:17:28 2012 -0400
[Indic] Improve Reph AfterMain positioning
-
- Fixes 20 out of 48 failing Oriya tests. Failure rate down to
- 0.066% now.
+
+ Fixes 20 out of 48 failing Oriya tests. Failure rate down to 0.066% now.
src/hb-ot-shape-complex-indic.cc | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
Date: Fri Jul 20 16:03:09 2012 -0400
[Indic] Reposition Oriya Candrabindu
-
+
Oriya failures down from 0.65% to 0.20%.
- src/hb-ot-shape-complex-indic.cc |
- 1 +
- .../shaping/texts/in-tree/shaper-indic/indic/script-oriya/misc/MANIFEST |
- 1 +
- .../texts/in-tree/shaper-indic/indic/script-oriya/misc/bindu.txt |
- 2 ++
+ src/hb-ot-shape-complex-indic.cc | 1 +
+ .../shaping/texts/in-tree/shaper-indic/indic/script-oriya/misc/MANIFEST | 1 +
+ .../texts/in-tree/shaper-indic/indic/script-oriya/misc/bindu.txt | 2 ++
3 files changed, 4 insertions(+)
commit 5f0eaaad129ff04d56b8756bebf19fbc242718c9
Date: Fri Jul 20 15:47:24 2012 -0400
[Indic] Fix base search in final_reordering
-
+
Fixes most Malayalam failures. Down from 1.6% to 0.38% now. Fixes a
few more in other scripts too.
[Indic] Don't attach SM/VD to other characters
src/hb-ot-shape-complex-indic-private.hh | 3 +++
- src/hb-ot-shape-complex-indic.cc | 38
- ++++++++++++++++++--------------
+ src/hb-ot-shape-complex-indic.cc | 38 ++++++++++++++++++--------------
2 files changed, 24 insertions(+), 17 deletions(-)
commit efb4ad735691837a52447bedc1a66a87d0d9af51
Date: Fri Jul 20 14:27:38 2012 -0400
Fix compiler warnings
-
+
If x is not constant, we cannot ASSERT_STATIC on it.
src/hb-private.hh | 2 +-
Date: Fri Jul 20 14:13:35 2012 -0400
[Indic] Form Telugu Reph out of Ra,Virama,ZWJ
-
+
Apparently this was approved in Feb 2012. No font yet.
src/hb-ot-shape-complex-indic-private.hh | 2 +-
Date: Fri Jul 20 14:02:35 2012 -0400
[Indic] Don't split U+0AC9
-
+
Althought IndicMatraCategory.txt classifies it as Top_And_Right matra,
it does not have Unicode decomposition, and Uniscribe does not do
anything special about it either.
-
+
Gujarati failures down from 0.672% to 0.0130966%.
src/hb-unicode.cc | 2 +-
Date: Fri Jul 20 13:56:32 2012 -0400
[Indic] Simplify Uniscribe cluster emulation
-
- Now that we break syllables on Halant,ZWNJ, this code can be
- simplified.
+
+ Now that we break syllables on Halant,ZWNJ, this code can be simplified.
src/hb-ot-shape-complex-indic.cc | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)
Date: Fri Jul 20 13:48:03 2012 -0400
[Indic] Break syllables at Halant,ZWNJ
-
- That's really what Uniscribe does, and explains a lot of pecularities
- of
+
+ That's really what Uniscribe does, and explains a lot of pecularities of
Halant,ZWNJ before the base.
-
+
Sent Telugu from 1% failures to 0.03%. Improved Kannada and Malayalam
slightly. Fixed half of Bengali, and did NOT break anything!
Date: Fri Jul 20 13:37:48 2012 -0400
[Indic] Better check for applying 'init'
-
+
Specifically, don't apply 'init' if previous char is a joiner.
-
+
Fixes some more of Bengali.
src/hb-ot-shape-complex-indic.cc | 9 +--------
Date: Fri Jul 20 12:32:59 2012 -0400
[GPOS] Don't zero mark advances
-
+
Fixes more of Telugu, Kannada, and Oriya.
-
- May break things (outside Indic...), but we cannot think of any
- font relying
+
+ May break things (outside Indic...), but we cannot think of any font relying
on this immediately.
src/hb-ot-layout-gpos-table.hh | 4 ++--
Date: Fri Jul 20 11:25:41 2012 -0400
[Indic] Implement reph positioning step 5
-
+
Not tuned, just copied from step 2. Fixes another 0.5% of Kannada
failures. 1% to go.
Date: Fri Jul 20 11:04:15 2012 -0400
[Indic] Don't let ZWNJ at the end of syllable affect base search
-
- Fixes a few Devanagari, half of remaining Kannada failures,
- quarter for
+
+ Fixes a few Devanagari, half of remaining Kannada failures, quarter for
Telugu, and others slightly improved or unchanged.
src/hb-ot-shape-complex-indic.cc | 6 +++++-
Date: Fri Jul 20 10:47:46 2012 -0400
[Indic] Apply 'cjct' globally
-
+
Fixes 5 Devanagari failures, and no regressions.
src/hb-ot-shape-complex-indic.cc | 15 +++++++++------
Date: Fri Jul 20 10:30:24 2012 -0400
[Indic] Unbreak old scriptures
-
+
Brings down failures with Lohit-Telugu from 57% to 1.40%.
src/hb-ot-shape-complex-indic.cc | 5 +++--
Date: Thu Jul 19 21:17:48 2012 -0400
[Indic] Recategorize some Kannada right matras
-
+
Kannada failures down from 3.5% to 2.93%.
src/hb-ot-shape-complex-indic.cc | 2 +-
.../texts/in-tree/shaper-indic/indic/script-kannada/misc/MANIFEST | 1 +
- .../shaper-indic/indic/script-kannada/misc/right-matras.txt |
- 7 +++++++
+ .../shaper-indic/indic/script-kannada/misc/right-matras.txt | 7 +++++++
3 files changed, 9 insertions(+), 1 deletion(-)
commit 3604d64ced909ade91998d294a7b4b2ee14d47aa
Date: Thu Jul 19 21:13:04 2012 -0400
[Indic] Recategorize GURMUKHI ADDAK
-
- It's not in IndicSyllabicCategory.txt. Fixes most of Gurmukhi
- failures.
+
+ It's not in IndicSyllabicCategory.txt. Fixes most of Gurmukhi failures.
Failures down from 7.7% to 0.222%!
src/hb-ot-shape-complex-indic.cc | 1 +
Date: Thu Jul 19 20:30:22 2012 -0400
[Indic] Unbreak Khmer
-
- For Khmer, all consonants are subjoining. No need to look in
- the font.
+
+ For Khmer, all consonants are subjoining. No need to look in the font.
We were looking in the wrong order anyway.
src/hb-ot-shape-complex-indic.cc | 4 +++-
Date: Thu Jul 19 20:24:14 2012 -0400
[Indic] Apply 'akhn' globally
-
+
Fixes 1.5% more failures for Telugu, 2% for Kannada.
Breaks one test in Devanagari.
[Indic] Add failing test for Kannada
- .../texts/in-tree/shaper-indic/indic/script-kannada/misc/misc.txt
- | 1 +
+ .../texts/in-tree/shaper-indic/indic/script-kannada/misc/misc.txt | 1 +
1 file changed, 1 insertion(+)
commit fa247ebe524f92fa95d344ba912f704262879c13
Date: Thu Jul 19 19:52:19 2012 -0400
[Indic] Better position U+0CD5
-
+
Fixes another 5% of Kannada failures.
src/hb-ot-shape-complex-indic.cc | 4 ++--
Date: Thu Jul 19 16:20:21 2012 -0400
[Indic] Lookup consonant position in the font
-
+
Fixes most failures of Oriya, and improves others a bit.
src/hb-ot-map-private.hh | 13 ++--
- src/hb-ot-shape-complex-indic-private.hh | 105
- -------------------------------
+ src/hb-ot-shape-complex-indic-private.hh | 105 -------------------------------
src/hb-ot-shape-complex-indic.cc | 63 +++++++++++++------
3 files changed, 54 insertions(+), 127 deletions(-)
src/Makefile.am | 6 +-
src/test-would-substitute.cc | 94 ++++++++++++++++++++++++++++++
- src/test.cc | 132
- +++++++++++++++++++++++++++++++++++++++++++
+ src/test.cc | 132 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 231 insertions(+), 1 deletion(-)
commit e72b360ac6381b549249b8836fa3e70b909d3437
Date: Thu Jul 19 14:35:23 2012 -0400
Refactor / finish would_apply() operation
-
+
Untested.
src/hb-ot-layout-gpos-table.hh | 6 +-
src/hb-ot-layout-gsub-table.hh | 126 +++++++++----------
- src/hb-ot-layout-gsubgpos-private.hh | 233
- ++++++++++++++++++++++++++++++++++-
+ src/hb-ot-layout-gsubgpos-private.hh | 233 ++++++++++++++++++++++++++++++++++-
src/hb-ot-layout.cc | 11 ++
src/hb-ot-layout.h | 7 ++
5 files changed, 308 insertions(+), 75 deletions(-)
Date: Thu Jul 19 13:25:08 2012 -0400
[Indic] Implement per-script matra positioning
-
+
Following what the spec says.
-
- Brings down Telugu failures from 40% to 3.75%, and Kannada failures
- from
+
+ Brings down Telugu failures from 40% to 3.75%, and Kannada failures from
44% to 10%. Does NOT affect other scripts' test results.
src/hb-ot-shape-complex-indic-private.hh | 2 +-
- src/hb-ot-shape-complex-indic.cc | 40
- +++++++++++++++++++++++++++++---
+ src/hb-ot-shape-complex-indic.cc | 40 +++++++++++++++++++++++++++++---
src/hb-unicode.cc | 2 +-
3 files changed, 39 insertions(+), 5 deletions(-)
[Indic] More refactoring
src/hb-ot-shape-complex-indic-private.hh | 9 ++---
- src/hb-ot-shape-complex-indic.cc | 65
- ++++++++++++++++++++++++--------
+ src/hb-ot-shape-complex-indic.cc | 65 ++++++++++++++++++++++++--------
2 files changed, 54 insertions(+), 20 deletions(-)
commit 9ccc6382ba43760167c134c18c1c4ada4b8c3f22
[Indic] Minor refactoring
- src/hb-ot-shape-complex-indic.cc | 127
- ++++++++++++++++++++++-----------------
+ src/hb-ot-shape-complex-indic.cc | 127 ++++++++++++++++++++++-----------------
1 file changed, 71 insertions(+), 56 deletions(-)
commit f83aaa3133de5d807be267a100d6a200e8db9017
[Indic] Minor
- src/hb-ot-shape-complex-indic-private.hh | 42
- ++++++++++++++++++++------------
+ src/hb-ot-shape-complex-indic-private.hh | 42 ++++++++++++++++++++------------
1 file changed, 26 insertions(+), 16 deletions(-)
commit be8b9f5f715f6fb36b98bd33c3303f79cc068f8a
[Indic] Start refactoring different matra positions per script
- src/hb-ot-shape-complex-indic-private.hh | 36
- +++++++++++++++++++-------------
+ src/hb-ot-shape-complex-indic-private.hh | 36 +++++++++++++++++++-------------
src/hb-ot-shape-complex-indic.cc | 4 ++--
2 files changed, 24 insertions(+), 16 deletions(-)
Date: Thu Jul 19 11:25:49 2012 -0400
[Indic] Disallow decomposition of a couple characters
-
- This is a hack for now. Will be fixed when we do
- complex-shaper-driven
+
+ This is a hack for now. Will be fixed when we do complex-shaper-driven
normalization properly.
-
+
The results with or without decomposition are the same, but Uniscribe
does not normalize, so this matches better.
Date: Wed Jul 18 23:25:58 2012 -0400
[Indic] Accept a forced Rakar sequence at the end of syllable
-
- In Sinhala, Rakar is formed by Al-Lakuna,ZWJ,Ra. If you put that
- at the
+
+ In Sinhala, Rakar is formed by Al-Lakuna,ZWJ,Ra. If you put that at the
end of a Consonant,Matra syllable, you get a dotted-circle from
Uniscribe. Apparently adding a ZWJ before the Al-Lakuna "fixes" that.
And people have been encoding that sequence... So, allow a forced
"ZWJ,Virama,ZWJ,Ra" sequence at the of syllables.
-
+
Fixes some 100 or more of Sinhala failures. Now at 622 only (0.23%).
- src/hb-ot-shape-complex-indic-machine.rl |
- 3 ++-
- .../texts/in-tree/shaper-indic/indic/script-sinhala/misc/misc.txt |
- 2 ++
+ src/hb-ot-shape-complex-indic-machine.rl | 3 ++-
+ .../texts/in-tree/shaper-indic/indic/script-sinhala/misc/misc.txt | 2 ++
2 files changed, 4 insertions(+), 1 deletion(-)
commit 6fc1732003d71cf90d37247482772c3da884687f
Date: Wed Jul 18 17:49:19 2012 -0400
[Indic] Allow joiners on both sides of Halant at the same time
-
+
The sequence <ZWJ,Al-Lakuna,ZWJ> is used in Sinhala to explicitly ask
for Rakar. Fixes two-thousand Sinhala tests. Not many left.
Date: Wed Jul 18 17:42:34 2012 -0400
[Indic] In final reordering, find base, even if it disappeared
-
+
POS_BASE can disappear if base ligated backward. Define base as last
with position not after base.
-
+
Fixes a few hundred of Sinhala failures with Iskoola Pota.
- src/hb-ot-shape-complex-indic.cc |
- 7 ++-----
+ src/hb-ot-shape-complex-indic.cc | 7 ++-----
.../texts/in-tree/shaper-indic/indic/script-sinhala/misc/misc.txt | 1 +
2 files changed, 3 insertions(+), 5 deletions(-)
Date: Wed Jul 18 17:22:14 2012 -0400
[Indic] Implement Sinhala "Al Lakuna" Reph behavior
-
+
In Sinhala, Reph is formed only explicitly, by the presence of a ZWJ.
src/hb-ot-shape-complex-indic-private.hh | 2 ++
- src/hb-ot-shape-complex-indic.cc |
- 7 ++++++-
+ src/hb-ot-shape-complex-indic.cc | 7 ++++++-
.../texts/in-tree/shaper-indic/indic/script-sinhala/misc/MANIFEST | 1 +
- .../texts/in-tree/shaper-indic/indic/script-sinhala/misc/reph.txt |
- 3 +++
+ .../texts/in-tree/shaper-indic/indic/script-sinhala/misc/reph.txt | 3 +++
4 files changed, 12 insertions(+), 1 deletion(-)
commit 91cade755534c42bb826a6aefcbca8a543d94387
Date: Wed Jul 18 16:50:41 2012 -0400
[Indic/Unicode] Decompose Sinhala split matras the way Uniscribe likes
-
+
Makes no visual difference.
-
+
Fixes most of the failures. Down from 15% to 1.3%!
src/hb-unicode.cc | 8 ++++++++
Date: Wed Jul 18 16:34:10 2012 -0400
Apply Tibetan (global) features.
-
+
Fixes all Tibetan failures. All 180k of them!
-
+
Merges back Hangul into the default shaper.
- src/hb-ot-shape-complex-misc.cc | 82
- +++++++++++++++++---------------------
+ src/hb-ot-shape-complex-misc.cc | 82 +++++++++++++++++---------------------
src/hb-ot-shape-complex-private.hh | 7 ----
2 files changed, 37 insertions(+), 52 deletions(-)
Date: Wed Jul 18 16:00:49 2012 -0400
[Indic] Treat Register Shifters like Nukta
-
+
Really this time.
-
+
Fixes another 18 Khmer tests.
- src/hb-ot-shape-complex-indic-machine.rl |
- 2 +-
- src/hb-ot-shape-complex-indic.cc |
- 2 --
- .../in-tree/shaper-indic/south-east-asian/script-khmer/misc/misc.txt |
- 1 +
+ src/hb-ot-shape-complex-indic-machine.rl | 2 +-
+ src/hb-ot-shape-complex-indic.cc | 2 --
+ .../in-tree/shaper-indic/south-east-asian/script-khmer/misc/misc.txt | 1 +
3 files changed, 2 insertions(+), 3 deletions(-)
commit e8cd81f76d159f3ecf808952dab24bc07782497a
Date: Wed Jul 18 15:45:43 2012 -0400
[Indic] Fix Matra reordering when base is at end of syllable
-
+
For example: U+915,U+200c,U+93f
-
+
Fixes last Tamil failure!
- src/hb-ot-shape-complex-indic.cc |
- 2 +-
- .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt |
- 1 +
+ src/hb-ot-shape-complex-indic.cc | 2 +-
+ .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
commit d16ccc4ae7aa8be460881042413fa2637929fede
Date: Wed Jul 18 15:43:55 2012 -0400
Leave one extra item at the end of buffer allocation
-
+
Just in case, for the times we do out-of-bounds access.
-
+
jk
src/hb-buffer-private.hh | 2 +-
Date: Wed Jul 18 15:28:25 2012 -0400
[Indic] Allow joiners before matras
-
+
Fixes 1 more Devanagari test!
src/hb-ot-shape-complex-indic-machine.rl | 4 ++--
Date: Wed Jul 18 15:10:05 2012 -0400
[Indic] Allow halant group in Vowel and placeholder syllables
-
+
Fixes 2 out of 560 Devanagari failures. AND:
Fixes 1 out of 2 Tamil failures.
- src/hb-ot-shape-complex-indic-machine.rl |
- 7 ++++---
+ src/hb-ot-shape-complex-indic-machine.rl | 7 ++++---
.../in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt | 1 +
2 files changed, 5 insertions(+), 3 deletions(-)
[Indic] Minor
- src/hb-ot-shape-complex-indic-machine.rl |
- 3 ++-
- .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt |
- 3 +++
+ src/hb-ot-shape-complex-indic-machine.rl | 3 ++-
+ .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt | 3 +++
2 files changed, 5 insertions(+), 1 deletion(-)
commit 4c3691d2a32ca7e54a54f7c08098fd96fa7af39e
Date: Wed Jul 18 14:23:55 2012 -0400
[Indic] Hopefully minor!
-
+
Refactoring Indic machin. No semantic change.
src/hb-ot-shape-complex-indic-machine.rl | 12 +++++++-----
Date: Wed Jul 18 13:13:03 2012 -0400
[Indic] Unbreak Tamil
-
+
Tamil has only about 150 failures now!
src/hb-ot-shape-complex-indic.cc | 18 +++++++++++++++++-
Date: Tue Jul 17 18:17:30 2012 -0400
[Indic] Position Khmer Robat
-
+
It's a visual Repha.
-
+
Still not positioning logical Repha as occurs in Malayalam.
-
+
Another 200 Khmer failures fixed. 547 to go. That's better than
Devanagari!
- src/hb-ot-shape-complex-indic-machine.rl | 36
- +++++++++++++++++---------------
+ src/hb-ot-shape-complex-indic-machine.rl | 36 +++++++++++++++++---------------
src/hb-ot-shape-complex-indic-private.hh | 7 ++++---
src/hb-ot-shape-complex-indic.cc | 13 ++++++++++++
3 files changed, 36 insertions(+), 20 deletions(-)
Date: Tue Jul 17 17:53:03 2012 -0400
[Indic] Better categorize Register Shifters and Khmer Various signs
-
+
Down another 500 or so Khmer failures!
- src/hb-ot-shape-complex-indic-machine.rl | 14
- +++++++-------
+ src/hb-ot-shape-complex-indic-machine.rl | 14 +++++++-------
src/hb-ot-shape-complex-indic-private.hh | 2 +-
src/hb-ot-shape-complex-indic.cc | 8 ++++----
.../south-east-asian/script-khmer/misc/MANIFEST | 2 ++
Date: Tue Jul 17 17:09:29 2012 -0400
Add hb_buffer_normalize_glyphs() and hb-shape --normalize-glyphs
-
- This reorders glyphs within the cluster to a nominal order.
- This should
+
+ This reorders glyphs within the cluster to a nominal order. This should
have no visible effect on the output, but helps with testing, for
getting the same hb-shape output for visually-equal glyphs for each
cluster.
- src/hb-buffer.cc | 76
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-buffer.cc | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-buffer.h | 13 ++++++++++
src/hb-private.hh | 29 ++++++++++++++++-----
util/options.cc | 1 +
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue Jul 17 14:23:28 2012 -0400
- [Indic] For scripts without Half forms, always choose first consonant
- as base
-
+ [Indic] For scripts without Half forms, always choose first consonant as base
+
In such scripts (ie. Khmer), a ZWJ/ZWNJ shouldn't stop the search for
base. So, instead just choose the first consonant as base directly.
-
+
Test sequence:
U+1798,200c,U+17C9,U+17D2,U+179B,U+17C1,U+17C7
- src/hb-ot-shape-complex-indic.cc | 59
- ++++++++++++++++++++++++----------------
+ src/hb-ot-shape-complex-indic.cc | 59 ++++++++++++++++++++++++----------------
1 file changed, 35 insertions(+), 24 deletions(-)
commit 34b57149065d96f7528aaccaa7654e956ce27e93
Date: Tue Jul 17 14:09:32 2012 -0400
[Indic] Treat Khmer Register Shifters more like Nuktas
-
+
Except that there may be a ZWNJ before a Register Shifter.
- src/hb-ot-shape-complex-indic-machine.rl |
- 2 +-
- .../in-tree/shaper-indic/south-east-asian/script-khmer/misc/misc.txt |
- 2 ++
+ src/hb-ot-shape-complex-indic-machine.rl | 2 +-
+ .../in-tree/shaper-indic/south-east-asian/script-khmer/misc/misc.txt | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
commit 11e2a601b19861b05dbb2051d2d078c3cfd75b29
Date: Tue Jul 17 13:55:10 2012 -0400
[Indic] Apply 'cfar' for Khmer
-
+
Mark stuff after a pre-base reordering Ro 'cfar'. Used in Khmer.
This allows distinguishing the following cases with MS Khmer fonts:
-
+
U+1784,U+17D2,U+179A,U+17D2,U+1782
U+1784,U+17D2,U+1782,U+17D2,U+179A
- src/hb-ot-shape-complex-indic.cc | 16
- ++++++++++++++--
+ src/hb-ot-shape-complex-indic.cc | 16 ++++++++++++++--
.../south-east-asian/script-khmer/misc/misc.txt | 2 ++
2 files changed, 16 insertions(+), 2 deletions(-)
Date: Tue Jul 17 12:50:13 2012 -0400
[Indic] Position final subjoined consonants (and vowels) after matras
-
+
In Khmer, a final subjoined consonant or independent vowel can occur
after matras. This final subjoined thing should NOT be reordered to
before the matra even though it's subjoined.
-
+
Fixes another 1k of the Khmer failures. Not much left really.
src/hb-ot-shape-complex-indic-private.hh | 1 +
- src/hb-ot-shape-complex-indic.cc | 13
- +++++++++++++
+ src/hb-ot-shape-complex-indic.cc | 13 +++++++++++++
.../south-east-asian/script-khmer/misc/misc.txt | 2 ++
3 files changed, 16 insertions(+)
Date: Tue Jul 17 11:54:28 2012 -0400
[Indic] Recategorize Khmer coeng sign as a separate category OT_Coeng
-
+
Amend the syllable structure to allow a final subscripted consonant
(Coeng+C) and a final subscripted independent vowel (Coeng+V).
Fixes another 2k of Khmer failures.
- src/hb-ot-shape-complex-indic-machine.rl |
- 7 ++++---
- src/hb-ot-shape-complex-indic.cc |
- 6 +++++-
+ src/hb-ot-shape-complex-indic-machine.rl | 7 ++++---
+ src/hb-ot-shape-complex-indic.cc | 6 +++++-
.../shaper-indic/south-east-asian/script-khmer/misc/misc.txt | 1 +
3 files changed, 10 insertions(+), 4 deletions(-)
Date: Tue Jul 17 11:37:32 2012 -0400
[Indic] Add a separate Coeng class
-
+
No characters recategorized yet. No semantic change.
src/hb-ot-shape-complex-indic-machine.rl | 1 +
Date: Tue Jul 17 11:16:19 2012 -0400
[Indic] Move Halant with after-base consonants
-
+
Normally, we attach the Halant to the previous character and move it
- with it. For after-base consonants however, the Halant "belongs"
- to the
+ with it. For after-base consonants however, the Halant "belongs" to the
consonant after, so attach it so.
-
+
This fixes Bengali sequences involving post-base consonant Ya, which
should ligate with the Halant to form Ya Phala, but previously a
reordered matras was blocking the ligation.
- src/hb-ot-shape-complex-indic.cc |
- 11 +++++++++++
+ src/hb-ot-shape-complex-indic.cc | 11 +++++++++++
.../in-tree/shaper-indic/indic/script-bengali/misc/misc.txt | 1 +
2 files changed, 12 insertions(+)
Date: Tue Jul 17 10:40:59 2012 -0400
[Indic] Apply presentation-forms features all at once
-
- Seems like this is what Uniscribe is doing, and does not break
- any fonts
- we tested (with Devanagari, Malayalam, Khmer, and Bengali), while
- fixing
+
+ Seems like this is what Uniscribe is doing, and does not break any fonts
+ we tested (with Devanagari, Malayalam, Khmer, and Bengali), while fixing
some Ra Phala sequences for Bengali with Vrinda. Fixes another 2% of
Bengali failures (a couple more to go).
- src/hb-ot-shape-complex-indic.cc |
- 6 +++---
+ src/hb-ot-shape-complex-indic.cc | 6 +++---
.../texts/in-tree/shaper-indic/indic/script-bengali/misc/misc.txt | 1 +
2 files changed, 4 insertions(+), 3 deletions(-)
Date: Mon Jul 16 22:43:17 2012 -0400
Fix MarkAttachmentType matching
-
+
Fixes issue reported by Khaled Hosny with his Hussaini Nastaleeq font
and sequences like those added in the previous commit.
Date: Mon Jul 16 22:46:06 2012 -0400
[test/arabic] Add Arabic tests for mark skipping
-
+
Expose a bug with Khaled's Hussaini Nastaleeq font.
.../shaper-arabic/script-arabic/misc/diacritics/MANIFEST | 1 +
- .../script-arabic/misc/diacritics/mark-skipping.txt |
- 10 ++++++++++
+ .../script-arabic/misc/diacritics/mark-skipping.txt | 10 ++++++++++
2 files changed, 11 insertions(+)
commit ad4494759fa8bfd2497800c24fa414075ed1aa61
Date: Mon Jul 16 20:31:24 2012 -0400
[Indic] Disable 'kern' in Uniscribe bug compatibility mode
-
- Uniscribe does not apply 'kern' in the Indic module. Some of
- the Khmer
+
+ Uniscribe does not apply 'kern' in the Indic module. Some of the Khmer
fonts they ship have small adjustments in the 'kern' table. Disable
'kern' in the Indic module under Uniscribe bug compatibility mode.
-
+
Fixes some 10% of the Khmer failures. Remains under 3% (excluding
dotted-circle ones).
Date: Mon Jul 16 20:26:57 2012 -0400
Allow complex shapers overriding common features
-
+
In a new callback... Currently unused by all complex shapers.
src/hb-ot-shape-complex-arabic.cc | 6 ++++++
Date: Mon Jul 16 19:56:29 2012 -0400
[Indic] Categorize other Khmer marks
-
+
Mark them the same as the Register Shifters for now. Need to rename
that category to something more sensible after all is settled.
-
+
Fixes another percent of Khmer failures. Down to under 3%!
src/hb-ot-shape-complex-indic.cc | 4 ++++
Date: Mon Jul 16 17:04:46 2012 -0400
[Indic] Recognize pre-base reordering Ra anywhere in the syllable
-
+
We were doing that only immediately after base.
+
+ Fixes another percent in the Khmer failures. About three more to go...
- Fixes another percent in the Khmer failures. About three more
- to go...
-
- src/hb-ot-shape-complex-indic.cc | 84
- ++++++++++++++++++++++------------------
+ src/hb-ot-shape-complex-indic.cc | 84 ++++++++++++++++++++++------------------
1 file changed, 46 insertions(+), 38 deletions(-)
commit 7d09c98a1fff97127e48eae48d380dc9fcff288e
Date: Mon Jul 16 16:45:22 2012 -0400
[Indic] Recognizer Register Shifter marks
-
+
Fixes another 6% of the Khmer failures.
src/hb-ot-shape-complex-indic-machine.rl | 3 ++-
Date: Mon Jul 16 16:13:32 2012 -0400
[GSUB/GDEF] Guess glyph classes after substitution only if no GDEF
-
+
Brings down Khmer failures with Daun Penh font from 36% to 20%.
src/hb-ot-layout-gsubgpos-private.hh | 20 +++++++++++++-------
Date: Mon Jul 16 15:52:54 2012 -0400
[Indic] Categorize Khmer Ro
-
+
Khmer failures down from 58% to 36%.
src/hb-ot-shape-complex-indic-private.hh | 2 ++
Date: Mon Jul 16 15:49:08 2012 -0400
[Indic] Reoder pre-base reordering Ra
-
+
Brings down Malayalam failures from 14% down to 3%.
- src/hb-ot-shape-complex-indic.cc | 42
- +++++++++++++++++++++++++++-------------
+ src/hb-ot-shape-complex-indic.cc | 42 +++++++++++++++++++++++++++-------------
1 file changed, 29 insertions(+), 13 deletions(-)
commit 1a1dbe9a2787f226f3e43063da8eb6633438b0a0
Date: Mon Jul 16 15:26:56 2012 -0400
[Indic] Rename
-
+
No semantic change.
src/hb-ot-shape-complex-indic.cc | 26 +++++++++++++-------------
Date: Mon Jul 16 15:21:12 2012 -0400
[Indic] Implement After-Main Reph positioning
-
+
Almost...
src/hb-ot-shape-complex-indic.cc | 8 +++++++-
Date: Mon Jul 16 15:20:15 2012 -0400
[Indic] Apply 'pref' to pre-base reodering Ra
-
+
No reordering yet.
src/hb-ot-shape-complex-indic.cc | 10 ++++++++++
Date: Mon Jul 16 15:15:28 2012 -0400
[Indic] Minor
-
+
Should not be any semantic change. In preparation for implementing
pre-base reordering Ra.
Minor
- src/hb-ot-shape-complex-indic.cc | 44
- ++++++++++++++++++++--------------------
+ src/hb-ot-shape-complex-indic.cc | 44 ++++++++++++++++++++--------------------
1 file changed, 22 insertions(+), 22 deletions(-)
commit 2f903215c5da2330a37abe489a3f45f7c3fd5a09
Date: Mon Jul 16 13:25:17 2012 -0400
Split matras without a Unicode decomposition
-
+
This is a hack for now, to get us going with Khmer. This will be
refactored properly later to move the complex logic into complex
shapers.
Date: Mon Jul 16 13:24:26 2012 -0400
[Indic] Adjust position for split matras
-
+
We are going to split matras without a Unicode decompositions in a way
that the second half takes the codepoint of the whole matra. So,
position them where the second half is supposed to end up.
Date: Mon Jul 16 13:23:40 2012 -0400
[GSUB] Allow 1-to-1 ligature substitutions!
-
- Apparently Uniscribe allows these, and they are used in some Khmer
- fonts
+
+ Apparently Uniscribe allows these, and they are used in some Khmer fonts
shipped with Windows, namely, Daun Penh.
src/hb-ot-layout-gsub-table.hh | 2 +-
Date: Fri Jul 13 10:19:10 2012 -0400
Make sure HB_BEGIN_DECLS / HB_END_DECLS is only used in public headers
-
- So we can use them to switch default visibility to internal if
- desired,
+
+ So we can use them to switch default visibility to internal if desired,
and use these to make only declared symbols public.
src/check-c-linkage-decls.sh | 10 +++++++++-
Date: Fri Jul 13 09:48:39 2012 -0400
Check for exported weak symbols
-
- Ouch, all our C++ inline functions are being exported (weakly)
- already.
+
+ Ouch, all our C++ inline functions are being exported (weakly) already.
Fix coming.
src/check-internal-symbols.sh | 8 +++++++-
Date: Wed Jul 11 19:00:30 2012 -0400
[ft] Disable ppem setting
-
+
The calculations were wrong.
-
+
FreeType makes it really hard to set size and ppem independently.
For now, disable it. Need to come up with a fix later.
Date: Wed Jul 11 18:01:27 2012 -0400
Revert "Towards templatizing common Lookup types"
-
+
This reverts commit 727135f3a9938c1ebd5b9f5015a46c7ccc8573c5.
-
+
This is work-in-progress. Didn't mean to push it out just yet.
src/hb-ot-layout-gpos-table.hh | 16 ++++++----------
src/hb-ot-layout-gsub-table.hh | 24 ++++++++++--------------
- src/hb-ot-layout-gsubgpos-private.hh | 33
- ++-------------------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 33 ++-------------------------------
3 files changed, 18 insertions(+), 55 deletions(-)
commit 552bf3a9f9651311084b7979805dbdc18c0335ca
Date: Wed Jul 11 16:44:51 2012 -0400
Bump WINNT version requested from 500 to 600
-
+
Since we use the OpenType versions of Uniscribe functions, we are
- relying on that version of the WINNT API. Otherwise, usp10.h
- will hide
+ relying on that version of the WINNT API. Otherwise, usp10.h will hide
those symbols.
src/hb-uniscribe.cc | 2 +-
src/hb-ot-layout-gpos-table.hh | 16 ++++++++++------
src/hb-ot-layout-gsub-table.hh | 24 ++++++++++++++----------
- src/hb-ot-layout-gsubgpos-private.hh | 33
- +++++++++++++++++++++++++++++++--
+ src/hb-ot-layout-gsubgpos-private.hh | 33 +++++++++++++++++++++++++++++++--
3 files changed, 55 insertions(+), 18 deletions(-)
commit 1167c7bfc9e61f145e11da4881968293a4d3c0a9
Minor
- test/shaping/texts/in-tree/shaper-thai/MANIFEST |
- 2 +-
+ test/shaping/texts/in-tree/shaper-thai/MANIFEST | 2 +-
test/shaping/texts/in-tree/shaper-thai/misc/MANIFEST | 1 -
test/shaping/texts/in-tree/shaper-thai/script-thai/MANIFEST | 1 +
test/shaping/texts/in-tree/shaper-thai/script-thai/misc/MANIFEST | 1 +
- .../shaper-thai/{misc/misc.txt => script-thai/misc/sara-am.txt} |
- 6 ++----
+ .../shaper-thai/{misc/misc.txt => script-thai/misc/sara-am.txt} | 6 ++----
5 files changed, 5 insertions(+), 6 deletions(-)
commit aa116582e69d18777448e7993078e5d6335ddfed
Minor
- .../texts/in-tree/shaper-indic/indic/script-malayalam/misc/misc.txt
- | 1 +
+ .../texts/in-tree/shaper-indic/indic/script-malayalam/misc/misc.txt | 1 +
1 file changed, 1 insertion(+)
commit 1f13c7185f02ea18d4fadd2ea8ad444bea863c39
Date: Tue Jun 26 10:46:31 2012 -0400
Use octal-escaped UTF-8 characters instead of plain text
-
+
https://bugs.freedesktop.org/show_bug.cgi?id=50970
src/hb-private.hh | 17 ++++++++++++-----
Date: Sun Jun 24 13:20:56 2012 -0400
Disable introspection again
-
+
Until I figure out the build issues. Sigh...
configure.ac | 2 +-
Date: Sat Jun 9 02:53:57 2012 -0400
Add fast-path for GPOS too
-
+
Shaves another 3% for DejaVu Sans long Latin strings.
src/hb-ot-layout-gpos-table.hh | 16 ++++++++++++++--
Date: Sat Jun 9 02:48:16 2012 -0400
Add fast-path to GSUB to check coverage
-
+
Shaves a good 10% off DejaVu Sans with simple Latin text for me.
Now, DejaVu is very ChainContext-intensive, but it's also a very
popular font!
Date: Sat Jun 9 02:26:57 2012 -0400
Match input before backtrack
-
+
Makes more sense, optimization-wise.
src/hb-ot-layout-gsubgpos-private.hh | 8 ++++----
Date: Sat Jun 9 01:10:26 2012 -0400
Micro-optimize
-
+
I know...
src/hb-ot-layout-gsubgpos-private.hh | 3 ++-
- src/hb-ot-layout.cc | 46
- ++++++++++++++++++++++--------------
+ src/hb-ot-layout.cc | 46 ++++++++++++++++++++++--------------
2 files changed, 30 insertions(+), 19 deletions(-)
commit 70416de298b811ab6be53a1c67f0d2531d99cd46
Date: Sat Jun 9 00:50:40 2012 -0400
Use linear search for small counts
-
+
I see about 8% speedup with long strings with DejaVu Sans.
src/hb-open-type-private.hh | 19 ++++++++++++++-----
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Fri Jun 8 22:04:23 2012 -0400
- In MarkBase attachment, only attach to first of a MultipleSubst
- sequence
-
+ In MarkBase attachment, only attach to first of a MultipleSubst sequence
+
This is apparently what Uniscribe does. Test case is:
-
+
SEEN FATHA TEH ALEF
-
+
with Arabic Typesetting. Originally reported by Khaled Hosny.
src/hb-ot-layout-gpos-table.hh | 7 ++++++-
Date: Fri Jun 8 21:47:23 2012 -0400
Set lig_comp for MultipleSubst components
-
+
To be used for correct mark attachment to first component of a
MultipleSubst output. That's what Uniscribe does.
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Fri Jun 8 20:33:27 2012 -0400
- Extend into main buffer if extension hit end of out-buffer merging
- clusters
+ Extend into main buffer if extension hit end of out-buffer merging clusters
src/hb-buffer.cc | 5 +++++
src/hb-ot-shape-complex-misc.cc | 9 ---------
Date: Fri Jun 8 14:08:32 2012 -0400
Fix Uniscribe charset matching
-
- Previously was failing to match fonts that didn't support
- CHARSET_ANSI.
-
+
+ Previously was failing to match fonts that didn't support CHARSET_ANSI.
+
There still remains a problem with the Uniscribe backend, in that if a
font with the same family name is installed, and is newer, the native
- one is preferred over the font we provide. Fixing it requires
- rewriting
+ one is preferred over the font we provide. Fixing it requires rewriting
the name table with a unique family name...
src/hb-uniscribe.cc | 1 +
Date: Fri Jun 8 10:43:49 2012 -0400
Fix regressions introduced by sed. Ouch!
-
+
Introduced in 99c2695759a6af855d565f4994bbdf220570bb48.
Broken mark-mark and mark-ligature stuff.
Whitespace
- src/hb-uniscribe.cc | 144
- ++++++++++++++++++++++++++--------------------------
+ src/hb-uniscribe.cc | 144 ++++++++++++++++++++++++++--------------------------
1 file changed, 72 insertions(+), 72 deletions(-)
commit 8e7beba7c3b3dea3cb3b7e280c5aab4f13b92d31
Date: Fri Jun 8 09:59:43 2012 -0400
Unbreak Uniscribe
-
+
Oops. hb_tag_t and OPENTYPE_TAG have different endianness. Perhaps
something to add API for in hb-uniscribe.h
Date: Fri Jun 8 09:26:17 2012 -0400
Override direction in Uniscribe backend
-
+
Matches OT backend now.
src/hb-uniscribe.cc | 2 +-
Date: Thu Jun 7 17:31:46 2012 -0400
Fix alignment-requirement missmatch
-
+
Detected by clang and lots of cmdline options.
src/hb-buffer-private.hh | 2 +-
Date: Wed Jun 6 11:27:17 2012 -0400
Fix ASSERT_POD on clang
-
+
As reported by bashi. Not tested.
src/hb-private.hh | 8 ++++++--
Date: Tue Jun 5 21:14:04 2012 -0400
Don't link to libstdc++
-
+
New try.
src/Makefile.am | 3 ++-
Date: Tue Jun 5 20:39:07 2012 -0400
Disable Intel atomic ops on mingw32
-
+
Apparently the configure test is not enough...
src/hb-atomic-private.hh | 2 +-
util/hb-shape.cc | 2 +-
util/helper-cairo.cc | 16 +++++------
util/main-font-text.hh | 2 +-
- util/options.cc | 58
- +++++++++++++++++++-------------------
+ util/options.cc | 58 +++++++++++++++++++-------------------
util/options.hh | 2 +-
util/view-cairo.hh | 2 +-
29 files changed, 185 insertions(+), 191 deletions(-)
Date: Tue Jun 5 20:31:49 2012 -0400
Fix inert buffer set_length() with zero
-
+
Oops!
src/hb-buffer.cc | 3 +++
Date: Tue Jun 5 19:23:29 2012 -0400
Remove last static initializer
-
+
We're free! Lazy or immediate...
src/hb-ft.cc | 2 +
- src/hb-shape.cc | 150
- ++++++++++++++++++++++++++++++++++++++++----------------
+ src/hb-shape.cc | 150 ++++++++++++++++++++++++++++++++++++++++----------------
2 files changed, 110 insertions(+), 42 deletions(-)
commit 4a8a529068fc380298bb05b9d878bede3e9f4da1
Date: Tue Jun 5 18:00:45 2012 -0400
Implement lock-free hb_language_t
-
+
Another static-initialization down. One more to go.
- src/hb-common.cc | 66
- +++++++++++++++++++++++++++++++++++++++++++++-----------
+ src/hb-common.cc | 66 +++++++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 54 insertions(+), 12 deletions(-)
commit 6843ce01be0df501ef3149a2c1c54cdfb693195d
Date: Tue Jun 5 17:27:20 2012 -0400
Add atomic-pointer functions
-
+
Gonig to use these for lock-free linked-lists, to be used for
hb_language_t among other things.
configure.ac | 4 ++--
src/hb-atomic-private.hh | 11 +++++++++--
- src/hb-mutex-private.hh | 51
- +++++++++++++++++++++++++++++++++++++++++-------
+ src/hb-mutex-private.hh | 51 +++++++++++++++++++++++++++++++++++++++++-------
src/hb-object-private.hh | 4 +++-
src/hb-warning.cc | 14 ++++++-------
5 files changed, 65 insertions(+), 19 deletions(-)
Date: Tue Jun 5 15:37:19 2012 -0400
Add a mutex to object header
-
+
Removes one more static-initialization. A few more to go.
src/hb-common.cc | 24 +++++++++---------------
Remove static initializers from indic
- src/hb-ot-shape-complex-indic.cc | 50
- +++++++++++++++++++++++++++++++---------
+ src/hb-ot-shape-complex-indic.cc | 50 +++++++++++++++++++++++++++++++---------
1 file changed, 39 insertions(+), 11 deletions(-)
commit f06ab8a4262c759b4723614fd28f55ee77aa8466
src/hb-blob.cc | 34 +++++++++++------------
src/hb-buffer.cc | 39 +++++++++++++-------------
- src/hb-font.cc | 70
- +++++++++++++++++++++++------------------------
+ src/hb-font.cc | 70 +++++++++++++++++++++++------------------------
src/hb-ft.cc | 49 +++++++++++++++------------------
src/hb-glib.cc | 25 ++++++++---------
src/hb-icu.cc | 25 ++++++++---------
Date: Tue Jun 5 14:17:32 2012 -0400
Remove constructor from hb_prealloced_array_t
-
+
This was causing all object types to be non-POD and have static
initializers. We don't need that!
-
+
Now, most nil objects just moved from .bss to .data. Fixing for that
coming soon.
s/script-punjabi/script-gurmukhi/
- test/shaping/texts/in-tree/shaper-indic/indic/MANIFEST |
- 2 +-
- .../shaper-indic/indic/{script-punjabi => script-gurmukhi}/MANIFEST
- | 0
- .../indic/{script-punjabi => script-gurmukhi}/misc/MANIFEST |
- 0
- .../indic/{script-punjabi => script-gurmukhi}/misc/misc.txt |
- 0
- .../indic/{script-punjabi => script-gurmukhi}/utrrs/LICENSE |
- 0
- .../indic/{script-punjabi => script-gurmukhi}/utrrs/MANIFEST |
- 0
- .../shaper-indic/indic/{script-punjabi => script-gurmukhi}/utrrs/README
- | 0
- .../indic/{script-punjabi => script-gurmukhi}/utrrs/SOURCES |
- 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt |
- 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt |
- 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-GurmukhiSpecific.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt
- | 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt |
- 0
- .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt
- | 0
- .../indic/{script-punjabi => script-gurmukhi}/utrrs/codepoint/MANIFEST
- | 0
- .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt |
- 0
- .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt |
- 0
- .../indic/{script-punjabi => script-gurmukhi}/utrrs/gpos/MANIFEST
- | 0
- .../utrrs/gsub/IndicFontFeatureGSUB.txt |
- 0
- .../indic/{script-punjabi => script-gurmukhi}/utrrs/gsub/MANIFEST
- | 0
+ test/shaping/texts/in-tree/shaper-indic/indic/MANIFEST | 2 +-
+ .../shaper-indic/indic/{script-punjabi => script-gurmukhi}/MANIFEST | 0
+ .../indic/{script-punjabi => script-gurmukhi}/misc/MANIFEST | 0
+ .../indic/{script-punjabi => script-gurmukhi}/misc/misc.txt | 0
+ .../indic/{script-punjabi => script-gurmukhi}/utrrs/LICENSE | 0
+ .../indic/{script-punjabi => script-gurmukhi}/utrrs/MANIFEST | 0
+ .../shaper-indic/indic/{script-punjabi => script-gurmukhi}/utrrs/README | 0
+ .../indic/{script-punjabi => script-gurmukhi}/utrrs/SOURCES | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-GurmukhiSpecific.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0
+ .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0
+ .../indic/{script-punjabi => script-gurmukhi}/utrrs/codepoint/MANIFEST | 0
+ .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0
+ .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0
+ .../indic/{script-punjabi => script-gurmukhi}/utrrs/gpos/MANIFEST | 0
+ .../utrrs/gsub/IndicFontFeatureGSUB.txt | 0
+ .../indic/{script-punjabi => script-gurmukhi}/utrrs/gsub/MANIFEST | 0
21 files changed, 1 insertion(+), 1 deletion(-)
commit c1885483120d4b686b2fe95b217dce7248e040b1
Date: Mon Jun 4 08:56:00 2012 -0400
Add --verbose to hb-shape
-
+
Just turns all --show-* options on.
util/options.cc | 11 +++++++++++
Date: Mon Jun 4 08:28:19 2012 -0400
Remove comma at the end of enum
-
+
As reported by Jonathan Kew on the list.
src/hb-ot-shape-complex-indic.cc | 2 +-
Date: Sun Jun 3 15:54:19 2012 -0400
Remove const from ref_count.ref_count
-
+
According to Tom Hacohen this was breaking build with some compilers.
-
+
In file included from hb-buffer-private.hh:35:0,
from hb-ot-map-private.hh:32,
from hb-ot-shape-private.hh:32,
from hb-ot-shape.cc:29:
- hb-object-private.hh: In constructor
- '_hb_object_header_t::_hb_object_header_t()':
- hb-object-private.hh:97:8: error: uninitialized const member in
- 'struct hb_reference_count_t'
- hb-object-private.hh:51:25: note: 'hb_reference_count_t::ref_count'
- should be initialized
+ hb-object-private.hh: In constructor '_hb_object_header_t::_hb_object_header_t()':
+ hb-object-private.hh:97:8: error: uninitialized const member in 'struct hb_reference_count_t'
+ hb-object-private.hh:51:25: note: 'hb_reference_count_t::ref_count' should be initialized
In file included from hb-ot-shape.cc:33:0:
hb-set-private.hh: In constructor '_hb_set_t::_hb_set_t()':
- hb-set-private.hh:37:8: note: synthesized method
- '_hb_object_header_t::_hb_object_header_t()' first required here
- hb-ot-shape.cc: In function 'void
- hb_ot_shape_glyphs_closure(hb_font_t*, hb_buffer_t*, const
- hb_feature_t*, unsigned int, hb_set_t*)':
- hb-ot-shape.cc:521:12: note: synthesized method
- '_hb_set_t::_hb_set_t()' first required here
+ hb-set-private.hh:37:8: note: synthesized method '_hb_object_header_t::_hb_object_header_t()' first required here
+ hb-ot-shape.cc: In function 'void hb_ot_shape_glyphs_closure(hb_font_t*, hb_buffer_t*, const hb_feature_t*, unsigned int, hb_set_t*)':
+ hb-ot-shape.cc:521:12: note: synthesized method '_hb_set_t::_hb_set_t()' first required here
src/hb-object-private.hh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
util/options.hh | 33 ++++++++++++++--------------
util/shape-consumer.hh | 17 ++++++++++++---
util/view-cairo.cc | 47 +++++++---------------------------------
- util/view-cairo.hh | 52
- +++++++++++++++++++++++++++++++++++++++------
+ util/view-cairo.hh | 52 +++++++++++++++++++++++++++++++++++++++------
8 files changed, 143 insertions(+), 81 deletions(-)
commit 96a9ef0c9fca8d58d8dc6baf6b262d96587abee0
Date: Fri Jun 1 13:46:26 2012 -0400
Remove tab character like other "zero-width" characters
-
+
Uniscribe does that, this make comparing results to Uniscribe
easier.
Date: Mon May 28 10:46:47 2012 -0400
Remove hb_atomic_int_set/get()
-
+
We never use them in fact...
-
+
I'm just adjusting these as I better understand the requirements of
the code and the guarantees of each operation.
Date: Sun May 27 22:39:48 2012 -0400
Minor Malayalam test case
-
+
From https://bugs.freedesktop.org/show_bug.cgi?id=45166
- .../texts/in-tree/shaper-indic/indic/script-malayalam/misc/misc.txt
- | 1 +
+ .../texts/in-tree/shaper-indic/indic/script-malayalam/misc/misc.txt | 1 +
1 file changed, 1 insertion(+)
commit dfff5b3021016d3a472c100272fd8e2f52307860
Add Myanmar test case
- test/shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST
- | 1 +
- .../texts/in-tree/shaper-indic/south-east-asian/script-myanmar/MANIFEST
- | 1 +
- .../in-tree/shaper-indic/south-east-asian/script-myanmar/misc/MANIFEST
- | 1 +
- .../in-tree/shaper-indic/south-east-asian/script-myanmar/misc/misc.txt
- | 1 +
+ test/shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST | 1 +
+ .../texts/in-tree/shaper-indic/south-east-asian/script-myanmar/MANIFEST | 1 +
+ .../in-tree/shaper-indic/south-east-asian/script-myanmar/misc/MANIFEST | 1 +
+ .../in-tree/shaper-indic/south-east-asian/script-myanmar/misc/misc.txt | 1 +
4 files changed, 4 insertions(+)
commit bce095524b3e69a47f8e88a2fb02d6ab537f9b0a
TODO | 1 +
src/hb-font-private.hh | 2 ++
- src/hb-font.cc | 80
- +++++++++++++++++++++++++++++++++++----------
+ src/hb-font.cc | 80 +++++++++++++++++++++++++++++++++++----------
src/hb-font.h | 28 ++++++++++++++++
src/hb-ft.cc | 52 ++++++++++++++++++++++++-----
util/hb-ot-shape-closure.cc | 9 ++---
Date: Sun May 27 10:11:13 2012 -0400
Don't use atomic ops in hb_cache_t
-
+
We don't care about linearizability, so unprotected int read/write
are enough, no need for expensive memory barriers. It's a cache,
that's all.
Date: Sun May 27 10:01:13 2012 -0400
Fix Windows atomic get/set
-
+
According to:
http://msdn.microsoft.com/en-us/library/65tt87y8.aspx
-
- MemoryBarrier() is the right macro to protect these, not
- _ReadBarrier()
+
+ MemoryBarrier() is the right macro to protect these, not _ReadBarrier()
and/or _WriteBarrier().
src/hb-atomic-private.hh | 4 ++--
Date: Thu May 24 10:46:39 2012 -0400
Fix hb_atomic_int_set() implementation for HB_NO_MT
-
+
As pointed out by Jonathan Kew.
src/hb-atomic-private.hh | 2 +-
.../shaper-arabic/script-arabic/misc/MANIFEST | 2 +-
.../script-arabic/misc/diacritics/MANIFEST | 5 +
.../script-arabic/misc/diacritics/lam-alef.txt | 28 +
- .../misc/diacritics/language-arabic.txt | 695
- +++++++++++++++++++++
+ .../misc/diacritics/language-arabic.txt | 695 +++++++++++++++++++++
.../misc/diacritics/language-persian.txt | 48 ++
.../misc/diacritics/language-urdu.txt | 188 ++++++
.../misc/{ => diacritics}/ligature-diacritics.txt | 0
Date: Tue May 22 22:12:22 2012 -0400
Fix substitution glyph class propagation
-
+
The old code was doing nothing.
-
+
Still got to find an example font+string that makes this matter, but
need this for fixing synthetic GDEF anyway.
Date: Fri May 18 15:04:35 2012 -0400
Add CJK Compatibility Ideographs tests
-
+
From:
http://people.mozilla.org/~jdaggett/tests/cjkcompat.html
- test/shaping/texts/in-tree/shaper-default/MANIFEST |
- 3 ++-
- .../in-tree/shaper-default/{script-japanese => script-han}/MANIFEST
- | 0
- test/shaping/texts/in-tree/shaper-default/script-han/misc/MANIFEST |
- 1 +
- .../texts/in-tree/shaper-default/script-han/misc/cjk-compat.txt |
- 3 +++
- test/shaping/texts/in-tree/shaper-default/script-hiragana/MANIFEST |
- 1 +
- .../shaper-default/{script-japanese => script-hiragana}/misc/MANIFEST
- | 0
- .../{script-japanese => script-hiragana}/misc/kazuraki-liga-lines.txt
- | 0
- .../{script-japanese => script-hiragana}/misc/kazuraki-liga.txt
- | 0
+ test/shaping/texts/in-tree/shaper-default/MANIFEST | 3 ++-
+ .../in-tree/shaper-default/{script-japanese => script-han}/MANIFEST | 0
+ test/shaping/texts/in-tree/shaper-default/script-han/misc/MANIFEST | 1 +
+ .../texts/in-tree/shaper-default/script-han/misc/cjk-compat.txt | 3 +++
+ test/shaping/texts/in-tree/shaper-default/script-hiragana/MANIFEST | 1 +
+ .../shaper-default/{script-japanese => script-hiragana}/misc/MANIFEST | 0
+ .../{script-japanese => script-hiragana}/misc/kazuraki-liga-lines.txt | 0
+ .../{script-japanese => script-hiragana}/misc/kazuraki-liga.txt | 0
8 files changed, 7 insertions(+), 1 deletion(-)
commit 20fdb0f41d81b226e076a4830d4b0d03da31fc19
Date: Thu May 17 22:04:45 2012 -0400
Add a lock-free cache type for int->int functions
-
+
To be used for cmap and advance caching if desired.
TODO | 2 ++
src/Makefile.am | 1 +
- src/hb-cache-private.hh | 72
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-cache-private.hh | 72 +++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-font.cc | 2 ++
4 files changed, 77 insertions(+)
Date: Thu May 17 20:55:12 2012 -0400
Don't use min/max as function names
-
+
They can be macros on some systems. Eg. mingw32.
src/hb-set-private.hh | 4 ++--
Move atomic ops into their own header
src/Makefile.am | 1 +
- src/hb-atomic-private.hh | 78
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-atomic-private.hh | 78 ++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-mutex-private.hh | 1 -
src/hb-object-private.hh | 52 ++------------------------------
src/hb-warning.cc | 2 +-
Date: Tue May 15 23:53:18 2012 -0400
[util] Add hb-ot-shape-closure tool
-
+
Computes all the glyphs that may be generated given a font and
set of Unicode characters.
-
+
The order of the Unicode characters is irrelevant.
-
+
Sample output:
-
+
behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf f
f f_f
-
+
behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf i
i
-
+
behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf fi
f f_i f_f_i f_f i
-
+
behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf ب
uni0628 uni0628.init uni0628.medi uni0628.fina
-
+
behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf ا
uni0627 uni0627.fina
-
+
behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf با
uni0627 uni0627.fina uni0628 uni0628.init uni0628.medi uni0628.fina
-
- behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf با
- --no-glyph-names
+
+ behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf با --no-glyph-names
5 6 133 134 135 136
configure.ac | 2 +-
util/Makefile.am | 22 ++++++---
- util/hb-ot-shape-closure.cc | 112
- ++++++++++++++++++++++++++++++++++++++++++++
+ util/hb-ot-shape-closure.cc | 112 ++++++++++++++++++++++++++++++++++++++++++++
util/options.hh | 12 +++++
4 files changed, 140 insertions(+), 8 deletions(-)
[util] Refactor to accommodate for upcoming new tool
util/Makefile.am | 10 +++--
- util/hb-shape.cc | 70
- +++++++++++++++-------------------
+ util/hb-shape.cc | 70 +++++++++++++++-------------------
util/hb-view.cc | 8 ++--
util/{hb-view.hh => main-font-text.hh} | 48 +++++++++++------------
- util/shape-consumer.hh | 69
- +++++++++++++++++++++++++++++++++
+ util/shape-consumer.hh | 69 +++++++++++++++++++++++++++++++++
5 files changed, 135 insertions(+), 70 deletions(-)
commit 1d6846db9ebf84561bb30a4e48c6c43184914099
Date: Sun May 13 18:09:29 2012 +0200
[Indic] Apply vatu feature after cjct
-
+
Testing with old Deva spec this reduces failures.
Test sequence: U+0915,U+094D,U+0930.
Minor
- util/ansi-print.cc | 67
- +++++++++++++++++++++++++++---------------------------
+ util/ansi-print.cc | 67 +++++++++++++++++++++++++++---------------------------
1 file changed, 33 insertions(+), 34 deletions(-)
commit 617f4ac46f1084859d2034c08760e31e52d3bec3
Refactor
- src/hb-ot-shape-complex-indic.cc | 44
- +++++++++++++++++++++-------------------
+ src/hb-ot-shape-complex-indic.cc | 44 +++++++++++++++++++++-------------------
1 file changed, 23 insertions(+), 21 deletions(-)
commit 5e4e21fce4b548b0b8a5951bc8f35a9f27428192
Date: Sun May 13 16:46:08 2012 +0200
Revert "[Indic] Refactoring"
-
+
This reverts commit 0831061efb78983b9c6e1e72574c977e56383c08.
src/hb-ot-shape-complex-indic.cc | 28 ++++++++--------------------
Fix warnings
src/hb-fallback-shape.cc | 4 ++--
- src/hb-private.hh | 54
- ++++++++++++++++++++++++------------------------
+ src/hb-private.hh | 54 ++++++++++++++++++++++++------------------------
2 files changed, 29 insertions(+), 29 deletions(-)
commit eace47b173807d94b29a6490d0bc3c9f8f6168d1
Add accessort to buffer for current info, current pos, and prev info
src/hb-buffer-private.hh | 9 ++++++++
- src/hb-ot-layout-gpos-table.hh | 44
- ++++++++++++++++++------------------
+ src/hb-ot-layout-gpos-table.hh | 44 ++++++++++++++++++------------------
src/hb-ot-layout-gsub-table.hh | 28 +++++++++++------------
src/hb-ot-layout-gsubgpos-private.hh | 28 +++++++++++------------
src/hb-ot-shape-complex-arabic.cc | 4 ++--
Date: Sun May 13 15:17:51 2012 +0200
[GSUB/GPOS] Remove context_length
-
+
The spec doesn't say contextual matching should be done this way,
and AOTS doesn't do it either. It was inherited from old HarfBuzz.
Remove it.
src/hb-ot-layout-common-private.hh | 1 -
src/hb-ot-layout-gpos-table.hh | 3 ---
src/hb-ot-layout-gsub-table.hh | 6 ++----
- src/hb-ot-layout-gsubgpos-private.hh | 32
- +++++++++++---------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 32 +++++++++++---------------------
4 files changed, 13 insertions(+), 29 deletions(-)
commit 28b9d502bb69a8045818d5f6113ded9c59a56bd7
Date: Sun May 13 13:03:44 2012 +0200
Remove ioctl checks
-
+
Ended up not using terminal size after all.
configure.ac | 2 +-
configure.ac | 4 +-
util/Makefile.am | 4 +
- util/ansi-print.cc | 411
- ++++++++++++++++++++++++++++++++++++++++++++++
+ util/ansi-print.cc | 411 ++++++++++++++++++++++++++++++++++++++++++++++
util/ansi-print.hh | 39 +++++
util/helper-cairo-ansi.cc | 102 ++++++++++++
util/helper-cairo-ansi.hh | 39 +++++
Date: Sat May 12 15:54:27 2012 +0200
[util] Make tools default to stdin if no text is provided
-
+
One less argument to type in typical testing workflow!
util/hb-view.hh | 4 +++-
Date: Sat May 12 15:41:48 2012 +0200
[util] Change default font size of hb-view to 256
-
+
Most common usecase of hb-view is to test rendering of short words for
testing / inspection. Not having to type "--font-size 150" each time
isn't such a bad idea...
Date: Sat May 12 15:34:40 2012 +0200
[test] Make tool usage easier by not requiring "--stdin"
-
+
Just default to it. Added "--help" instead to get usage.
test/shaping/hb_test_tools.py | 9 ++++-----
[Indic] Add more Malayalam tests
- .../indic/script-malayalam/misc/misc.txt | 38
- ++++++++++++++++++++++
+ .../indic/script-malayalam/misc/misc.txt | 38 ++++++++++++++++++++++
1 file changed, 38 insertions(+)
commit 7f852b644b8143492a02edfc853114aaa23446bd
Date: Fri May 11 22:00:06 2012 +0200
[Indic] Unbreak Devanagari
-
+
And this, concludes the HarfBuzz Massala Hackfest.
-
- I like to specially thank Jonathan Kew for doing all the decription
- and
+
+ I like to specially thank Jonathan Kew for doing all the decription and
letting me get commit points.
configure.ac | 2 +-
Date: Fri May 11 21:42:27 2012 +0200
[Indic] Disambiguate sub vs post vs above matras
-
+
Bengali is at *just* above 5% now.
- src/hb-ot-shape-complex-indic-private.hh | 31
- +++++++++++++++----------------
+ src/hb-ot-shape-complex-indic-private.hh | 31 +++++++++++++++----------------
src/hb-ot-shape-complex-indic.cc | 12 ++++++------
2 files changed, 21 insertions(+), 22 deletions(-)
[Indic] Position Bengali Reph before matras
- src/hb-ot-shape-complex-indic.cc | 62
- +++++++++++++++++++++++-----------------
+ src/hb-ot-shape-complex-indic.cc | 62 +++++++++++++++++++++++-----------------
1 file changed, 36 insertions(+), 26 deletions(-)
commit f89367251109af235f4f0446c13c261a5a4a6f72
[Indic] Start categorizing Reph per script
- src/hb-ot-shape-complex-indic.cc | 41
- ++++++++++++++++++++++++++++++++++------
+ src/hb-ot-shape-complex-indic.cc | 41 ++++++++++++++++++++++++++++++++++------
1 file changed, 35 insertions(+), 6 deletions(-)
commit a913b024d84973556094fd64ce5f0b7106fcc3b5
Date: Fri May 11 20:59:26 2012 +0200
[Indic] Apply 'init' feature for Bengali
-
+
Error down from 20% to 7%.
src/hb-ot-shape-complex-indic.cc | 15 +++++++++++++++
Date: Fri May 11 20:50:53 2012 +0200
[Indic] Refactor for the arrival of 'init' feature
-
+
Yep, on Bengali now!
- src/hb-ot-shape-complex-indic.cc | 52
- +++++++++++++++++++++++++++-------------
+ src/hb-ot-shape-complex-indic.cc | 52 +++++++++++++++++++++++++++-------------
1 file changed, 36 insertions(+), 16 deletions(-)
commit 18c06e189bd078affbb84c3bb5bb80687a227c5e
Date: Fri May 11 20:02:14 2012 +0200
[Indic] Add Uniscribe bug feature for dotted circle
-
+
For dotted-circle independent clusters, Uniscribe does no Reph shaping
- for the exact sequence Ra+Halant+25CC. Which also is the only
- possible
+ for the exact sequence Ra+Halant+25CC. Which also is the only possible
sequence with 25CC at the end.
src/hb-ot-shape-complex-indic-machine.rl | 4 +++-
[Indic] Add tests for dottedcircle
.../in-tree/shaper-indic/indic/script-devanagari/misc/MANIFEST | 1 +
- .../shaper-indic/indic/script-devanagari/misc/dottedcircle.txt |
- 7 +++++++
+ .../shaper-indic/indic/script-devanagari/misc/dottedcircle.txt | 7 +++++++
2 files changed, 8 insertions(+)
commit 0831061efb78983b9c6e1e72574c977e56383c08
Date: Fri May 11 18:46:35 2012 +0200
[Indic] Allow multiple Consonants in Vowel/NBSP syllables
-
+
Uniscribe allows multiple Halant+Consonant after a Vowel.
Tests:
↦ * U+0905,U+094D,U+092B,U+094D,930,94d,930
Date: Fri May 11 18:13:42 2012 +0200
[Indic] Allow two Nuktas per consonant
-
- Uniscribe allows up to two nuktas per consonant and one per matra. It
- does so
+
+ Uniscribe allows up to two nuktas per consonant and one per matra. It does so
indepent of whether the consonant already has a nukta in it. Tests:
-
+
* U+0916,U+093C,U+0941
* U+0959,U+093C,U+0941
* U+0916,U+093C,U+093C,U+0941
Date: Fri May 11 17:54:26 2012 +0200
[Indic] Fix U+0952 and similar classification to match Uniscribe
-
+
See comments.
src/hb-ot-shape-complex-indic-machine.rl | 1 +
Date: Fri May 11 17:29:40 2012 +0200
[GSUB/GPOS/Indic] Apply GSUB/GPOS within syllables only
-
+
This does not apply to the context matchings.
-
+
This regresses tests right now. And we are not sure whether this is
the right thing to do for GPOS. But we'll figure out.
Date: Fri May 11 16:43:12 2012 +0200
[Indic] Add runtime Uniscribe bug compatibility mode!
-
+
Enable by setting envvar:
-
+
HB_OT_INDIC_OPTIONS=uniscribe-bug-compatible
-
+
Plus, LeftMatra+Halant "feature".
- src/hb-ot-shape-complex-indic.cc | 44
- ++++++++++++++++++++++++++++++----------
+ src/hb-ot-shape-complex-indic.cc | 44 ++++++++++++++++++++++++++++++----------
1 file changed, 33 insertions(+), 11 deletions(-)
commit 616e692e2950d326b6c46aba5b5bead3cc29d315
Date: Fri May 11 16:23:43 2012 +0200
[Indic] Fix Left Matra + Halant reordering
-
+
As can be seen in: U+092B,U+093F,U+094D
src/hb-ot-shape-complex-indic.cc | 6 ++++--
Minor
- src/hb-ot-shape-complex-indic.cc | 73
- ++++++++++++++++++++--------------------
+ src/hb-ot-shape-complex-indic.cc | 73 ++++++++++++++++++++--------------------
1 file changed, 37 insertions(+), 36 deletions(-)
commit c071b99f150a9344a2056dfeba8c613f8a5602db
Date: Fri May 11 16:22:46 2012 +0200
[Indic] Add test for Left Matra with Halant
+
+ Uniscribe doesn't move the Halant, we do. And do a broken job of it now.
- Uniscribe doesn't move the Halant, we do. And do a broken job of
- it now.
-
- .../shaper-indic/indic/script-devanagari/misc/tricky-reordering.txt
- | 1 +
+ .../shaper-indic/indic/script-devanagari/misc/tricky-reordering.txt | 1 +
1 file changed, 1 insertion(+)
commit 203d71069c45048b6dd8fa22b61fd8f2c844b4f6
Date: Fri May 11 15:34:13 2012 +0200
[Indic] Apply Reph mask to all POS_REPH glyphs
-
+
Needed for upcoming changes to GSUB/GPOS mask matching.
src/hb-ot-shape-complex-indic.cc | 4 ++--
[Indic] Fix state machine to backtrack
- src/hb-ot-shape-complex-indic-machine.rl | 42
- +++++++++++++++-----------------
+ src/hb-ot-shape-complex-indic-machine.rl | 42 +++++++++++++++-----------------
src/hb-private.hh | 2 ++
2 files changed, 21 insertions(+), 23 deletions(-)
Date: Fri May 11 11:41:39 2012 +0200
[Indic] Move syllable tracking from Indic to generic layer
-
+
This is to incorporate it into GSUB/GPOS processing.
src/hb-ot-layout-gpos-table.hh | 1 +
Date: Fri May 11 11:17:23 2012 +0200
[Indic] Disable conjuncts when a ZWJ happens
-
- Not that the code makes any difference since the presence of ZWJ
- itself
+
+ Not that the code makes any difference since the presence of ZWJ itself
causes the ligature to fail to match anyway.
src/hb-ot-shape-complex-indic.cc | 7 +------
Date: Fri May 11 11:07:40 2012 +0200
[Indic] Fix bitops typo!
-
+
Another 1000 down!
src/hb-ot-shape-complex-indic.cc | 4 ++--
Date: Fri May 11 03:45:28 2012 +0200
Make APPLY debug output print current index and codepoint
-
+
Yay!
src/hb-ot-layout-gsubgpos-private.hh | 2 +-
Date: Fri May 11 03:35:08 2012 +0200
Some more...
-
+
Done. I promise.
src/hb-object-private.hh | 1 +
Finish off debug output beautification
- src/hb-open-type-private.hh | 58
- ++++++++++++++++++++-------------------------
+ src/hb-open-type-private.hh | 58 ++++++++++++++++++++-------------------------
1 file changed, 26 insertions(+), 32 deletions(-)
commit d7bba01a353efc7432c474dd8755a02db4abd2ae
Date: Fri May 11 02:40:42 2012 +0200
Only printout class name in tracing, if one is available
-
+
Makes debug output much more pleasant.
src/hb-private.hh | 8 ++++++--
Add return annotation for APPLY
- src/hb-ot-layout-gpos-table.hh | 163
- +++++++++++++++--------------------
+ src/hb-ot-layout-gpos-table.hh | 163 +++++++++++++++--------------------
src/hb-ot-layout-gsub-table.hh | 114 +++++++++++-------------
src/hb-ot-layout-gsubgpos-private.hh | 83 ++++++++----------
3 files changed, 151 insertions(+), 209 deletions(-)
Date: Fri May 11 01:25:34 2012 +0200
Annotate SANITIZE return values
-
+
More to come, for APPLY, CLOSURE, etc.
src/hb-open-file-private.hh | 23 ++---
src/hb-ot-hmtx-table.hh | 4 +-
src/hb-ot-layout-common-private.hh | 51 +++++-----
src/hb-ot-layout-gdef-table.hh | 48 +++++-----
- src/hb-ot-layout-gpos-table.hh | 180
- ++++++++++++++++-------------------
+ src/hb-ot-layout-gpos-table.hh | 180 ++++++++++++++++-------------------
src/hb-ot-layout-gsub-table.hh | 101 +++++++++-----------
src/hb-ot-layout-gsubgpos-private.hh | 88 ++++++++---------
src/hb-ot-maxp-table.hh | 7 +-
Beautify debug output
src/hb-open-type-private.hh | 20 ++++++------
- src/hb-private.hh | 74
- +++++++++++++++++++++++++++------------------
+ src/hb-private.hh | 74 +++++++++++++++++++++++++++------------------
2 files changed, 55 insertions(+), 39 deletions(-)
commit 6f4553801729a06e506ffdde7b27c72780d4bb80
Date: Thu May 10 23:06:58 2012 +0200
Better trace message support infrastructure
-
+
We have varargs in the trace interface now. To be used soon...
src/hb-open-type-private.hh | 17 ++++------
src/hb-ot-layout-gsubgpos-private.hh | 4 +--
- src/hb-private.hh | 64
- ++++++++++++++++++++++++++----------
+ src/hb-private.hh | 64 ++++++++++++++++++++++++++----------
3 files changed, 56 insertions(+), 29 deletions(-)
commit 02b2922fbf098c8282eb23dc2c54d5829cf67024
Date: Thu May 10 21:44:50 2012 +0200
[Indic] Towards better Reph positioning
-
- Fixed for Deva cases with two full-form consonants. Failures **way**
- down.
+
+ Fixed for Deva cases with two full-form consonants. Failures **way** down.
Not much left to go :-).
- src/hb-ot-shape-complex-indic.cc | 111
- ++++++++++++++++++++++++++++-----------
+ src/hb-ot-shape-complex-indic.cc | 111 ++++++++++++++++++++++++++++-----------
1 file changed, 80 insertions(+), 31 deletions(-)
commit 74e54cf446bb979e488685e8c09eeed6b9d03c24
Date: Thu May 10 21:20:37 2012 +0200
[Indic] Add Ra back for scripts without Reph
-
+
We now check that the 'rphp' table exists before forming Reph, so
we don't need to comment out Ra for those scripts.
Date: Thu May 10 18:34:34 2012 +0200
[Indic] Do clustering like Uniscribe does
-
+
Hindi Wikipedia failures down to 6639 (0.938381%)!
src/hb-ot-shape-complex-indic.cc | 24 ++++++++++++++++++++----
Date: Thu May 10 18:31:17 2012 +0200
[Indic] Add test for matra group
-
+
The spec says: "[{M}+[N]+[H]]", and that's what Uniscribe implements.
We instead do: "{M+[N]+[H]}", which means we allow Nukta and Halant
after all Matras, not just the last one. It makes more sense.
- .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/MANIFEST
- | 1 +
- .../shaper-indic/indic/script-devanagari/misc/spec-deviations.txt
- | 1 +
+ .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/MANIFEST | 1 +
+ .../shaper-indic/indic/script-devanagari/misc/spec-deviations.txt | 1 +
2 files changed, 2 insertions(+)
commit 8df5636968389ac7bf8620ccd091fd4872b0bbee
Date: Thu May 10 15:41:04 2012 +0200
[Indic] Reorder Reph to before the Halant after Matras
-
+
Uniscribe doesn't do it, but we want to do as it gives the Reph the
- opportunity to interact with the Matras. Test with mangal for
- example.
+ opportunity to interact with the Matras. Test with mangal for example.
Sequence: <0930,094d,0915,094b,094d>
In test suite already.
Date: Thu May 10 15:28:27 2012 +0200
[Indic] Don't clear the mask for Reph
-
+
This was removing the mandatory global 1 bit in the mask and hence
disabling GPOS for Reph!
Date: Thu May 10 14:48:25 2012 +0200
[Indic] Improve Left Matra repositioning
-
+
Move its dependents too.
src/hb-ot-shape-complex-indic.cc | 2 +-
Date: Thu May 10 14:43:53 2012 +0200
[Indic] Add tricky reordering test cases
-
+
In the case of Consonant,LeftMatra,Halant, Uniscribe leaves the Halant
where it is, but we want to move it with the Matra as that makes more
logical sense.
- .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/MANIFEST |
- 1 +
- .../shaper-indic/indic/script-devanagari/misc/tricky-reordering.txt |
- 4 ++++
+ .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/MANIFEST | 1 +
+ .../shaper-indic/indic/script-devanagari/misc/tricky-reordering.txt | 4 ++++
2 files changed, 5 insertions(+)
commit dbb105883c6e9b83e78dc8b10766cd56b98cd7e1
Date: Thu May 10 13:45:52 2012 +0200
[Indic] Do Reph repositioning in final reordering like the spec says
-
- This introduced a failure, which we tracked down to a test case
- like this:
-
+
+ This introduced a failure, which we tracked down to a test case like this:
+
U+092E,U+094B,U+094D,U+0930
-
+
The final character is a Ra that should be put in a syllable of it's
own. And we do. But it will interact with the Halant before it. So
- now we finally are convinced that we have to limit features to
- syllable
+ now we finally are convinced that we have to limit features to syllable
boundaries. That's coming after lunch!
src/hb-ot-shape-complex-indic-private.hh | 2 -
- src/hb-ot-shape-complex-indic.cc | 103
- +++++++++++++++++++------------
+ src/hb-ot-shape-complex-indic.cc | 103 +++++++++++++++++++------------
2 files changed, 64 insertions(+), 41 deletions(-)
commit 4705a7026900e51f6430f03a73c87f2df035df92
[Indic] Reorder left matras to be closer to base
src/hb-ot-shape-complex-indic-private.hh | 4 ---
- src/hb-ot-shape-complex-indic.cc | 50
- +++++++++++++++++++++++++++++---
+ src/hb-ot-shape-complex-indic.cc | 50 +++++++++++++++++++++++++++++---
2 files changed, 46 insertions(+), 8 deletions(-)
commit 1a1fa8c655a082fc1439608457ba717306cc83ca
Date: Thu May 10 12:07:33 2012 +0200
[Indic] Handle Vowel syllables
-
+
Reusing the consonant logic!
src/hb-ot-shape-complex-indic-private.hh | 3 +--
Date: Thu May 10 11:32:52 2012 +0200
[Indic] Increase max syllable length
-
- 20 was way too low, one could hit a syllable with 7ish consonants
- with it.
+
+ 20 was way too low, one could hit a syllable with 7ish consonants with it.
src/hb-ot-shape-complex-indic.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
src/hb-ot-shape-complex-arabic.cc | 2 +-
src/hb-ot-shape-complex-indic-machine.rl | 21 ++++++++++-----
src/hb-ot-shape-complex-indic-private.hh | 1 +
- src/hb-ot-shape-complex-indic.cc | 45
- +++++++++++++++++++++++---------
+ src/hb-ot-shape-complex-indic.cc | 45 +++++++++++++++++++++++---------
src/hb-ot-shape-complex-private.hh | 5 ++--
5 files changed, 51 insertions(+), 23 deletions(-)
Minor
- src/hb-ot-shape-complex-indic.cc | 41
- ++++++++++++++++++++--------------------
+ src/hb-ot-shape-complex-indic.cc | 41 ++++++++++++++++++++--------------------
1 file changed, 21 insertions(+), 20 deletions(-)
commit dbccf87eef0d26838fa4bb3ae26410f6c4818836
[Indic] Make room for more reordering positions
- src/hb-ot-shape-complex-indic-private.hh | 213
- ++++++++++++++++---------------
+ src/hb-ot-shape-complex-indic-private.hh | 213 ++++++++++++++++---------------
src/hb-ot-shape-complex-indic.cc | 12 +-
2 files changed, 115 insertions(+), 110 deletions(-)
Date: Wed May 9 15:56:35 2012 +0200
[Indic] Improve matra vs consonant ordering
-
+
Another 1.5% down.
- src/hb-ot-shape-complex-indic-private.hh | 32
- ++++++++++++++++++++------------
+ src/hb-ot-shape-complex-indic-private.hh | 32 ++++++++++++++++++++------------
src/hb-ot-shape-complex-indic.cc | 6 +++---
src/indic.cc | 2 +-
3 files changed, 24 insertions(+), 16 deletions(-)
[Indic] Add joiner test cases for Devanagari
.../indic/script-devanagari/misc/MANIFEST | 1 +
- .../indic/script-devanagari/misc/joiners.txt | 19
- +++++++++++++++++++
+ .../indic/script-devanagari/misc/joiners.txt | 19 +++++++++++++++++++
2 files changed, 20 insertions(+)
commit 19d984edaa4f86c842345a9d4150597e045e1887
Date: Wed May 9 15:21:13 2012 +0200
[Indic] Make sure Reph jumps over all matras to the right
-
+
Another 12 thousand failures gone! (78 to go)
src/hb-ot-shape-complex-indic.cc | 2 +-
Date: Wed May 9 15:04:13 2012 +0200
Replace zerowidth invisible chars with a zero-advance space glyph
-
+
Like Uniscribe does.
src/hb-ot-shape-complex-arabic.cc | 3 ++-
src/hb-ot-shape-complex-private.hh | 4 ++--
src/hb-ot-shape-normalize.cc | 25 +++++++++--------------
src/hb-ot-shape-private.hh | 27 +++++++++++++++++++++++++
- src/hb-ot-shape.cc | 41
- +++++++++++++++++++++++++-------------
- src/hb-unicode-private.hh | 38
- +++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape.cc | 41 +++++++++++++++++++++++++-------------
+ src/hb-unicode-private.hh | 38 +++++++++++++++++++++++++++++++++++
7 files changed, 105 insertions(+), 53 deletions(-)
commit 49e5da1591b8d28f01e7ff9caac9d9ac53668bba
Date: Wed May 9 13:23:27 2012 +0200
[indic] Keep the syllable modifier marks to the right
-
+
Shaping failures on Hindi Wikipedia go down from 25% to 14%!
src/hb-ot-shape-complex-indic.cc | 2 ++
Date: Wed May 9 11:06:47 2012 +0200
[indic] Apply rakaar forms
-
+
Fixes 10% of the failures against all of Hindi Wikipedia!
src/hb-ot-shape-complex-indic.cc | 2 +-
test/shaping/Makefile.am | 1 +
test/shaping/hb-diff-ngrams | 5 +++
- test/shaping/hb_test_tools.py | 71
- ++++++++++++++++++++++++++++++++++++++++---
+ test/shaping/hb_test_tools.py | 71 ++++++++++++++++++++++++++++++++++++++++---
3 files changed, 72 insertions(+), 5 deletions(-)
commit 178e6dce01ad28c8708bad62ce0fb79c46e836dc
Add N-gram generator
- test/shaping/hb_test_tools.py | 72
- +++++++++++++++++++++++++++++++++++++++++--
+ test/shaping/hb_test_tools.py | 72 +++++++++++++++++++++++++++++++++++++++++--
1 file changed, 70 insertions(+), 2 deletions(-)
commit 98669ceb77657d60435f2cb2e3fc18272c0a2c6a
Date: Tue May 8 23:41:41 2012 +0200
Add hb-diff-colorize
-
+
Accepts --format=html now.
test/shaping/Makefile.am | 1 +
test/shaping/hb-diff | 4 +-
test/shaping/hb-diff-colorize | 7 ++
- test/shaping/hb_test_tools.py | 158
- +++++++++++++++++++++++++-----------------
+ test/shaping/hb_test_tools.py | 158 +++++++++++++++++++++++++-----------------
4 files changed, 106 insertions(+), 64 deletions(-)
commit 9155e4ffe00c96a2c14e14a300004b1038ca3a9c
Date: Tue May 8 22:44:21 2012 +0200
Cleanup diff
-
+
Doesn't do --color anymore. That will go into a new hb-diff-colorize
tool.
.../texts/in-tree/shaper-arabic/script-mongolian/misc/MANIFEST | 1 +
.../texts/in-tree/shaper-arabic/script-mongolian/misc/poem.txt | 4 ++++
.../in-tree/shaper-indic/indic/script-bengali/misc/MANIFEST | 1 +
- .../in-tree/shaper-indic/indic/script-bengali/misc/reph.txt |
- 10 ++++++++++
+ .../in-tree/shaper-indic/indic/script-bengali/misc/reph.txt | 10 ++++++++++
4 files changed, 16 insertions(+)
commit 1a2a4a0078dda834443edd421037a4bcbad18c5e
Date: Sat May 5 22:38:20 2012 +0200
Fix warning and build issues
-
+
As reported by Jonathan Kew on the list.
src/hb-set-private.hh | 2 +-
Date: Tue Apr 24 16:56:37 2012 -0400
Add hb_ot_shape_glyphs_closure()
-
+
Experimental API for now.
src/hb-ot-map-private.hh | 7 ++++---
Date: Tue Apr 24 16:00:50 2012 -0400
Add test caes for a minority language using Bengali
-
+
U+0985 BENGALI LETTER A followed by U+09D7 BENGALI AU LENGTH MARK.
- According to Bobby de Vos on the mailing list, this results in
- a dotted
+ According to Bobby de Vos on the mailing list, this results in a dotted
circle with most shaping engines, but is a legitimate sequence in this
minority language.
-
+
We reached the consensus on the list to NOT implement dotted-circle
in HarfBuzz.
- .../texts/in-tree/shaper-indic/indic/script-bengali/misc/misc.txt
- | 1 +
+ .../texts/in-tree/shaper-indic/indic/script-bengali/misc/misc.txt | 1 +
1 file changed, 1 insertion(+)
commit 6c6ccaf575392f6e6bb9a15534026e4ea462705b
Date: Tue Apr 24 14:21:15 2012 -0400
Add a few more set operations
-
+
TODO: Tests for hb_set_t.
- src/hb-set-private.hh | 54
- +++++++++++++++++++++++++++++++++++++++++++++++++-
- src/hb-set.cc | 55
- +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-set-private.hh | 54 +++++++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-set.cc | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-set.h | 34 ++++++++++++++++++++++++++++---
3 files changed, 139 insertions(+), 4 deletions(-)
Make closure() return void
src/hb-ot-layout-gsub-table.hh | 142 +++++++++++++-----------------
- src/hb-ot-layout-gsubgpos-private.hh | 165
- ++++++++++++++++++-----------------
+ src/hb-ot-layout-gsubgpos-private.hh | 165 ++++++++++++++++++-----------------
src/hb-ot-layout.cc | 10 +--
src/hb-ot-layout.h | 8 +-
src/hb-set-private.hh | 20 ++---
src/hb-ot-layout-private.hh | 47 ---------------
src/hb-ot-layout.h | 2 -
src/hb-set-private.hh | 95 +++++++++++++++++++++++++++++
- src/hb-set.cc | 120
- +++++++++++++++++++++++++++++++++++++
+ src/hb-set.cc | 120 +++++++++++++++++++++++++++++++++++++
src/hb-set.h | 91 ++++++++++++++++++++++++++++
src/hb.h | 1 +
9 files changed, 313 insertions(+), 49 deletions(-)
Implement closure() for Context and ChainContext lookups
src/hb-ot-layout-common-private.hh | 54 ++++++
- src/hb-ot-layout-gsubgpos-private.hh | 347
- ++++++++++++++++++++++++++++-------
+ src/hb-ot-layout-gsubgpos-private.hh | 347 ++++++++++++++++++++++++++++-------
src/hb-ot-layout-private.hh | 23 ++-
3 files changed, 351 insertions(+), 73 deletions(-)
Date: Mon Apr 23 15:28:35 2012 -0400
Flesh out closure() for GSUB
-
+
The GSUBGPOS part still missing.
src/hb-ot-layout-common-private.hh | 61 ++++++++++++++------
- src/hb-ot-layout-gsub-table.hh | 112
- ++++++++++++++++++++++++++++---------
+ src/hb-ot-layout-gsub-table.hh | 112 ++++++++++++++++++++++++++++---------
src/hb-ot-layout-private.hh | 34 +++++++++++
src/hb-ot-layout.h | 2 +-
4 files changed, 165 insertions(+), 44 deletions(-)
Minor refactoring
src/hb-ot-layout-gpos-table.hh | 27 +++++++++++--------------
- src/hb-ot-layout-gsub-table.hh | 39
- +++++++++++++++++-------------------
+ src/hb-ot-layout-gsub-table.hh | 39 +++++++++++++++++-------------------
src/hb-ot-layout-gsubgpos-private.hh | 8 ++------
src/hb-ot-layout.cc | 6 ++++--
4 files changed, 36 insertions(+), 44 deletions(-)
Date: Mon Apr 23 13:04:38 2012 -0400
Add "closure" operation stubs to GSUB
-
+
Filling in.
- src/hb-ot-layout-gsub-table.hh | 179
- +++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout-gsub-table.hh | 179 +++++++++++++++++++++++++++++++++++
src/hb-ot-layout-gsubgpos-private.hh | 110 ++++++++++++++++++++-
src/hb-ot-layout.cc | 8 ++
3 files changed, 293 insertions(+), 4 deletions(-)
Add Coverage iterators
- src/hb-ot-layout-common-private.hh | 59
- ++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout-common-private.hh | 59 ++++++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)
commit 3ed4634ec349fa9e943ad23718c04be4dd4bba62
Add Indic inspection tool
src/Makefile.am | 7 +-
- src/hb-ot-shape-complex-indic-private.hh | 264
- +++++++++++++++++++++++++++++++
- src/hb-ot-shape-complex-indic.cc | 229
- +--------------------------
+ src/hb-ot-shape-complex-indic-private.hh | 264 +++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-indic.cc | 229 +--------------------------
src/indic.cc | 46 ++++++
4 files changed, 317 insertions(+), 229 deletions(-)
Date: Thu Apr 19 22:28:25 2012 -0400
Minor matra renumbering
-
+
Should have no visible effect.
src/hb-ot-shape-complex-indic.cc | 30 +++++++++++++++++-------------
Date: Thu Apr 19 22:21:38 2012 -0400
Add GSUB "would_apply" API
-
+
To be used in the Indic shaper later. Unused for now.
- src/hb-ot-layout-gsub-table.hh | 140
- ++++++++++++++++++++++++++++++++++++++++-
+ src/hb-ot-layout-gsub-table.hh | 140 ++++++++++++++++++++++++++++++++++++++++-
1 file changed, 138 insertions(+), 2 deletions(-)
commit a0d4caeb91fa5e5f2090db4efc35c64ff9a64789
Date: Mon Apr 16 21:05:51 2012 -0400
Fix ragel regexp in vowel-based syllable
-
+
As reported by datao zhang on the mailing list.
src/hb-ot-shape-complex-indic-machine.rl | 2 +-
Date: Mon Apr 16 21:05:11 2012 -0400
Rewrite ragel expression to better match the one on MS spec
-
+
https://www.microsoft.com/typography/otfntdev/devanot/shaping.aspx
src/hb-ot-shape-complex-indic-machine.rl | 2 +-
Date: Mon Apr 16 18:08:20 2012 -0400
Add --utf8-clusters
-
+
Also fix cairo cluster generation.
util/hb-shape.cc | 8 +++++---
Date: Mon Apr 16 16:04:07 2012 -0400
Always use cairo_show_text_glyphs()
-
+
Better catches cluster errors.
util/view-cairo.cc | 2 +-
Date: Mon Apr 16 15:55:13 2012 -0400
Apply 'liga' for vertical writing mode too
-
+
Apparently that's what Kazuraki uses to form vertical ligatures,
which suggests that it's what Adobe does.
.../shaper-default/script-japanese/MANIFEST | 1 +
.../shaper-default/script-japanese/misc/MANIFEST | 2 +
.../script-japanese/misc/kazuraki-liga-lines.txt | 8 ++++
- .../script-japanese/misc/kazuraki-liga.txt | 53
- ++++++++++++++++++++++
+ .../script-japanese/misc/kazuraki-liga.txt | 53 ++++++++++++++++++++++
5 files changed, 65 insertions(+)
commit e74616b8898b5f18d9bf82b9e81aefad056c1e36
Move code around
src/hb-ot-shape-private.hh | 40 ----------------------------------------
- src/hb-ot-shape.cc | 45
- +++++++++++++++++++++++++++++++++++++++++----
+ src/hb-ot-shape.cc | 45 +++++++++++++++++++++++++++++++++++++++++----
2 files changed, 41 insertions(+), 44 deletions(-)
commit 38a83019e6a7f4aa47662fd557344f62ae001abe
Date: Sat Apr 14 18:51:50 2012 -0400
Remove public enum names again
-
+
As was reported to me, glib-mkenum does not understand named enums,
so remove for now.
Date: Thu Apr 12 17:38:23 2012 -0400
Make HB_DIRECTION_INVALID be zero
-
+
This changes all the HB_DIRECTION_* enum member values, but is
nicer, in preparation for making hb_segment_properties_t public.
Date: Thu Apr 12 15:50:40 2012 -0400
Fix hb-view surface size calc for vertical text
-
+
For some reason it doesn't quite work with IranianNastaliq, but
that looks like a font issue.
Date: Thu Apr 12 14:53:53 2012 -0400
Hide backend-specific shape functions
-
+
Also remove shaper_options argument to hb_shape_full(). That was
unused and for "future". Let it go.
-
+
More shaper API coming in preparation for plan/planned API.
configure.ac | 6 ++--
src/hb-ot.h | 1 -
src/hb-shape.cc | 24 ++++++---------
src/hb-shape.h | 1 -
- src/hb-uniscribe-private.hh | 42
- ++++++++++++++++++++++++++
+ src/hb-uniscribe-private.hh | 42 ++++++++++++++++++++++++++
src/hb-uniscribe.cc | 9 +++---
src/hb-uniscribe.h | 7 -----
util/options.hh | 2 +-
Date: Thu Apr 12 13:23:59 2012 -0400
Add names to enums
-
+
gdb was showing <anonymous enum> instead of useful stuff, so name
all our enums.
Date: Thu Apr 12 13:17:44 2012 -0400
Make it an error to include non-top-level headers
-
+
Users should #include <hb.h> (or hb-ft.h, hb-glib.h, etc), but
never things like hb-shape.h directly. This makes it easier to
refactor headers later on without breaking compatibility.
Date: Thu Apr 12 10:06:52 2012 -0400
Fix bug with not setting Unicode props of the first character
-
+
Fixes Mongolian shaping issue:
https://bugs.freedesktop.org/show_bug.cgi?id=45695
Minor
- test/shaping/texts/in-tree/shaper-arabic/script-mongolian/misc/misc.txt |
- 1 -
+ test/shaping/texts/in-tree/shaper-arabic/script-mongolian/misc/misc.txt | 1 -
1 file changed, 1 deletion(-)
commit 7470b0ff805e4ff59d23d7a1808888fafdf550eb
Add Mongolian test case
- test/shaping/texts/in-tree/MANIFEST |
- 1 +
- .../texts/in-tree/shaper-arabic/script-mongolian/misc/MANIFEST |
- 1 +
- .../texts/in-tree/shaper-arabic/script-mongolian/misc/misc.txt |
- 4 ++++
- test/shaping/texts/in-tree/shaper-thai/MANIFEST |
- 1 +
- test/shaping/texts/in-tree/shaper-thai/misc/MANIFEST |
- 1 +
+ test/shaping/texts/in-tree/MANIFEST | 1 +
+ .../texts/in-tree/shaper-arabic/script-mongolian/misc/MANIFEST | 1 +
+ .../texts/in-tree/shaper-arabic/script-mongolian/misc/misc.txt | 4 ++++
+ test/shaping/texts/in-tree/shaper-thai/MANIFEST | 1 +
+ test/shaping/texts/in-tree/shaper-thai/misc/MANIFEST | 1 +
5 files changed, 8 insertions(+)
commit c65662b71e6160f5adfb6226d97589ca457d98b9
Date: Thu Apr 12 09:31:55 2012 -0400
Fix left-matra positioning in Indic
-
+
Fixes 200 failures out of previous 4290 cases in the OO.o Indic
dictionary (of ~16000 entries).
Date: Wed Apr 11 22:00:46 2012 -0400
[hangul] Apply *jmo features to all Hangul chars
-
+
This is what old HB does. Morever, fixes rendering with Win8 malgun
font. The Win7 version doesn't compose with either Uniscribe nor HB,
but Win8 version works as expected, like Uniscribe, with this change.
-
+
Lets call Hangul done for now.
src/hb-ot-shape-complex-misc.cc | 9 +++++++++
Add Hangul test
- test/shaping/texts/in-tree/shaper-hangul/script-hangul/misc/misc.txt |
- 1 +
+ test/shaping/texts/in-tree/shaper-hangul/script-hangul/misc/misc.txt | 1 +
1 file changed, 1 insertion(+)
commit e95d912b3b0af027c4384553f95236db822e5acc
Date: Wed Apr 11 17:11:05 2012 -0400
Don't create hb_apply_context_t per glyph!
-
+
I couldn't measure significant performance gains out of this; maybe
about 5% (with one million Malayalam strings). Still, not bad.
But reminds me that optimizing this codebase without profiling first
Date: Wed Apr 11 14:37:53 2012 -0400
Fix shape to presentation forms font check
-
+
As reported by Jonathan Kew on the list.
src/hb-ot-shape-complex-arabic.cc | 9 ++++++---
Date: Wed Apr 11 14:19:55 2012 -0400
Fix build with some compilers
-
+
As reported by Jonathan Kew on the list.
src/hb-ot-shape-complex-misc.cc | 7 ++++---
Implement Arabic fallback shaping mandatory ligatures
- src/gen-arabic-table.py | 32
- ++++++++++++++++++++++----------
+ src/gen-arabic-table.py | 32 ++++++++++++++++++++++----------
src/hb-ot-shape-complex-arabic-table.hh | 28 +++++++++++++++++++---------
- src/hb-ot-shape-complex-arabic.cc | 31
- +++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-arabic.cc | 31 +++++++++++++++++++++++++++++++
src/hb-ot-shape-complex-misc.cc | 4 ++--
4 files changed, 74 insertions(+), 21 deletions(-)
Do Arabic fallback shaping
- src/hb-ot-shape-complex-arabic.cc | 38
- +++++++++++++++++++++++++++++++++-----
+ src/hb-ot-shape-complex-arabic.cc | 38 +++++++++++++++++++++++++++++++++-----
1 file changed, 33 insertions(+), 5 deletions(-)
commit ae4a2b9365051c23c9a299cf76f3ab7e661999b1
Date: Tue Apr 10 16:25:08 2012 -0400
Generate fallback Arabic shaping table
-
+
Not hooked up yet.
src/Makefile.am | 6 +-
- src/gen-arabic-table.py | 220
- +++++++++++++++++++++++---------
+ src/gen-arabic-table.py | 220 +++++++++++++++++++++++---------
src/gen-indic-table.py | 4 +-
- src/hb-ot-shape-complex-arabic-table.hh | 205
- ++++++++++++++++++++++++++++-
+ src/hb-ot-shape-complex-arabic-table.hh | 205 ++++++++++++++++++++++++++++-
4 files changed, 367 insertions(+), 68 deletions(-)
commit 3b26f96ebe859570d14c6902afc23462bca40712
Date: Tue Apr 10 10:52:07 2012 -0400
Add Thai shaper that does SARA AM decomposition / reordering
-
+
That's not in the OpenType spec, but it's what MS and Adobe do.
src/hb-buffer.cc | 1 +
- src/hb-ot-shape-complex-misc.cc | 104
- ++++++++++++++++++++++++++++++++++++-
+ src/hb-ot-shape-complex-misc.cc | 104 ++++++++++++++++++++++++++++++++++++-
src/hb-ot-shape-complex-private.hh | 8 +++
3 files changed, 112 insertions(+), 1 deletion(-)
Move around
- test/shaping/texts/in-tree/MANIFEST
- | 1 +
- test/shaping/texts/in-tree/shaper-default/MANIFEST
- | 1 -
- .../in-tree/{shaper-default => shaper-hangul}/script-hangul/MANIFEST
- | 0
- .../{shaper-default => shaper-hangul}/script-hangul/misc/MANIFEST
- | 0
- .../{shaper-default => shaper-hangul}/script-hangul/misc/misc.txt
- | 0
+ test/shaping/texts/in-tree/MANIFEST | 1 +
+ test/shaping/texts/in-tree/shaper-default/MANIFEST | 1 -
+ .../in-tree/{shaper-default => shaper-hangul}/script-hangul/MANIFEST | 0
+ .../{shaper-default => shaper-hangul}/script-hangul/misc/MANIFEST | 0
+ .../{shaper-default => shaper-hangul}/script-hangul/misc/misc.txt | 0
5 files changed, 1 insertion(+), 1 deletion(-)
commit d4cc44716c1e098f8abbc0e495404598026ef242
Date: Sat Apr 7 15:06:55 2012 -0400
Add simple Hangul shaper that recomposes Jamo when feasible
-
+
Previously, we were NOT actually recomposing Hangul Jamo. We do now.
The two lines in:
-
+
test/shaping/texts/in-tree/shaper-default/script-hangul/misc/misc.txt
-
+
Now render the same with the UnDotum.ttf font. Previously the second
linle was rendering boxes.
-
- We can also start applying OpenType Jamo features later. At this
- time,
+
+ We can also start applying OpenType Jamo features later. At this time,
I have no idea how the 'ljmo', 'vjmo', 'tjmo' features are supposed to
work. Maybe someone can explain them to me?
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Sat Apr 7 14:57:21 2012 -0400
- Implement normalization mode
- HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_FULL
-
+ Implement normalization mode HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_FULL
+
In this mode we try composing CCC=0 with CCC=0 characters. Useful for
Hangul.
Date: Sat Apr 7 14:51:17 2012 -0400
Bring normalization algorithm closer to the spec
-
+
No logical difference so far.
src/hb-ot-shape-normalize.cc | 3 ++-
Date: Thu Apr 5 17:27:23 2012 -0400
Add Hangul test case
-
+
Composed, and decomposed, of the same text.
- test/shaping/texts/in-tree/shaper-default/MANIFEST |
- 1 +
- test/shaping/texts/in-tree/shaper-default/script-hangul/MANIFEST |
- 1 +
- test/shaping/texts/in-tree/shaper-default/script-hangul/misc/MANIFEST |
- 1 +
- test/shaping/texts/in-tree/shaper-default/script-hangul/misc/misc.txt |
- 2 ++
+ test/shaping/texts/in-tree/shaper-default/MANIFEST | 1 +
+ test/shaping/texts/in-tree/shaper-default/script-hangul/MANIFEST | 1 +
+ test/shaping/texts/in-tree/shaper-default/script-hangul/misc/MANIFEST | 1 +
+ test/shaping/texts/in-tree/shaper-default/script-hangul/misc/misc.txt | 2 ++
4 files changed, 5 insertions(+)
commit 11138ccff71f442da1fcf64faa0e1d22e083e775
Date: Thu Apr 5 17:25:19 2012 -0400
Add normalize mode
-
+
In preparation for Hangul shaper.
src/Makefile.am | 1 +
src/hb-ot-shape-complex-misc.cc | 8 ++--
src/hb-ot-shape-complex-private.hh | 13 ++++---
src/hb-ot-shape-normalize-private.hh | 46 +++++++++++++++++++++++
- src/hb-ot-shape-normalize.cc | 73
- +++++++++++++++++-------------------
+ src/hb-ot-shape-normalize.cc | 73 +++++++++++++++++-------------------
src/hb-ot-shape-private.hh | 7 +---
src/hb-ot-shape.cc | 2 +-
10 files changed, 102 insertions(+), 61 deletions(-)
Move code around
- src/hb-ot-shape-private.hh | 53
- --------------------------------------------
+ src/hb-ot-shape-private.hh | 53 --------------------------------------------
src/hb-unicode-private.hh | 3 +++
- src/hb-unicode.cc | 55
- ++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-unicode.cc | 55 ++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 58 insertions(+), 53 deletions(-)
commit cad3821f3d5b68d490b0728bd37bd57428ec809c
Date: Wed Mar 7 17:13:25 2012 -0500
More sorting by Unicode version
-
+
This is the most convenient way to browse scripts.
src/hb-common.cc | 2 +-
src/hb-common.h | 2 +-
- src/hb-ot-shape-complex-private.hh | 94
- ++++++++++++++++++++++++++++----------
+ src/hb-ot-shape-complex-private.hh | 94 ++++++++++++++++++++++++++++----------
3 files changed, 72 insertions(+), 26 deletions(-)
commit 317b9504d7a4faa70dcf21e5c2aff4792dbd201a
Date: Wed Mar 7 15:52:02 2012 -0500
More Unicode script age annotation, and a couple more RTL scripts
-
+
Cross-checked with Mark Davis's spreadsheet at http://goo.gl/x9ilM
src/hb-common.cc | 8 ++++++++
- src/hb-common.h | 52
- +++++++++++++++++++++++++++++-----------------------
+ src/hb-common.h | 52 +++++++++++++++++++++++++++++-----------------------
2 files changed, 37 insertions(+), 23 deletions(-)
commit 6d4016f1ba48d409800dc3281b93e5cd58c99d9f
Whitespace
- src/hb-common.h | 194
- ++++++++++++++++++++++++++++----------------------------
+ src/hb-common.h | 194 ++++++++++++++++++++++++++++----------------------------
1 file changed, 97 insertions(+), 97 deletions(-)
commit 183224684a45d7dcd7d28510d4383a7a7cb3dff3
Date: Wed Mar 7 12:21:28 2012 -0500
Use generic shaper for Buhid
-
+
As requested by Jonathan Kew.
-
+
We need to devise a better mechanism to choose which scripts to
pass through the Indic shaper. Moreover, currently we are storing
data for some scripts in the Indic shaper that are not even going
src/Makefile.am | 15 +++
src/gen-indic-table.py | 20 ++--
src/hb-ot-shape-complex-arabic-table.hh | 35 -------
- src/hb-ot-shape-complex-indic-table.hh | 178
- +++++++++++++++++++-------------
+ src/hb-ot-shape-complex-indic-table.hh | 178 +++++++++++++++++++-------------
4 files changed, 134 insertions(+), 114 deletions(-)
commit e3b2e077f549b04779c08a9fedb1f35b9f11075c
Date: Tue Mar 6 20:24:31 2012 -0500
Add Hebrew diacritics test cases
-
+
From:
https://bugzilla.mozilla.org/show_bug.cgi?id=662055
test/shaping/texts/in-tree/shaper-default/MANIFEST | 1 +
.../texts/in-tree/shaper-default/script-hebrew/MANIFEST | 1 +
.../in-tree/shaper-default/script-hebrew/misc/MANIFEST | 1 +
- .../shaper-default/script-hebrew/misc/diacritics.txt | 15
- +++++++++++++++
+ .../shaper-default/script-hebrew/misc/diacritics.txt | 15 +++++++++++++++
4 files changed, 18 insertions(+)
commit 461b9b6347e4f58589f5be82c40a2df61da2c715
Date: Thu Mar 1 18:11:19 2012 -0800
Fix cluster formation in Indic
-
+
Makes number of failures against Uniscribe with hi_IN dictionary from
OO.o to go down from 6334 to 4290. Not bad for a one-line change!
-
+
Mozilla Bug 729626 - ASAN: heap-buffer-overflow HTML
src/hb-ot-shape-complex-indic-machine.rl | 2 +-
Date: Thu Mar 1 17:30:29 2012 -0800
Fix atomic-int op on Apple
-
+
The OSAtomicAdd32Barrier operator returns the new value, we want the
old value.
Date: Fri Feb 24 13:51:09 2012 -0500
Add support for atomic int and mutex on Apple systems
-
- So, apparently there's no atomic int 'get' method on Apple.
- You have to
+
+ So, apparently there's no atomic int 'get' method on Apple. You have to
add(0) to get. And that's not const-friendly. So switch inert-object
- checking to a non-atomic get. This, however, is safe, and a
- negligible
+ checking to a non-atomic get. This, however, is safe, and a negligible
performance boost too.
src/hb-mutex-private.hh | 14 +++++++++-----
Date: Thu Feb 23 18:47:17 2012 -0500
Remove unused hb_atomic_int_set()
-
- Apparently it can't be implemented on OS X. We weren't using
- it anyway.
+
+ Apparently it can't be implemented on OS X. We weren't using it anyway.
src/hb-object-private.hh | 4 ----
1 file changed, 4 deletions(-)
Add hb-warning.cc. Oops!
- src/hb-warning.cc | 53
- +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-warning.cc | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
commit bd7ff1dec5b92ee59fa060e793f88499adcd8c11
Date: Thu Feb 23 15:06:16 2012 -0500
Allow disabling multi-threaded support
-
+
By defining HB_NO_MT.
-
+
Also, only warn once per missing MT feature support.
-
- Mozilla Bug 666661 - gfx/harfbuzz/src/hb-prive.h - compiler warnings
- on mac
+
+ Mozilla Bug 666661 - gfx/harfbuzz/src/hb-prive.h - compiler warnings on mac
src/Makefile.am | 1 +
src/hb-mutex-private.hh | 6 +++---
Minor
- src/hb-ot-shape-private.hh | 69
- ++++++++++++++++++++++++++--------------------
+ src/hb-ot-shape-private.hh | 69 ++++++++++++++++++++++++++--------------------
1 file changed, 39 insertions(+), 30 deletions(-)
commit 514b6f88668da4eab85103c536dabe24b7bc457b
Date: Wed Feb 22 16:34:37 2012 -0500
Followup: Reorder Hebrew combining classes for better rendering
-
+
Patch from Jonathan Kew.
-
+
Bug 662055 - advanced Hebrew diacritics are shown correctly only in
particular order.
Date: Wed Feb 22 16:31:15 2012 -0500
Reorder Hebrew combining classes for better rendering
-
+
Patch from Jonathan Kew.
-
- Bug 662055 - advanced Hebrew diacritics are shown correctly only in
- particular order
+
+ Bug 662055 - advanced Hebrew diacritics are shown correctly only in particular order
src/hb-ot-shape-private.hh | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
Add test case from https://bugzilla.mozilla.org/show_bug.cgi?id=714067
- test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/MANIFEST
- | 1 +
- .../in-tree/shaper-arabic/script-arabic/misc/ligature-diacritics.txt
- | 1 +
+ test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/MANIFEST | 1 +
+ .../in-tree/shaper-arabic/script-arabic/misc/ligature-diacritics.txt | 1 +
2 files changed, 2 insertions(+)
commit f51e167436a51b890ffe3f7f7920498fa287acd9
Add a few more tests
.../in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt | 3 +++
- .../shaper-indic/south-east-asian/script-thai/misc/misc.txt |
- 9 +++++++++
+ .../shaper-indic/south-east-asian/script-thai/misc/misc.txt | 9 +++++++++
2 files changed, 12 insertions(+)
commit 1795f3a222a85cdf80c78a0e9181d23dd1673876
Add a couple Thai test cases from Thep
- test/shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST |
- 1 +
- .../texts/in-tree/shaper-indic/south-east-asian/script-thai/MANIFEST |
- 1 +
- .../in-tree/shaper-indic/south-east-asian/script-thai/misc/MANIFEST |
- 1 +
- .../in-tree/shaper-indic/south-east-asian/script-thai/misc/misc.txt |
- 2 ++
+ test/shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST | 1 +
+ .../texts/in-tree/shaper-indic/south-east-asian/script-thai/MANIFEST | 1 +
+ .../in-tree/shaper-indic/south-east-asian/script-thai/misc/MANIFEST | 1 +
+ .../in-tree/shaper-indic/south-east-asian/script-thai/misc/misc.txt | 2 ++
4 files changed, 5 insertions(+)
commit ec3f506682fc6e2d7d7455e49d6c82ac9dd0c660
Add Devanagari test from Tom Hacohen
- .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt
- | 1 +
+ .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt | 1 +
1 file changed, 1 insertion(+)
commit 71be4ca3dd5eaaca31957e34fef11f6aeb4aebdf
Date: Sun Jan 22 16:07:32 2012 -0500
Allow --color=html in hb-diff
-
+
Not that useful right now as we don't escape < and >. Perhaps
another tool can be added to convert the ANSI output to HTML.
Date: Sun Jan 22 15:31:44 2012 -0500
Fallback to Latin script if the font has no other usable scripts
-
+
Patch and description from Jonathan Kew:
-
+
It turns out that some legacy Thai fonts provide OpenType substitution
features to implement mark positioning, but (incorrectly) put those
- features/lookups under the 'latn' script tag instead of using 'thai'
- (or
+ features/lookups under the 'latn' script tag instead of using 'thai' (or
possibly 'DFLT'). See
https://bugzilla.mozilla.org/show_bug.cgi?id=719366 for an example and
more detailed description.
-
- Although this is really a font bug, I suggest that we could improve
- the
+
+ Although this is really a font bug, I suggest that we could improve the
rendering of such fonts by looking for the 'latn' as a fallback if
neither the requested script nor "default" is found in
hb_ot_layout_table_choose_script. Suggested patch against harfbuzz
master is attached.
-
- This does _not_ affect the other kind of legacy Thai font, where
- custom
- code to support vendor-specific PUA codepoints would be needed. I'm
- not
- keen to go down that path; IMO, such fonts should be ruthlessly
- stamped
+
+ This does _not_ affect the other kind of legacy Thai font, where custom
+ code to support vendor-specific PUA codepoints would be needed. I'm not
+ keen to go down that path; IMO, such fonts should be ruthlessly stamped
out in favour of standards-based solutions. :)
-
+
JK
src/hb-ot-layout.cc | 9 +++++++++
Port hb-manifest-update to Python
test/shaping/hb-manifest-update | 23 +++--------------------
- test/shaping/hb_test_tools.py | 38
- ++++++++++++++++++++++++++++++--------
+ test/shaping/hb_test_tools.py | 38 ++++++++++++++++++++++++++++++--------
2 files changed, 33 insertions(+), 28 deletions(-)
commit 3a34e9e351ed0ee3eb27f9c0f154bc227f1226bf
Ignore Broken Pipe errors
- test/shaping/hb_test_tools.py | 76
- +++++++++++++++++++++++++++----------------
+ test/shaping/hb_test_tools.py | 76 +++++++++++++++++++++++++++----------------
1 file changed, 48 insertions(+), 28 deletions(-)
commit d5300241680844f5625f32792f7dd7181ed05f9b
Date: Sat Jan 21 19:07:22 2012 -0500
[util] Make clusters work with char offset instead of UTF-8 offset
-
+
This means the --features indices also refer to char position
instead of byte position now. Same for cluster values reported
by hb-shape.
-
+
Will add an option for byte indices later.
util/options.cc | 7 +++++--
test/shaping/hb-diff-filter-failures | 2 +-
test/shaping/hb-manifest-read | 37 +++------------------------
- test/shaping/hb_test_tools.py | 49
- ++++++++++++++++++++++++++++++++----
+ test/shaping/hb_test_tools.py | 49 ++++++++++++++++++++++++++++++++----
3 files changed, 48 insertions(+), 40 deletions(-)
commit a59ed46fa4f7b76605f8ce6e75783ead406468f5
Add final residues from test-shape-complex
.../shaping/texts/in-tree/shaper-arabic/script-nko/misc/MANIFEST | 1 +
- .../shaping/texts/in-tree/shaper-arabic/script-nko/misc/misc.txt |
- 5 +++++
+ .../shaping/texts/in-tree/shaper-arabic/script-nko/misc/misc.txt | 5 +++++
test/shaping/texts/in-tree/shaper-default/MANIFEST | 1 +
.../texts/in-tree/shaper-default/script-linear-b/MANIFEST | 1 +
.../texts/in-tree/shaper-default/script-linear-b/misc/MANIFEST | 1 +
.../shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST | 1 +
.../in-tree/shaper-indic/south-east-asian/script-khmer/MANIFEST | 1 +
.../shaper-indic/south-east-asian/script-khmer/misc/MANIFEST | 1 +
- .../shaper-indic/south-east-asian/script-khmer/misc/misc.txt |
- 9 +++++++++
+ .../shaper-indic/south-east-asian/script-khmer/misc/misc.txt | 9 +++++++++
11 files changed, 23 insertions(+)
commit 820e0ed318d9b187a131baa9491d5d390ec33ef4
Add Punjabi tests from test-shape-complex also
- .../texts/in-tree/shaper-indic/indic/script-punjabi/misc/MANIFEST
- | 1 +
- .../texts/in-tree/shaper-indic/indic/script-punjabi/misc/misc.txt
- | 1 +
+ .../texts/in-tree/shaper-indic/indic/script-punjabi/misc/MANIFEST | 1 +
+ .../texts/in-tree/shaper-indic/indic/script-punjabi/misc/misc.txt | 1 +
2 files changed, 2 insertions(+)
commit a7d71c105772fb612871b4cae59bdae47bbc8751
Add Tamil test data from Muguntharaj Subramanian
.../shaper-indic/indic/script-tamil/misc/MANIFEST | 1 +
- .../shaper-indic/indic/script-tamil/misc/misc.txt | 43
- ++++++++++++++++++++++
+ .../shaper-indic/indic/script-tamil/misc/misc.txt | 43 ++++++++++++++++++++++
2 files changed, 44 insertions(+)
commit 5992a9941e7f19181df1e34e79e514ccedc3d284
.../indic/script-assamese/misc/MANIFEST | 0
.../shaper-indic/indic/script-bengali/MANIFEST | 1 +
.../indic/script-bengali/misc/MANIFEST | 1 +
- .../indic/script-bengali/misc/misc.txt | 48
- ++++++++++++++++++++++
+ .../indic/script-bengali/misc/misc.txt | 48 ++++++++++++++++++++++
.../shaper-indic/indic/script-devanagari/MANIFEST | 1 +
.../indic/script-devanagari/misc/MANIFEST | 1 +
.../indic/script-devanagari/misc/misc.txt | 23 +++++++++++
Date: Fri Jan 20 18:39:27 2012 -0500
Make test tools interactive
-
+
By bypassing readlines() buffering.
test/shaping/hb_test_tools.py | 33 +++++++++++++++++++++++++++------
Date: Fri Jan 20 18:27:52 2012 -0500
Move most testing logic into hb_test_tools.py
-
+
The actual utils are one-liners now.
test/shaping/hb-diff | 77 ++-------------
test/shaping/hb-unicode-decode | 18 +---
test/shaping/hb-unicode-encode | 21 +---
test/shaping/hb-unicode-prettyname | 53 +----------
- test/shaping/hb_test_tools.py | 180
- +++++++++++++++++++++++++++++++++++
+ test/shaping/hb_test_tools.py | 180 +++++++++++++++++++++++++++++++++++
6 files changed, 197 insertions(+), 179 deletions(-)
commit 66aa080033dcff07b8bb5e7b1f0e3511f067d6c1
Date: Fri Jan 20 17:36:10 2012 -0500
Remove test-shape-complex
-
+
New shaping testsuite and framework coming.
test/api/Makefile.am | 6 -
- test/api/test-shape-complex.c | 1237
- ------------------------------------
+ test/api/test-shape-complex.c | 1237 ------------------------------------
test/shaping/hb-unicode-prettyname | 1 +
3 files changed, 1 insertion(+), 1243 deletions(-)
Move
- test/shaping/texts/MANIFEST |
- 4 +---
- test/shaping/texts/in-tree/MANIFEST |
- 3 +++
+ test/shaping/texts/MANIFEST | 4 +---
+ test/shaping/texts/in-tree/MANIFEST | 3 +++
test/shaping/texts/{ => in-tree}/shaper-arabic/MANIFEST | 0
test/shaping/texts/{ => in-tree}/shaper-arabic/script-arabic/MANIFEST | 0
.../shaping/texts/{ => in-tree}/shaper-arabic/script-mandaic/MANIFEST | 0
Date: Fri Jan 20 13:57:57 2012 -0500
[test/shaping] Add some Indic test data for the new test suite
-
+
Imported from UTRRS.
test/shaping/texts/shaper-indic/indic/MANIFEST | 2 +-
.../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 185 +++
.../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 185 +++
.../indic/script-devanagari/utrrs/gpos/MANIFEST | 2 +
- .../utrrs/gsub/IndicFontFeatureGSUB.txt | 1367
- ++++++++++++++++++++
+ .../utrrs/gsub/IndicFontFeatureGSUB.txt | 1367 ++++++++++++++++++++
.../indic/script-devanagari/utrrs/gsub/MANIFEST | 1 +
.../shaper-indic/indic/script-gujarati/MANIFEST | 1 +
.../indic/script-gujarati/utrrs/LICENSE | 19 +
.../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 170 +++
.../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 170 +++
.../indic/script-gujarati/utrrs/gpos/MANIFEST | 2 +
- .../utrrs/gsub/IndicFontFeatureGSUB.txt | 1156
- +++++++++++++++++
+ .../utrrs/gsub/IndicFontFeatureGSUB.txt | 1156 +++++++++++++++++
.../indic/script-gujarati/utrrs/gsub/MANIFEST | 1 +
.../shaper-indic/indic/script-kannada/MANIFEST | 1 +
.../indic/script-kannada/utrrs/LICENSE | 19 +
test/shaping/{hb-read-manifest => hb-manifest-read} | 0
.../{hb-update-manifests => hb-manifest-update} | 0
- test/shaping/hb-unicode-decode | 19
- +++++++++++++++++++
+ test/shaping/hb-unicode-decode | 19 +++++++++++++++++++
3 files changed, 19 insertions(+)
commit 9ab23ef4749b51e60464b9ef2a92739cdc2b36ba
[test/shaping] Add hb-unicode-prettyname
- test/shaping/hb-unicode-prettyname | 38
- ++++++++++++++++++++++++++++++++++++++
+ test/shaping/hb-unicode-prettyname | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
commit e900869b0f373d25b72d966338beb6cbc53e6446
Date: Thu Jan 19 17:51:57 2012 -0500
[hb-shape] Change glyphstring brackets from </> to [/]
-
+
Sorry for the disruption but I need this to differentiate from the
Unicode string.
More Indic tests from Pravin
- test/api/test-shape-complex.c | 48
- +++++++++++++++++++++++++++++++++++++++++++
+ test/api/test-shape-complex.c | 48 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
commit a33e46cf7d9862856fd7ecb04e047cc58a9785c8
[test/shaping] Add hb-update-manifests
test/shaping/Makefile.am | 6 ++----
- test/shaping/hb-update-manifests | 22
- ++++++++++++++++++++++
+ test/shaping/hb-update-manifests | 22 ++++++++++++++++++++++
test/shaping/texts/shaper-indic/indic/MANIFEST | 1 +
3 files changed, 25 insertions(+), 4 deletions(-)
configure.ac | 1 +
test/Makefile.am | 2 +-
- test/shaping/Makefile.am |
- 10 ++++++++++
+ test/shaping/Makefile.am | 10 ++++++++++
test/shaping/texts/MANIFEST | 3 +++
test/shaping/texts/shaper-arabic/MANIFEST | 5 +++++
test/shaping/texts/shaper-arabic/script-arabic/MANIFEST | 0
test/shaping/texts/shaper-arabic/script-syriac/MANIFEST | 0
test/shaping/texts/shaper-default/MANIFEST | 0
test/shaping/texts/shaper-indic/MANIFEST | 1 +
- test/shaping/texts/shaper-indic/indic/MANIFEST |
- 10 ++++++++++
+ test/shaping/texts/shaper-indic/indic/MANIFEST | 10 ++++++++++
test/shaping/texts/shaper-indic/indic/script-assamese/MANIFEST | 0
test/shaping/texts/shaper-indic/indic/script-bengali/MANIFEST | 0
.../texts/shaper-indic/indic/script-devanagari/MANIFEST | 0
Rename test/ to test/api/
configure.ac | 1 +
- test/Makefile.am | 128
- +----------------------------------
- test/api/Makefile.am | 131
- ++++++++++++++++++++++++++++++++++++
+ test/Makefile.am | 128 +----------------------------------
+ test/api/Makefile.am | 131 ++++++++++++++++++++++++++++++++++++
test/{ => api}/hb-test.h | 0
test/{ => api}/test-blob.c | 0
test/{ => api}/test-buffer.c | 0
Date: Thu Jan 19 14:28:11 2012 -0500
Remove src/test.cc
-
+
Not really useful.
src/Makefile.am | 6 +--
- src/test.cc | 132
- --------------------------------------------------------
+ src/test.cc | 132 --------------------------------------------------------
2 files changed, 1 insertion(+), 137 deletions(-)
commit 4983feebbbb25e79201bf34035e4d58e61218758
Date: Thu Jan 19 12:46:18 2012 -0500
[hb-shape] Add --show-line-num
-
+
Ok, much more useful as a test suite driver now.
util/hb-shape.cc | 24 +++++-------------------
Date: Wed Jan 18 22:47:44 2012 -0500
[util] Add --help-features
-
+
Patch from Khaled Hosny.
util/options.cc | 42 +++++++++++++++++++++++++++++++++++++++++-
Date: Wed Jan 18 22:16:49 2012 -0500
Replace u_strlen() with u_countChar32()
-
+
The latter is what I meant.
src/hb-icu.cc | 8 +++-----
Date: Wed Jan 18 21:58:34 2012 -0500
Add test for bug in ICU decompose
-
+
As reported by Kenichi Ishibashi on 2011-10-28.
test/test-unicode.c | 2 +-
Date: Wed Jan 18 21:51:05 2012 -0500
Fix OOB in replace_glyph()
-
+
Patch from Kenichi Ishibashi.
src/hb-buffer.cc | 2 ++
Date: Wed Jan 18 21:28:34 2012 -0500
Fix more possible buffer overruns
-
+
I have this function, but can't clean up it to my satisfaction.
src/hb-ot-layout-gsubgpos-private.hh | 6 ++++--
Date: Wed Jan 18 16:07:53 2012 -0500
Further mark skippy fixes from Jonathan Kew
-
+
We should be in good shape now.
src/hb-ot-layout-gsubgpos-private.hh | 4 +++-
Date: Tue Jan 17 18:08:41 2012 -0500
Fix mark skipping regression
-
+
Ouch!
src/hb-ot-layout-gsubgpos-private.hh | 2 +-
src/hb-ot-layout-gpos-table.hh | 95 ++++++++++----------------
src/hb-ot-layout-gsub-table.hh | 21 +++---
- src/hb-ot-layout-gsubgpos-private.hh | 125
- +++++++++++++++++++++++++++--------
+ src/hb-ot-layout-gsubgpos-private.hh | 125 +++++++++++++++++++++++++++--------
3 files changed, 143 insertions(+), 98 deletions(-)
commit 370f03e9c69d98d735eafb7e72b13b17f42cbaa9
Date: Mon Jan 16 16:43:26 2012 -0500
[GSUB/GPOS] Fix mark skip indexing issues
-
+
Mozilla bug 701637 and 714067 combined.
-
+
Patch from Jonathan Kew.
- src/hb-ot-layout-gpos-table.hh | 42
- ++++++++++++++++-----------------
+ src/hb-ot-layout-gpos-table.hh | 42 ++++++++++++++++-----------------
src/hb-ot-layout-gsub-table.hh | 21 +++++++++--------
- src/hb-ot-layout-gsubgpos-private.hh | 45
- ++++++++++++++++++------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 45 ++++++++++++++++++------------------
3 files changed, 54 insertions(+), 54 deletions(-)
commit e8eedf2687f05372bf5476e84139d01ba67c9f73
Date: Mon Jan 16 16:39:40 2012 -0500
Avoid enum trailing commas
-
+
Based on patch from Jonathan Kew.
src/hb-ot-shape-complex-indic.cc | 4 ++--
Date: Sun Jan 15 14:56:56 2012 -0500
Disable gtk-doc macro
-
+
We don't have any docs yet.
configure.ac | 2 +-
Date: Mon Oct 17 11:50:54 2011 -0700
Fix intrin.h b0rkage with older MSVC
-
+
Reported by Jonathan Kew.
src/hb-object-private.hh | 6 +++++-
Date: Mon Oct 17 11:39:28 2011 -0700
Fix infinite loop in normalization code with variation selectors
-
+
Reported by Jonathan Kew.
src/hb-ot-shape-normalize.cc | 5 ++++-
Date: Wed Sep 28 16:57:34 2011 -0400
Make test-c.c actually use hb
-
+
This will make sure we test that C code can actually link to the
library.
Date: Wed Sep 21 16:41:43 2011 -0400
hb-shape: In --no-glyph-names, output glyph number directly
-
+
Ie. write "86" instead of "gid86".
util/options.cc | 11 +++++++----
Date: Tue Sep 20 14:43:55 2011 -0400
[util] Fix option parsing
-
+
Wow, who knew bool is one byte and I was using it as a 4byte int?!
-
+
C++ auto casts fails you in mysterious ways...
util/helper-cairo.cc | 2 +-
Date: Tue Sep 20 11:20:53 2011 -0400
[util] Add hb-diff
-
+
A diff program written in Python that is more suitable for comparing
hb-shape output from different backends. Main differences with stock
diff:
-
+
1. It outputs one line's comparison at a time, as opposed to batching
'+' lines and '-' lines.
-
+
2. It colors the part of the line that changed, taking word boundaries
into consideration.
-
+
You can pipe the colored output to 'less -r'.
util/Makefile.am | 2 ++
- util/hb-diff | 59
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ util/hb-diff | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 61 insertions(+)
commit 880c1f0e4ede65890592d28dfb38bb06f5b57500
Date: Mon Sep 19 23:10:22 2011 -0400
Rewrite ICU detection code with in-house macros
-
+
At least works for cross-compiling now...
configure.ac | 26 +++++++++++++++-----------
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Mon Sep 19 16:56:21 2011 -0400
- [util] Rename --output to --output_file, and --format to
- --output-format
+ [util] Rename --output to --output_file, and --format to --output-format
util/options.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Date: Mon Sep 19 16:41:17 2011 -0400
[util] Add hb-shape utility
-
+
Like hb-view, but prints out buffer contents.
-
+
The output format is kinda cryptic. Suggestions welcome.
configure.ac | 6 -
util/{common.cc => hb-shape.cc} | 57 ++++--
util/hb-view.cc | 44 +----
util/hb-view.hh | 79 ++++++++
- util/helper-cairo.cc | 375
- +++++++++++++++++++++++++++++++++++
+ util/helper-cairo.cc | 375 +++++++++++++++++++++++++++++++++++
util/{common.hh => helper-cairo.hh} | 64 ++++--
util/options.cc | 79 ++++++++
util/options.hh | 53 ++++-
- util/view-cairo.cc | 381
- ++----------------------------------
+ util/view-cairo.cc | 381 ++----------------------------------
util/view-cairo.hh | 8 +-
11 files changed, 717 insertions(+), 473 deletions(-)
[util] If no text is provided, simply call cairo_show_glyphs()
- util/view-cairo.cc | 92
- ++++++++++++++++++++++++++++++------------------------
+ util/view-cairo.cc | 92 ++++++++++++++++++++++++++++++------------------------
1 file changed, 51 insertions(+), 41 deletions(-)
commit 5c299343118d1eaff32ffb2a5dac077cfff67dee
Date: Sat Sep 17 09:59:58 2011 -0400
Fix Linux build when io.h is available
-
+
Bug 40953 - fail compile git: make[2]: *** [hb_view-options.o] Error 1
configure.ac | 2 +-
Fix reading text from stdin
- util/options.cc | 76
- +++++++++++++++++++++++++++++++++++-------------------
+ util/options.cc | 76 +++++++++++++++++++++++++++++++++++-------------------
util/options.hh | 16 +++++++-----
util/view-cairo.cc | 6 +++--
3 files changed, 64 insertions(+), 34 deletions(-)
Date: Fri Sep 16 01:11:30 2011 -0400
Always shape at size=upem
-
+
Fixes bug with uniscribe not handling GIGANTIC sizes.
util/options.cc | 2 +-
Date: Fri Sep 16 00:38:19 2011 -0400
Fix binary stdin/stdout io in Windows
-
+
Make --font-file accept "-" to mean stdin, and have it work
in Windows too!
configure.ac | 2 +-
util/common.hh | 5 +++++
- util/options.cc | 64
- +++++++++++++++++++++++++++++++++++++++++++++++----------
+ util/options.cc | 64 +++++++++++++++++++++++++++++++++++++++++++++++----------
util/options.hh | 10 +++++++--
4 files changed, 67 insertions(+), 14 deletions(-)
Date: Thu Sep 15 17:52:00 2011 -0400
[hb-view] Make print to stdout work in Windows
-
+
Apparently there's no equivalent to "/dev/stdout", so write using
stdio to be able to output to stdout.
util/common.hh | 1 +
util/options.hh | 31 ++++++++++++++++-----
- util/view-cairo.cc | 79
- ++++++++++++++++++++++++++++++++++++------------------
+ util/view-cairo.cc | 79 ++++++++++++++++++++++++++++++++++++------------------
3 files changed, 78 insertions(+), 33 deletions(-)
commit 36b10f58cc70ce9570d17b30616f9cb27423e03b
Date: Tue Sep 13 13:30:39 2011 -0400
[util] Refactor hb-view completely
-
+
Now we can use the same code to do other utils...
configure.ac | 2 +
util/hb-view.cc | 244 ++++-------------------------
util/options.cc | 321 ++++++++++++++++++++++++++------------
util/options.hh | 179 +++++++++++++++++++---
- util/view-cairo.cc | 440
- +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ util/view-cairo.cc | 440 +++++++++++++++++++++++++++++++++++++++++++++++++++++
util/view-cairo.hh | 63 ++++++++
9 files changed, 927 insertions(+), 333 deletions(-)
More reshuffling
util/hb-view.cc | 4 ++--
- util/options.cc | 64
- ++++++++++++++++++++++++++++++---------------------------
+ util/options.cc | 64 ++++++++++++++++++++++++++++++---------------------------
util/options.hh | 13 ++++++------
3 files changed, 43 insertions(+), 38 deletions(-)
Date: Thu Sep 8 16:43:15 2011 -0400
Minor
-
+
We now support using -1 for NUL-terminated strings.
util/hb-view.cc | 2 --
[util] Further refactor option parsing
- util/options.cc | 80
- +++++++++++++++++++++++++++++++++++++++++++++++----------
+ util/options.cc | 80 +++++++++++++++++++++++++++++++++++++++++++++++----------
util/options.hh | 20 ++++++++++++---
2 files changed, 83 insertions(+), 17 deletions(-)
Refine Indic scripts, following Martin Hosken's recommendation
- src/hb-ot-shape-complex-private.hh | 56
- +++++++++++++++++++++++---------------
+ src/hb-ot-shape-complex-private.hh | 56 +++++++++++++++++++++++---------------
1 file changed, 34 insertions(+), 22 deletions(-)
commit 738d096a06822e63b3894bd817ecb90e5fb94f73
Date: Fri Sep 2 13:31:19 2011 -0400
Pass through unknown ISO 639-3 language tags to OpenType engine
-
+
In hb_ot_tag_from_language(), if first component of an unknown
language is three letters long, use it directly as OpenType language
tag (after case conversion and padding).
Date: Fri Sep 2 12:39:20 2011 -0400
[graphite] Don't preload glyphs
-
+
Doesn't seem to be slower.
src/hb-graphite2.cc | 2 +-
Date: Fri Aug 26 09:25:04 2011 +0200
[graphite] Only pass the first part language tag to graphite
-
+
Still not sure about:
-
+
1) Case. We pass lowercase for now. Would be nice if graphite was
uppercase 3letter like OpenType,
-
+
2) Padding. IMO, tag padding is always with spaces, but Martin was
talking about NUL bytes.
Date: Fri Aug 26 09:18:53 2011 +0200
[API] Make all _from_string() functions take a len parameter
-
+
Can be -1 for NUL-terminated string. This is useful for passing parts
of a larger string to a function without having to copy or modify the
string first.
-
+
Affected functions:
-
+
hb_tag_t hb_tag_from_string()
hb_direction_from_string()
hb_language_from_string()
src/hb-icu.cc | 2 +-
src/hb-ot-tag.cc | 8 +++---
test/test-buffer.c | 4 +--
- test/test-common.c | 79
- +++++++++++++++++++++++++++++++----------------------
+ test/test-common.c | 79 +++++++++++++++++++++++++++++++----------------------
test/test-ot-tag.c | 22 +++++++--------
util/hb-view.cc | 6 ++--
util/options.cc | 5 +---
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Aug 25 09:08:53 2011 +0200
- Reorder combining-class to better suit Arabic shadda mark-mark
- positioning
-
+ Reorder combining-class to better suit Arabic shadda mark-mark positioning
+
As reported by Khaled on the list:
-
+
"After the introduction of canonical reordering of combining marks
(commit 34c22f8), I'm no longer able to do mark/mark substitution or
positioning for mark sequences that involve shadda as a first mark (or
most interesting sequences at least).
-
- "After some digging, it turned out that shadda have a ccc=33
- while most
- Arabic marks that combine with it have a lower ccc value, which
- results
+
+ "After some digging, it turned out that shadda have a ccc=33 while most
+ Arabic marks that combine with it have a lower ccc value, which results
in the shadda being reordered after the other mark which,
unsurprisingly, breaks my contextual substitution and mkmk anchors."
-
+
See:
-
+
http://unicode.org/faq/normalization.html#8
http://unicode.org/faq/normalization.html#9
Date: Wed Aug 24 19:13:15 2011 +0200
Add hb-ot-hmtx-table.hh
-
+
Oops!
- src/hb-ot-hmtx-table.hh | 86
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-hmtx-table.hh | 86 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 86 insertions(+)
commit a3bd8a0e1862212a2d4141b973039bd000a3054f
[graphite] Rewrite properly
- src/hb-graphite2.cc | 633
- ++++++++++++++++++++++------------------------------
+ src/hb-graphite2.cc | 633 ++++++++++++++++++++++------------------------------
src/hb-uniscribe.cc | 2 +
2 files changed, 273 insertions(+), 362 deletions(-)
Date: Wed Aug 24 01:45:47 2011 +0200
[graphite] Remove hb_graphite2_feature_check()
-
+
I don't see how this function can be useful.
src/hb-graphite2.cc | 10 ----------
Date: Wed Aug 24 01:29:25 2011 +0200
Add graphite2 integration from Martin Hosken
-
+
To be modified, a lot.
configure.ac | 9 +-
contrib/python/scripts/hbtestfont | 4 +-
contrib/python/setup.py | 18 +-
src/Makefile.am | 7 +
- src/hb-graphite2.cc | 446
- ++++++++++++++++++++++++++++++++++++++
+ src/hb-graphite2.cc | 446 ++++++++++++++++++++++++++++++++++++++
src/hb-graphite2.h | 47 ++++
src/hb-shape.cc | 7 +
9 files changed, 542 insertions(+), 18 deletions(-)
Date: Tue Aug 23 00:04:57 2011 +0200
Add a constructor for hb_prealloced_array_t
-
+
Fixes build with MSVC.
src/hb-private.hh | 2 ++
Date: Fri Aug 19 19:59:24 2011 +0200
Add gobject enum support, but disabled for now
-
+
need to figure out the naming. The generated code doesn't have the
right name.
configure.ac | 2 +
src/Makefile.am | 13 +++--
- src/hb-gobject-enums.cc.tmpl | 74
- ++++++++++++++++++++++++++++
+ src/hb-gobject-enums.cc.tmpl | 74 ++++++++++++++++++++++++++++
src/{hb-gobject.cc => hb-gobject-structs.cc} | 0
4 files changed, 86 insertions(+), 3 deletions(-)
Date: Wed Aug 17 19:07:59 2011 +0200
Remove the pre_allocate argument from hb_buffer_create()
-
+
For two reasons:
-
+
1. User can always call hb_buffer_pre_allocate() themselves, and
-
+
2. Now we do a pre_alloc in add_utfX anyway, so the total number of
- reallocs is limited to a small number (~3) anyway. This just
- makes the
+ reallocs is limited to a small number (~3) anyway. This just makes the
API cleaner.
src/hb-buffer.cc | 7 +------
src/hb-ot-layout-gsub-table.hh | 2 +-
src/hb-ot-maxp-table.hh | 2 +-
src/hb-ot-name-table.hh | 3 +-
- src/hb-tt-font.cc | 207
- +++++++++++++++++++++++++++++++++++++++++
+ src/hb-tt-font.cc | 207 +++++++++++++++++++++++++++++++++++++++++
10 files changed, 314 insertions(+), 6 deletions(-)
commit 7a750ac33ec482e2c4856c19ea607f3563741c24
Rename table files from eg maxp-private.hh to maxp-table.hh
- src/Makefile.am | 12
- ++++++------
+ src/Makefile.am | 12 ++++++------
src/hb-font.cc | 2 +-
src/{hb-ot-head-private.hh => hb-ot-head-table.hh} | 6 +++---
...-ot-layout-gdef-private.hh => hb-ot-layout-gdef-table.hh} | 6 +++---
...-ot-layout-gpos-private.hh => hb-ot-layout-gpos-table.hh} | 6 +++---
...-ot-layout-gsub-private.hh => hb-ot-layout-gsub-table.hh} | 6 +++---
src/hb-ot-layout-gsubgpos-private.hh | 2 +-
- src/hb-ot-layout.cc |
- 8 ++++----
+ src/hb-ot-layout.cc | 8 ++++----
src/{hb-ot-maxp-private.hh => hb-ot-maxp-table.hh} | 6 +++---
src/{hb-ot-name-private.hh => hb-ot-name-table.hh} | 6 +++---
src/hb-uniscribe-shape.cc | 2 +-
Date: Mon Aug 15 20:41:59 2011 +0200
[ft] FT_Get_Advance() for advance-width callbacks
-
+
Using graphite2's comparerenderer suggests that this makes hb-ft 15
times faster. No caching layer needed anymore.
Date: Mon Aug 15 16:21:22 2011 +0200
Pre-allocate buffers when adding string
-
+
We do a conservative estimate of the number of characters, but still,
this limits the number of buffer reallocs to a small constant.
Date: Mon Aug 15 09:52:05 2011 +0200
Apply 'locl' with 'ccmp' in Arabic shaper
-
+
According to Peter Constable this is indeed what Uniscribe has been
doing for years.
-
+
Mozilla Bug 667166 - wrong shape of letter when it comes at the end of
word in the arabic version of Firefox 5.0
src/Makefile.am | 43 ++++++++++++++++-------------------
src/hb-common.h | 1 +
src/hb-glib.cc | 3 ---
- src/hb-gobject.cc | 63
- +++++++++++++++++++++++++++++++++++++++++++++++++++
- src/hb-gobject.h | 68
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-gobject.cc | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-gobject.h | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
6 files changed, 163 insertions(+), 28 deletions(-)
commit 9527fb200ffbbd839334e99b51d9671752d393db
util/Makefile.am | 26 +++-
util/common.cc | 40 ++++++
util/common.hh | 49 +++++++
- util/hb-view.cc | 387
- ++++---------------------------------------------------
+ util/hb-view.cc | 387 ++++---------------------------------------------------
util/options.cc | 318 +++++++++++++++++++++++++++++++++++++++++++++
util/options.hh | 86 +++++++++++++
6 files changed, 541 insertions(+), 365 deletions(-)
Date: Wed Aug 10 16:28:38 2011 +0200
[util] Add hb-shape --shapers
-
+
If the specified shapers fail, hb-shape will fail immediately
- util/hb-view.cc | 57
- +++++++++++++++++++++++++++++++++------------------------
+ util/hb-view.cc | 57 +++++++++++++++++++++++++++++++++------------------------
1 file changed, 33 insertions(+), 24 deletions(-)
commit 0501573deda3a8dcdfcea491392f554f21ed0154
[util] Port hb-view to GOption
- util/hb-view.cc | 267
- +++++++++++++++++++++++++++++++++-----------------------
+ util/hb-view.cc | 267 +++++++++++++++++++++++++++++++++-----------------------
1 file changed, 156 insertions(+), 111 deletions(-)
commit 511a136f0c092880b19250a5df53bcf9f4b043ca
Date: Tue Aug 9 10:51:24 2011 +0200
[API] Add hb_ft_font_set_funcs(), remove hb_ft_get_font_funcs()
-
+
Remove hb_ft_get_font_funcs() as it cannot be used by the user anyway.
-
+
Add hb_ft_font_set_funcs(). Which will make the font internally use
FreeType. That is, no need for the font to have created using the
hb-ft API. Just create using hb_face_create()/hb_font_create() and
internally creates an FT_Face and attached to the font.
src/Makefile.am | 4 +--
- src/hb-ft.cc | 76
- +++++++++++++++++++++++++++++++++++++++++++++++++++---
+ src/hb-ft.cc | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++---
src/hb-ft.h | 10 ++++---
src/test.cc | 7 +++++
test/Makefile.am | 8 ------
Date: Tue Aug 9 00:43:24 2011 +0200
[API] Make set_user_data() functions take a replace parameter
-
+
We need this to set data on objects safely without worrying that some
other thread unsets it by setting it at the same time.
Date: Tue Aug 9 00:23:58 2011 +0200
[buffer] Make API take signed int length
-
+
Since we already switched to accepting -1 as 'zero-terminated'.
src/hb-buffer.cc | 12 ++++++------
[uniscribe] Cleanup backend
TODO | 2 +
- src/hb-uniscribe-shape.cc | 161
- ++++++++++++++++++++++++++++++++++------------
+ src/hb-uniscribe-shape.cc | 161 ++++++++++++++++++++++++++++++++++------------
2 files changed, 123 insertions(+), 40 deletions(-)
commit f1f848e2e46ac54ff08aca7cd83390af31c7c9ef
Date: Mon Aug 8 23:37:41 2011 +0200
[API] Sort out get_blob API
-
+
hb_face_get_blob() renamed to hb_face_reference_blob(), returns a
reference now.
-
+
hb_face_[sg]et_index() added.
-
+
hb_face_set_upem() added.
src/hb-font-private.hh | 3 +-
- src/hb-font.cc | 67
- +++++++++++++++++++++++++++++++++++----------
+ src/hb-font.cc | 67 +++++++++++++++++++++++++++++++++++----------
src/hb-font.h | 17 ++++++++++--
src/hb-ft.cc | 3 +-
src/hb-ot-layout-private.hh | 9 ------
Fix shaper ordering logic
- src/hb-shape.cc | 80
- ++++++++++++++++++++++++---------------------------------
+ src/hb-shape.cc | 80 ++++++++++++++++++++++++---------------------------------
1 file changed, 34 insertions(+), 46 deletions(-)
commit cc797e0d5368b2f5732d77eb3e3882283bd87cf7
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Sun Aug 7 01:10:55 2011 -0400
- [test] test-object is not FreeType-specific, move it to the right
- place
+ [test] test-object is not FreeType-specific, move it to the right place
test/Makefile.am | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
Date: Sun Aug 7 00:59:38 2011 -0400
[uniscribe] Fix shaper
-
+
It's kinda working finally!
src/hb-uniscribe-shape.cc | 9 ++++++---
Date: Sun Aug 7 00:51:50 2011 -0400
[buffer] Accept -1 for text_length and item_length
-
+
A -1 text_length means: zero-terminated string.
A -1 item_length means: to the end of string.
Date: Sun Aug 7 00:00:27 2011 -0400
Fix name-table lookup
-
+
Oops!
src/hb-ot-name-private.hh | 2 +-
Date: Sat Aug 6 22:06:52 2011 -0400
[uniscribe] Make font selection work
-
+
Not tested yet.
src/hb-ot-name-private.hh | 37 +++++++++++++++++++++++++++++++++++++
Start implementing the 'name' table
src/Makefile.am | 3 +-
- src/hb-ot-name-private.hh | 91
- +++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-name-private.hh | 91 +++++++++++++++++++++++++++++++++++++++++++++++
src/hb-uniscribe-shape.cc | 12 ++++---
3 files changed, 100 insertions(+), 6 deletions(-)
Date: Fri Aug 5 20:11:06 2011 -0400
Skip tests by returning 77
-
+
automake test runner understands this.
src/check-internal-symbols.sh | 3 ++-
Date: Fri Aug 5 17:54:25 2011 -0400
Fix env parsing code
-
+
Also changed the separator to comma instead of colon.
src/hb-shape.cc | 34 +++++++++++++++++++++++++---------
Date: Fri Aug 5 17:22:19 2011 -0400
Change hb_shape() API back to what it was, add hb_shape_full()
-
+
I disliked changing hb_shape() API, and disliked the fact that it was
returning a bool now. So, reverted. Added new API for the extra
functionality.
Date: Fri Aug 5 17:22:19 2011 -0400
Change hb_shape() API back to what it was, add hb_shape_full()
-
+
I disliked changing hb_shape() API, and disliked the fact that it was
returning a bool now. So, reverted. Added new API for the extra
functionality.
Date: Thu Aug 4 22:31:05 2011 -0400
[API] Changes to main shape API
-
+
hb_shape() now accepts a shaper_options and a shaper_list argument.
- Both can be set to NULL to emulate previous API. And in most
- situations
+ Both can be set to NULL to emulate previous API. And in most situations
they are expected to be set to NULL.
-
- hb_shape() also returns a boolean for now. If shaper_list is
- NULL, the
+
+ hb_shape() also returns a boolean for now. If shaper_list is NULL, the
return value can be ignored.
-
+
shaper_options is ignored for now, but otherwise it should be a
NULL-terminated list of strings.
-
- shaper_list is a NULL-terminated list of strings. Currently
- recognized
- strings are "ot" for native OpenType Layout implementation,
- "uniscribe"
+
+ shaper_list is a NULL-terminated list of strings. Currently recognized
+ strings are "ot" for native OpenType Layout implementation, "uniscribe"
for the Uniscribe backend, and "fallback" for the non-complex backend
(that will be implemented shortly). The fallback backend never fails.
-
+
The env var HB_SHAPER_LIST is also parsed and honored. It's a
- colon-separated list of shaper names. The fallback shaper is
- invoked if
+ colon-separated list of shaper names. The fallback shaper is invoked if
none of the env-listed shapers succeed.
-
+
New API hb_buffer_guess_properties() added.
TODO | 2 -
src/hb-fallback-shape.cc | 43 +++++++++++++
src/hb-ot-shape.cc | 9 ++-
src/hb-ot-shape.h | 5 +-
- src/hb-shape.cc | 135
- +++++++++++++++++++++++----------------
+ src/hb-shape.cc | 135 +++++++++++++++++++++++----------------
src/hb-shape.h | 13 ++--
src/hb-uniscribe-shape.cc | 52 ++++++---------
src/hb-uniscribe.h | 5 +-
Date: Thu Aug 4 20:49:16 2011 -0400
Make test.cc do something more useful
-
+
Hardcoded to the uniscribe backend for now. Will fix soon.
src/test.cc | 38 ++++++++++++++++++++++++++++++++++----
Date: Thu Aug 4 20:00:53 2011 -0400
Remove C++ guards from source files
-
+
Where causing issues for people with MSVC.
src/check-c-linkage-decls.sh | 3 +--
Date: Wed Aug 3 19:55:04 2011 -0400
Add draft experimental Uniscribe backend
-
+
Not complete yet, font selection doesn't work. But hey it shapes!
-
+
This is not supposed to be a production backend, more like a testing
backend.
configure.ac | 9 ++
src/Makefile.am | 11 ++
src/hb-private.hh | 4 +-
- src/hb-uniscribe-shape.cc | 325
- ++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-uniscribe-shape.cc | 325 ++++++++++++++++++++++++++++++++++++++++++++++
src/hb-uniscribe.h | 46 +++++++
5 files changed, 394 insertions(+), 1 deletion(-)
Date: Wed Aug 3 17:38:04 2011 -0400
[API] Add hb_face_get_blob()
-
+
Need to think more about it.
src/hb-font.cc | 10 ++++++++++
Date: Tue Aug 2 14:06:51 2011 -0400
Fix fallback shaping
-
+
Broke it a few commits ago.
src/hb-ot-shape.cc | 8 +++++---
Date: Tue Aug 2 11:25:13 2011 -0400
Bug 39763 - autogen.sh should check pkg-config availability
-
+
(and revert change have_icu change I mistakenly pushed out)
autogen.sh | 10 ++++++++--
Date: Tue Aug 2 09:56:30 2011 -0400
Add mingw32 support
-
+
With these changes, on Ubuntu I can do:
-
+
./configure --host=i586-mingw32msvc && make
configure.ac | 1 +
Date: Mon Aug 1 16:30:11 2011 -0400
[Indic] Disable CJCT-disabling logic
-
+
Read comment.
src/hb-ot-shape-complex-indic.cc | 7 ++++++-
Date: Sun Jul 31 17:51:50 2011 -0400
[Indic] Stop looking for base upon seeing joiners
-
- Not sure where this is documented, but I remember this being the
- desired
+
+ Not sure where this is documented, but I remember this being the desired
behavior.
-
+
test-shape-complex failures are down from 48 to 46. Meh.
src/hb-ot-shape-complex-indic.cc | 11 +++++++++--
Date: Sun Jul 31 15:57:00 2011 -0400
[Indic] Fix ZWJ/ZWNJ application
-
+
Not quite working just yet. False alarm re 10 failures. It was
crashing. Ouch! Back to 48 failures.
Date: Sun Jul 31 15:18:57 2011 -0400
[Indic] Add Final Reordering rules into comments
-
+
Not applied yet.
- src/hb-ot-shape-complex-indic.cc | 86
- ++++++++++++++++++++++++++++++++++++++--
+ src/hb-ot-shape-complex-indic.cc | 86 ++++++++++++++++++++++++++++++++++++++--
1 file changed, 83 insertions(+), 3 deletions(-)
commit cfd4382ec1af91640129551697de36fd42c0849a
Date: Sun Jul 31 13:46:44 2011 -0400
[Indic] Support ZWJ/ZWNJ
-
+
Brings test-shape-complex failures down from 52 to 10!
-
+
I hereby declare harfbuzz-ng supporting Indic!
- src/hb-ot-shape-complex-indic.cc | 57
- +++++++++++++++++++++++++++++++++-------
+ src/hb-ot-shape-complex-indic.cc | 57 +++++++++++++++++++++++++++++++++-------
1 file changed, 48 insertions(+), 9 deletions(-)
commit 9ee27a928a989c71923cef82a9e9828f8e9ca051
Date: Sun Jul 31 02:24:51 2011 -0400
Un-Ra U+09F1. According to the test suite this is correct.
-
+
But I'm not sure... Down from 54 failures to 52.
src/hb-ot-shape-complex-indic.cc | 2 +-
Date: Sat Jul 30 21:08:10 2011 -0400
[Indic] For old-style Indic tables, move Halant around
-
+
In old-style Indic OT standards, the post-base Halants are moved after
their base. Emulate that by moving first post-base Halant to
post-last-consonant.
-
+
Brings test-shape-complex failures down from 88 to 54. Getting there!
src/hb-ot-map-private.hh | 3 +++
Date: Sat Jul 30 20:21:40 2011 -0400
[test] Fix problem with N'ko test direction
-
- Old HarfBuzz test suite always shaped as left-to-right and hence
- had wrong
+
+ Old HarfBuzz test suite always shaped as left-to-right and hence had wrong
0x14db, direction expected glyphstring for N'ko. Doh!
-
+
Failures down from 92 to 88.
test/test-shape-complex.c | 8 ++++----
Date: Sat Jul 30 20:14:44 2011 -0400
[Indic] Handle initial Ra+Halant in scripts that support Reph
-
+
Brings test-shape-complex failures down from 104 to 92. Way to go!
src/hb-ot-shape-complex-indic.cc | 10 ++++++++++
Date: Sat Jul 30 19:04:02 2011 -0400
[Indic] Categorize Ra in scripts that have Reph
-
+
Is the categorization correct? I don't know.
src/hb-ot-shape-complex-indic.cc | 31 ++++++++++++++++++++++++++++++-
Date: Sat Jul 30 14:44:30 2011 -0400
[Indic] Reorder matras
-
+
Number of failing shape-complex tests goes from 125 down to 94.
-
+
Next: Add Ra handling and it's fair to say we kinda support Indic :).
src/hb-ot-shape-complex-indic.cc | 29 +++++++++++++++++++++++++++--
src/hb-ot-shape-normalize.cc | 26 ++++++++++----------------
- src/hb-private.hh | 36
- ++++++++++++++++++++++++++++++------
+ src/hb-private.hh | 36 ++++++++++++++++++++++++++++++------
3 files changed, 67 insertions(+), 24 deletions(-)
commit 911bf32acad7f1cd161f666cb659990ade0925ad
Date: Fri Jul 29 16:37:02 2011 -0400
[Indic] Apply Indic features
-
+
Find the base consonant and apply basic Indic features accordingly.
Nothing complete, but does something for now. Specifically:
no Ra handling right now, and no ZWJ/ZWNJ.
-
+
Number of failing shape-complex tests goes from 174 down to 125.
-
+
Next: reorder matras.
src/hb-ot-shape-complex-indic-machine.rl | 35 ++++--
- src/hb-ot-shape-complex-indic.cc | 209
- ++++++++++++++++++++++++++++---
+ src/hb-ot-shape-complex-indic.cc | 209 ++++++++++++++++++++++++++++---
2 files changed, 212 insertions(+), 32 deletions(-)
commit 1a1b5013159369b343d0c32df02c9c419277aead
src/hb-ot-shape-complex-arabic.cc | 6 +++-
src/hb-ot-shape-complex-indic.cc | 4 +--
src/hb-ot-shape-complex-private.hh | 10 ++++++-
- src/hb-ot-shape.cc | 60
- +++++++++++++++++++++++---------------
+ src/hb-ot-shape.cc | 60 +++++++++++++++++++++++---------------
src/hb-private.hh | 1 +
9 files changed, 83 insertions(+), 57 deletions(-)
Date: Thu Jul 28 15:42:18 2011 -0400
Move more code around
-
+
Buffer var allocation coming into shape
src/hb-buffer-private.hh | 1 +
src/hb-object-private.hh | 8 +--
src/hb-open-type-private.hh | 64 ++++++--------------
src/hb-ot-layout-gsubgpos-private.hh | 2 +-
- src/hb-private.hh | 109
- +++++++++++++++++++++++++++++++----
+ src/hb-private.hh | 109 +++++++++++++++++++++++++++++++----
5 files changed, 136 insertions(+), 73 deletions(-)
commit 43ff203d8ea3e1b09e316e3aae1a4e5ec15bfdd2
Date: Mon Jul 25 17:35:24 2011 -0400
Use variadic macros for debugging
-
+
Looks *so* much nicer!
src/hb-blob.cc | 26 ++++++++--------
src/hb-object-private.hh | 8 ++---
- src/hb-open-type-private.hh | 75
- ++++++++++++++++++++-------------------------
+ src/hb-open-type-private.hh | 75 ++++++++++++++++++++-------------------------
src/hb-private.hh | 7 +++--
4 files changed, 56 insertions(+), 60 deletions(-)
Date: Mon Jul 25 16:47:02 2011 -0400
Add sugar syntax for debug messages
-
+
Buffer debugging coming soon.
src/hb-blob.cc | 35 +++++++++++++----------------------
src/hb-object-private.hh | 9 ++++-----
- src/hb-open-type-private.hh | 44
- ++++++++++++++++++++++----------------------
+ src/hb-open-type-private.hh | 44 ++++++++++++++++++++++----------------------
src/hb-private.hh | 7 +++++--
4 files changed, 44 insertions(+), 51 deletions(-)
Date: Mon Jul 25 14:54:08 2011 -0400
Start cleaning up buffer var allocation
-
+
I've messed up a lot of stuff recently, different parts of the
shaping process are stumbling on eachother's toes because
manually tracking what's in which buffer var is hard. I'm
Move code around
- src/hb-ot-shape.cc | 85
- +++++++++++++++++++++++++++---------------------------
+ src/hb-ot-shape.cc | 85 +++++++++++++++++++++++++++---------------------------
1 file changed, 42 insertions(+), 43 deletions(-)
commit 18c42850c9327ab4479ff150660a76d4ff6f3e9c
Date: Mon Jul 25 00:36:58 2011 -0400
Shrink space used for ligature ids
-
- This frees 16bits in the glyph_info struct during the ot_layout
- process.
+
+ This frees 16bits in the glyph_info struct during the ot_layout process.
We can use the freed space in the shapers now.
src/hb-ot-layout-gsubgpos-private.hh | 8 ++++----
Keep Unicode props updated as we go so we avoid a scan later
- src/hb-ot-shape-normalize.cc | 54
- +++++++++++++++++++++-----------------------
+ src/hb-ot-shape-normalize.cc | 54 +++++++++++++++++++++-----------------------
1 file changed, 26 insertions(+), 28 deletions(-)
commit 5389ff4dbc46c76c9483e3c95f22524b60e21166
Date: Fri Jul 22 20:22:49 2011 -0400
Implement the Unicode Canonical Composition algorithm
-
+
Fallback normalization is complete and working now!
- src/hb-ot-shape-normalize.cc | 49
- +++++++++++++++++++++++++++++++++++++++++---
+ src/hb-ot-shape-normalize.cc | 49 +++++++++++++++++++++++++++++++++++++++++---
1 file changed, 46 insertions(+), 3 deletions(-)
commit dcdc51cdc0ba9d9fb75f84dd5fa7a49aa0b24ea0
Implement Unicode Canonical Reordering Algorithm
- src/hb-ot-shape-normalize.cc | 80
- +++++++++++++++++++++++++++++++++++++-------
+ src/hb-ot-shape-normalize.cc | 80 +++++++++++++++++++++++++++++++++++++-------
src/hb-ot-shape-private.hh | 2 ++
src/hb-ot-shape.cc | 6 ++--
3 files changed, 73 insertions(+), 15 deletions(-)
Decomposition works now!
- src/hb-ot-shape-normalize.cc | 109
- +++++++++++++++++++++++++++----------------
+ src/hb-ot-shape-normalize.cc | 109 +++++++++++++++++++++++++++----------------
src/hb-ot-shape.cc | 3 +-
2 files changed, 70 insertions(+), 42 deletions(-)
Move buffer methods into the object
src/hb-buffer-private.hh | 110 +++----
- src/hb-buffer.cc | 605
- +++++++++++++++++------------------
+ src/hb-buffer.cc | 605 +++++++++++++++++------------------
src/hb-ot-layout-gpos-private.hh | 88 ++---
src/hb-ot-layout-gsub-private.hh | 58 ++--
src/hb-ot-layout-gsubgpos-private.hh | 50 +--
More normalization kick
- src/hb-ot-shape-normalize.cc | 54
- +++++++++++++++++++++++++++++---------------
+ src/hb-ot-shape-normalize.cc | 54 +++++++++++++++++++++++++++++---------------
src/hb-ot-shape-private.hh | 8 ++++++-
src/hb-ot-shape.cc | 13 +++--------
3 files changed, 46 insertions(+), 29 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Jul 21 20:58:42 2011 -0400
- Fix decompose() implementations to work with non-starter
- non-composables
-
+ Fix decompose() implementations to work with non-starter non-composables
+
Add tests.
src/hb-glib.cc | 10 +++++-----
Document normalization design
- src/hb-ot-shape-normalize.cc | 78
- +++++++++++++++++++++++++++++++++++---------
+ src/hb-ot-shape-normalize.cc | 78 +++++++++++++++++++++++++++++++++++---------
src/hb-ot-shape-private.hh | 2 +-
src/hb-ot-shape.cc | 6 ++--
3 files changed, 67 insertions(+), 19 deletions(-)
Date: Thu Jul 21 12:23:12 2011 -0400
Add prefer_decomposed() complex-shaper callback
-
- This allows the Indic shaper to request decomposed characters.
- This will
+
+ This allows the Indic shaper to request decomposed characters. This will
handle split matra for free. Other shapers prefer precomposed
characters.
Date: Thu Jul 21 12:13:04 2011 -0400
Remove intermittent_glyph()
-
+
Lets not worry about performance for now...
src/hb-ot-shape-normalize.cc | 3 ++-
Date: Thu Jul 21 11:34:59 2011 -0400
Only form clusters if we are reversing
-
+
This produces more accurate cluster mappings. Cluster mappings are
minimal now. Combining marks get their own cluster value most of
the time.
Date: Thu Jul 21 01:11:09 2011 -0400
Form clusters before ensuring native direciton
-
+
This is essential as ensure_native_direction uses cluster info that
is set by form_clusters().
Towards normalization
src/Makefile.am | 1 +
- src/hb-ot-shape-normalize.cc | 71
- ++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape-normalize.cc | 71 ++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-shape-private.hh | 12 ++++++++
src/hb-ot-shape.cc | 10 ++-----
4 files changed, 86 insertions(+), 8 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Jul 21 00:12:33 2011 -0400
- Rename HB_UNICODE_GENERAL_CATEGORY_COMBINING_MARK to
- HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK
-
+ Rename HB_UNICODE_GENERAL_CATEGORY_COMBINING_MARK to HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK
+
Spacing_Mark is the current Unicode long-name for this property value.
The previous name was wrongly carried from glib.
[icu] Implement compose()/decompose()
- src/hb-icu.cc | 87
- +++++++++++++++++++++++++++++++++++++++++++++++++++--
+ src/hb-icu.cc | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++--
test/test-unicode.c | 1 +
2 files changed, 86 insertions(+), 2 deletions(-)
Date: Wed Jul 20 22:30:29 2011 -0400
Add tests for compose()/decompose()
-
+
Adjust glib fallback implementation.
-
+
The tests are not hooked up for ICU yet.
src/hb-glib.cc | 17 ++++++++++++--
src/hb-unicode.cc | 2 +-
- test/test-unicode.c | 66
- +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/test-unicode.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 82 insertions(+), 3 deletions(-)
commit fca0923b04aeff9369849da97d247a647611f346
Minor
- src/hb-icu.cc | 62
- ++++++++++++++++++++++++++++++++++++-----------------------
+ src/hb-icu.cc | 62 ++++++++++++++++++++++++++++++++++++-----------------------
1 file changed, 38 insertions(+), 24 deletions(-)
commit 26b6024962b254b624d4f22088b6c87745074743
[glib] Add compose() and decompose() implementations with fallback
- src/hb-glib.cc | 126
- +++++++++++++++++++++++++++++++++++++++++++-----------
+ src/hb-glib.cc | 126 +++++++++++++++++++++++++++++++++++++++++++-----------
src/hb-unicode.cc | 6 ++-
2 files changed, 106 insertions(+), 26 deletions(-)
Date: Fri Jul 8 00:22:40 2011 -0400
Let shapers decide when to apply ccmp and locl
-
- Instead of always applying those two features before the complex
- shaper,
+
+ Instead of always applying those two features before the complex shaper,
let the complex shaper decide whether they should be applied first.
-
+
Also add stub for Indic's final_reordering().
src/hb-ot-shape-complex-arabic.cc | 2 ++
Date: Thu Jul 7 23:47:19 2011 -0400
[API] Add compose() and decompose() unicode funcs, rename other ones
-
+
Add compose() and decompose() unicode funcs. These implement
pair-wise canonical composition/decomposition.
-
+
The glib/icu implementations are lacking for now. We are adding
API for this to glib, but I cannot find any useful API in ICU.
May end of implementing these in-house.
-
+
Changed all unicode_funcs callback names to remove the "_get" part.
Eg, hb_unicode_get_script_func_t is now hb_unicode_script_func_t,
and hb_unicode_get_script() is hb_unicode_script() now.
src/hb-ot-shape.cc | 6 ++--
src/hb-shape.cc | 2 +-
src/hb-unicode-private.hh | 8 +++--
- src/hb-unicode.cc | 85
- ++++++++++++++++++++++++++++++++++-------------
+ src/hb-unicode.cc | 85 ++++++++++++++++++++++++++++++++++-------------
src/hb-unicode.h | 70 +++++++++++++++++++++++++++-----------
test/test-unicode.c | 21 +++++++-----
9 files changed, 146 insertions(+), 62 deletions(-)
More code generation through preprocessor
- src/hb-ot-shape-complex-private.hh | 46
- ++++++++++++++++++++++++--------------
+ src/hb-ot-shape-complex-private.hh | 46 ++++++++++++++++++++++++--------------
1 file changed, 29 insertions(+), 17 deletions(-)
commit 891c4755baae6cd59fad59d27fd8933e5f548a74
Date: Thu Jul 7 23:19:27 2011 -0400
Humm, undo some shuffling
-
+
In preparation for adding more advanced unicode funcs.
src/hb-ot-shape.cc | 6 ++---
src/hb-shape.cc | 2 +-
src/hb-unicode-private.hh | 36 +++++++++++++-------------
- src/hb-unicode.cc | 65
- ++++++++++++++++++++++++++++++++++-------------
+ src/hb-unicode.cc | 65 ++++++++++++++++++++++++++++++++++-------------
4 files changed, 70 insertions(+), 39 deletions(-)
commit 4b6317c4f426cfaf21e509dbf6ee6d4e0422cdac
src/hb-font-private.hh | 16 +++---
src/hb-font.cc | 3 +-
src/hb-unicode-private.hh | 42 +++++++-------
- src/hb-unicode.cc | 140
- +++++++++++++++++-----------------------------
+ src/hb-unicode.cc | 140 +++++++++++++++++-----------------------------
4 files changed, 82 insertions(+), 119 deletions(-)
commit 3361c9a323575309d9fd55fe076697a3e22073c0
Minor
src/Makefile.am | 1 +
- src/hb-ot-shape-complex-misc.cc | 51
- ++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-misc.cc | 51 ++++++++++++++++++++++++++++++++++++++
src/hb-ot-shape-complex-private.hh | 12 ++++++---
3 files changed, 60 insertions(+), 4 deletions(-)
src/hb-ot-shape-complex-arabic.cc | 36 +++++++++++++-------------
src/hb-ot-shape-complex-indic-machine.rl | 12 ++++-----
src/hb-ot-shape-complex-indic.cc | 25 +++++++++---------
- src/hb-ot-shape-complex-private.hh | 44
- +++++++++++++++++++++-----------
+ src/hb-ot-shape-complex-private.hh | 44 +++++++++++++++++++++-----------
src/hb-ot-shape-private.hh | 13 ++--------
src/hb-ot-shape.cc | 4 +--
6 files changed, 69 insertions(+), 65 deletions(-)
Refactor some code common to GSUB and GPOS
src/hb-ot-map-private.hh | 29 ++++++++++++++++++--------
- src/hb-ot-map.cc | 54
- +++++++++---------------------------------------
+ src/hb-ot-map.cc | 54 +++++++++---------------------------------------
2 files changed, 30 insertions(+), 53 deletions(-)
commit b70c96dbe41d6512b80fe3d966a1942e1ef64a4b
Date: Thu Jul 7 21:07:41 2011 -0400
Enable applying GSUB/GPOS features in multiple segments
-
+
Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=644184
among others.
-
+
Shapers now can request segmented feature application by calling
add_gsub_pause() or add_gpos_pause(). They can also provide a
callback to be called at the pause. Currently the Arabic shaper
callback.
src/hb-ot-map-private.hh | 50 +++++++++++----
- src/hb-ot-map.cc | 132
- +++++++++++++++++++++++++++++++++-----
+ src/hb-ot-map.cc | 132 +++++++++++++++++++++++++++++++++-----
src/hb-ot-shape-complex-arabic.cc | 24 ++++++-
src/hb-private.hh | 5 ++
4 files changed, 181 insertions(+), 30 deletions(-)
Shuffle code around
- src/hb-ot-map-private.hh | 68
- ++++++++++++++++++++++++------------------------
+ src/hb-ot-map-private.hh | 68 ++++++++++++++++++++++++------------------------
1 file changed, 34 insertions(+), 34 deletions(-)
commit fc551edbf236d71a522ae7c2c9461aa71c5f7d66
Date: Thu Jul 7 16:09:38 2011 -0400
Add todo
-
+
I'm too lazy to fix the tests now.
test/test-shape.c | 1 +
Date: Wed Jul 6 16:05:45 2011 -0400
Fix reverse_range() position loop
-
+
Mozilla Bug 669175 - Slow rendering of text sometimes in this case,
using direction: rtl
Date: Mon Jul 4 12:56:38 2011 -0400
[Indic] Well, at least finding syllables works now :)
-
+
Still not much there.
src/hb-ot-shape-complex-indic-machine.rl | 4 +++-
Date: Tue Jun 28 17:26:03 2011 -0400
[test-shape-complex] Remove the greek tests
-
+
They are outdated with respect to the DejaVu Sans I'm using.
We need to add font version checking to the tests.
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue Jun 28 17:25:17 2011 -0400
- [test-shape-complex] Print out expected and actual glyphstrings
- upon failure
-
+ [test-shape-complex] Print out expected and actual glyphstrings upon failure
+
One has to run the test with --verbose to see that right now.
test/test-shape-complex.c | 25 ++++++++++++++++++++++---
[test] Name tests after their input string
test/Makefile.am | 2 +-
- test/test-shape-complex.c | 150
- ++++++++++++++++++++++++++++++----------------
+ test/test-shape-complex.c | 150 ++++++++++++++++++++++++++++++----------------
2 files changed, 100 insertions(+), 52 deletions(-)
commit 27413169782fdf79e278dd6552c8e194b3bc4eaa
Date: Tue Jun 28 16:21:31 2011 -0400
Minor
-
+
Towards a better test runner.
test/test-shape-complex.c | 10 +++++++++-
Date: Tue Jun 28 16:16:21 2011 -0400
[test] Remove disabled code
-
+
We'd add normalization and decomposition tests later.
- test/test-shape-complex.c | 92
- -----------------------------------------------
+ test/test-shape-complex.c | 92 -----------------------------------------------
1 file changed, 92 deletions(-)
commit 9704f0ca6c2defed52640da77506c80bc67b4f56
[test] Restructure shape test data a bit
- test/test-shape-complex.c | 75
- +++++++++++++++++++++++++++--------------------
+ test/test-shape-complex.c | 75 +++++++++++++++++++++++++++--------------------
1 file changed, 43 insertions(+), 32 deletions(-)
commit 4ec30aec3014be6effc09cbbc88dcd075f3826df
[Indic] Generate a single data table instead of multiple ones
src/gen-indic-table.py | 30 +++++++++-------
- src/hb-ot-shape-complex-indic-table.hh | 62
- ++++++++++++++++------------------
+ src/hb-ot-shape-complex-indic-table.hh | 62 ++++++++++++++++------------------
2 files changed, 48 insertions(+), 44 deletions(-)
commit a346e923a99f920bbebc25b335db51fdfb1429ea
Date: Tue Jun 28 12:49:18 2011 -0400
[test] Add Indic tests from harfbuzz.old
-
+
Needs fonts to be put in test/fonts. Tests are skipped otherwise.
Run with --verbose for details. Working on improving the test runner
to make it easier to make sense of what's going on.
test/Makefile.am | 11 +-
test/hb-test.h | 21 +
- test/test-shape-complex.c | 1179
- +++++++++++++++++++++++++++++++++++++++++++++
+ test/test-shape-complex.c | 1179 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 1209 insertions(+), 2 deletions(-)
commit 8fdba506f0f1c66b50f8f4b114d624cb956d03b7
[Indic] Define indic_position_t
- src/hb-ot-shape-complex-indic.cc | 239
- ++++++++++++++++++++-------------------
+ src/hb-ot-shape-complex-indic.cc | 239 ++++++++++++++++++++-------------------
1 file changed, 122 insertions(+), 117 deletions(-)
commit 65988a145b4a52c37fd53c1473034f9e701f61d9
Date: Fri Jun 24 19:05:52 2011 -0400
[Indic] Add a table of consonant positions
-
+
Copied form HarfBuzz.old Indic data. These are below and post
consonants. This is temporary. Read the comment in the patch.
- src/hb-ot-shape-complex-indic.cc | 106
- +++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-indic.cc | 106 +++++++++++++++++++++++++++++++++++++++
1 file changed, 106 insertions(+)
commit c7fe56a1d5d3e969b6ec51cd9ecd471706a19568
[Indic] Some of the basic features are global; Mark them so
src/hb-ot-shape-complex-indic-machine.rl | 1 +
- src/hb-ot-shape-complex-indic.cc | 48
- ++++++++++++++++++++++----------
+ src/hb-ot-shape-complex-indic.cc | 48 ++++++++++++++++++++++----------
2 files changed, 35 insertions(+), 14 deletions(-)
commit 867361c3ad39629a8d5b7dc48d558a1c19e37d43
Date: Fri Jun 17 18:35:46 2011 -0400
[indic] Add syllable recognition state machine
-
+
Using an incredible tool called Ragel.
src/Makefile.am | 5 ++
- src/hb-ot-shape-complex-indic-machine.rl | 105
- +++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-indic-machine.rl | 105 +++++++++++++++++++++++++++++++
src/hb-ot-shape-complex-indic.cc | 21 +++++--
3 files changed, 125 insertions(+), 6 deletions(-)
Date: Wed Jun 15 17:22:48 2011 -0400
Better categorize Indic character classes
-
+
Matches OT types now.
- src/hb-ot-shape-complex-indic.cc | 51
- +++++++++++++++++++++++++---------------
+ src/hb-ot-shape-complex-indic.cc | 51 +++++++++++++++++++++++++---------------
1 file changed, 32 insertions(+), 19 deletions(-)
commit 31f18abecb149f8888a72510f2660328dd6de16d
Cosmetic
src/gen-indic-table.py | 9 +-
- src/hb-ot-shape-complex-indic-table.hh | 1038
- ++++++++++++++++----------------
+ src/hb-ot-shape-complex-indic-table.hh | 1038 ++++++++++++++++----------------
2 files changed, 524 insertions(+), 523 deletions(-)
commit 902ab866f2d2edc3a71c1203065e6ddf49e5b431
More Indic data shuffling
- src/hb-ot-shape-complex-indic.cc | 74
- +++++++++++++++++++++++++++-------------
+ src/hb-ot-shape-complex-indic.cc | 74 +++++++++++++++++++++++++++-------------
1 file changed, 50 insertions(+), 24 deletions(-)
commit 63b177e45c2405272da3fa6c26fe11ae37950bd0
Date: Thu Jun 2 17:43:12 2011 -0400
[Indic] Start an Indic shaper
-
+
Nothing functional in there yet.
-
- So far, we're parsing IndicSyllabicCategory.txt and
- IndicMatraCategory.txt
- fils from Unicode Character Database and store them in an array to
- be used
+
+ So far, we're parsing IndicSyllabicCategory.txt and IndicMatraCategory.txt
+ fils from Unicode Character Database and store them in an array to be used
by the shaper. Also hooked up the shaper, but it does not do anything
right now.
src/Makefile.am | 3 +
src/gen-indic-table.py | 201 ++++++++
src/hb-ot-shape-complex-arabic.cc | 4 +-
- src/hb-ot-shape-complex-indic-table.hh | 834
- +++++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-indic-table.hh | 834 +++++++++++++++++++++++++++++++++
src/hb-ot-shape-complex-indic.cc | 141 ++++++
src/hb-ot-shape-complex-private.hh | 58 ++-
src/hb-ot-shape-private.hh | 3 +-
Update to ArabicShaping-6.1.0d2.txt
- src/hb-ot-shape-complex-arabic-table.hh | 307
- ++++++++++++++++++++------------
+ src/hb-ot-shape-complex-arabic-table.hh | 307 ++++++++++++++++++++------------
1 file changed, 197 insertions(+), 110 deletions(-)
commit 9d49433efba2217852f4e44f056465b451961c49
Date: Tue May 31 15:18:13 2011 -0400
[Vertical] Apply vertical features
-
+
We apply all of vert, vrt2, vkrn, valt, and vpal.
TODO | 7 -------
- src/hb-ot-shape.cc | 50
- +++++++++++++++++++++++++++++++++++++++++---------
+ src/hb-ot-shape.cc | 50 +++++++++++++++++++++++++++++++++++++++++---------
2 files changed, 41 insertions(+), 16 deletions(-)
commit 0c6a9767c812c00f2a6a02d9f43f4694e1f43815
Date: Tue May 31 12:33:11 2011 -0400
Fix TTC header handling
-
+
Also change the Version type to avoid similar bugs in the future.
-
+
Reported by Grigori Goronzy.
src/hb-open-file-private.hh | 6 +++---
Date: Mon May 30 11:08:40 2011 -0400
Fixed inifinite loop introduced in 7403e055cd1463f
-
+
k is the index, not j.
-
+
Reported by Tom Hacohen.
src/hb-ot-layout-gpos-private.hh | 4 ++--
Date: Fri May 27 18:13:31 2011 -0400
[OT] Separate map_builder from the actual map
-
+
Respectively, separate planner from the actual plan.
- src/hb-ot-map-private.hh | 121
- ++++++++++++++++++++-----------------
+ src/hb-ot-map-private.hh | 121 ++++++++++++++++++++-----------------
src/hb-ot-map.cc | 33 +++++-----
src/hb-ot-shape-complex-arabic.cc | 6 +-
src/hb-ot-shape-complex-private.hh | 8 +--
src/Makefile.am | 7 +++++++
src/check-c-linkage-decls.sh | 6 +++++-
src/check-header-guards.sh | 8 +++++++-
- src/check-includes.sh | 42
- ++++++++++++++++++++++++++++++++++++++++++
+ src/check-includes.sh | 42 ++++++++++++++++++++++++++++++++++++++++++
src/check-internal-symbols.sh | 8 ++++----
src/check-libstdc++.sh | 7 ++++---
src/hb-ot-shape.h | 1 +
Date: Wed May 25 16:08:06 2011 -0400
Release 0.6.0. First official tarball release!
-
+
There are no API guarantees just yet, but I *expect* that no
incompatible API changes to happen before 1.0.0.
-
+
Update NEWS.
- NEWS | 262
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ NEWS | 262 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
configure.ac | 2 +-
2 files changed, 263 insertions(+), 1 deletion(-)
Date: Fri May 27 03:38:46 2011 -0400
[test-common] Test hb_direction_to_string()
-
+
Caught by "make check-symbols".
test/test-common.c | 6 ++++++
Date: Fri May 27 03:38:30 2011 -0400
[test] Rename test-symbols to check-symbols
-
+
Shows undocumented symbols.
test/Makefile.am | 37 +++++++++++++++++++++----------------
Date: Fri May 27 02:46:28 2011 -0400
[test/unicode] Fix double-free
-
+
Caught by "make check-valgrind".
test/Makefile.am | 2 +-
Date: Fri May 27 02:44:29 2011 -0400
[test] Switch to automake-based test-runner
-
+
Adds check-valgrind among other modes. We do not run under gtester by
default anymore.
Makefile.am | 2 +
test/.valgrind-suppressions | 0
test/Makefile.am | 48 ++++++++++++++++++++++--
- test/Makefile.decl | 90
- ---------------------------------------------
+ test/Makefile.decl | 90 ---------------------------------------------
4 files changed, 47 insertions(+), 93 deletions(-)
commit adbc97ddde27cf609d95d3249f3ea8060a6e1d20
Date: Fri May 27 01:33:18 2011 -0400
[test] Add test-symbols that checks API symbol text coverage
-
+
We're not at 100% coverage yet, so do not enable the test by default.
test/Makefile.am | 21 +++++++++++++++++++++
[test/version] Test hb-version.h
test/Makefile.am | 1 +
- test/test-version.c | 80
- +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/test-version.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 81 insertions(+)
commit 329c15714be90d3fc2d9054f80cb14fa325dc959
Date: Wed May 25 16:07:07 2011 -0400
Add libtool versioning
-
+
The versioning is automatic. For now, soname-major is 0. With
the 1.0.0 release it will jump to 1 and stay there forever.
Date: Wed May 25 11:27:33 2011 -0400
[API] One last font-funcs API change
-
+
Now that vertical text works correctly, I'm doing a last round
modification of the font-funcs API to simplify. Expect no more
changes around here.
- src/hb-font.cc | 107
- ++++++++++++++++++------------------------------------
+ src/hb-font.cc | 107 ++++++++++++++++++------------------------------------
src/hb-font.h | 50 +++++++++++--------------
src/hb-ft.cc | 26 ++++++-------
test/test-font.c | 27 +++++++-------
[test] Update to API changes
- test/test-font.c | 72
- ++++++++++++++++++++++---------------------------------
+ test/test-font.c | 72 ++++++++++++++++++++++---------------------------------
test/test-shape.c | 35 +++++++++++++--------------
2 files changed, 44 insertions(+), 63 deletions(-)
Date: Tue May 24 21:04:15 2011 -0400
[Vertical] fix vertical gpos
-
+
Wow, it took me a few days to find the right fix!
-
+
We now set the advance for attached marks to zero, but we
do this in the _finish() state of gpos, so it shouldn't
regress with fonts like DejaVuSansMono that explicitly
decrease the mark advance width to set it to zero.
- src/hb-ot-layout-gpos-private.hh | 167
- +++++++++++++++++++++++----------------
+ src/hb-ot-layout-gpos-private.hh | 167 +++++++++++++++++++++++----------------
src/hb-ot-shape.cc | 9 ++-
2 files changed, 103 insertions(+), 73 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Fri May 20 15:59:59 2011 -0400
- [Vertical] GPOS x/y advance adjustments only apply in hori/vert
- respectively
+ [Vertical] GPOS x/y advance adjustments only apply in hori/vert respectively
src/hb-ot-layout-gpos-private.hh | 31 +++++++++++++++++++++----------
1 file changed, 21 insertions(+), 10 deletions(-)
[Vertical] GPOS is always done with horizontal origin
src/hb-font-private.hh | 4 +-
- src/hb-font.cc | 187
- ++++++++++++++++++---------------------
+ src/hb-font.cc | 187 ++++++++++++++++++---------------------
src/hb-font.h | 53 ++++++-----
src/hb-ft.cc | 47 ++++------
src/hb-ot-layout-gdef-private.hh | 18 ++--
Date: Thu May 19 13:08:00 2011 -0400
More vertical
-
+
Starting to get there, but not without yet another round of changes.
-
+
I think I know wheere to go now.
src/hb-font.cc | 44 ++++++++++++++++++++++++++++++++------------
Date: Wed May 18 10:17:02 2011 -0400
[hb-view] Add --annotate
-
+
Currently it only marks glyph origins.
src/hb-view.cc | 20 +++++++++++++++++++-
Date: Tue May 17 23:31:00 2011 -0400
Vertical: Adjust origin in glyph_extents() and glyph_contour_point()
-
+
The base for vertical is almost ready now.
src/hb-font.cc | 12 ++++++++----
Cosmetic
- src/hb-font.cc | 114
- ++++++++++++++++++++++++++++-----------------------------
+ src/hb-font.cc | 114 ++++++++++++++++++++++++++++-----------------------------
src/hb-ft.cc | 36 +++++++++---------
2 files changed, 74 insertions(+), 76 deletions(-)
Date: Tue May 17 17:55:03 2011 -0400
[API] Vertical support, take 2
-
+
I like this API *much* better. Implementation still incomplete, but
horizontal works.
src/hb-font-private.hh | 7 +-
- src/hb-font.cc | 185
- +++++++++++++++++++++++----------------
+ src/hb-font.cc | 185 +++++++++++++++++++++++----------------
src/hb-font.h | 109 ++++++++++++-----------
src/hb-ft.cc | 66 ++++++++------
src/hb-ot-layout-gdef-private.hh | 2 +-
Date: Mon May 16 18:15:37 2011 -0400
[API] Add support for vertical text
-
+
Design not final yet, and in fact I'm going to change it immediately,
but this is an standalone change for itself.
src/hb-font-private.hh | 35 ++--
- src/hb-font.cc | 387
- +++++++++++++++++++++++++----------
+ src/hb-font.cc | 387 +++++++++++++++++++++++++----------
src/hb-font.h | 164 +++++++++++----
src/hb-ft.cc | 227 +++++++++++++-------
src/hb-ot-layout-gdef-private.hh | 2 +-
Date: Tue May 17 15:05:34 2011 -0400
Check for mmap()
-
+
Apparently there exist systems with mprotect(), but not mmap()?
configure.ac | 2 +-
Date: Fri May 13 22:46:36 2011 -0400
[test/test-ot-tag] Test hb-ot-tag.h, fix many bugs
-
+
I'm in awe with how many bugs this test revealed. All fixed.
src/hb-ot-tag.cc | 153 +++++++++++++++++++++---------------
test/Makefile.am | 3 +
- test/test-ot-tag.c | 227
- +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/test-ot-tag.c | 227 +++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 320 insertions(+), 63 deletions(-)
commit 1368018b475c2a6dd5f625af99695ae2fcba1f05
Date: Thu May 12 15:14:13 2011 -0400
[API] Make get_glyph() callback return a boolean
-
+
We need to know whether the glyph exists, so we can fallback to
composing / decomposing. Assuming that glyph==0 means "doesn't exist"
wouldn't work for applications like Pango that want to use different
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu May 12 12:39:40 2011 -0400
- Rename get_kernings() arguments from first/second_glyph to
- left/right_glyph
-
+ Rename get_kernings() arguments from first/second_glyph to left/right_glyph
+
Makes it clear that kerning is in visual order.
src/hb-font.cc | 10 +++++-----
[test] Add test-shape.c. Oops
- test/test-shape.c | 125
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/test-shape.c | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 125 insertions(+)
commit c098c3acc8c48b4b6883c50c9a87e81dbe98ba24
Date: Thu May 12 10:49:30 2011 -0400
[test/blob] Use MAP_ANON instead of MAP_ANONYMOUS
-
+
More portable.
test/test-blob.c | 2 +-
Date: Thu May 12 01:19:39 2011 -0400
[object] Make object inert during destruction
-
+
Such that user_data and other finalizers cannot resurrect object
src/hb-object-private.hh | 2 ++
Date: Thu May 12 00:46:57 2011 -0400
Fix font subclass chainup
-
+
Test passing now.
src/hb-font.cc | 6 +-----
[test/font] Test font_funcs subclassing
- test/test-font.c | 158
- +++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ test/test-font.c | 158 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 155 insertions(+), 3 deletions(-)
commit 14f1e81b77971204e9325e2a8b6f8b690fac20a7
[test/font] Test empty funcs
- test/test-font.c | 75
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ test/test-font.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 73 insertions(+), 2 deletions(-)
commit 2ca0b5ae1e65d3f43df3a4a2144a1451d8b485c4
[test/font] Test more
- test/test-font.c | 63
- ++++++++++++++++++++++++++++++++++++++++++++++++--------
+ test/test-font.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 54 insertions(+), 9 deletions(-)
commit 7033518f756490e9cf00b96387fee6f2f7fae785
[test/font] Add test_font_properties()
- test/test-font.c | 85
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/test-font.c | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 85 insertions(+)
commit da603e80386b41b360acb070a862b6ed87da57b8
test/Makefile.am | 1 +
test/test-buffer.c | 2 +-
- test/test-font.c | 69
- +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/test-font.c | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++
test/test-unicode.c | 1 +
4 files changed, 72 insertions(+), 1 deletion(-)
Streamline mutex stuff
- src/hb-mutex-private.hh | 61
- ++++++++++++++++++++++++++++++-------------------
+ src/hb-mutex-private.hh | 61 ++++++++++++++++++++++++++++++-------------------
src/hb-private.hh | 8 +++++++
2 files changed, 46 insertions(+), 23 deletions(-)
Date: Wed May 11 18:06:12 2011 -0400
[API] Add HB_UNTAG()
-
+
Useful in C API only.
src/hb-common.h | 1 +
Date: Wed May 11 14:30:56 2011 -0400
Plug more leaks
-
+
All good now.
src/hb-blob.cc | 2 +-
Date: Wed May 11 10:31:33 2011 -0400
Add maxp table
-
- Not used for anything right now. Will use to get num_glyphs in
- the future.
+
+ Not used for anything right now. Will use to get num_glyphs in the future.
src/Makefile.am | 1 +
src/hb-ot-head-private.hh | 1 -
src/hb-ot-layout.cc | 1 +
- src/hb-ot-maxp-private.hh | 68
- +++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-maxp-private.hh | 68 +++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 70 insertions(+), 1 deletion(-)
commit e0b0710ae52bcc8c6fbd87dfae83818faa5d5f5f
Date: Wed May 11 00:24:34 2011 -0400
[API] Change signature of get_contour_point and get_kerning ffuncs
-
+
get_contour_point now takes glyph id before point_index.
-
+
get_kerning now takes a vector to fill-in.
- src/hb-font.cc | 56
- +++++++++++++++++++++-------------------
+ src/hb-font.cc | 56 +++++++++++++++++++++-------------------
src/hb-font.h | 16 +++++++-----
src/hb-ft.cc | 11 +++++---
src/hb-ot-layout-gdef-private.hh | 2 +-
src/hb-font.cc | 6 +-
src/hb-ot-layout-common-private.hh | 8 +--
src/hb-ot-layout-gdef-private.hh | 34 +++++-----
- src/hb-ot-layout-gpos-private.hh | 121
- ++++++++++++++++++-----------------
+ src/hb-ot-layout-gpos-private.hh | 121 ++++++++++++++++++-----------------
src/hb-ot-layout-gsub-private.hh | 24 +++----
src/hb-ot-layout-gsubgpos-private.hh | 11 ++--
src/hb-ot-layout-private.hh | 13 ----
[API] Pass down closure user_data to font funcs
src/hb-font-private.hh | 30 ++++++--
- src/hb-font.cc | 184
- +++++++++++++++++++++++++------------------------
+ src/hb-font.cc | 184 +++++++++++++++++++++++++------------------------
src/hb-font.h | 42 ++++++-----
src/hb-ft.cc | 103 ++++++++++++++-------------
4 files changed, 198 insertions(+), 161 deletions(-)
Date: Tue May 10 20:02:49 2011 -0400
[API] Add hb_font_create_sub_font() and hb_font_get_parent()
-
+
Not quite useful just yet.
src/hb-font-private.hh | 1 +
Date: Tue May 10 19:57:00 2011 -0400
[font] Fix internal sign of x/y_scale
-
- Should have been done as part of
- da975419884a535281745f30f4b32fee0bc8a7a1
+
+ Should have been done as part of da975419884a535281745f30f4b32fee0bc8a7a1
src/hb-font-private.hh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue May 10 19:12:49 2011 -0400
- Fix set implementation to be truly threadsafe even with destroy()
- callbacks
-
+ Fix set implementation to be truly threadsafe even with destroy() callbacks
+
The test/object test is passing again, instead of deadlocking.
src/hb-common.cc | 26 +++++------
src/hb-mutex-private.hh | 47 +++++++------------
src/hb-object-private.hh | 6 ++-
- src/hb-private.hh | 117
- ++++++++++++++++++++++++++++++++++++++---------
+ src/hb-private.hh | 117 ++++++++++++++++++++++++++++++++++++++---------
4 files changed, 128 insertions(+), 68 deletions(-)
commit 0c2ec1d78bfa0166ffd4afc204c2668d4f456ed9
Date: Tue May 10 19:11:27 2011 -0400
[test] Always initialize gthread such that our mutex() stuff is tested
-
+
Now the test/object test deadlocks as expected. Fix coming.
configure.ac | 1 +
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue May 10 19:00:07 2011 -0400
- [test/object] Test user_data with destroy() callback that calls
- user_data
-
+ [test/object] Test user_data with destroy() callback that calls user_data
+
Exposes the non-atomicity of user_data opertaions at this time because
- we call finish() while still locked and modifying the object.
- In fact,
+ we call finish() while still locked and modifying the object. In fact,
I'm surprised that it doesn't deadlock. It should.
test/test-object.c | 22 ++++++++++++++++++++++
[test] Test blob API
test/Makefile.am | 1 +
- test/test-blob.c | 280
- +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/test-blob.c | 280 +++++++++++++++++++++++++++++++++++++++++++++++++++++
test/test-buffer.c | 149 ++++++++++++++--------------
3 files changed, 359 insertions(+), 71 deletions(-)
[API] Simplify blob API, remove lock
TODO | 2 -
- src/hb-blob.cc | 206
- ++++++++++++++++++--------------------------
+ src/hb-blob.cc | 206 ++++++++++++++++++--------------------------
src/hb-blob.h | 19 ++--
src/hb-font.cc | 2 -
src/hb-open-type-private.hh | 32 ++++---
Date: Fri May 6 00:04:28 2011 -0400
[API] Add hb_language_get_default()
-
+
It uses locale information to detect default language. It's used by
hb_shape() whenever language is not set on the buffer.
-
- Not sure how to properly test it in the test suite. Tested by
- observing
- that with DejaVu Sans we select the proper local glyph version
- for U+431
+
+ Not sure how to properly test it in the test suite. Tested by observing
+ that with DejaVu Sans we select the proper local glyph version for U+431
under Serbian locale. See http://www.pango.org/ScriptGallery
src/hb-common.cc | 21 +++++++++++++++++++++
Date: Thu May 5 21:31:04 2011 -0400
[API] Add version macros and functions
-
+
Step version up to 0.5.0.
-
+
Also, fix to pass "make distcheck"
configure.ac | 24 ++++++++++++-----
src/Makefile.am | 9 +++++++
src/check-c-linkage-decls.sh | 2 +-
src/hb-common.cc | 29 +++++++++++++++++++++
- src/hb-version.h.in | 62
- ++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-version.h.in | 62 ++++++++++++++++++++++++++++++++++++++++++++
src/hb.h | 1 +
test/Makefile.am | 2 ++
7 files changed, 122 insertions(+), 7 deletions(-)
Date: Thu May 5 19:47:59 2011 -0400
Add disable-static libtool flag
-
- No one who builds harfbuzz static uses the autotools build system
- to do it.
+
+ No one who builds harfbuzz static uses the autotools build system to do it.
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Date: Thu May 5 19:47:12 2011 -0400
Remove win32-dll libtool flag
-
+
Since we're not win32-dll clean the way libtool docs define it.
configure.ac | 2 +-
Fix build with older glib
configure.ac | 2 +-
- test/hb-test.h | 55
- +++++++++++++++++++++++++++++++++----------------------
+ test/hb-test.h | 55 +++++++++++++++++++++++++++++++++----------------------
2 files changed, 34 insertions(+), 23 deletions(-)
commit 3935af1c0d0f53a5fd6054e1ee219f3adda42dca
Date: Thu May 5 16:09:45 2011 -0400
[buffer] Remove wrong optimization
-
+
While the cluster fields of the glyph string are usually sorted, they
wouldn't be in special cases (for example for non-native direction).
Blindly using bsearch is plain wrong. If we want to reintroduce this
Date: Thu May 5 15:33:19 2011 -0400
Make user_data access threadsafe
-
+
For now, by taking a global user_data mutex.
src/hb-common.cc | 25 +++++++++++++++++++++++--
Date: Thu May 5 15:14:04 2011 -0400
Use threadsafe set implementation for hb_language lookups
-
+
Note that the static variable has to be a global static, as gcc
implements local statics differently and that would require linking
to libstdc++, which we don't want.
Add hb_threadsafe_set_t
- src/hb-mutex-private.hh | 54
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-mutex-private.hh | 54 +++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-private.hh | 3 +--
2 files changed, 55 insertions(+), 2 deletions(-)
Use hb_array_t for hb_language_t mapping
- src/hb-common.cc | 48
- ++++++++++++++++++++++--------------------------
+ src/hb-common.cc | 48 ++++++++++++++++++++++--------------------------
src/hb-object-private.hh | 4 ++--
src/hb-private.hh | 19 +++++++++++++++----
3 files changed, 39 insertions(+), 32 deletions(-)
Replace fixed-size lookup_maps array with hb_array_t
src/hb-ot-map-private.hh | 13 +++++--------
- src/hb-ot-map.cc | 47
- +++++++++++++++++++++++++----------------------
+ src/hb-ot-map.cc | 47 +++++++++++++++++++++++++----------------------
src/hb-private.hh | 6 ++----
3 files changed, 32 insertions(+), 34 deletions(-)
Replace hb_map_t with hb_set_t which is more intuitive and flexible
src/hb-object-private.hh | 24 ++++++++++++++----------
- src/hb-private.hh | 44
- +++++++++++++++++---------------------------
+ src/hb-private.hh | 44 +++++++++++++++++---------------------------
test/test-object.c | 4 ++++
3 files changed, 35 insertions(+), 37 deletions(-)
Date: Thu May 5 00:21:16 2011 -0400
Make hb_mutex_*() macros take a pointer
-
+
More intuitive.
src/hb-blob.cc | 28 ++++++++++++++--------------
Date: Wed May 4 19:27:37 2011 -0400
Move code around
-
+
Mutex (and Windows.h by extension) are fairly isolated now.
src/Makefile.am | 8 ++--
src/hb-blob.cc | 24 ++++++++++-
src/hb-font-private.hh | 3 --
src/hb-font.cc | 12 +++---
- src/hb-mutex-private.hh | 105
- +++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-mutex-private.hh | 105 +++++++++++++++++++++++++++++++++++++++++++++++
src/hb-object-private.hh | 33 ++-------------
src/hb-unicode.cc | 1 -
8 files changed, 141 insertions(+), 105 deletions(-)
Date: Tue May 3 01:03:53 2011 -0400
[ft] Fix font->face handling
-
+
Don't use _cached()
src/hb-ft.cc | 7 +++++--
Date: Tue May 3 00:49:06 2011 -0400
Move Win32 thread-safety stuff to hb-object-private.h
-
+
The Win32 definitions for LONG, ULONG, etc conflicts with
hb-open-type.h. Avoid that by making sure hb-object-private.h
and hb-open-type.h are not included in the same compilation unit.
src/hb-common.cc | 54 ---------------------------------------
- src/hb-object-private.hh | 66
- ++++++++++++++++++++++++++++++++++++++++++++++++
- src/hb-private.hh | 66
- ------------------------------------------------
+ src/hb-object-private.hh | 66 ++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-private.hh | 66 ------------------------------------------------
3 files changed, 66 insertions(+), 120 deletions(-)
commit 266b34418c9bbe23ccaf29cb354b58c465fa3b22
Date: Tue May 3 00:35:53 2011 -0400
Refactor to keep hb-object-private.h and hb-open-type.h separate
-
+
Needed to be able to include <Windows.h> from hb-object-private.h.
src/hb-font.cc | 19 ++++----------
- src/hb-ot-layout-private.hh | 60
- +++++++++++++++++++++++++--------------------
+ src/hb-ot-layout-private.hh | 60 +++++++++++++++++++++++++--------------------
src/hb-ot-layout.cc | 28 ++++++++++++++++++---
3 files changed, 63 insertions(+), 44 deletions(-)
Date: Tue May 3 00:19:18 2011 -0400
[blob] Implement sub_blob() in terms of create()
-
+
Fixes problem with uninitialized sub_blob->mutex among other things.
-
+
Reported by Bradley Grainger.
src/hb-blob.cc | 12 +++++-------
Date: Tue May 3 00:09:16 2011 -0400
Implement win32 thread-safety stuff
-
+
Patch from Bradley Grainger.
- src/hb-common.cc | 54
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-common.cc | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-private.hh | 30 +++++++++++++++++++++++++-----
2 files changed, 79 insertions(+), 5 deletions(-)
Date: Mon May 2 20:57:28 2011 -0400
Add hb_mutex_free() and use it
-
+
Based on patch by Bradley Grainger.
src/hb-blob.cc | 1 +
[API] Make hb_font_create() take a face and reference it
src/hb-font-private.hh | 2 ++
- src/hb-font.cc | 42
- +++++++++++++++++++++++++---------------
+ src/hb-font.cc | 42 +++++++++++++++++++++++++---------------
src/hb-font.h | 26 ++++++++++++++-----------
src/hb-ft.cc | 7 +------
src/hb-ot-layout-gdef-private.hh | 2 +-
Date: Mon May 2 19:54:29 2011 -0400
Fix bug in array growth implementation
-
+
With this, test/object is now passing. Yay!
src/hb-private.hh | 24 +++++++++++-------------
Date: Mon May 2 19:52:47 2011 -0400
[test/object] Add test for object lifecycle stuff
-
+
Revealed many bugs in the (untested and known buggy) user_data
support.
test/Makefile.am | 4 +
- test/test-object.c | 316
- +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/test-object.c | 316 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 320 insertions(+)
commit f74d6c81f14f117b3cecfb65f0d5df22849c9a07
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Mon May 2 19:35:05 2011 -0400
- [buffer] Fail in _create() if we cannot pre-allocate the requested
- size
+ [buffer] Fail in _create() if we cannot pre-allocate the requested size
src/hb-buffer.cc | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
[test/unicode] Add script roundtrip tests for glib and ICU
- test/test-unicode.c | 70
- ++++++++++++++++++++++++++++++++++++++++++++++++-----
+ test/test-unicode.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 64 insertions(+), 6 deletions(-)
commit 7cda65935c73c277550f6ac12f6730e96d4852a7
[test/unicode] Better test chainup
- test/test-unicode.c | 54
- ++++++++++++++++++++++++++++++++++++++++++++++++-----
+ test/test-unicode.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 49 insertions(+), 5 deletions(-)
commit 250c59225ead28449deb11522dee3819480a19b4
[test/unicode] Port the _custom test to test all property setters
- test/test-unicode.c | 186
- +++++++++++++++++++++++++++++-----------------------
+ test/test-unicode.c | 186 +++++++++++++++++++++++++++++-----------------------
1 file changed, 104 insertions(+), 82 deletions(-)
commit e74b5b339ab0af53d893ec84a0955d5aa508fed3
Date: Mon May 2 13:52:17 2011 -0400
[test/buffer] Clean up testing
-
+
Getting the hang of how to cleanly use gtest.
- test/test-buffer.c | 154
- +++++++++++++++++++++++++++++------------------------
+ test/test-buffer.c | 154 +++++++++++++++++++++++++++++------------------------
1 file changed, 85 insertions(+), 69 deletions(-)
commit 819e9d9e5310e67e8dcce9fa885f8a086a9b9ee8
Date: Mon May 2 12:35:14 2011 -0400
ISO 15924 fixes
-
+
Update to http://unicode.org/iso15924
-
+
Fixes some of the test failures in test-unicode with ICU. Still
one more to fix before the test passes.
Date: Mon May 2 12:06:18 2011 -0400
[test/unicode] Add log messages
-
+
Use with --verbose to see what's failing
test/test-unicode.c | 9 ++++++---
Minor
- test/test-unicode.c | 478
- ++++++++++++++++++++++++++--------------------------
+ test/test-unicode.c | 478 ++++++++++++++++++++++++++--------------------------
1 file changed, 243 insertions(+), 235 deletions(-)
commit 60833efaf1310c3f18e150b61daaeb0074ae3d91
Date: Fri Apr 29 16:49:57 2011 -0400
[test/unicode] Add testing of all unicode properties
-
+
ICU fails for now.
test/hb-test.h | 4 +-
- test/test-unicode.c | 432
- +++++++++++++++++++++++++++++++++++++++++++++++++---
+ test/test-unicode.c | 432 +++++++++++++++++++++++++++++++++++++++++++++++++---
2 files changed, 416 insertions(+), 20 deletions(-)
commit da96ee072fa3544c3d36cf0b82ada11806789d70
test/test-c.c | 1 +
test/test-common.c | 3 +-
test/test-cplusplus.cc | 1 +
- test/test-unicode.c | 112
- +++++++++++++++++++++++++++-------------------
+ test/test-unicode.c | 112 +++++++++++++++++++++++++++-------------------
7 files changed, 74 insertions(+), 49 deletions(-)
commit 13db3d40bfc09c68f9761a71435b1840b9d34099
[test/buffer] Add more extensive UTF-8 test data from glib
src/hb-buffer.cc | 2 +-
- test/test-buffer.c | 317
- ++++++++++++++++++++++++++++++++++++++++++++++++++---
+ test/test-buffer.c | 317 ++++++++++++++++++++++++++++++++++++++++++++++++++---
2 files changed, 303 insertions(+), 16 deletions(-)
commit dfec67f958482e5c3bb01e06b08694cd4ded6f66
Date: Thu Apr 28 17:10:44 2011 -0400
Add test suite infrastructure
-
+
Wraps around glib for convenience and ease of use.
test/Makefile.am | 1 +
- test/hb-test.h | 132
- ++++++++++++++++++++++++++++++++++++++++++++++++----
+ test/hb-test.h | 132 ++++++++++++++++++++++++++++++++++++++++++++++++----
test/test-buffer.c | 29 ++++++------
test/test-common.c | 14 +++---
test/test-unicode.c | 32 ++++++-------
Date: Thu Apr 28 16:03:29 2011 -0400
[API Remove hb_font_funcs_copy()
-
+
Will be adding font_funcs subclassing instead.
src/hb-font.cc | 13 -------------
Date: Thu Apr 28 12:56:49 2011 -0400
[buffer] More error handling
-
+
Should be all set now.
src/hb-buffer-private.hh | 2 +-
- src/hb-buffer.cc | 60
- +++++++++++++++++++++++++++++++++---------------
+ src/hb-buffer.cc | 60 +++++++++++++++++++++++++++++++++---------------
2 files changed, 43 insertions(+), 19 deletions(-)
commit 15c57e04bf05026ef424f8ae912d2f379301bf93
Date: Thu Apr 28 12:28:54 2011 -0400
[test/buffer] Add test pre_alloc(); hangs in the buffer code right now
-
+
Because the following loop overflows:
-
+
while (size > new_allocated)
new_allocated += (new_allocated >> 1) + 32;
[test/buffer] Test reset(), set_length(), and set/get_unicode_data()
- test/test-buffer.c | 66
- ++++++++++++++++++++++++++++++++++++++++++++++++------
+ test/test-buffer.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 59 insertions(+), 7 deletions(-)
commit db126b5448ec802285cf2b6f0e7da412d02dfb28
[test/buffer] Test reverse() and reverse_clusters()
- test/test-buffer.c | 61
- ++++++++++++++++++++++++++++++++++++++++++++++++++----
+ test/test-buffer.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 57 insertions(+), 4 deletions(-)
commit 5fa849b77d49da2212825ebb1bea9145713b8449
src/hb-blob.h | 12 ++++++++++++
src/hb-buffer.cc | 16 ++++++++++++++++
src/hb-buffer.h | 10 ++++++++++
- src/hb-font.cc | 51
- +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-font.cc | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-font.h | 36 ++++++++++++++++++++++++++++++++++++
src/hb-unicode.cc | 17 +++++++++++++++++
src/hb-unicode.h | 12 ++++++++++++
Move code around
- src/hb-object-private.hh | 153
- ++++++++++-------------------------------------
+ src/hb-object-private.hh | 153 ++++++++++-------------------------------------
src/hb-private.hh | 136 +++++++++++++++++++++++++++++++++++++----
2 files changed, 157 insertions(+), 132 deletions(-)
Add initial implementation of user_data to objects
src/hb-common.h | 11 ++-
- src/hb-object-private.hh | 186
- ++++++++++++++++++++++++++++++++++++++++++++++-
+ src/hb-object-private.hh | 186 ++++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 193 insertions(+), 4 deletions(-)
commit 47e71d9661946a4ffb96026bf1d697d788414ab5
Date: Wed Apr 27 15:10:12 2011 -0400
GNOME Bug 612402 - (hb-arm) HarfBuzz compilation fix for arm
-
+
With gcc on arm, request 8-bit structure alignment.
configure.ac | 10 +++++++++-
Date: Wed Apr 27 14:48:19 2011 -0400
[API] Add hb_direction_from/to_string()
-
+
And hb-view --direction argument.
TODO | 1 -
Date: Wed Apr 27 01:49:03 2011 -0400
Replace simple macros with inline functions for better type safety
-
+
Now that we use C++ for all source code, lets benefit from it!
-
+
The hb_be_int16/32_get/put/eq() macros grow code size if replaced with
inline functions, so leave them as is.
Date: Wed Apr 27 01:41:24 2011 -0400
Don't return in void function
-
+
Would have been nice if gcc had warned...
src/hb-private.hh | 2 +-
Further simplify object handling
- src/hb-object-private.hh | 53
- ++++++++++++++++++++++++------------------------
+ src/hb-object-private.hh | 53 ++++++++++++++++++++++++------------------------
1 file changed, 27 insertions(+), 26 deletions(-)
commit fca368c4682624346a0aaee690e1ad6ed4c0b337
Date: Thu Apr 21 18:24:02 2011 -0400
Add hb_object_header_t which is the common part of all objects
-
+
Makes way for adding arbitrary user_data support.
src/hb-blob-private.hh | 3 +-
src/hb-ft.cc | 3 +-
src/hb-glib.cc | 3 +-
src/hb-icu.cc | 3 +-
- src/hb-object-private.hh | 95
- ++++++++++++++++++++++++++---------------------
+ src/hb-object-private.hh | 95 ++++++++++++++++++++++++++---------------------
src/hb-private.hh | 5 +--
src/hb-unicode-private.hh | 6 ++-
src/hb-unicode.cc | 3 +-
Date: Thu Apr 21 16:59:10 2011 -0400
[hb-view] Accept numbers in feature tag name
-
+
Reported by Adam Twardoch.
src/hb-view.c | 6 +++---
Date: Thu Apr 21 16:55:17 2011 -0400
Remove obsolete comment
-
+
Talking to Ryan Lortie, he thinks my comment doesn't make sense.
-
+
So I'm making the getter const. Note that g_atomic_int_get()
casts that away itself, so we don't need to worry about that
(which kinda makes me uncomfortable actually).
Date: Thu Apr 21 16:34:22 2011 -0400
Add ASSERT_STATIC_EXPR macro
-
+
Unused right now.
src/hb-private.hh | 2 ++
Date: Thu Apr 21 15:08:01 2011 -0400
[API] Allow negative font x_scale/y_scale
-
+
I was reconsidering whether y should grow down, since all three/four
times I've used this API I was tricked and got that wrong in my use.
So I was very inclined to make y grow down instead of up. However,
- considering that the font space has y up and it would be very
- confusing
+ considering that the font space has y up and it would be very confusing
for callbacks to work against that, I decided that what I really want
- is for the user to be able to set y_scale to a negative number
- to imply
+ is for the user to be able to set y_scale to a negative number to imply
that user-space y grows down.
-
- Changing x_scale/y_scale from unsigned int to int allows that,
- and I've
- made pango to use that instead of negating glyph y_offset later.
- hb-ft
+
+ Changing x_scale/y_scale from unsigned int to int allows that, and I've
+ made pango to use that instead of negating glyph y_offset later. hb-ft
however still has y group up. I *guess* that's how FreeType works?
I'm not sure, FreeType docs don't make this clear...
-
+
I'm happy with the resolution :-).
src/hb-font.cc | 8 ++++----
[icu] Remove big script switch(), rely on reverse-lookup
- src/hb-icu.cc | 137
- ++++------------------------------------------------------
+ src/hb-icu.cc | 137 ++++------------------------------------------------------
1 file changed, 9 insertions(+), 128 deletions(-)
commit d18431b4cd8c1b14523733cd60a62b862f5b471f
Date: Wed Apr 20 18:50:27 2011 -0400
Rename all private sources and headers to C++ files
-
+
So we can liberally use the simple features of C++ that parts of the
codebase is already using.
- src/Makefile.am | 17
- +++++++++--------
+ src/Makefile.am | 17 +++++++++--------
src/{hb-blob-private.h => hb-blob-private.hh} | 8 ++++----
src/hb-blob.cc | 4 ++--
src/hb-buffer-private.hh | 2 +-
Date: Wed Apr 20 17:21:23 2011 -0400
[API] Make hb_face_reference_table() return empty blob instead of NULL
-
+
The idea here is that:
-
+
- Like pretty much all other API in harfbuzz, user does not have to
check for NULL.
-
+
- In any caller code, the case of missing table should be handled
exactly the same way that a too-short table is handled. Turning
a non-existent talbe into a table of size 0 makes the user code
Date: Wed Apr 20 17:03:00 2011 -0400
[API] Rename hb_face_get_table() to hb_face_reference_table()
-
+
That correctly reflects the reference ownership transfer happening.
src/hb-font.cc | 4 ++--
Date: Wed Apr 20 15:49:31 2011 -0400
[API] Remove hb_*_get_reference_count()
-
+
This was a bizzare piece of API that I inherited from cairo. It has
- been wrong adding them to cairo in the first place. Remove them
- before
+ been wrong adding them to cairo in the first place. Remove them before
someone uses them!
src/hb-blob.c | 6 ------
[test] Add test for headers included from C and C++
test/Makefile.am | 17 +++++++++++++++++
- test/test-c.c | 49
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ test/test-c.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
test/test-cplusplus.cc | 29 +++++++++++++++++++++++++++++
3 files changed, 95 insertions(+)
Date: Wed Apr 20 03:03:32 2011 -0400
[API] font: move user_data before destroy()
-
+
This is the common convention for language binding tools.
src/hb-font-private.h | 4 ++--
Date: Wed Apr 20 02:59:28 2011 -0400
[API] blob: move user_data before destroy()
-
+
This is the common convention for language binding tools.
src/hb-blob-private.h | 2 +-
Date: Wed Apr 20 02:54:42 2011 -0400
[icu] Add two-way script conversion functions
-
+
Also optimizes the common-direction script lookup.
src/hb-common.c | 5 +-
- src/hb-icu.cc | 205
- +++++++++++++++++++++++++++++-------------------------
+ src/hb-icu.cc | 205 +++++++++++++++++++++++++++++-------------------------
src/hb-icu.h | 9 +++
test/test-types.c | 2 +-
4 files changed, 124 insertions(+), 97 deletions(-)
Date: Wed Apr 20 02:44:29 2011 -0400
[glib] Add two-way script conversion functions
+
+ Also optimizes the common-direction script lookup to be an array lookup.
- Also optimizes the common-direction script lookup to be an array
- lookup.
-
- src/hb-glib.cc | 270
- ++++++++++++++++++++++++++++++---------------------------
+ src/hb-glib.cc | 270 ++++++++++++++++++++++++++++++---------------------------
src/hb-glib.h | 8 ++
2 files changed, 148 insertions(+), 130 deletions(-)
Remove verbose comments
src/hb-glib.cc | 194 ++++++++++++++++++++---------------------
- src/hb-icu.cc | 266
- ++++++++++++++++++++++++++++-----------------------------
+ src/hb-icu.cc | 266 ++++++++++++++++++++++++++++-----------------------------
2 files changed, 230 insertions(+), 230 deletions(-)
commit fb194b8794898f51eb596fa4092c26606889d376
src/hb-ot-shape.cc | 14 +-
src/hb-shape.cc | 4 +-
...{hb-unicode-private.h => hb-unicode-private.hh} | 65 ++++---
- src/{hb-unicode.c => hb-unicode.cc} | 213
- +++++++++------------
+ src/{hb-unicode.c => hb-unicode.cc} | 213 +++++++++------------
src/hb-unicode.h | 57 +++---
test/test-unicode.c | 23 ++-
10 files changed, 237 insertions(+), 244 deletions(-)
Date: Wed Apr 20 00:19:20 2011 -0400
[API] unicode: rework virtual functions for subclassing
-
+
Unicode data providers can now be subclassed, including support for
chain-up. The interface should now be nicely bindable, as well.
-
+
Also fix glib unicode funcs that where broken after hb_script_t
changes. Nicely caught by the test-unicode.c added in this commit.
src/hb-ot-shape.cc | 9 +-
src/hb-shape.cc | 2 +-
src/hb-unicode-private.h | 17 ++++
- src/hb-unicode.c | 231
- +++++++++++++++++++++++++----------------------
+ src/hb-unicode.c | 231 +++++++++++++++++++++++++----------------------
src/hb-unicode.h | 68 +++++++-------
test/Makefile.am | 1 +
- test/test-unicode.c | 215
- +++++++++++++++++++++++++++++++++++++++++++
+ test/test-unicode.c | 215 +++++++++++++++++++++++++++++++++++++++++++
9 files changed, 610 insertions(+), 164 deletions(-)
commit f85faee9b3cb841ea977403945e2c877ab32b97a
Date: Tue Apr 19 00:32:19 2011 -0400
[API] Add hb_buffer_allocation_successful()
-
+
Returns the error status of the buffer.
src/hb-buffer.cc | 6 ++++++
Date: Fri Apr 15 18:34:45 2011 -0400
[API] Rename hb_buffer_ensure() to hb_buffer_pre_allocate()
-
+
The new name is self-documenting.
src/hb-buffer.cc | 4 ++--
Date: Fri Apr 15 18:32:36 2011 -0400
[API} hb_buffer_get_glyph_{infos,positions}: Add length out parameter
-
- Return the length, whenever we return an array. Makes it easier
- on the
+
+ Return the length, whenever we return an array. Makes it easier on the
language bindings.
src/hb-buffer.cc | 12 ++++++++++--
Date: Mon Apr 18 23:40:21 2011 -0400
[API] Use ISO 15924 tags for hb_script_t
-
+
This simplifies the code, reduces static data, and makes the design
more extensible to future additions of new scripts.
- src/hb-common.c | 411
- ++++---------------------------------
+ src/hb-common.c | 411 ++++---------------------------------
src/hb-common.h | 199 +++++++++---------
src/hb-ot-map.cc | 4 +-
src/hb-ot-shape-complex-private.hh | 3 +-
Date: Fri Apr 15 19:26:24 2011 -0400
Change buffer default properties to invalid
-
+
This includes HB_DIRECTION_INVALID and HB_SCRIPT_INVALID.
-
+
The INVALID will cause a "guess whatever from the text" in hb_shape().
While it's not ideal, it works better than the previous defaults at
least (HB_DIRECTION_LTR and HB_SCRIPT_COMMON).
Move enum types to hb-common.h
- src/hb-common.c | 406
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-common.c | 406 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-common.h | 170 +++++++++++++++++++++++
- src/hb-unicode.c | 406
- -------------------------------------------------------
+ src/hb-unicode.c | 406 -------------------------------------------------------
src/hb-unicode.h | 166 -----------------------
4 files changed, 576 insertions(+), 572 deletions(-)
Date: Fri Apr 15 18:35:08 2011 -0400
[API] Remove hb_buffer_clear()
-
+
One should use hb_buffer_reset() really.
src/hb-buffer.cc | 16 +++++-----------
[test] Test hb-buffer.h
test/Makefile.am | 8 ++-
- test/test-buffer.c | 195
- +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/test-buffer.c | 195 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 202 insertions(+), 1 deletion(-)
commit 72d89404c2837d578f5305456c817130b6a15c73
Date: Mon Apr 11 19:43:51 2011 -0400
[test] Actually hook up hb_script_t tests
-
+
I really shall find a way to automate the test enumeration. Otherwise
- it's too easy to add a test and wrongly hook it up. Did it twice
- today.
+ it's too easy to add a test and wrongly hook it up. Did it twice today.
test/test-types.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
src/hb-buffer.h | 1 -
src/hb-common.c | 92 ++++++++++++++++++++++++++++++++++++++++-
src/hb-common.h | 42 +++++++++++++------
- src/hb-language.c | 120
- ------------------------------------------------------
+ src/hb-language.c | 120 ------------------------------------------------------
src/hb-language.h | 46 ---------------------
src/hb-ot-tag.h | 1 -
src/hb.h | 1 -
Rename hb_category_t to hb_unicode_general_category_t
src/hb-glib.c | 2 +-
- src/hb-icu.c | 64
- ++++++++++++++++++-------------------
+ src/hb-icu.c | 64 ++++++++++++++++++-------------------
src/hb-ot-shape-complex-arabic.cc | 8 ++---
src/hb-ot-shape-private.hh | 2 +-
src/hb-ot-shape.cc | 2 +-
src/hb-unicode.c | 4 +--
- src/hb-unicode.h | 66
- +++++++++++++++++++--------------------
+ src/hb-unicode.h | 66 +++++++++++++++++++--------------------
7 files changed, 74 insertions(+), 74 deletions(-)
commit 4188096a7722f09ffa9319986c0286071da10a27
Date: Mon Apr 11 14:58:28 2011 -0400
Make HB_TAG_CHAR4 private
-
+
It's just sugar.
src/hb-common.h | 5 +----
Date: Mon Apr 11 13:12:37 2011 -0400
Rename HB_TAG_STR() to HB_TAG_CHAR4()
-
+
The problem with HB_TAG_STR() was that it expected a string of size 4
exactly, and unlike hb_tag_from_string() it doesn't pad the tag with
space characters. So, the new name is more appropriate.
Date: Mon Apr 11 12:46:49 2011 -0400
Add an in-tree test suite
-
+
Uses the glib testing framework. Wrote unit tests for hb-common.h
types.
test/Makefile.am | 18 +++++++++
test/Makefile.decl | 90 ++++++++++++++++++++++++++++++++++++++++++++
test/hb-test.h | 67 +++++++++++++++++++++++++++++++++
- test/test-types.c | 108
- +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/test-types.c | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 284 insertions(+), 1 deletion(-)
commit d77b76200efbaa0611691920f9f2018b1e8be340
Date: Mon Apr 11 12:29:52 2011 -0400
Add few more paratheses to the HB_TAG macro
-
+
Never hurts.
src/hb-common.h | 2 +-
Date: Mon Apr 11 11:49:08 2011 -0400
Remove warning message from public header file
-
- Since we now assert thos in hb-private.h, the int types cannot
- be wrong.
+
+ Since we now assert thos in hb-private.h, the int types cannot be wrong.
(Except for when someone else includes hb-common.h in a very broken
configuration, but that's not our problem!)
-
+
Plus, we don't use inline in the public headers, so remove that too.
src/hb-common.h | 7 -------
Date: Wed Apr 6 14:04:56 2011 -0400
Disable 'cswh' by default except for Arabic shaper
-
+
That better matches OpenType spec. Note that we enable it for all
Arabic-shaper scripts. Ie. we enable it by default for Syriac too,
but the SyriacOT spec does not require it. I think this is a more
Date: Mon Apr 4 15:36:51 2011 -0400
[hb-view] setlocale (LC_ALL, "")
-
+
For now we don't use anything from the locale, but we should default
to using $LANG, etc, if --language is not specified. Right?
Date: Mon Apr 4 14:50:09 2011 -0400
[hb-view] Rewrite --features parsing, with range support
-
+
The --features parsing handles errors now. More importantly, it
allos limiting individual features to specific byte ranges. The
format is Python-esque. Here is how it all works:
-
+
Syntax: Value: Start: End:
-
+
Setting value:
"kern" 1 0 ∞ # Turn feature on
"+kern" 1 0 ∞ # Turn feature off
"kern=0" 0 0 ∞ # Turn feature off
"kern=1" 1 0 ∞ # Turn feature on
"kern=2" 2 0 ∞ # Choose 2nd alternate
-
+
Setting index:
"kern[]" 1 0 ∞ # Turn feature on
"kern[:]" 1 0 ∞ # Turn feature on
"kern[:5]" 1 0 5 # Turn feature on, partial
"kern[3:5]" 1 3 5 # Turn feature on, range
"kern[3]" 1 3 3+1 # Turn feature on, single char
-
+
Mixing it all:
-
+
"kern[3:5]=0" 1 3 5 # Turn feature off for range
- src/hb-view.c | 169
- +++++++++++++++++++++++++++++++++++++++++++++-------------
+ src/hb-view.c | 169 +++++++++++++++++++++++++++++++++++++++++++++-------------
1 file changed, 132 insertions(+), 37 deletions(-)
commit ccc6745afaa68ce7497a6cd02ce85986d3c863d0
Date: Mon Apr 4 14:49:50 2011 -0400
[hb-view] Use cached hb-ft face creation
-
+
Avoids recreating the face the second time we call draw().
src/hb-view.c | 2 +-
Date: Mon Apr 4 14:45:28 2011 -0400
[hb-view] Add --debug
-
+
Frees all allocated memory before exiting. Useful for valgrind run.
src/hb-view.c | 17 +++++++++++++++++
Date: Fri Apr 1 15:48:43 2011 -0400
[hb-view] Support --features
-
+
Accepts values like:
-
+
--features="-mkmk,aalt=2,calt=1,+cswh"
-
+
A minus sign means "=0", a plus sign means "=1". Default is "=1".
A minus sign overrides an explicit value.
- src/hb-view.c | 70
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ src/hb-view.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 68 insertions(+), 2 deletions(-)
commit f48ff19b629070d13cee3c0eeeb06c98992f93c6
Date: Wed Mar 16 17:36:32 2011 -0300
Add script to/from ISO 15924 tag support
-
+
Also adds --script support to hb-view.
-
+
If a script tag is not known to us, we pass the ISO 15924 tag around.
Right now, the OT layer ignores that, but we can fix it to blindly
convert that to an OT script tag.
src/hb-ot-tag.c | 4 +
- src/hb-unicode.c | 273
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-unicode.c | 273 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-unicode.h | 8 +-
src/hb-view.c | 10 +-
4 files changed, 293 insertions(+), 2 deletions(-)
Date: Wed Mar 16 14:53:32 2011 -0300
Let hb_shape() guess script and direction...
-
+
- Rename HB_SCRIPT_INVALID_CODE to HB_SCRIPT_INVALID
-
+
- Add HB_DIRECTION_INVALID
-
+
- Make hb_script_get_horizontal_direction() public
-
+
- Make hb_shape() guess script from buffer text (first non-common
- non-inherit script) if buffer script is set to HB_SCRIPT_INVALID
- (this
+ non-inherit script) if buffer script is set to HB_SCRIPT_INVALID (this
is NOT the default.)
-
- - Make hb_shape() guess direction from buffer script if buffer
- direction
+
+ - Make hb_shape() guess direction from buffer script if buffer direction
is set to HB_DIRECTION_INVALID (this is NOT the default.)
-
+
- Make hb-view.c set INVALID script and direction on the buffer.
-
- The above changes are meant to make hb-view fairly useful for
- uni-script
- uni-direction text. The guessing behavior however is NOT the
- default of
- hb_shape() and must be asked for explicitly. This is intended,
- because
+
+ The above changes are meant to make hb-view fairly useful for uni-script
+ uni-direction text. The guessing behavior however is NOT the default of
+ hb_shape() and must be asked for explicitly. This is intended, because
the guess is not a suitable substitute to full-fledged bidi and script
segmentation. It's just a testing tool.
src/hb-common.h | 3 ++-
src/hb-icu.c | 2 +-
src/hb-ot-shape.cc | 3 ++-
- src/hb-shape.cc | 52
- ++++++++++++++++++++++++++++++++++++++++++------
+ src/hb-shape.cc | 52 ++++++++++++++++++++++++++++++++++++++++++------
src/hb-unicode-private.h | 4 ----
src/hb-unicode.c | 2 +-
src/hb-unicode.h | 8 +++++++-
Date: Wed Feb 23 12:47:56 2011 -0500
Default background color shall either be white or transparent
-
+
Definitely not black!
src/hb-view.c | 2 +-
Date: Tue Feb 22 18:06:19 2011 -0500
Add initial hb-view tool
-
+
Currently doesn't handle script or direction.
configure.ac | 18 +++
src/Makefile.am | 14 +++
- src/hb-view.c | 342
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-view.c | 342 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 374 insertions(+)
commit 82438c6ad5f60b6afc75c48cef72e18bef532468
Date: Tue Feb 15 18:37:29 2011 -0500
Fix #pragma message for MSVC.
-
+
__LOC__ was renamed to _HB__LOC__ in cd7555 but the corresponding
change wasn't made in hb-private.h.
Date: Mon Jan 10 02:27:49 2011 -0500
Don't use the m4/ dir
-
+
We just require people to have libtool, pkg-config, etc installed
when running autogen.sh
Bug 31174 - Update autotools configuration
Makefile.am | 2 +
- autogen.sh | 188
- ++++-------------------------------------------------------
+ autogen.sh | 188 ++++-------------------------------------------------------
configure.ac | 22 +++++--
3 files changed, 29 insertions(+), 183 deletions(-)
Date: Thu Jan 6 14:58:52 2011 -0500
Fix ChanContext backtrack matching with GPOS
-
+
Reported on mailing list by Keith Stribley and Khaled Hosny.
src/hb-buffer-private.hh | 5 +++--
Date: Thu Jan 6 14:44:14 2011 -0500
Remove unused realloc
-
+
We always allocate and grow str and pos together.
src/hb-buffer.cc | 6 ------
Date: Sun Dec 26 20:52:40 2010 -0500
Remove Graphite backend
-
+
It was unmaintained and the code has to be replaced to use the new
grphite-ng code base.
configure.ac | 6 --
src/Makefile.am | 14 ---
- src/hb-graphite.cc | 310
- -----------------------------------------------------
+ src/hb-graphite.cc | 310 -----------------------------------------------------
src/hb-graphite.h | 47 --------
4 files changed, 377 deletions(-)
Docs
- src/hb-unicode.h | 60
- ++++++++++++++++++++++++++++----------------------------
+ src/hb-unicode.h | 60 ++++++++++++++++++++++++++++----------------------------
1 file changed, 30 insertions(+), 30 deletions(-)
commit d86a5b3c5752abcc791724035ba4115958e6b5e2
Date: Tue Dec 21 18:36:25 2010 -0500
Bug 32274 - classic mongolian shaper
-
+
Add support for classic Mongolian script to the Arabic shaper.
-
+
Still work to be done around U+180E MONGOLIAN VOWEL SEPARATOR as it
should not be included in the final glyph stream the same way that
ZWNJ, etc should not appear in the final glyph stream.
-
+
But the joining part should be done.
-
- There remains the question of how should the U+18A9 MONGOLIAN
- LETTER ALI
+
+ There remains the question of how should the U+18A9 MONGOLIAN LETTER ALI
GALI DAGALGA be handled as it has General Category NSM but a letter
- nonetheless. For now, our generic logic makes this a joining
- T instead
+ nonetheless. For now, our generic logic makes this a joining T instead
of joining D as other Mongolian letters are.
src/hb-ot-shape-complex-arabic.cc | 8 ++++++++
Date: Tue Dec 21 14:19:32 2010 -0500
Reroute Mandaic shaping through the Arabic shaper
-
+
We added Mandaic joining data to the Arabic shaper a while ago, but
were not actually using the Arabic shaper for Mandaic. Fixed.
Annotate the Arabic joining table with block information
- src/gen-arabic-joining-table.py | 93
- +++++++++++++++++++++-------------
+ src/gen-arabic-joining-table.py | 93 +++++++++++++++++++++-------------
src/hb-ot-shape-complex-arabic-table.h | 24 +++++++--
2 files changed, 80 insertions(+), 37 deletions(-)
Date: Mon Dec 13 14:13:35 2010 -0500
Mozilla Bug 618592 - freeze on typekit
-
+
Fix apply_lookup() for zero-input broken fonts.
src/hb-ot-layout-gsubgpos-private.hh | 4 ++--
Date: Tue Dec 7 16:20:42 2010 -0500
Fix arabic shaping of LTR text
-
+
We should ensure-direction before doing any complex work. The only
- exception is mirroring that needs to see the original / final
- direction,
+ exception is mirroring that needs to see the original / final direction,
not the native. Handle that.
src/hb-ot-shape.cc | 6 +++---
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue Nov 30 00:57:15 2010 -0500
- Bug 31965 - some GNU/Linux distributions lack icu.pc but have
- icu-config
-
+ Bug 31965 - some GNU/Linux distributions lack icu.pc but have icu-config
+
Patch from suzuki toshiya.
configure.ac | 10 +++++++++-
Date: Sun Nov 28 19:39:47 2010 -0500
Adjust pyx files to reflect change from int to hb_var_int_t
-
+
Patch from Thomas Hunger.
contrib/python/lib/harfbuzz.pyx | 7 +++++--
Fix failing checks
- src/hb-ot-shape-complex-arabic-table.h | 37
- ++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-arabic-table.h | 37 ++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
commit 9da26d6669e7f3b91ba37e71f6f8a6e2ea806688
Move generated table to its own file
src/Makefile.am | 1 +
- src/hb-ot-shape-complex-arabic-table.h | 619
- ++++++++++++++++++++++++++++++++
- src/hb-ot-shape-complex-arabic.cc | 621
- +--------------------------------
+ src/hb-ot-shape-complex-arabic-table.h | 619 ++++++++++++++++++++++++++++++++
+ src/hb-ot-shape-complex-arabic.cc | 621 +--------------------------------
3 files changed, 621 insertions(+), 620 deletions(-)
commit 14d784116b08685425e4ddcb1c1f813dbe2b2986
Date: Wed Nov 17 16:52:58 2010 -0500
Update Arabic joining table to include Mandaic
-
- Mandaic was added to Unicode 6.0, but the joining data was not
- updated.
- Draft ArabicShaping.txt from 6.1 includes the joining data for
- Mandaic.
+
+ Mandaic was added to Unicode 6.0, but the joining data was not updated.
+ Draft ArabicShaping.txt from 6.1 includes the joining data for Mandaic.
Use that.
src/gen-arabic-joining-table.py | 45 ++++++++++----
- src/hb-ot-shape-complex-arabic.cc | 123
- ++++++++++++++++++++++++++++++++------
+ src/hb-ot-shape-complex-arabic.cc | 123 ++++++++++++++++++++++++++++++++------
2 files changed, 137 insertions(+), 31 deletions(-)
commit 43bf2f7f1ec427c431e2ee2fd1a9345e7d5c9718
Date: Wed Nov 17 14:49:40 2010 -0500
Add OpenType script tags for Unicode 5.2 and Unicode 6.0 scripts
-
+
Based on tags proposed by Microsoft for inclusion in OpenType.
src/hb-ot-tag.c | 34 +++++++++++++++++-----------------
Date: Wed Nov 17 14:25:44 2010 -0500
Change HB_SCRIPT_MEITEI_MAYEK to HB_SCRIPT_MEETEI_MAYEK
-
+
The new name matches the Unicode name. Reported by Jonathan Kew.
src/hb-icu.c | 2 +-
Date: Wed Nov 3 15:50:36 2010 -0400
More "unreached code" warning fixes
-
+
Ugly :(.
src/hb-blob.c | 48 ++++++++++++++++++++++++------------------------
Minor code shuffling
src/hb-ot-layout-private.hh | 21 +++-------------
- src/hb-ot-layout.cc | 61
- +++++++++++++++++++++++++++++++++------------
+ src/hb-ot-layout.cc | 61 +++++++++++++++++++++++++++++++++------------
2 files changed, 48 insertions(+), 34 deletions(-)
commit 11e3ec444a85fc72541823c2e98cc92c4ceb19af
src/hb-blob.c | 2 +-
src/hb-object-private.h | 12 +++---
- src/hb-open-type-private.hh | 84
- +++++++++++++++++-------------------
+ src/hb-open-type-private.hh | 84 +++++++++++++++++-------------------
src/hb-ot-layout-gsubgpos-private.hh | 2 +-
src/hb-private.h | 3 +-
5 files changed, 49 insertions(+), 54 deletions(-)
Move code around
- src/hb-ot-layout-gpos-private.hh | 59
- ++++++++++++++++++++++++++++++++++++++++
- src/hb-ot-layout.cc | 59
- ++--------------------------------------
+ src/hb-ot-layout-gpos-private.hh | 59 ++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout.cc | 59 ++--------------------------------------
src/hb-ot-layout.h | 4 +--
src/hb-ot-shape.cc | 2 +-
4 files changed, 63 insertions(+), 61 deletions(-)
src/hb-ot-layout-gdef-private.hh | 21 +++++++++++++++
src/hb-ot-layout-private.hh | 27 ++++++++++++++++---
- src/hb-ot-layout.cc | 56
- ++++++----------------------------------
+ src/hb-ot-layout.cc | 56 ++++++----------------------------------
3 files changed, 52 insertions(+), 52 deletions(-)
commit 6334658fe79d6acfb46a2a147721b78f92510ebb
src/hb-ot-layout-gsub-private.hh | 8 ++++----
src/hb-ot-layout-gsubgpos-private.hh | 10 +++++-----
src/hb-ot-layout-private.hh | 4 ++--
- src/hb-ot-layout.cc | 36
- ++++++++++++++++++------------------
+ src/hb-ot-layout.cc | 36 ++++++++++++++++++------------------
src/main.cc | 4 ++--
7 files changed, 43 insertions(+), 39 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Wed Oct 27 17:39:01 2010 -0400
- WIP removing external synthesized GDEF support and implementing
- it internally
+ WIP removing external synthesized GDEF support and implementing it internally
TODO | 2 -
src/hb-buffer-private.hh | 4 -
src/hb-ot-layout-gsub-private.hh | 66 ++++++-----------
src/hb-ot-layout-gsubgpos-private.hh | 29 +++++++-
src/hb-ot-layout-private.hh | 29 +++-----
- src/hb-ot-layout.cc | 138
- +++++------------------------------
+ src/hb-ot-layout.cc | 138 +++++------------------------------
src/hb-ot-layout.h | 26 -------
src/hb-ot-shape.cc | 10 +++
12 files changed, 98 insertions(+), 227 deletions(-)
Minor renaming
- src/hb-buffer-private.hh | 41
- ++++++++++++++++++++--------------------
+ src/hb-buffer-private.hh | 41 ++++++++++++++++++++--------------------
src/hb-buffer.cc | 20 ++++++++++----------
src/hb-ot-layout-gsub-private.hh | 8 ++++----
src/hb-ot-shape.cc | 6 +++---
Move setting lig_id/component out of buffer and to the gsub code
src/hb-buffer-private.hh | 30 +++++++----------------
- src/hb-buffer.cc | 52
- +++++++---------------------------------
+ src/hb-buffer.cc | 52 +++++++---------------------------------
src/hb-ot-layout-gsub-private.hh | 27 ++++++++++++---------
3 files changed, 34 insertions(+), 75 deletions(-)
Date: Wed Oct 27 16:25:28 2010 -0400
Always allocate new ligature id
-
+
No practical point in reusing ligature ids.
src/hb-ot-layout-gsub-private.hh | 5 +----
Date: Wed Oct 27 14:42:15 2010 -0400
Get rid of the OpenType-specific internal buffer representation
-
+
Add variant integers to buffer item types. More cleanup coming.
TODO | 2 --
src/hb-buffer-private.hh | 35 ++++++----------------
- src/hb-buffer.cc | 62
- +++++++++++++++++++--------------------
+ src/hb-buffer.cc | 62 +++++++++++++++++++--------------------
src/hb-buffer.h | 2 +-
src/hb-ot-layout-gpos-private.hh | 24 +++++++--------
src/hb-ot-layout-gsub-private.hh | 2 +-
Date: Wed Oct 27 14:09:27 2010 -0400
Supposedly implement vertical support in GPOS
-
+
Not tested at all.
src/hb-ot-layout-gpos-private.hh | 27 ++++++++++++++++++++-------
- src/hb-ot-layout.cc | 39
- ++++++++++++++++++++++++---------------
+ src/hb-ot-layout.cc | 39 ++++++++++++++++++++++++---------------
2 files changed, 44 insertions(+), 22 deletions(-)
commit 9624de5b496846cd89ee4f7b07d38029aca70ce1
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Wed Oct 27 12:32:02 2010 -0400
- Rename hb_ot_layout_get_lig_carets() to
- hb_ot_layout_get_ligature_carets()
+ Rename hb_ot_layout_get_lig_carets() to hb_ot_layout_get_ligature_carets()
src/hb-ot-layout.cc | 14 +++++++-------
src/hb-ot-layout.h | 14 +++++++-------
Date: Wed Oct 27 11:54:26 2010 -0400
Rewrite Cursive joining to act more like other pair lookups
+
+ Look forward for next character instead of joining to the last character.
- Look forward for next character instead of joining to the last
- character.
-
- src/hb-ot-layout-gpos-private.hh | 71
- ++++++++++++++++++----------------------
+ src/hb-ot-layout-gpos-private.hh | 71 ++++++++++++++++++----------------------
src/hb-ot-layout-private.hh | 10 ------
2 files changed, 31 insertions(+), 50 deletions(-)
Date: Wed Oct 27 11:09:48 2010 -0400
Fix Cursive positioning
-
+
Test case: "مرا" rendered using IranNastaliq.
- src/hb-ot-layout-gpos-private.hh | 124
- +--------------------------------------
+ src/hb-ot-layout-gpos-private.hh | 124 +--------------------------------------
1 file changed, 3 insertions(+), 121 deletions(-)
commit aefdb64689aab19df76590a36c4a04052a8bffdb
Date: Wed Oct 27 01:28:28 2010 -0400
Remove obsolete TODO item
-
+
We don't cache any metrics internally, so the correct way to add more
glyph metrics items is to add new callbacks for them. We already have
separeate callbacks for advance vs extents.
Date: Wed Oct 27 01:13:56 2010 -0400
Divide get_metrics into get_advance and get_extents
-
+
Graphite module not updated.
Bump version to 0.3.
configure.ac | 2 +-
src/hb-font-private.h | 3 +-
- src/hb-font.cc | 96
- +++++++++++++++++++++++++++++++++++----------------
+ src/hb-font.cc | 96 +++++++++++++++++++++++++++++++++++----------------
src/hb-font.h | 61 ++++++++++++++++++++------------
src/hb-ft.c | 72 +++++++++++++++++++++++---------------
src/hb-ot-shape.cc | 7 ++--
Date: Wed Oct 13 18:33:16 2010 -0400
Massage mask setting a bit more
-
+
Still finding the exact correct way the masks should be set.
src/hb-buffer-private.hh | 19 ++++++++++++++++---
Date: Wed Oct 13 15:54:06 2010 -0400
Make sure boolean features always use value=1
-
- Previously boolean features turned on the entire feature mask.
- This is
- wrong if feature is Alternate and user has provided values bigger
- than one.
+
+ Previously boolean features turned on the entire feature mask. This is
+ wrong if feature is Alternate and user has provided values bigger than one.
Though, I don't think other engines support such corner cases.
src/hb-ot-map-private.hh | 10 ++++++++--
Date: Wed Oct 13 15:34:50 2010 -0400
Fix applying default-value for features
-
+
Previously if a default global feature was overrided by a non-global
user feature, we were not setting any default mask for the feature,
essentially disabling the feature by default. Fix that.
Date: Wed Oct 13 10:57:27 2010 -0400
Cleanup TODO
-
+
Looks like a roadmap now.
- TODO | 72
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------
+ TODO | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------
1 file changed, 59 insertions(+), 13 deletions(-)
commit 3111b8a0d5b38da57c0f6285aec2b92eb690188f
Date: Tue Oct 12 17:37:44 2010 -0400
Fix Arabic shaper
-
+
It's tested now. It works!
src/hb-ot-shape-complex-arabic.cc | 7 ++++---
Date: Tue Oct 12 17:23:54 2010 -0400
Hookup Arabic shaper!
-
+
Not tested yet.
src/hb-ot-shape-complex-arabic.cc | 6 +++---
- src/hb-ot-shape-complex-private.hh | 37
- ++++++++++++++++++++++---------------
+ src/hb-ot-shape-complex-private.hh | 37 ++++++++++++++++++++++---------------
src/hb-ot-shape-private.hh | 14 +++++++++++++-
src/hb-ot-shape.cc | 3 ++-
4 files changed, 40 insertions(+), 20 deletions(-)
Date: Tue Oct 12 16:57:47 2010 -0400
Add hb_ot_shape_execute()
-
+
Not public yet.
src/hb-ot-shape-private.hh | 5 ++---
src/hb-ot-map-private.hh | 2 +-
src/hb-ot-map.cc | 2 +-
...ape-arabic.cc => hb-ot-shape-complex-arabic.cc} | 9 +++
- src/hb-ot-shape-complex-private.hh | 88
- ++++++++++++++++++++++
+ src/hb-ot-shape-complex-private.hh | 88 ++++++++++++++++++++++
src/hb-ot-shape-private.hh | 12 +--
src/hb-ot-shape.cc | 8 +-
7 files changed, 107 insertions(+), 17 deletions(-)
Date: Tue Oct 12 16:19:29 2010 -0400
Add hb_ot_shape_plan_t
-
- This is the object that a separate plan/execute shaping API will
- use in
+
+ This is the object that a separate plan/execute shaping API will use in
between the two stages.
src/hb-ot-shape-private.hh | 12 ++++++++++--
src/hb-ot-map-private.hh | 32 +++++---------------------------
src/hb-ot-map.cc | 32 +++++++++++++++++++++++++++++---
src/hb-ot-shape-private.hh | 16 ++++++++++++++--
- src/hb-ot-shape.cc | 43
- ++++++++++++++++++++++++++++---------------
+ src/hb-ot-shape.cc | 43 ++++++++++++++++++++++++++++---------------
src/hb-ot-shape.h | 10 +++++-----
5 files changed, 81 insertions(+), 52 deletions(-)
Date: Tue Oct 12 12:32:18 2010 -0400
Fix infinite loop!
-
+
Untested code is indeed buggy code.
-
+
Mozilla bug #603352.
src/hb-ot-tag.c | 6 ++----
Date: Tue Oct 12 11:17:30 2010 -0400
Fix missing negation in unreachable code!
-
+
Mozilla bug #603346
src/hb-open-type-private.hh | 5 ++---
Date: Fri Oct 8 20:20:32 2010 -0400
Rename hb_mask_allocator_t to hb_ot_map_t
-
+
hb_ot_plan_t may be a better name, donno.
src/hb-ot-map-private.hh | 4 ++--
src/hb-ot-map.cc | 2 +-
src/hb-ot-shape-private.hh | 4 ++--
- src/hb-ot-shape.cc | 49
- +++++++++++++++++++++-------------------------
+ src/hb-ot-shape.cc | 49 +++++++++++++++++++++-------------------------
4 files changed, 27 insertions(+), 32 deletions(-)
commit f5dd3be46b5c77a2c5b97b82a0b67ac9e851b898
src/Makefile.am | 1 +
src/hb-ot-map-private.hh | 129 +-----------------------------------
- src/hb-ot-map.cc | 165
- +++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-map.cc | 165 +++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 168 insertions(+), 127 deletions(-)
commit ecc4550ed7bc900a61081edfbcd0ad09cbf29b36
Minor cleanup
src/hb-open-type-private.hh | 8 ++----
- src/hb-ot-map-private.hh | 61
- +++++++++++++--------------------------------
+ src/hb-ot-map-private.hh | 61 +++++++++++++--------------------------------
src/hb-ot-tag.c | 11 ++++----
src/hb-private.h | 4 +++
4 files changed, 28 insertions(+), 56 deletions(-)
src/Makefile.am | 1 +
src/hb-ot-shape-arabic.cc | 2 +-
- src/hb-ot-shape-private.hh | 60
- ++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape-private.hh | 60 ++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 62 insertions(+), 1 deletion(-)
commit 4924affe0f0adf75f2a0e2137a71206b0576d63f
Add hb-ot-map-private.hh
src/Makefile.am | 1 +
- src/hb-ot-map-private.hh | 307
- +++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-map-private.hh | 307 +++++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-shape.cc | 274 ++----------------------------------------
3 files changed, 315 insertions(+), 267 deletions(-)
Date: Fri Oct 8 18:41:57 2010 -0400
Flip the OT bit-allocation vs gsub/gpos inside-out
-
+
We now build our entire attack plan before jumping in.
- src/hb-ot-shape.cc | 333
- ++++++++++++++++++++++++++++-------------------------
+ src/hb-ot-shape.cc | 333 ++++++++++++++++++++++++++++-------------------------
1 file changed, 176 insertions(+), 157 deletions(-)
commit e89b7d2a61b7f58e6c7cec00d5ce2246dee1e8a1
Simplify compiling lookups
- src/hb-ot-shape.cc | 66
- ++++++++++++++++++++++--------------------------------
+ src/hb-ot-shape.cc | 66 ++++++++++++++++++++++--------------------------------
1 file changed, 27 insertions(+), 39 deletions(-)
commit 476c94218b4f5b8e119e82b0e10b641e0c10bf56
Add internal hb_ot_shape_context_t
src/hb-ot-shape-arabic.cc | 26 ++---
- src/hb-ot-shape.cc | 237
- +++++++++++++++++++---------------------------
+ src/hb-ot-shape.cc | 237 +++++++++++++++++++---------------------------
2 files changed, 108 insertions(+), 155 deletions(-)
commit 3eb936f1539475098f39be78654b9c39b86f0799
Date: Tue Oct 5 18:36:58 2010 -0400
Add Arabic/Syriac/N'ko shaping logic
-
+
Not hooked up just yet.
src/Makefile.am | 9 +
src/gen-arabic-joining-table.py | 39 +++
- src/hb-ot-shape-arabic.cc | 716
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape-arabic.cc | 716 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 764 insertions(+)
commit 0109816b50064a314389333ff64aaf22cb4b1e56
Date: Mon Oct 4 17:01:01 2010 -0400
Add is_mutable() functions
-
+
Correspond to the make_mutable() ones.
src/hb-font.cc | 6 ++++++
Date: Mon Oct 4 16:45:21 2010 -0400
Add getters for all setter APIs
-
+
One in particular is not a straight getter: hb_font_unset_funcs() is
special because of the specific needs of the lifecycle management of
the user_data object.
- src/hb-font.cc | 64
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-font.cc | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-font.h | 40 +++++++++++++++++++++++++++++++++++
src/hb-unicode.c | 32 ++++++++++++++++++++++++++++
src/hb-unicode.h | 31 ++++++++++++++++++++++++++-
Date: Wed Sep 29 12:20:36 2010 -0400
Don't zero glyph advances in MarkToBase and similar lookups
-
+
See email thread "Should MarkToBase attachment zero the mark advance?"
started by Jonathan Kew on 23 August 2010 for details.
Date: Tue Sep 28 16:23:58 2010 -0400
Improve cmp function parameter namings and casts
-
+
No semantic change.
src/hb-open-type-private.hh | 6 +++---
Date: Thu Sep 23 10:27:08 2010 -0400
Remove unimplemented method hb_font_get_funcs()
-
+
Got to add a suitable replacement.
src/hb-font.h | 3 ---
Add test.c using public API
src/Makefile.am | 6 +++-
- src/test.c | 94
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/test.c | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 99 insertions(+), 1 deletion(-)
commit 9ea7368fce3fa373d8d2925961ad211f5cf6ce70
Date: Mon Aug 16 14:36:27 2010 -0400
Fix NULL dereference
-
+
Reported by Jonathan Kew. Face table handling needs to be redone
anyway, but fix this for now.
Date: Fri Aug 13 14:10:02 2010 -0400
[GPOS] Fix div-by-zero
-
+
Patch by Jonathan Kew. Mozilla bug #465728.
src/hb-ot-layout-gpos-private.hh | 2 +-
src/hb-buffer.cc | 12 ++++++------
src/hb-ot-layout-gpos-private.hh | 2 +-
src/hb-ot-layout.cc | 2 +-
- src/hb-ot-shape.cc | 41
- ++++++++++++++++------------------------
+ src/hb-ot-shape.cc | 41 ++++++++++++++++------------------------
5 files changed, 30 insertions(+), 36 deletions(-)
commit da6cff3864d2ef4a061a29e5918359bafcd51f4c
Date: Fri Jul 23 15:00:13 2010 -0400
De-C++ where possible
-
+
Helps with avoiding many "extern C" declarations in source files.
src/Makefile.am | 4 ++--
dos2unix
- src/hb-ot-head-private.hh | 256
- +++++++++++++++++++++++-----------------------
+ src/hb-ot-head-private.hh | 256 +++++++++++++++++++++++-----------------------
1 file changed, 128 insertions(+), 128 deletions(-)
commit 81408cd51ce575891e79e6483be187130f864c28
Date: Fri Jul 23 14:46:57 2010 -0400
Don't use "operator ="
-
- Some compilers don't like operator = defined on members of union
- members
+
+ Some compilers don't like operator = defined on members of union members
either. Reported by Ginn Chen for Sun Studio compilers.
src/hb-open-type-private.hh | 6 +++---
Date: Wed Jul 21 16:37:01 2010 -0400
Mozilla bug 580233 - check for zero-length record in hb sanitizer.
-
+
Patch / report by Jonathan Kew.
src/hb-open-type-private.hh | 2 +-
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Jul 8 00:53:40 2010 -0400
- Don't bother sorting, it's a safe font error if the array is not
- sorted
+ Don't bother sorting, it's a safe font error if the array is not sorted
src/hb-open-type-private.hh | 29 -----------------------------
src/hb-ot-layout-common-private.hh | 7 -------
Use bsearch where applicable
src/hb-open-type-private.hh | 49 +++++++++++++
- src/hb-ot-layout-common-private.hh | 145
- +++++++++++++------------------------
+ src/hb-ot-layout-common-private.hh | 145 +++++++++++++------------------------
2 files changed, 100 insertions(+), 94 deletions(-)
commit 2f418f5709b2b8b3ef2f6056b9d8c13b66f0b74a
Date: Thu Jun 3 11:37:51 2010 -0400
Followup fix for variation-selectors
-
+
Patch from Jonathan Kew
src/hb-ot-shape.cc | 3 ++-
Towards a mask allocator
- src/hb-ot-shape.cc | 291
- ++++++++++++++++++++++++++++++++++-------------------
+ src/hb-ot-shape.cc | 291 ++++++++++++++++++++++++++++++++++-------------------
1 file changed, 186 insertions(+), 105 deletions(-)
commit 81c5e8724b740c6e42ed3a45e0574c7c5f3ad8e6
Date: Fri May 28 18:31:16 2010 -0400
Allow disabling default features
-
+
Patch from Jonathan Kew
src/hb-buffer-private.hh | 18 +++--
src/hb-buffer.cc | 15 ++--
- src/hb-ot-shape.cc | 196
- ++++++++++++++++++++++++++++++++---------------
+ src/hb-ot-shape.cc | 196 ++++++++++++++++++++++++++++++++---------------
3 files changed, 153 insertions(+), 76 deletions(-)
commit 2163afbf35044f59dbf449254e65b8c9feb6cdeb
contrib/python/README | 10 ++++
contrib/python/lib/fontconfig.pyx | 47 +++++++++++++++++
- contrib/python/lib/harfbuzz.pyx | 104
- ++------------------------------------
- contrib/python/scripts/hbtestfont | 103
- +++++++++++++++++++++++++++++++++----
+ contrib/python/lib/harfbuzz.pyx | 104 ++------------------------------------
+ contrib/python/scripts/hbtestfont | 103 +++++++++++++++++++++++++++++++++----
contrib/python/setup.py | 3 +-
src/hb-graphite.cc | 8 +--
6 files changed, 159 insertions(+), 116 deletions(-)
Date: Wed May 26 10:48:10 2010 -0400
Revert "Merge remote branch 'martin/master'"
-
- This reverts commit 80af2812fb3b231ddcb4608ec13c6038a681c818,
- reversing
+
+ This reverts commit 80af2812fb3b231ddcb4608ec13c6038a681c818, reversing
changes made to c442672ec2fb83ed41f3994b3aa4f92a097664ab.
contrib/python/README | 10 ----
contrib/python/lib/fontconfig.pyx | 47 -----------------
- contrib/python/lib/harfbuzz.pyx | 104
- ++++++++++++++++++++++++++++++++++++--
- contrib/python/scripts/hbtestfont | 98
- ++++-------------------------------
+ contrib/python/lib/harfbuzz.pyx | 104 ++++++++++++++++++++++++++++++++++++--
+ contrib/python/scripts/hbtestfont | 98 ++++-------------------------------
contrib/python/setup.py | 3 +-
src/Makefile.am | 2 +-
src/hb-graphite.cc | 8 +--
Date: Mon May 24 17:50:19 2010 +0100
Make sure we initialize all callbacks upon creation
-
+
Also fixes issue with unicode callbacks never being set really.
src/hb-font.cc | 18 +++++++-----------
Author: Martin Hosken <martin_hosken@sil.org>
Date: Mon May 24 13:25:37 2010 +0100
- hb-graphite now no longer has -ve advances within clusters. Fix
- infinite loop in tag_to_script(). python fixed to use tag_to_script
- and allow hbtestfont to be passed font files, where fontconfig knows
- about them.
+ hb-graphite now no longer has -ve advances within clusters. Fix infinite loop in tag_to_script(). python fixed to use tag_to_script and allow hbtestfont to be passed font files, where fontconfig knows about them.
contrib/python/lib/harfbuzz.pyx | 4 ++--
contrib/python/scripts/hbtestfont | 6 +++++-
Tidy up hbtestfont and add README
contrib/python/README | 10 +++
- contrib/python/scripts/hbtestfont | 134
- +++++++++++++++++++-------------------
+ contrib/python/scripts/hbtestfont | 134 +++++++++++++++++++-------------------
2 files changed, 77 insertions(+), 67 deletions(-)
commit 70ae332fe66510500d303b6fcc79537833b42f05
Add fontconfig to hbtestfont
contrib/python/lib/fontconfig.pyx | 47 ++++++++++++++++++++++++++++
- contrib/python/scripts/hbtestfont | 64
- ++++++++++++++++++++++++---------------
+ contrib/python/scripts/hbtestfont | 64 ++++++++++++++++++++++++---------------
contrib/python/setup.py | 3 +-
3 files changed, 88 insertions(+), 26 deletions(-)
Add graphical output to hbtestfont
- contrib/python/lib/harfbuzz.pyx | 100
- +-------------------------------------
+ contrib/python/lib/harfbuzz.pyx | 100 +-------------------------------------
contrib/python/scripts/hbtestfont | 62 ++++++++++++++++++++++-
src/Makefile.am | 2 +-
src/hb-ot-shape.cc | 2 +-
Add ltra, ltrm, and rtla features
- src/hb-ot-shape.cc | 60
- +++++++++++++++++++++++++++++++++++++++++++-----------
+ src/hb-ot-shape.cc | 60 +++++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 48 insertions(+), 12 deletions(-)
commit 1ce7b87c4d8d1ab3ec1d5198351d71b7199f7c64
src/hb-buffer-private.hh | 16 +++++++++++++
src/hb-buffer.cc | 36 +++++++++++++++++++++++++++++
- src/hb-ot-shape.cc | 60
- +++++++++++++++++++++---------------------------
+ src/hb-ot-shape.cc | 60 +++++++++++++++++++++---------------------------
3 files changed, 78 insertions(+), 34 deletions(-)
commit dd22a8f7bfd424a69286e90f79d2a23af6e89ec1
Move main shaper code into hb_ot_shape()
src/hb-ot-shape-private.hh | 53 -----------
- src/hb-ot-shape.cc | 225
- ++++++++++++++++++++++++++++++++++++++++++---
- src/hb-shape.cc | 209
- +----------------------------------------
+ src/hb-ot-shape.cc | 225 ++++++++++++++++++++++++++++++++++++++++++---
+ src/hb-shape.cc | 209 +----------------------------------------
3 files changed, 214 insertions(+), 273 deletions(-)
commit 7acd232d36c2b2ed03823e6aa6bb2b814bf673b3
configure.ac | 6 ++
src/Makefile.am | 11 ++
- src/hb-graphite.cc | 308
- +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-graphite.cc | 308 +++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-graphite.h | 46 ++++++++
src/hb-shape.cc | 15 +++
5 files changed, 386 insertions(+)
Update the Python module
- contrib/python/lib/harfbuzz.pyx | 40
- +++++++++++++++++++++-------------------
+ contrib/python/lib/harfbuzz.pyx | 40 +++++++++++++++++++++-------------------
1 file changed, 21 insertions(+), 19 deletions(-)
commit 83f34677bcbc6bb194940407b0fcb23575650e3d
Date: Fri May 21 13:32:38 2010 +0100
Speed up feature mask setting
-
+
Patch from Jonathan Kew.
src/hb-ot-shape.cc | 31 +++++++++++++++++++++++++------
Add Python wrapper from Martin Hosken
- contrib/python/lib/harfbuzz.pyx | 306
- ++++++++++++++++++++++++++++++++++++++
+ contrib/python/lib/harfbuzz.pyx | 306 ++++++++++++++++++++++++++++++++++++++
contrib/python/runpy | 2 +
contrib/python/scripts/hbtestfont | 35 +++++
contrib/python/setup.py | 24 +++
Date: Thu May 20 17:26:35 2010 +0100
Do alternate glyph selection!
-
+
Kinda hand-wavy right now. Not tested.
src/hb-ot-layout-gpos-private.hh | 12 +++++++-----
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu May 20 15:47:49 2010 +0100
- Write hb_face_create_for_data() in terms of
- hb_face_create_for_tables()
-
+ Write hb_face_create_for_data() in terms of hb_face_create_for_tables()
+
Fixes lack of head_table initialization in create_for_tables() also.
src/hb-font.cc | 35 ++++++++++++-----------------------
Date: Thu May 20 14:05:02 2010 +0100
Update always-apply mask from 0xFFFF to 1
-
+
We plan to use the first bit to be always on.
src/hb-ot-shape.cc | 4 ++--
Date: Thu May 20 14:00:57 2010 +0100
Invert the mask logic
-
+
Before, the mask in the buffer was inverted. That is, a 0 bit meant
feature should be applied and 1 meant not applied, whereas in the
lookups, the logic was positive.
-
+
Now both are in sync. When calling hb_buffer_add_glyph() manually,
the mask should be 1 instead of 0.
Date: Thu May 20 13:40:18 2010 +0100
Apply user features
-
+
No ranges yet
src/hb-ot-shape.cc | 8 ++++++++
Date: Wed May 19 15:45:06 2010 -0400
Fix scale issues
-
+
hb_font_set_scale() now sets the value to be used to represent a unit
- pixel. For example, if rendering a 10px font with a 26.6
- representation,
- you would set scale to (10 << 6). For 10px in 16.16 you would set
- it to
- (10 << 16). This space should be the same space that the
- get_glyph_metrics
+ pixel. For example, if rendering a 10px font with a 26.6 representation,
+ you would set scale to (10 << 6). For 10px in 16.16 you would set it to
+ (10 << 16). This space should be the same space that the get_glyph_metrics
and get_kerning callbacks work in.
src/hb-common.h | 1 -
src/hb-font.h | 12 +++---------
src/hb-ft.cc | 4 ++--
src/hb-ot-layout-gdef-private.hh | 6 +++---
- src/hb-ot-layout-gpos-private.hh | 37
- +++++++++++++++++--------------------
+ src/hb-ot-layout-gpos-private.hh | 37 +++++++++++++++++--------------------
src/hb-ot-layout-gsub-private.hh | 2 +-
src/hb-ot-layout-private.hh | 20 +++++++++++---------
src/hb-ot-layout.cc | 31 +++++++++++++++----------------
src/hb-font-private.hh | 5 ++
src/hb-font.cc | 9 ++++
src/hb-open-type-private.hh | 2 +-
- src/hb-ot-head-private.hh | 128
- ++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-head-private.hh | 128 ++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 144 insertions(+), 1 deletion(-)
commit e29caf3f943b2b6f4997f469f7274252c82f465e
Minor
- src/hb-ot-layout.cc | 52
- +++++++++++++++++++++++++++-------------------------
+ src/hb-ot-layout.cc | 52 +++++++++++++++++++++++++++-------------------------
1 file changed, 27 insertions(+), 25 deletions(-)
commit 73af7756dc6d3961f176854246e5722baff101fb
Add an inline version of hb_buffer_ensure()
- src/hb-buffer.cc | 117
- ++++++++++++++++++++++++++++++-------------------------
+ src/hb-buffer.cc | 117 ++++++++++++++++++++++++++++++-------------------------
1 file changed, 63 insertions(+), 54 deletions(-)
commit a6a79df5fe2ed2cd307e7a991346faee164e70d9
Handle malloc failture in the buffer
src/hb-buffer-private.hh | 5 ++--
- src/hb-buffer.cc | 71
- +++++++++++++++++++++++++++++-------------------
+ src/hb-buffer.cc | 71 +++++++++++++++++++++++++++++-------------------
src/hb-buffer.h | 2 +-
3 files changed, 47 insertions(+), 31 deletions(-)
Minor
- src/hb-shape.cc | 60
- +++++++++++++++++++++++++--------------------------------
+ src/hb-shape.cc | 60 +++++++++++++++++++++++++--------------------------------
1 file changed, 26 insertions(+), 34 deletions(-)
commit 910a33fe8457a8e13f7eb77fc92fa59c31f5e8fd
src/hb-buffer-private.hh | 2 +-
src/hb-buffer.cc | 52 ++++++++++----------
- src/hb-ot-layout-gpos-private.hh | 94
- ++++++++++++++++++------------------
+ src/hb-ot-layout-gpos-private.hh | 94 ++++++++++++++++++------------------
src/hb-ot-layout-gsub-private.hh | 48 +++++++++---------
src/hb-ot-layout-gsubgpos-private.hh | 46 +++++++++---------
src/hb-shape.cc | 40 +++++++--------
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Fri May 14 22:08:22 2010 -0400
- Shortening buffer accessors: rename buffer->out_length to
- buffer->out_len
+ Shortening buffer accessors: rename buffer->out_length to buffer->out_len
src/hb-buffer-private.hh | 2 +-
- src/hb-buffer.cc | 52
- ++++++++++++++++++------------------
+ src/hb-buffer.cc | 52 ++++++++++++++++++------------------
src/hb-ot-layout-gsub-private.hh | 2 +-
src/hb-ot-layout-gsubgpos-private.hh | 6 ++---
4 files changed, 31 insertions(+), 31 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Fri May 14 22:03:11 2010 -0400
- Shortening buffer accessors: rename buffer->out_string to
- buffer->out_info
+ Shortening buffer accessors: rename buffer->out_string to buffer->out_info
src/hb-buffer-private.hh | 2 +-
- src/hb-buffer.cc | 56
- ++++++++++++++++++------------------
+ src/hb-buffer.cc | 56 ++++++++++++++++++------------------
src/hb-ot-layout-gsubgpos-private.hh | 4 +--
3 files changed, 31 insertions(+), 31 deletions(-)
Shortening buffer accessors: rename buffer->in_string to buffer->info
src/hb-buffer-private.hh | 2 +-
- src/hb-buffer.cc | 82
- ++++++++++++++++++------------------
+ src/hb-buffer.cc | 82 ++++++++++++++++++------------------
src/hb-ot-layout-gpos-private.hh | 58 ++++++++++++-------------
src/hb-ot-layout-gsub-private.hh | 30 ++++++-------
src/hb-ot-layout-gsubgpos-private.hh | 26 ++++++------
Merge buffer->out_pos and buffer->out_length
src/hb-buffer-private.hh | 1 -
- src/hb-buffer.cc | 48
- +++++++++++++++---------------------
+ src/hb-buffer.cc | 48 +++++++++++++++---------------------
src/hb-ot-layout-gsub-private.hh | 2 +-
src/hb-ot-layout-gsubgpos-private.hh | 6 ++---
4 files changed, 24 insertions(+), 33 deletions(-)
Remove POSITION() and CURPOSITION() macros
src/hb-buffer-private.hh | 2 --
- src/hb-ot-layout-gpos-private.hh | 54
- ++++++++++++++++++++--------------------
+ src/hb-ot-layout-gpos-private.hh | 54 ++++++++++++++++++++--------------------
src/hb-shape.cc | 10 ++++----
3 files changed, 32 insertions(+), 34 deletions(-)
src/hb-open-type-private.hh | 100 ++++----
src/hb-ot-layout-common-private.hh | 84 +++----
src/hb-ot-layout-gdef-private.hh | 98 ++++----
- src/hb-ot-layout-gpos-private.hh | 460
- +++++++++++++++++------------------
+ src/hb-ot-layout-gpos-private.hh | 460 +++++++++++++++++------------------
src/hb-ot-layout-gsub-private.hh | 306 +++++++++++------------
src/hb-ot-layout-gsubgpos-private.hh | 258 ++++++++++----------
src/hb-ot-layout.cc | 24 +-
Date: Wed May 12 23:46:16 2010 -0400
Make HB_PRIVATE more useful
-
+
So we can apply it to class methods also. Not sure if that works!
src/hb-blob-private.h | 2 +-
Add buffer->swap()
- src/hb-buffer-private.hh | 68
- ++++++++++++++++++++++------------------
+ src/hb-buffer-private.hh | 68 ++++++++++++++++++++++------------------
src/hb-ot-layout-gsub-private.hh | 2 +-
2 files changed, 38 insertions(+), 32 deletions(-)
Date: Wed May 12 18:29:25 2010 -0400
Use bit tricks for HB_DIRECTION_IS_*
-
+
We already depend on the exact values of the direction enum
in HB_DIRECTION_REVERSE(), so we may as well use that.
Date: Wed May 12 18:23:21 2010 -0400
Rename a few files to be C++ sources
-
+
In anticipation for buffer revamp coming.
- src/Makefile.am | 16
- ++++++++--------
+ src/Makefile.am | 16 ++++++++--------
src/{hb-buffer-private.h => hb-buffer-private.hh} | 2 +-
- src/{hb-buffer.c => hb-buffer.cc} | 14
- +++++++-------
+ src/{hb-buffer.c => hb-buffer.cc} | 14 +++++++-------
src/hb-common.h | 1 +
src/{hb-font-private.h => hb-font-private.hh} | 2 +-
src/hb-font.cc | 4 ++--
Simplify PairSet
- src/hb-ot-layout-gpos-private.hh | 101
- +++++++++++++++++++++------------------
+ src/hb-ot-layout-gpos-private.hh | 101 +++++++++++++++++++++------------------
1 file changed, 54 insertions(+), 47 deletions(-)
commit 97e7f8f305c47caf2968a9da3b8407825547286d
Date: Mon May 10 23:50:07 2010 -0400
Simplify likely() implementation
-
+
Shrinks .text by 1%!
src/hb-private.h | 10 +---------
Date: Mon May 10 23:27:54 2010 -0400
Sprinkle a few strategic likely()'s
-
+
Shrinks the code size by some 2% even.
src/hb-open-file-private.hh | 4 ++--
Date: Mon May 10 21:39:24 2010 -0400
Fix awful confusion between lookup format and subtable format
-
+
As reported by John Daggett.
src/hb-ot-layout-gpos-private.hh | 14 +++++++-------
src/hb-open-file-private.hh | 24 +++----
src/hb-ot-layout-common-private.hh | 24 +++----
src/hb-ot-layout-gdef-private.hh | 24 +++----
- src/hb-ot-layout-gpos-private.hh | 120
- +++++++++++++++++------------------
+ src/hb-ot-layout-gpos-private.hh | 120 +++++++++++++++++------------------
src/hb-ot-layout-gsub-private.hh | 88 ++++++++++++-------------
src/hb-ot-layout-gsubgpos-private.hh | 44 ++++++-------
6 files changed, 163 insertions(+), 161 deletions(-)
src/hb-open-type-private.hh | 12 ++++++------
src/hb-ot-layout-common-private.hh | 2 +-
- src/hb-ot-layout-gpos-private.hh | 34
- +++++++++++++++++-----------------
+ src/hb-ot-layout-gpos-private.hh | 34 +++++++++++++++++-----------------
src/hb-ot-layout-gsub-private.hh | 4 ++--
- src/hb-ot-layout-gsubgpos-private.hh | 34
- +++++++++++++++++-----------------
+ src/hb-ot-layout-gsubgpos-private.hh | 34 +++++++++++++++++-----------------
5 files changed, 43 insertions(+), 43 deletions(-)
commit 09766b1ec5ec55a61edbcd7a89ed3613cc92d4cb
Date: Mon May 10 17:36:03 2010 -0400
Make StructAtOffset take a pointer
-
+
Is safer.
src/hb-open-type-private.hh | 26 +++++++++++++-------------
src/hb-open-type-private.hh | 20 +++++++++++++---
src/hb-ot-layout-common-private.hh | 24 ++++++++++++--------
src/hb-ot-layout-gdef-private.hh | 22 +++++++++++-------
- src/hb-ot-layout-gpos-private.hh | 44
- ++++++++++++++++++++----------------
+ src/hb-ot-layout-gpos-private.hh | 44 ++++++++++++++++++++----------------
src/hb-ot-layout-gsub-private.hh | 32 ++++++++++++++++----------
src/hb-ot-layout-gsubgpos-private.hh | 27 ++++++++++++++--------
src/hb-private.h | 2 --
Date: Thu May 6 19:35:19 2010 -0400
Simplify DEFINE_NULL_DATA
-
+
Using ::min_size.
src/hb-open-type-private.hh | 6 +++---
Date: Thu May 6 19:33:31 2010 -0400
Start cleaning up get_size()
-
+
So we know when the size is static and when dynamic.
src/hb-open-file-private.hh | 7 +++---
- src/hb-open-type-private.hh | 42
- +++++++++++++++++++++++++-----------
+ src/hb-open-type-private.hh | 42 +++++++++++++++++++++++++-----------
src/hb-ot-layout-common-private.hh | 14 ++++++------
src/hb-ot-layout-gpos-private.hh | 17 ++++++---------
src/hb-ot-layout-gsubgpos-private.hh | 19 ++++++++--------
src/hb-open-type-private.hh | 2 -
src/hb-ot-layout-common-private.hh | 6 +--
src/hb-ot-layout-gdef-private.hh | 24 +++++-----
- src/hb-ot-layout-gpos-private.hh | 90
- ++++++++++++++++++------------------
+ src/hb-ot-layout-gpos-private.hh | 90 ++++++++++++++++++------------------
src/hb-ot-layout-gsub-private.hh | 31 ++++++-------
src/hb-ot-layout-gsubgpos-private.hh | 44 +++++++++---------
7 files changed, 98 insertions(+), 101 deletions(-)
Simplify chaining
- src/hb-ot-layout-gsubgpos-private.hh | 61
- +++++++++++++++---------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 61 +++++++++++++++---------------------
1 file changed, 25 insertions(+), 36 deletions(-)
commit 1911b9d21b2b7b6b8219ce6c888540e3a60aa9c3
Remove APPLY_ARG_DEF and APPLY_ARG
- src/hb-ot-layout-gpos-private.hh | 92
- ++++++++++++++++++------------------
- src/hb-ot-layout-gsub-private.hh | 88
- +++++++++++++++++-----------------
- src/hb-ot-layout-gsubgpos-private.hh | 89
- ++++++++++++++++------------------
+ src/hb-ot-layout-gpos-private.hh | 92 ++++++++++++++++++------------------
+ src/hb-ot-layout-gsub-private.hh | 88 +++++++++++++++++-----------------
+ src/hb-ot-layout-gsubgpos-private.hh | 89 ++++++++++++++++------------------
3 files changed, 132 insertions(+), 137 deletions(-)
commit 6c42cddfe53a1c664081862bb9a3e1c38d05a823
src/hb-ot-layout-gpos-private.hh | 9 ++---
src/hb-ot-layout-gsub-private.hh | 9 ++---
- src/hb-ot-layout-gsubgpos-private.hh | 70
- ++++++++++++++++++++----------------
+ src/hb-ot-layout-gsubgpos-private.hh | 70 ++++++++++++++++++++----------------
3 files changed, 50 insertions(+), 38 deletions(-)
commit 94a23aaeca39c662614037ef887412249bdc8d49
Move buffer into apply_context
src/hb-buffer-private.h | 30 +++++++++--------
- src/hb-ot-layout-gpos-private.hh | 64
- ++++++++++++++++++++----------------
+ src/hb-ot-layout-gpos-private.hh | 64 ++++++++++++++++++++----------------
src/hb-ot-layout-gsub-private.hh | 45 ++++++++++++++-----------
src/hb-ot-layout-gsubgpos-private.hh | 49 ++++++++++++++-------------
4 files changed, 106 insertions(+), 82 deletions(-)
Move layout_context into apply_context
- src/hb-ot-layout-gpos-private.hh | 105
- ++++++++++++++++++-----------------
+ src/hb-ot-layout-gpos-private.hh | 105 ++++++++++++++++++-----------------
src/hb-ot-layout-gsub-private.hh | 47 ++++++++--------
src/hb-ot-layout-gsubgpos-private.hh | 11 ++--
3 files changed, 82 insertions(+), 81 deletions(-)
src/hb-open-type-private.hh | 59 +++++++--------
src/hb-ot-layout-common-private.hh | 42 +++++------
src/hb-ot-layout-gdef-private.hh | 28 ++++----
- src/hb-ot-layout-gpos-private.hh | 136
- +++++++++++++++++------------------
+ src/hb-ot-layout-gpos-private.hh | 136 +++++++++++++++++------------------
src/hb-ot-layout-gsub-private.hh | 72 +++++++++----------
src/hb-ot-layout-gsubgpos-private.hh | 46 ++++++------
7 files changed, 197 insertions(+), 202 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Tue May 4 23:21:57 2010 -0400
- Make sanitize_depth variable automatic and not passed through
- function args
+ Make sanitize_depth variable automatic and not passed through function args
- src/hb-open-type-private.hh | 72
- +++++++++++++++++++++++++++------------------
+ src/hb-open-type-private.hh | 72 +++++++++++++++++++++++++++------------------
1 file changed, 43 insertions(+), 29 deletions(-)
commit 4a446ac35136eff23d55f47bdd7b40095ad707ab
Make _hb_sanitize_*() methods of the context object
- src/hb-open-type-private.hh | 190
- +++++++++++++++++++++++---------------------
+ src/hb-open-type-private.hh | 190 +++++++++++++++++++++++---------------------
1 file changed, 98 insertions(+), 92 deletions(-)
commit bb029af943faa9905e652d58856998687e60c31d
src/hb-open-type-private.hh | 3 +-
src/hb-ot-layout-common-private.hh | 4 +--
src/hb-ot-layout-gdef-private.hh | 25 ++++++++--------
- src/hb-ot-layout-gpos-private.hh | 55
- ++++++++++++++++++++----------------
+ src/hb-ot-layout-gpos-private.hh | 55 ++++++++++++++++++++----------------
src/hb-ot-layout-gsub-private.hh | 29 ++++++++++---------
src/hb-ot-layout-gsubgpos-private.hh | 42 +++++++++++++--------------
7 files changed, 85 insertions(+), 75 deletions(-)
src/hb-open-type-private.hh | 38 ++++++++++-----------
src/hb-ot-layout-common-private.hh | 16 ++++-----
src/hb-ot-layout-gdef-private.hh | 2 +-
- src/hb-ot-layout-gpos-private.hh | 64
- ++++++++++++++++++------------------
+ src/hb-ot-layout-gpos-private.hh | 64 ++++++++++++++++++------------------
src/hb-ot-layout-gsub-private.hh | 52 ++++++++++++++---------------
src/hb-ot-layout-gsubgpos-private.hh | 40 +++++++++++-----------
src/hb-ot-layout.cc | 12 +++----
Rename HB_GNUC_UNUSED -> HB_UNUSED
src/hb-buffer.c | 6 ++---
- src/hb-font.cc | 44
- ++++++++++++++++++------------------
+ src/hb-font.cc | 44 ++++++++++++++++++------------------
src/hb-ft.c | 16 ++++++-------
src/hb-object-private.h | 2 +-
src/hb-open-type-private.hh | 18 +++++++--------
Date: Thu Apr 29 13:48:26 2010 -0400
[sanitize] Make debug code always available to the compiler
-
+
Such that we don't break debug build all the time.
- src/hb-open-type-private.hh | 71
- ++++++++++++++++++++-------------------------
+ src/hb-open-type-private.hh | 71 ++++++++++++++++++++-------------------------
1 file changed, 31 insertions(+), 40 deletions(-)
commit fde6f5bd682f5ad0cc5e2ec69fc831b0192bf90b
Date: Thu Apr 29 03:39:39 2010 -0400
Make sure mirroring is done in original direction
-
+
Reported by Jonathan Kew.
src/hb-shape.c | 5 ++++-
Date: Thu Apr 29 02:58:38 2010 -0400
Fix bug in hb_language_from_string()
-
+
Reported by Jonathan Kew.
src/hb-language.c | 2 ++
Rename
- src/hb-ot-layout-gpos-private.hh | 98
- ++++++++++++++++++------------------
+ src/hb-ot-layout-gpos-private.hh | 98 ++++++++++++++++++------------------
src/hb-ot-layout-gsub-private.hh | 46 ++++++++---------
src/hb-ot-layout-gsubgpos-private.hh | 12 ++---
3 files changed, 78 insertions(+), 78 deletions(-)
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Apr 29 02:19:21 2010 -0400
- [apply] Use a context object to reduce number of parameters passed
- around
+ [apply] Use a context object to reduce number of parameters passed around
src/hb-open-type-private.hh | 5 ++---
src/hb-ot-layout-gpos-private.hh | 26 ++++++++++++++-----------
- src/hb-ot-layout-gsub-private.hh | 37
- +++++++++++++++++++-----------------
+ src/hb-ot-layout-gsub-private.hh | 37 +++++++++++++++++++-----------------
src/hb-ot-layout-gsubgpos-private.hh | 29 +++++++++++++++-------------
4 files changed, 53 insertions(+), 44 deletions(-)
src/hb-open-type-private.hh | 41 +++++++++---------------------
src/hb-ot-layout-gsubgpos-private.hh | 25 +++++--------------
- src/hb-private.h | 48
- +++++++++++++++++++++++++-----------
+ src/hb-private.h | 48 +++++++++++++++++++++++++-----------
3 files changed, 51 insertions(+), 63 deletions(-)
commit 807c5b03a2251a3c29a520852639421783101b55
Date: Wed Apr 28 20:25:22 2010 -0400
[sanitize] Make debug code always available to the compiler
-
+
Such that we don't break debug build all the time.
src/hb-open-type-private.hh | 31 ++++++++++++++++++++-----------
Date: Wed Apr 28 15:15:09 2010 -0400
[gsubgpos] Make debug code always available to the compiler
-
+
Such that we don't break debug build all the time.
- src/hb-ot-layout-gsubgpos-private.hh | 52
- ++++++++++++++++++------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 52 ++++++++++++++++++------------------
1 file changed, 26 insertions(+), 26 deletions(-)
commit 41011a6ed7c4891b20c0eddbb6d4ad9c820cfddb
Date: Wed Apr 28 13:29:55 2010 -0400
[object] Make debug code always available to the compiler
-
+
Such that we don't break debug build all the time.
src/hb-object-private.h | 42 +++++++++++++++++++++++++++---------------
Date: Wed Apr 28 13:16:38 2010 -0400
[blob] Make debug code always available to the compiler
-
+
Such that we don't break debug build all the time.
- src/hb-blob.c | 78
- ++++++++++++++++++++++++-----------------------------------
+ src/hb-blob.c | 78 ++++++++++++++++++++++++-----------------------------------
1 file changed, 32 insertions(+), 46 deletions(-)
commit ba51b25c7ba568aeced17f016eceba987569c5d9
Date: Tue Apr 27 23:28:10 2010 -0400
[object] Actually handle malloc() failure
-
+
Caught by John Daggett.
src/hb-object-private.h | 10 ++++++----
Date: Sun Apr 25 22:51:05 2010 -0400
Remove use of flexible arrays
-
+
Also remove wrong ASSERT_SIZE that would trigger only when not using
flexible arrays (which was the case on win32, but not with gcc).
src/hb-blob-private.h | 57 +++++++++++++++++++++++++++++++
src/hb-blob.c | 20 ++---------
src/hb-font-private.h | 3 --
- src/hb-font.cc | 92
- +++++++++++++++++++++++++++++++++++----------------
+ src/hb-font.cc | 92 +++++++++++++++++++++++++++++++++++----------------
5 files changed, 123 insertions(+), 50 deletions(-)
commit d6b3c83a90f60bedb4049750ffb351161710980d
Date: Fri Apr 23 16:22:54 2010 -0400
Remove GET_FOR_DATA macros
-
+
The major-version check is now handled by sanitize. If major
doesn't match, we reject and fall back to the Null object.
Date: Fri Apr 23 13:57:10 2010 -0400
When sanitizing, delay making writable
-
- Before, as soon as we needed to make an edit, we tried to make
- the blob
- writable inplace. That grows code unnecessarily though. We can
- simply
- fail, make writable, then start again. That's indeed what the
- fallback
+
+ Before, as soon as we needed to make an edit, we tried to make the blob
+ writable inplace. That grows code unnecessarily though. We can simply
+ fail, make writable, then start again. That's indeed what the fallback
was doing anyway.
src/hb-open-type-private.hh | 11 +++++++----
Cleanup OpenTypeFontFile
- src/hb-open-file-private.hh | 44
- ++++++++++++++++++++++++++------------------
+ src/hb-open-file-private.hh | 44 ++++++++++++++++++++++++++------------------
src/main.cc | 2 +-
2 files changed, 27 insertions(+), 19 deletions(-)
Properly define separate structs for TTCHeader and TTCHeaderVersion1
- src/hb-open-file-private.hh | 71
- +++++++++++++++++++++++++++++++++++----------
+ src/hb-open-file-private.hh | 71 +++++++++++++++++++++++++++++++++++----------
1 file changed, 55 insertions(+), 16 deletions(-)
commit a065f471b3bc23d33ef75217308efeaed4ffd033
Date: Thu Apr 22 20:15:11 2010 -0400
Cleanup Extension lookups
-
+
Two things:
-
+
1. Allow nested Extension lookups. The offset is always positive, so
it can't loop circularly.
-
+
2. Move the check for all Extension subtables having the same lookup
type to the correct place. Before it wasn't really working.
src/hb-ot-layout-gpos-private.hh | 29 +-------------------
- src/hb-ot-layout-gsub-private.hh | 57
- ++++++++++++++++++++++------------------
+ src/hb-ot-layout-gsub-private.hh | 57 ++++++++++++++++++++++------------------
2 files changed, 33 insertions(+), 53 deletions(-)
commit a0bb49c5830f8a7f25d573ec57b79df2620ddba7
Convert the last set of cast macros to templates
src/hb-open-file-private.hh | 4 +--
- src/hb-open-type-private.hh | 53
- +++++++++++++++++++++++-------------
+ src/hb-open-type-private.hh | 53 +++++++++++++++++++++++-------------
src/hb-ot-layout-gpos-private.hh | 16 +++++------
src/hb-ot-layout-gsub-private.hh | 14 +++++-----
src/hb-ot-layout-gsubgpos-private.hh | 12 ++++----
Date: Thu Apr 22 14:15:11 2010 -0400
Fail sanitize on major version mismatch
-
+
We handle major-version differences via get_for_data(), so sanitize
should never see a major version mismatch.
Date: Thu Apr 22 13:59:39 2010 -0400
Minor cleanup of sanitize
-
+
Done with an audit of all sanitize()
src/hb-ot-layout-gpos-private.hh | 18 +++++++++---------
Date: Thu Apr 22 13:22:41 2010 -0400
Remove integrity check in Tag sanitize
-
+
Serves no useful purpose.
src/hb-open-type-private.hh | 9 ---------
Date: Thu Apr 22 11:06:30 2010 -0400
Don't sanitize raw table data
-
+
That part is performed by individual table sanitize.
src/hb-open-file-private.hh | 15 +++++++++------
Convert NEXT() and ARRAY_AFTER() macros to templates
- src/hb-open-type-private.hh | 40
- ++++++++++++++++++++++++++----------
+ src/hb-open-type-private.hh | 40 ++++++++++++++++++++++++++----------
src/hb-ot-layout-common-private.hh | 4 ++--
src/hb-ot-layout-gsub-private.hh | 8 ++++----
src/hb-ot-layout-gsubgpos-private.hh | 24 +++++++++++-----------
Use templates for const char * casts
src/hb-open-file-private.hh | 12 ++++-----
- src/hb-open-type-private.hh | 48
- ++++++++++++++++++------------------
+ src/hb-open-type-private.hh | 48 ++++++++++++++++++------------------
src/hb-ot-layout-common-private.hh | 2 +-
src/hb-ot-layout-gpos-private.hh | 32 ++++++++++++------------
src/hb-ot-layout-gsub-private.hh | 4 +--
Use templates for defining int typess
- src/hb-open-type-private.hh | 66
- ++++++++++++++++++++++++++++++---------------
+ src/hb-open-type-private.hh | 66 ++++++++++++++++++++++++++++++---------------
src/hb-private.h | 10 ++-----
2 files changed, 46 insertions(+), 30 deletions(-)
Move macros around
- src/hb-private.h | 122
- ++++++++++++++++++++++++++++---------------------------
+ src/hb-private.h | 122 ++++++++++++++++++++++++++++---------------------------
1 file changed, 62 insertions(+), 60 deletions(-)
commit 649a4344ca363da3d44cdd908350449ec40ed0f9
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Mon Mar 29 00:04:12 2010 -0400
- GNOME Bug 613015 - [HB] Does not sanitize Device tables referenced
- from ValueRecords
+ GNOME Bug 613015 - [HB] Does not sanitize Device tables referenced from ValueRecords
- src/hb-ot-layout-gpos-private.hh | 47
- ++++++++++++++++++++++++++++++----------
+ src/hb-ot-layout-gpos-private.hh | 47 ++++++++++++++++++++++++++++++----------
1 file changed, 36 insertions(+), 11 deletions(-)
commit 673a4efcbc72a62105a24d9b0b54047417160f7d
WIP
- src/hb-ot-layout-gpos-private.hh | 102
- +++++++++++++++++++++++++++++++--------
+ src/hb-ot-layout-gpos-private.hh | 102 +++++++++++++++++++++++++++++++--------
1 file changed, 81 insertions(+), 21 deletions(-)
commit 40d73bc68dd828cf68f90fde0f9499a6ce9fbb19
Date: Tue Mar 16 03:46:17 2010 -0400
Fix the mystery bug!
-
+
A couple bugs joined forces to exhibit the mystery behavior of
crashes / infinite loops on OS X / wrong kerning / invalid memory
access. Pooh!
-
+
The bugs were involved:
-
+
- Wrong pointer math with ValueRecord in PairPosFormat1
-
+
- Fallout from avoiding flex arrays, code not correctly updated
to remove sizeof() usage.
-
+
We strictly never use sizeof() directly now. And the PairPos code
is cleaned up. Should fix them all. Bugs are:
-
+
Bug 605655 - Pango 1.26.2 introduces kerning bug
Bug 611229 - Pango reads from uninitialized memory
Bug 593240 - (pangoosx) Crash / infinite loop with Mac OS X
-
+
We were also doing wrong math converting Device adjustments to
hb_position_t. Fallout from FreeType days. Should shift 16, not
6. Fixed that too.
-
+
There's still another bug: we don't sanitize Device records
referenced from value records. Fixing that also.
src/hb-open-file-private.hh | 4 +++-
src/hb-open-type-private.hh | 11 ++++++-----
src/hb-ot-layout-common-private.hh | 10 ++++++++--
- src/hb-ot-layout-gpos-private.hh | 37
- ++++++++++++++++++++----------------
+ src/hb-ot-layout-gpos-private.hh | 37 ++++++++++++++++++++----------------
src/hb-ot-layout-gsubgpos-private.hh | 15 ++++++++-------
5 files changed, 46 insertions(+), 31 deletions(-)
Date: Mon Mar 1 22:33:45 2010 -0500
[ft] Check stream->read instead of stream->base
-
+
The former is more robust. See discussion on freetype-devel.
src/hb-ft.c | 5 +++--
Date: Tue Feb 23 16:47:51 2010 -0500
Make blob unlocking 64bit-safe
-
- GNOME Bug 604128 - Applications crash when displaying Hebrew
- characters
+
+ GNOME Bug 604128 - Applications crash when displaying Hebrew characters
src/hb-blob.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
Date: Wed Feb 17 15:14:57 2010 -0500
Use __attribute__((unused)) only with gcc 4 and later
-
+
See discussion at:
https://bugzilla.gnome.org/show_bug.cgi?id=610183
Date: Sun Dec 20 21:26:24 2009 +0100
Revert "Fallback to 'kern' if no GPOS applied"
-
+
This reverts commit d740c8f78bcbe80a8bcd8a9468830a406da37cc0.
-
- The change is wrong. If there is a GPOS table, we should not use
- 'kern'.
+
+ The change is wrong. If there is a GPOS table, we should not use 'kern'.
src/hb-ot-shape.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Oops, add file.
- src/hb-ot-shape-private.h | 53
- +++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape-private.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
commit 2014b8d110231b13e524008282ece7451f1ae9e7
Date: Sun Dec 20 20:58:26 2009 +0100
Hook OpenType shaping up
-
+
Default features only for now.
src/Makefile.am | 2 +
src/hb-ot-layout.cc | 28 +++++++++
src/hb-ot-layout.h | 7 +++
- src/hb-ot-shape.c | 165
- ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-shape.c | 165 ++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-shape.c | 8 +--
5 files changed, 206 insertions(+), 4 deletions(-)
Refactor hb_shape a bit
- src/hb-shape.c | 87
- +++++++++++++++++++++++++++++++++++++++++++++++++---------
+ src/hb-shape.c | 87 +++++++++++++++++++++++++++++++++++++++++++++++++---------
1 file changed, 74 insertions(+), 13 deletions(-)
commit 001fc2d2aa22f14302739fe4ca45f7535855e0fb
Add TrueType kern support
- src/hb-shape.c | 74
- +++++++++++++++++++++++++++++++++++++---------------------
+ src/hb-shape.c | 74 +++++++++++++++++++++++++++++++++++++---------------------
1 file changed, 48 insertions(+), 26 deletions(-)
commit 2c1b85cf66e5ecb7521b6018b76f0e161fb68967
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Sun Dec 20 14:56:25 2009 +0100
- We'll have to link to libstdc++ if linking to ICU, so disable test
- for now
-
- We have to get rid of the ICU in main lib. Still thinking about
- best way
+ We'll have to link to libstdc++ if linking to ICU, so disable test for now
+
+ We have to get rid of the ICU in main lib. Still thinking about best way
to do it.
src/Makefile.am | 9 ++++++---
Date: Thu Nov 19 20:28:03 2009 -0500
Another C++ strictness fix
-
- Pango Bug 602408 - Invalid C++ code breaks compile with Sun C++
- Compiler
+
+ Pango Bug 602408 - Invalid C++ code breaks compile with Sun C++ Compiler
(Error: A union member cannot have a user-defined assignment operator)
-
+
According to the bug:
-
+
C++ Programming Language by Bjarne Stroustrup: Chapter 10.4.12 forbids
- explicitly using of union members with constructors, destructors
- or assignment
+ explicitly using of union members with constructors, destructors or assignment
operations.
-
- So we use a set() method instead of the assignment operator. Ugly,
- but hey,
+
+ So we use a set() method instead of the assignment operator. Ugly, but hey,
that's life.
src/hb-open-type-private.hh | 8 ++++----
src/hb-common.h | 11 +++++
src/hb-shape.c | 38 +++++++++++++++--
src/hb-unicode-private.h | 5 +++
- src/hb-unicode.c | 103
- +++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-unicode.c | 103 +++++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 196 insertions(+), 14 deletions(-)
commit b4b4272c8d19ba3e0cb8f12b3b7d1590349e3d14
Date: Fri Nov 6 17:23:31 2009 -0500
[GSUB] More ligature/component fixing
-
- We can only reuse the ligid if it belongs to a previous ligature,
- not a
+
+ We can only reuse the ligid if it belongs to a previous ligature, not a
component!
src/hb-ot-layout-gsub-private.hh | 4 ++--
Add _hb_buffer_add_output_glyphs() that takes codepoint_t*
src/hb-buffer-private.h | 10 ++++++++-
- src/hb-buffer.c | 45
- ++++++++++++++++++++++++++++++++++++++--
+ src/hb-buffer.c | 45 ++++++++++++++++++++++++++++++++++++++--
src/hb-ot-layout-gsub-private.hh | 16 +++++++-------
3 files changed, 60 insertions(+), 11 deletions(-)
Date: Fri Nov 6 16:47:31 2009 -0500
Add hb_ot_layout_position_finish()
-
+
We expect buffer to be setup with default positions before GPOS.
src/hb-buffer-private.h | 6 +----
src/hb-buffer.h | 11 +--------
src/hb-ot-layout-gpos-private.hh | 8 +++----
- src/hb-ot-layout.cc | 52
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout.cc | 52 ++++++++++++++++++++++++++++++++++++++++
src/hb-ot-layout.h | 16 +++++++++----
5 files changed, 69 insertions(+), 24 deletions(-)
src/hb-buffer.h | 4 ++--
src/hb-font.h | 4 ++--
src/hb-ft.c | 10 +++++-----
- src/hb-ot-layout-gpos-private.hh | 40
- ++++++++++++----------------------------
+ src/hb-ot-layout-gpos-private.hh | 40 ++++++++++++----------------------------
src/hb-shape.c | 14 +++++++-------
src/hb-shape.h | 4 ++--
7 files changed, 32 insertions(+), 48 deletions(-)
src/hb-language.h | 44 ++++
src/hb-ot-layout.cc | 6 +-
src/hb-ot-layout.h | 4 +-
- src/hb-ot-tag.c | 662
- ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-tag.c | 662 ++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-ot-tag.h | 49 ++++
src/hb-ot.h | 1 +
src/hb-private.h | 3 +
Date: Wed Nov 4 16:36:14 2009 -0500
Fix array query API
-
+
The array query APIs now all do:
-
+
- Return the total number of items
- Take a start_offset, such that individual items can be fetched
- The _count IN/OUT variable always has number of items written
TODO | 1 -
src/hb-ot-layout-common-private.hh | 59 ++++++++++++++-----------
- src/hb-ot-layout-gdef-private.hh | 84
- +++++++++++++++++++++---------------
+ src/hb-ot-layout-gdef-private.hh | 84 +++++++++++++++++++++---------------
src/hb-ot-layout-gsubgpos-private.hh | 14 +++---
src/hb-ot-layout.cc | 40 ++++++++++-------
src/hb-ot-layout.h | 24 +++++++----
src/hb-font.cc | 2 +-
src/hb-font.h | 2 +-
- src/hb-ft.c | 114
- ++++++++++++++++++++++++++++++---------------------------
+ src/hb-ft.c | 114 ++++++++++++++++++++++++++++++---------------------------
3 files changed, 63 insertions(+), 55 deletions(-)
commit f8be443aecd54b479470e6559b1dfbc8f33c5f55
TODO | 1 +
src/hb-font-private.h | 8 ++---
- src/hb-font.cc | 72
- +++++++++++++++++++++++++++++++++++++---
+ src/hb-font.cc | 72 +++++++++++++++++++++++++++++++++++++---
src/hb-font.h | 9 +++--
src/hb-ot-layout-gpos-private.hh | 7 ++--
src/hb-ot-layout-gsub-private.hh | 2 +-
src/hb-font-private.h | 4 +-
src/hb-font.cc | 17 ++++-
src/hb-font.h | 6 +-
- src/hb-ft.c | 192
- ++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ft.c | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-ft.h | 52 ++++++++++++++
src/hb-glib.h | 2 -
src/hb-icu.h | 2 -
configure.ac | 8 +-
src/Makefile.am | 23 +++++-
- src/hb-icu.c | 221
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-icu.c | 221 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-icu.h | 41 +++++++++++
4 files changed, 288 insertions(+), 5 deletions(-)
TODO | 1 -
src/hb-buffer-private.h | 12 +++++++++++-
- src/hb-buffer.c | 47
- ++++++++++++++++++++++++++++++++++++++---------
+ src/hb-buffer.c | 47 ++++++++++++++++++++++++++++++++++++++---------
src/hb-buffer.h | 10 ++++++++++
src/hb-font-private.h | 3 ---
src/hb-font.cc | 17 -----------------
Date: Tue Nov 3 15:14:40 2009 -0500
[Makefile] Install hb-unicode.h
-
+
Separate OT headers also.
src/Makefile.am | 27 ++++++++++++++++-----------
Date: Tue Nov 3 14:18:33 2009 -0500
Use the C linker, not C++ linker
-
+
Such that we don't link to libstdc++.
src/Makefile.am | 2 ++
Date: Tue Nov 3 10:47:29 2009 -0500
Don't use zero-sized arrays
-
- It's not part of the standard and MSVC doesn't like it. It makes
- the code
+
+ It's not part of the standard and MSVC doesn't like it. It makes the code
a lot less elegant than it used to be, but I think it should work now.
src/hb-open-file-private.hh | 4 +-
src/hb-open-type-private.hh | 36 +++++++++++------
src/hb-ot-layout-common-private.hh | 33 ++++++++--------
src/hb-ot-layout-gdef-private.hh | 14 +++----
- src/hb-ot-layout-gpos-private.hh | 76
- ++++++++++++++----------------------
+ src/hb-ot-layout-gpos-private.hh | 76 ++++++++++++++----------------------
src/hb-ot-layout-gsub-private.hh | 44 ++++++++-------------
src/hb-ot-layout-gsubgpos-private.hh | 47 +++++++++++-----------
src/hb-private.h | 5 +++
Date: Mon Nov 2 18:31:53 2009 -0500
Build without glib
-
- Thready-safety disabled in that case, until we add support for
- pthread, etc.
+
+ Thready-safety disabled in that case, until we add support for pthread, etc.
Fun...
src/hb-private.h | 19 +++++++++++++++++--
NEWS | 0
src/README => README | 0
src/TODO => TODO | 0
- autogen.sh | 189
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ autogen.sh | 189 +++++++++++++++++++++++++++++++++++++++++++++++++
configure.ac | 40 +++++++++++
- git.mk | 184
- +++++++++++++++++++++++++++++++++++++++++++++++
+ git.mk | 184 +++++++++++++++++++++++++++++++++++++++++++++++
harfbuzz.pc.in | 11 +++
src/.gitignore | 1 -
src/Makefile.ng | 11 ---
Date: Thu Oct 29 03:05:18 2009 -0400
[HB] Add point_index to get_contour_point()
-
+
Pointed out by Keith Stribley on HarfBuzz list.
src/hb-font.h | 1 +
Date: Thu Oct 29 03:00:44 2009 -0400
[HB] Fix lookup_flag ignoring
-
+
Reported by Keith Stribley on HarfBuzz list.
src/hb-ot-layout-common-private.hh | 1 +
Date: Mon Sep 21 13:43:54 2009 -0400
[HB] Fix apply_lookup() loop
-
- Part of Bug 595539 - Regressions in rendering certain Thai sequences
- with
+
+ Part of Bug 595539 - Regressions in rendering certain Thai sequences with
OpenType font
src/hb-ot-layout-gsubgpos-private.hh | 3 ++-
Date: Mon Sep 21 13:40:38 2009 -0400
[HB] Fix bug in chain_context_lookup() invocations
-
- Part of Bug 595539 - Regressions in rendering certain Thai sequences
- with
+
+ Part of Bug 595539 - Regressions in rendering certain Thai sequences with
OpenType font
src/hb-ot-layout-gsubgpos-private.hh | 4 ++--
src/hb-open-type-private.hh | 50 ++++++++++----------
src/hb-ot-layout-common-private.hh | 32 ++++++-------
src/hb-ot-layout-gdef-private.hh | 20 ++++----
- src/hb-ot-layout-gpos-private.hh | 92
- ++++++++++++++++++------------------
+ src/hb-ot-layout-gpos-private.hh | 92 ++++++++++++++++++------------------
src/hb-ot-layout-gsub-private.hh | 72 ++++++++++++++--------------
src/hb-ot-layout-gsubgpos-private.hh | 78 +++++++++++++++---------------
7 files changed, 176 insertions(+), 176 deletions(-)
src/hb-ot-layout-gpos-private.hh | 29 ++++++++++++++++++---
src/hb-ot-layout-gsub-private.hh | 28 ++++++++++++++++++---
- src/hb-ot-layout-gsubgpos-private.hh | 49
- ++++++++++++++++++++++++++++++++++--
+ src/hb-ot-layout-gsubgpos-private.hh | 49 ++++++++++++++++++++++++++++++++++--
3 files changed, 98 insertions(+), 8 deletions(-)
commit 95e202403ffa543c817f45cca21fbc116eb8e807
Date: Thu Aug 20 14:01:37 2009 -0400
Bug 592484 - invalid write in HB
-
+
Fix off-by-one.
src/hb-ot-layout.cc | 4 ++--
Date: Wed Aug 19 18:07:36 2009 -0400
[HB] Rename CAIRO_ in macro prefix to HB_
-
+
Hiss!
src/hb-private.h | 6 +++---
Date: Wed Aug 19 16:45:41 2009 -0400
[HB] Remove HB_MEMORY_MODE_READONLY_NEVER_DUPLICATE
-
+
Unlike the rest of the memory-mode enum, this one didn't only
describe the access mode of the input memory region. Remove it.
-
+
If someone wants to inhibit duplicating, they can lock the blob
and throw away the key.
-
+
Based on mailing list discussion with Carl Worth.
src/hb-blob.c | 51 +++++++++++++++++++++++++--------------------------
Date: Tue Aug 18 15:49:23 2009 -0400
Bug 592194 - Fix missing _SC_PAGE_SIZE macro
-
+
Autoconfiscate a simple call to mprotect() even more.
- src/hb-blob.c | 94
- ++++++++++++++++++++++++++++++++++++++---------------------
+ src/hb-blob.c | 94 ++++++++++++++++++++++++++++++++++++++---------------------
1 file changed, 60 insertions(+), 34 deletions(-)
commit 3c69bd46e27069fac0bfdefdecf5492c17eb01df
Date: Mon Aug 17 16:48:13 2009 -0400
[HB] Avoid int overflow in GPOS
-
- Bug 592036 - integer overflow bug causes misrendering of Nepali
- characters
+
+ Bug 592036 - integer overflow bug causes misrendering of Nepali characters
src/hb-ot-layout-gpos-private.hh | 20 ++++++++++----------
src/hb-private.h | 3 +++
[HB] Merge mark positionin code between three types of lookups
- src/hb-ot-layout-gpos-private.hh | 95
- ++++++++++++----------------------------
+ src/hb-ot-layout-gpos-private.hh | 95 ++++++++++++----------------------------
1 file changed, 29 insertions(+), 66 deletions(-)
commit cd33cb9ed84308da72bd7c64b9355dc2410c63ec
[HB] Simplify MarkBase and MarkLig too
- src/hb-ot-layout-gpos-private.hh | 127
- +++++++++++++++------------------------
+ src/hb-ot-layout-gpos-private.hh | 127 +++++++++++++++------------------------
1 file changed, 48 insertions(+), 79 deletions(-)
commit dfa54f4440960c39d37ef02fff4c0d9eb315d4b4
src/Makefile.am | 2 ++
src/hb-shape.c | 40 ++++++++++++++++++++++++++++++++++++++++
- src/hb-shape.h | 53
- +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-shape.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 95 insertions(+)
commit 2866d2974b6768e93cc7d473d14c5a8abae5f7fd
Date: Thu Aug 13 11:47:08 2009 -0400
[HB] Bitfield packing *is* very delicate
-
+
Fix the second instance.
src/hb-buffer.h | 2 +-
Date: Thu Aug 13 05:25:23 2009 -0400
Bug 591511 – hh-blob.c does not compile using mingw on windows
-
+
Check for sys/mman.h, not mprotect().
src/hb-blob.c | 8 ++++----
Date: Thu Aug 13 05:20:46 2009 -0400
[HB] Fix buffer sizing issue with mingw gcc
-
- Bit field packing is a delicate field. Issue reported in comment
- 3 here:
+
+ Bit field packing is a delicate field. Issue reported in comment 3 here:
http://bugzilla.gnome.org/show_bug.cgi?id=591511
src/hb-buffer-private.h | 14 +++++++-------
Date: Wed Aug 12 19:45:50 2009 -0400
Bug 591413 – needs to link with libstdc++
-
+
Enforce -fno-exceptions better.
src/Makefile.am | 2 +-
Date: Wed Aug 12 19:36:29 2009 -0400
Bug 591511 – hb-blob.c does not compile using mingw on windows
-
+
Only call mprotect() when available. For optimal performance, a win32
way to make memory writeable needs to be added.
Date: Wed Aug 12 16:47:27 2009 -0400
[HB] Fix _hb_buffer_next() when positioning
-
+
We were copying glyphs to output. This should not happen when in
GPOS. Back then it was fine, then some optimizations broke then
assumption.
Date: Wed Aug 12 15:40:04 2009 -0400
[HB] Fix invalid access / overflow on x86-64
-
+
Bug 591557 – [HB] crash scrolling the evolution message list
Bug 591576 – crashed with SIGSEGV at pango
[HB] Add hb-glib
src/Makefile.am | 4 +++-
- src/hb-glib.c | 56
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-glib.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-glib.h | 41 +++++++++++++++++++++++++++++++++++
src/hb-unicode-private.h | 2 +-
src/hb-unicode.c | 10 ++++-----
src/hb-object-private.h | 2 +-
src/hb-unicode-private.h | 12 ++++-----
- src/hb-unicode.c | 67
- ++++++++++++++++++++++++++++++++++++++++++------
+ src/hb-unicode.c | 67 ++++++++++++++++++++++++++++++++++++++++++------
src/hb-unicode.h | 3 ---
4 files changed, 65 insertions(+), 19 deletions(-)
[HB] Implement buffer UTF-X input
- src/hb-buffer.c | 110
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-buffer.c | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hb-buffer.h | 12 +++----
2 files changed, 116 insertions(+), 6 deletions(-)
src/hb-font.h | 140 ++++++++++--------------------
src/hb-unicode-private.h | 54 ++++++++++++
src/hb-unicode.c | 89 +++++++++++++++++++
- src/hb-unicode.h | 220
- +++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-unicode.h | 220 +++++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 463 insertions(+), 235 deletions(-)
commit 20b035dad41247076815a2bbb0346d63058b322f
Date: Mon Aug 10 19:00:36 2009 -0400
[HB] Put C++ inline's back
-
+
Apparetly in C++, inline means a totally different thing.
src/hb-open-file-private.hh | 14 +++++++-------
Date: Mon Aug 10 13:57:02 2009 -0400
[HB] Don't override CXX compiler
-
+
Just add couple of options to it (still assuming gcc)
src/Makefile.am | 3 ++-
Date: Sat Aug 8 16:57:27 2009 -0400
[HB] Remove hb_ot_layout_table_find_feature()
-
- That function doesn't make much sense as multiple features in the
- table may
+
+ That function doesn't make much sense as multiple features in the table may
have the same tag.
src/hb-ot-layout.cc | 16 ----------------
src/hb-open-type-private.hh | 104 +------------------------
src/hb-ot-layout-common-private.hh | 103 ++++++++++++++++++------
src/hb-ot-layout-gsubgpos-private.hh | 35 +++++++--
- src/hb-ot-layout.cc | 146
- ++++++++++++-----------------------
+ src/hb-ot-layout.cc | 146 ++++++++++++-----------------------
src/hb-ot-layout.h | 101 ++++++++++--------------
7 files changed, 240 insertions(+), 292 deletions(-)
[HB] Fix blob to use a actual mutex
- src/hb-blob.c | 125
- +++++++++++++++++++++++++++++++++++-------------
+ src/hb-blob.c | 125 +++++++++++++++++++++++++++++++++++-------------
src/hb-object-private.h | 4 +-
src/hb-private.h | 20 +++++---
3 files changed, 106 insertions(+), 43 deletions(-)
src/Makefile.am | 5 +++--
src/hb-blob.c | 4 ++--
src/hb-object-private.h | 19 ++++++-------------
- src/hb-private.h | 45
- ++++++++++++++++++++++++++-------------------
+ src/hb-private.h | 45 ++++++++++++++++++++++++++-------------------
4 files changed, 37 insertions(+), 36 deletions(-)
commit 9b76a290a94f2603f3cb9498ae976125347cf54b
[HB] Improve debug output and fix mprotect bug
- src/hb-blob.c | 57
- ++++++++++++++++++++++++++++++++++++++-------
+ src/hb-blob.c | 57 ++++++++++++++++++++++++++++++++++++++-------
src/hb-open-type-private.hh | 30 +++++++++++-------------
src/hb-private.h | 3 ++-
3 files changed, 65 insertions(+), 25 deletions(-)
[HB] More debugging output
- src/hb-open-type-private.hh | 45
- ++++++++++++++++++++++++++++++++++++++++-----
+ src/hb-open-type-private.hh | 45 ++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 40 insertions(+), 5 deletions(-)
commit 8cd6fa28d1b77100491519b8dedb2e113508bf59
[HB] Add sanitize debugging facilities
src/hb-open-file-private.hh | 4 ++++
- src/hb-open-type-private.hh | 43
- +++++++++++++++++++++++++++++++-----
+ src/hb-open-type-private.hh | 43 +++++++++++++++++++++++++++++++-----
src/hb-ot-layout-common-private.hh | 17 ++++++++++++++
src/hb-ot-layout-gdef-private.hh | 10 +++++++++
src/hb-ot-layout-gpos-private.hh | 28 +++++++++++++++++++++++
[HB] Add Sanitizer
- src/hb-open-types-private.hh | 58
- ++++++++++++++++++++++++++++++++++++++++----
+ src/hb-open-types-private.hh | 58 ++++++++++++++++++++++++++++++++++++++++----
1 file changed, 53 insertions(+), 5 deletions(-)
commit 2765d333e523a13dbd932fa33f3b39a5cf83f0f7
[HB] Shuffle code around
- src/hb-open-types-private.hh | 127
- ++++++++++++++++++++++---------------------
+ src/hb-open-types-private.hh | 127 ++++++++++++++++++++++---------------------
1 file changed, 65 insertions(+), 62 deletions(-)
commit b1e187fc6365f5355c652a61494a5e9f6acf51b4
[HB] open-file sanitize()
- src/hb-open-file-private.hh | 46
- ++++++++++++++++++++++++++++++++++++++++----
+ src/hb-open-file-private.hh | 46 ++++++++++++++++++++++++++++++++++++++++----
src/hb-open-types-private.hh | 13 +++++++++++++
2 files changed, 55 insertions(+), 4 deletions(-)
[HB] GDEF sanitize()
- src/hb-ot-layout-gdef-private.hh | 54
- ++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout-gdef-private.hh | 54 ++++++++++++++++++++++++++++++++++++
src/hb-ot-layout-gpos-private.hh | 2 +-
src/hb-ot-layout-gsub-private.hh | 2 +-
src/hb-ot-layout-gsubgpos-private.hh | 2 +-
[HB] GPOS sanitize()
src/hb-open-types-private.hh | 22 ++++-
- src/hb-ot-layout-gpos-private.hh | 195
- ++++++++++++++++++++++++++++++++++++++-
+ src/hb-ot-layout-gpos-private.hh | 195 ++++++++++++++++++++++++++++++++++++++-
src/hb-ot-layout-gsub-private.hh | 2 -
3 files changed, 213 insertions(+), 6 deletions(-)
src/hb-open-types-private.hh | 23 ++++++++-----
src/hb-ot-layout-common-private.hh | 7 ++--
src/hb-ot-layout-gsub-private.hh | 27 ++++++---------
- src/hb-ot-layout-gsubgpos-private.hh | 64
- +++++++++++++-----------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 64 +++++++++++++-----------------------
4 files changed, 50 insertions(+), 71 deletions(-)
commit 196598bbccff08415ff5192314cba044df258cad
src/hb-ot-layout-common-private.hh | 8 +++----
src/hb-ot-layout-gpos-private.hh | 12 +++++-----
src/hb-ot-layout-gsub-private.hh | 20 ++++++++--------
- src/hb-ot-layout-gsubgpos-private.hh | 44
- ++++++++++++++++++------------------
+ src/hb-ot-layout-gsubgpos-private.hh | 44 ++++++++++++++++++------------------
6 files changed, 57 insertions(+), 50 deletions(-)
commit 92b5dd8e71e1bdeaa6e86a53f167683a3f5f4289
[HB] Merge more templates
- src/hb-open-types-private.hh | 167
- ++++++++++++++-----------------------------
+ src/hb-open-types-private.hh | 167 ++++++++++++++-----------------------------
1 file changed, 55 insertions(+), 112 deletions(-)
commit e6ab2c59ba2d37942ac5fcbfe61d38b7e359ac8c
[HB] Simplify indirect sanitize()
- src/hb-open-types-private.hh | 52
- ++++++++++++++++++--------------------
+ src/hb-open-types-private.hh | 52 ++++++++++++++++++--------------------
src/hb-ot-layout-common-private.hh | 11 +-------
2 files changed, 26 insertions(+), 37 deletions(-)
src/hb-open-file-private.hh | 2 +-
src/hb-open-types-private.hh | 12 ++++---
- src/hb-ot-layout-common-private.hh | 64
- +++++++++++++++++++++++++++++++-----
+ src/hb-ot-layout-common-private.hh | 64 +++++++++++++++++++++++++++++++-----
src/hb-ot-layout-gdef-private.hh | 2 +-
src/hb-ot-layout-gsubgpos-private.hh | 15 +++++++--
5 files changed, 79 insertions(+), 16 deletions(-)
src/hb-open-types-private.hh | 105 ++++++++++++++++++++++++++++-
src/hb-ot-layout-common-private.hh | 48 +++++++++++++-
- src/hb-ot-layout-gsub-private.hh | 125
- ++++++++++++++++++++++++++++++++++-
+ src/hb-ot-layout-gsub-private.hh | 125 ++++++++++++++++++++++++++++++++++-
src/hb-ot-layout-gsubgpos-private.hh | 104 +++++++++++++++++++++++++++++
4 files changed, 376 insertions(+), 6 deletions(-)
src/hb-font.cc | 23 ++++++++++++---------
src/hb-ot-layout-private.h | 9 +++++---
- src/hb-ot-layout.cc | 51
- +++++++++++++++++++++++-----------------------
+ src/hb-ot-layout.cc | 51 +++++++++++++++++++++++-----------------------
3 files changed, 44 insertions(+), 39 deletions(-)
commit 23c86aa0009324433e78fcd0c47f2c0ff14b1949
src/hb-ot-layout-gsub-private.hh | 32 ++---
src/hb-ot-layout-gsubgpos-private.hh | 8 +-
src/hb-ot-layout-private.h | 40 ++++---
- src/hb-ot-layout.cc | 220
- +++++++++++++++--------------------
+ src/hb-ot-layout.cc | 220 +++++++++++++++--------------------
11 files changed, 237 insertions(+), 197 deletions(-)
commit fc6c94002dd5478cf9fbdaff12d8374a786c85e1
[HB] Simplify sub-blob support
- src/hb-blob.c | 172
- ++++++++++++++++++++++------------------------------------
+ src/hb-blob.c | 172 ++++++++++++++++++++++------------------------------------
src/hb-blob.h | 14 +++--
2 files changed, 74 insertions(+), 112 deletions(-)
[HB] Add sub-blobs
- src/hb-blob.c | 162
- +++++++++++++++++++++++++++++++++++++++++++++++++---------
+ src/hb-blob.c | 162 +++++++++++++++++++++++++++++++++++++++++++++++++---------
src/hb-blob.h | 12 ++++-
2 files changed, 147 insertions(+), 27 deletions(-)
[OT] Rename C++ header files from *.h to *.hh
- src/Makefile.am | 14
- +++++++-------
+ src/Makefile.am | 14 +++++++-------
src/{hb-open-file-private.h => hb-open-file-private.hh} | 8 ++++----
src/{hb-open-types-private.h => hb-open-types-private.hh} | 6 +++---
...out-common-private.h => hb-ot-layout-common-private.hh} | 8 ++++----
[HB] Move OT file handling out of ot-layout
src/Makefile.am | 3 +-
- src/hb-open-file-private.h | 145
- +++++++++++++++++++++
- ...yout-open-private.h => hb-open-types-private.h} | 117
- +----------------
+ src/hb-open-file-private.h | 145 +++++++++++++++++++++
+ ...yout-open-private.h => hb-open-types-private.h} | 117 +----------------
src/hb-ot-layout-common-private.h | 4 +-
src/hb-ot-layout.cc | 2 +-
src/main.cc | 4 +-
src/hb-ot-layout-gsub-private.h | 50 +++---
src/hb-ot-layout-gsubgpos-private.h | 12 +-
src/hb-ot-layout-private.h | 36 +++-
- src/hb-ot-layout.cc | 334
- ++++++++++++++++++++----------------
+ src/hb-ot-layout.cc | 334 ++++++++++++++++++++----------------
src/hb-ot-layout.h | 207 ++++++++++------------
11 files changed, 415 insertions(+), 376 deletions(-)
Date: Sat Aug 1 23:06:27 2009 -0400
[HB] Rename _duplicate to _copy
-
+
To be in line with cairo
src/hb-font.c | 4 ++--
[HB] Cleanup public buffer structs
- src/hb-buffer-private.h | 46
- +++++++++++++++++++++++++++++++-------
- src/hb-buffer.c | 49
- +++++++++++++++++++++--------------------
+ src/hb-buffer-private.h | 46 +++++++++++++++++++++++++++++++-------
+ src/hb-buffer.c | 49 +++++++++++++++++++++--------------------
src/hb-buffer.h | 35 ++++++++++++++---------------
src/hb-ot-layout-gpos-private.h | 8 +++----
src/hb-ot-layout-private.h | 5 +++--
[HB] Port buffert to new object API
src/hb-buffer-private.h | 24 +++++++++++++++---
- src/hb-buffer.c | 65
- +++++++++++++++++++++++++++++++++++++------------
+ src/hb-buffer.c | 65 +++++++++++++++++++++++++++++++++++++------------
src/hb-buffer.h | 53 +++++++++++++++++++++++++---------------
3 files changed, 104 insertions(+), 38 deletions(-)
[HB] Assorted compiler macros
src/hb-ot-layout-open-private.h | 4 +-
- src/hb-private.h | 88
- +++++++++++++++++++++++++++++++----------
+ src/hb-private.h | 88 +++++++++++++++++++++++++++++++----------
2 files changed, 70 insertions(+), 22 deletions(-)
commit ba8d94ce3360bfaf2c530d01f2af69237018a531
src/Makefile.am | 2 +-
src/hb-blob.c | 6 +---
src/hb-font-private.h | 1 -
- src/hb-font.c | 37
- +++++++---------------
+ src/hb-font.c | 37 +++++++---------------
src/{hb-refcount-private.h => hb-object-private.h} | 14 ++++++--
src/hb-private.h | 2 ++
6 files changed, 27 insertions(+), 35 deletions(-)
Date: Sat Aug 1 19:54:49 2009 -0400
[HB] Add abstract font and face API
-
+
Not used yet.
src/Makefile.am | 3 +
src/hb-blob.c | 6 +-
src/hb-font-private.h | 108 +++++++++++++++
- src/hb-font.c | 331
- ++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-font.c | 331 ++++++++++++++++++++++++++++++++++++++++++++++
src/hb-font.h | 182 +++++++++++++++++++++++++
src/hb-refcount-private.h | 14 +-
6 files changed, 636 insertions(+), 8 deletions(-)
[HB] Add a "blob" manager
src/Makefile.am | 5 +-
- src/hb-blob.c | 181
- ++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-blob.c | 181 ++++++++++++++++++++++++++++++++++++++++++++++
src/hb-blob.h | 74 +++++++++++++++++++
src/hb-private.h | 2 +
src/hb-refcount-private.h | 54 ++++++++++++++
[HB] Rename internal vars
- src/hb-ot-layout-gsubgpos-private.h | 56
- ++++++++++++++++++-------------------
+ src/hb-ot-layout-gsubgpos-private.h | 56 ++++++++++++++++++-------------------
1 file changed, 28 insertions(+), 28 deletions(-)
commit b196e6f2743d631ef181f1116370be3055063d36
Apply patch from Jonathan Kew
- src/hb-buffer.c | 75
- ++++++++++++++++++++++++++++-------------------------
+ src/hb-buffer.c | 75 ++++++++++++++++++++++++++++-------------------------
src/hb-buffer.h | 6 ++++-
src/hb-ot-layout.cc | 31 ++++++++++++++++++++++
src/hb-ot-layout.h | 15 +++++++++++
Date: Sat Jul 25 19:09:01 2009 -0400
Revert "XX"
-
+
This reverts commit c939f6aff405ca7b10b1f1538f46148bff719fcb.
src/Makefile.am | 2 -
src/hb-buffer.h | 14 -----
src/hb-common.h | 3 -
src/hb-ot-layout-gdef-private.h | 32 +++++------
- src/hb-ot-layout-gpos-private.h | 108
- ++++++++++++++++++------------------
+ src/hb-ot-layout-gpos-private.h | 108 ++++++++++++++++++------------------
src/hb-ot-layout-gsub-private.h | 46 +++++++--------
src/hb-ot-layout-gsubgpos-private.h | 68 +++++++++++------------
src/hb-ot-layout-private.h | 28 ++++------
src/hb-buffer.h | 14 +++++
src/hb-common.h | 3 +
src/hb-ot-layout-gdef-private.h | 32 +++++------
- src/hb-ot-layout-gpos-private.h | 108
- ++++++++++++++++++------------------
+ src/hb-ot-layout-gpos-private.h | 108 ++++++++++++++++++------------------
src/hb-ot-layout-gsub-private.h | 46 +++++++--------
src/hb-ot-layout-gsubgpos-private.h | 68 +++++++++++------------
src/hb-ot-layout-private.h | 28 ++++++----
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Sat May 30 12:02:46 2009 -0400
- [HB] Improve buffer. Don't dup out buffer unless out is longer
- than in
-
+ [HB] Improve buffer. Don't dup out buffer unless out is longer than in
+
That is, we work in-place even for ligatures now.
- src/hb-buffer.c | 156
- ++++++++++++++++++++++++--------------------------------
+ src/hb-buffer.c | 156 ++++++++++++++++++++++++--------------------------------
src/hb-buffer.h | 7 ++-
2 files changed, 71 insertions(+), 92 deletions(-)
[GPOS] Fix mark matching
- src/hb-ot-layout-gpos-private.h | 44
- +++++++++++++++++++----------------------
+ src/hb-ot-layout-gpos-private.h | 44 +++++++++++++++++++----------------------
1 file changed, 20 insertions(+), 24 deletions(-)
commit 4189b92aaa41e4a1756c561cc6e08b0ed024afda
src/hb-ot-layout-gsub-private.h | 38 +++++++++-----------
src/hb-ot-layout-gsubgpos-private.h | 14 ++++----
src/hb-ot-layout-private.h | 6 ++++
- src/hb-ot-layout.cc | 69
- ++++++++++++++++++++++++-------------
+ src/hb-ot-layout.cc | 69 ++++++++++++++++++++++++-------------
6 files changed, 76 insertions(+), 65 deletions(-)
commit 1246e41021ab1d782b4c97e5d81c4917a57e3ed4
[GDEF] Support MarkFilteringSets
- src/hb-ot-layout.cc | 59
- +++++++++++++++++++----------------------------------
+ src/hb-ot-layout.cc | 59 +++++++++++++++++++----------------------------------
1 file changed, 21 insertions(+), 38 deletions(-)
commit 5130c35e93528bcf3095fee5baf3847589167a58
[HB] Support parsing MarkFilteringSets introduced in OpenType 1.6
- src/hb-ot-layout-gdef-private.h | 55
- +++++++++++++++++++++++++++++++++++------
+ src/hb-ot-layout-gdef-private.h | 55 +++++++++++++++++++++++++++++++++++------
src/hb-ot-layout-gpos-private.h | 1 +
src/hb-ot-layout.cc | 6 ++---
3 files changed, 51 insertions(+), 11 deletions(-)
[HB] Implement get_lig_carets()
- src/hb-ot-layout-gdef-private.h | 57
- ++++++++++++++++++++++++++++++++---------
+ src/hb-ot-layout-gdef-private.h | 57 ++++++++++++++++++++++++++++++++---------
src/hb-ot-layout.cc | 17 +++++++++---
src/hb-ot-layout.h | 8 +++++-
src/main.cc | 9 +------
[HB] More buffer cleanup
src/hb-buffer-private.h | 39 +++--------
- src/hb-buffer.c | 136
- ++++++++++++++++++------------------
+ src/hb-buffer.c | 136 ++++++++++++++++++------------------
src/hb-buffer.h | 22 +++---
src/hb-ot-layout-gpos-private.h | 29 ++++----
src/hb-ot-layout-gsub-private.h | 10 +--
src/hb-buffer.c | 26 ++++++++------
src/hb-ot-layout-gsub-private.h | 26 +++++---------
src/hb-ot-layout-gsubgpos-private.h | 2 +-
- src/hb-ot-layout.cc | 71
- -------------------------------------
+ src/hb-ot-layout.cc | 71 -------------------------------------
5 files changed, 25 insertions(+), 102 deletions(-)
commit 347f0b8621d3adfec157e5634ff3defc818ea37f
[HB] Simplify Tag
- src/hb-ot-layout-open-private.h | 46
- ++++++++++++++++-------------------------
+ src/hb-ot-layout-open-private.h | 46 ++++++++++++++++-------------------------
1 file changed, 18 insertions(+), 28 deletions(-)
commit 3ec0092c5e2d48e8c4fc1618d3bee427adddb1e7
[HB] Simplify some basic things
- src/hb-ot-layout-open-private.h | 90
- +++++++++++++++++++++++++++--------------
+ src/hb-ot-layout-open-private.h | 90 +++++++++++++++++++++++++++--------------
src/main.cc | 8 ++--
2 files changed, 64 insertions(+), 34 deletions(-)
Date: Sun May 24 14:22:22 2009 -0400
[HB] Remove old code!
-
+
Goodbye 16 thousand lines of ten-year old code!
src/harfbuzz-dump-main.c | 97 -
src/harfbuzz-gdef.h | 135 -
src/harfbuzz-global.h | 84 -
src/harfbuzz-gpos-private.h | 712 -----
- src/harfbuzz-gpos.c | 6071
- -----------------------------------------
+ src/harfbuzz-gpos.c | 6071 -----------------------------------------
src/harfbuzz-gpos.h | 174 --
src/harfbuzz-gsub-private.h | 476 ----
src/harfbuzz-gsub.c | 4304 -----------------------------
src/hb-ot-layout-gdef-private.h | 2 +-
src/hb-ot-layout-gsubgpos-private.h | 2 +-
- src/hb-ot-layout-open-private.h | 54
- ++++---------------------------------
+ src/hb-ot-layout-open-private.h | 54 ++++---------------------------------
3 files changed, 7 insertions(+), 51 deletions(-)
commit 5876bf1b73fcb56cc41b4d348248a4817f9688cb
Date: Fri May 22 18:29:45 2009 -0400
[GPOS] MarkLigPosFormat1
-
+
GPOS is complete now! Yay!
- src/hb-ot-layout-gpos-private.h | 128
- +++++++++++++++++++++++++++++-----------
+ src/hb-ot-layout-gpos-private.h | 128 +++++++++++++++++++++++++++++-----------
1 file changed, 92 insertions(+), 36 deletions(-)
commit 923923feb248250626c637c11a886804011197b0
[HB] Share Extension lookup code between GSUB and GPOS
src/hb-ot-layout-gpos-private.h | 64 +++++-----------------------
- src/hb-ot-layout-gsub-private.h | 83
- +++++++------------------------------
+ src/hb-ot-layout-gsub-private.h | 83 +++++++------------------------------
src/hb-ot-layout-gsubgpos-private.h | 52 +++++++++++++++++++++++
3 files changed, 77 insertions(+), 122 deletions(-)
Date: Thu May 21 15:51:04 2009 -0400
[GPOS] Remove printf. MarkMarkPos1 is working
-
+
The "bug" was in the font.
src/hb-ot-layout-gpos-private.h | 1 -
[HB] Ouch. Add files.
src/hb-common.h | 13 +++++-----
- src/hb-private.h | 74
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ src/hb-private.h | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
2 files changed, 78 insertions(+), 9 deletions(-)
commit fe550f4dd815285e9de8c3cbff810b0a1c7b377f
Date: Thu May 21 08:27:07 2009 -0400
[GPOS] MarkMarkPosFormat1
-
+
Still not quite working.
src/TODO | 4 +-
- src/hb-ot-layout-gpos-private.h | 105
- +++++++++++++++++++++++++++++-----------
+ src/hb-ot-layout-gpos-private.h | 105 +++++++++++++++++++++++++++++-----------
2 files changed, 79 insertions(+), 30 deletions(-)
commit 357ccde36bba01a405d59b7da061fc5048cdc7b4
[GPOS] MarkBasePosFormat1
src/TODO | 1 +
- src/hb-ot-layout-gpos-private.h | 62
- +++++++++++++++++++++++++++++++++++++----
+ src/hb-ot-layout-gpos-private.h | 62 +++++++++++++++++++++++++++++++++++++----
2 files changed, 58 insertions(+), 5 deletions(-)
commit 377bfc5860ae018f54e4a2dd737b4b000383ab54
[GPOS] Remove apply_value() return value
- src/hb-ot-layout-gpos-private.h | 75
- +++++++++++++++++++----------------------
+ src/hb-ot-layout-gpos-private.h | 75 +++++++++++++++++++----------------------
1 file changed, 34 insertions(+), 41 deletions(-)
commit fb3b5ccfefc4c38c9184d432703e81f73e1f5bc7
[GPOS] Start MarkBasePosFormat1
src/TODO | 1 +
- src/hb-ot-layout-gpos-private.h | 38
- +++++++++++++++++---------------------
+ src/hb-ot-layout-gpos-private.h | 38 +++++++++++++++++---------------------
2 files changed, 18 insertions(+), 21 deletions(-)
commit ee8776d9e009a7fb8e1f3c1f9cf3ad42d9746a16
[HB] Remove last dependence on the old code base!
- src/hb-buffer-private.h | 88
- ++++++++++++++++++++---------------------
+ src/hb-buffer-private.h | 88 ++++++++++++++++++++---------------------
src/hb-buffer.c | 47 +++++++++++-----------
src/hb-ot-layout-gpos-private.h | 11 ++----
src/hb-ot-layout-gsub-private.h | 12 +++---
[HB] Remove all references to the old code!
src/Makefile.am | 76 +++++++---------------
- src/harfbuzz-buffer.c | 154
- +++++++++++++++++++--------------------------
+ src/harfbuzz-buffer.c | 154 +++++++++++++++++++--------------------------
src/harfbuzz-buffer.h | 80 +++++++++++------------
src/hb-ot-layout-private.h | 6 +-
src/hb-ot-layout.cc | 17 ++---
Date: Wed May 20 04:51:30 2009 -0400
[GPOS] Finally it's working, up to Cursive
-
+
Wow, IranNastaliq renders perfectly again!
src/hb-ot-layout.cc | 24 ++++++++++++++++++++++++
[GPOS] Fix more brokenness
src/Makefile.am | 2 +-
- src/hb-ot-layout-gpos-private.h | 37
- ++++++++++++++++++++-----------------
+ src/hb-ot-layout-gpos-private.h | 37 ++++++++++++++++++++-----------------
src/hb-ot-layout.cc | 7 +++++++
src/hb-ot-layout.h | 5 +++++
4 files changed, 33 insertions(+), 18 deletions(-)
[HB] Move lookup types enum into subtable class
- src/hb-ot-layout-gpos-private.h | 66
- ++++++++++++++++++++---------------------
+ src/hb-ot-layout-gpos-private.h | 66 ++++++++++++++++++++---------------------
src/hb-ot-layout-gsub-private.h | 44 +++++++++++++--------------
2 files changed, 55 insertions(+), 55 deletions(-)
[HB] Indentation
- src/hb-ot-layout-common-private.h | 170
- +++++++++++++++++-------------------
+ src/hb-ot-layout-common-private.h | 170 +++++++++++++++++-------------------
src/hb-ot-layout-gdef-private.h | 65 +++++++-------
src/hb-ot-layout-gsubgpos-private.h | 150 +++++++++++++++++--------------
- src/hb-ot-layout-open-private.h | 159
- ++++++++++++++++-----------------
+ src/hb-ot-layout-open-private.h | 159 ++++++++++++++++-----------------
src/hb-ot-layout-private.h | 9 +-
5 files changed, 288 insertions(+), 265 deletions(-)
[HB] Indentation
- src/hb-ot-layout-gpos-private.h | 253
- +++++++++++++++++++++-----------------
- src/hb-ot-layout-gsub-private.h | 262
- ++++++++++++++++++++++------------------
+ src/hb-ot-layout-gpos-private.h | 253 +++++++++++++++++++++-----------------
+ src/hb-ot-layout-gsub-private.h | 262 ++++++++++++++++++++++------------------
2 files changed, 284 insertions(+), 231 deletions(-)
commit d18fd8e3f7185f531fa4c4988d3f5d5c5282b8eb
[GPOS] CursivePosFormat1
- src/hb-ot-layout-gpos-private.h | 174
- ++++++++++++++++++++++++++++++++++++++--
+ src/hb-ot-layout-gpos-private.h | 174 ++++++++++++++++++++++++++++++++++++++--
src/hb-ot-layout-private.h | 2 +-
2 files changed, 169 insertions(+), 7 deletions(-)
[GSUB] PairPosFormat2
- src/hb-ot-layout-gpos-private.h | 43
- ++++++++++++++++++++++++++++++++++++-----
+ src/hb-ot-layout-gpos-private.h | 43 ++++++++++++++++++++++++++++++++++++-----
1 file changed, 38 insertions(+), 5 deletions(-)
commit b24ecbadf44d56fd3286d1d3ff6928151ccec9bd
[GPOS] PairPosFormat1
- src/hb-ot-layout-gpos-private.h | 91
- +++++++++++++++++++++++++++++++++--------
+ src/hb-ot-layout-gpos-private.h | 91 +++++++++++++++++++++++++++++++++--------
1 file changed, 73 insertions(+), 18 deletions(-)
commit 056c7ec1aea1eca60a3b20b583b8a8072be9d758
src/harfbuzz-buffer-private.h | 1 +
src/harfbuzz-buffer.c | 3 -
src/hb-ot-layout-common-private.h | 35 ++++++-----
- src/hb-ot-layout-gpos-private.h | 127
- ++++++++++++++++++++++++++++----------
+ src/hb-ot-layout-gpos-private.h | 127 ++++++++++++++++++++++++++++----------
4 files changed, 116 insertions(+), 50 deletions(-)
commit 4fa77d3c4305a76b956de8c1a9b83a961d035a80
[HB] Rename LOOKUP_ARGS to APPLY_ARGS
- src/hb-ot-layout-gpos-private.h | 88
- ++++++++++++++++++------------------
- src/hb-ot-layout-gsub-private.h | 84
- +++++++++++++++++-----------------
- src/hb-ot-layout-gsubgpos-private.h | 90
- ++++++++++++++++++-------------------
+ src/hb-ot-layout-gpos-private.h | 88 ++++++++++++++++++------------------
+ src/hb-ot-layout-gsub-private.h | 84 +++++++++++++++++-----------------
+ src/hb-ot-layout-gsubgpos-private.h | 90 ++++++++++++++++++-------------------
3 files changed, 131 insertions(+), 131 deletions(-)
commit 2a8e6accdf798a78ff180dcb593140592d62b872
[HB] Internally rename position() and substitute() to apply()
- src/hb-ot-layout-gpos-private.h | 110
- ++++++++++++++++++++--------------------
- src/hb-ot-layout-gsub-private.h | 104
- ++++++++++++++++++-------------------
+ src/hb-ot-layout-gpos-private.h | 110 ++++++++++++++++++++--------------------
+ src/hb-ot-layout-gsub-private.h | 104 ++++++++++++++++++-------------------
2 files changed, 107 insertions(+), 107 deletions(-)
commit f6c8a6eacf27fd1c509d07c85985f0367c5e475f
[HB] Start GPOS!
- src/hb-ot-layout-gpos-private.h | 915
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout-gpos-private.h | 915 ++++++++++++++++++++++++++++++++++++++++
src/hb-ot-layout-gsub-private.h | 2 -
src/hb-ot-layout-private.h | 15 +-
src/hb-ot-layout.cc | 5 +-
Date: Mon May 18 05:47:47 2009 -0400
[GSUB] Implement ReverseChainSingleSubst
-
+
GSUB is done!
- src/hb-ot-layout-gsub-private.h | 55
- +++++++++++++++++++++++++++----------
+ src/hb-ot-layout-gsub-private.h | 55 +++++++++++++++++++++++++++----------
src/hb-ot-layout-gsubgpos-private.h | 43 +++++++++--------------------
2 files changed, 54 insertions(+), 44 deletions(-)
Date: Mon May 18 03:56:39 2009 -0400
[HB] ChainContext complete
-
+
IranNastaliq renders perfectly again!
- src/hb-ot-layout-gsubgpos-private.h | 63
- +++++++++++++++++++++++++++----------
+ src/hb-ot-layout-gsubgpos-private.h | 63 +++++++++++++++++++++++++++----------
1 file changed, 46 insertions(+), 17 deletions(-)
commit e072c24e79f0e7c1e078a87c782ab5dd8f21dcda
[HB] Implement backtrack matching
- src/hb-ot-layout-gsubgpos-private.h | 61
- +++++++++++++++++++++++++++----------
+ src/hb-ot-layout-gsubgpos-private.h | 61 +++++++++++++++++++++++++++----------
1 file changed, 45 insertions(+), 16 deletions(-)
commit 02e1e5c63fa4f896053fa3c21e495239e1e9caa2
[HB] One more step to go, for fully working GSUB and ChainContext
- src/hb-ot-layout-gsubgpos-private.h | 107
- ++++++++++++++++++++----------------
+ src/hb-ot-layout-gsubgpos-private.h | 107 ++++++++++++++++++++----------------
1 file changed, 61 insertions(+), 46 deletions(-)
commit f14c2b7acfba75b8a6880f41ceec758f9a56abce
[HB] Further modularize Context matching
- src/hb-ot-layout-gsubgpos-private.h | 92
- +++++++++++++++++++++++++------------
+ src/hb-ot-layout-gsubgpos-private.h | 92 +++++++++++++++++++++++++------------
1 file changed, 63 insertions(+), 29 deletions(-)
commit 13ed4405c558e445b052360f1ed8ee27ecf48e6e
[HB] A step closer to working ChainContext
- src/hb-ot-layout-gsubgpos-private.h | 36
- ++++++++++++++++++++++++++----------
+ src/hb-ot-layout-gsubgpos-private.h | 36 ++++++++++++++++++++++++++----------
1 file changed, 26 insertions(+), 10 deletions(-)
commit e8cbaaf6d538036ff9b880b018db402e0895ed01
[HB] More template goodness
- src/hb-ot-layout-gsubgpos-private.h | 37
- +++++++++++++++----------------------
+ src/hb-ot-layout-gsubgpos-private.h | 37 +++++++++++++++----------------------
1 file changed, 15 insertions(+), 22 deletions(-)
commit aa3d7adca5c821c91a2a1b5380fd6b3d19656ab1
src/hb-ot-layout-common-private.h | 6 +-
src/hb-ot-layout-gsub-private.h | 15 +++-
- src/hb-ot-layout-gsubgpos-private.h | 174
- ++++++++++++++++++++++--------------
+ src/hb-ot-layout-gsubgpos-private.h | 174 ++++++++++++++++++++++--------------
3 files changed, 125 insertions(+), 70 deletions(-)
commit 48f16ed96ac7041b511d9e0864623d2aa09c6da3
[HB] Towards sharing Context and ChainContext code
- src/hb-ot-layout-gsubgpos-private.h | 220
- ++++++++++++++++--------------------
+ src/hb-ot-layout-gsubgpos-private.h | 220 ++++++++++++++++--------------------
1 file changed, 99 insertions(+), 121 deletions(-)
commit 6cf2a52593cb4b23e3efe5e16228e3172bdcdd05
[HB] Start ChainContext and ReverseChainSingleSubst lookups
- src/hb-ot-layout-gsub-private.h | 269
- ++++++++----------------------------
+ src/hb-ot-layout-gsub-private.h | 269 ++++++++----------------------------
src/hb-ot-layout-gsubgpos-private.h | 214 +++++++++++++++++++++++++++-
2 files changed, 268 insertions(+), 215 deletions(-)
[HB] Split Layout-common tables into new files
- src/hb-ot-layout-common-private.h | 429
- ++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout-common-private.h | 429 ++++++++++++++++++++++++++++++++++++
src/hb-ot-layout-gdef-private.h | 3 +-
src/hb-ot-layout-gsub-private.h | 1 +
src/hb-ot-layout-gsubgpos-private.h | 2 +
- src/hb-ot-layout-open-private.h | 408
- ----------------------------------
+ src/hb-ot-layout-open-private.h | 408 ----------------------------------
5 files changed, 434 insertions(+), 409 deletions(-)
commit f45107fe0904414f1266648a6c42849c494fe611
[HB] More shuffling
- src/hb-ot-layout-gsub-private.h | 71
- +++++++++++++++++++++----------------
+ src/hb-ot-layout-gsub-private.h | 71 +++++++++++++++++++++----------------
src/hb-ot-layout-gsubgpos-private.h | 30 ++++++++++++++++
src/hb-ot-layout-open-private.h | 41 ---------------------
3 files changed, 71 insertions(+), 71 deletions(-)
[HB] Cleanup format unions
src/hb-ot-layout-gdef-private.h | 18 ++++----
- src/hb-ot-layout-gsub-private.h | 87
- +++++++++++++++++++------------------
+ src/hb-ot-layout-gsub-private.h | 87 +++++++++++++++++++------------------
src/hb-ot-layout-gsubgpos-private.h | 16 +++----
src/hb-ot-layout-open-private.h | 41 +++++++----------
4 files changed, 77 insertions(+), 85 deletions(-)
Date: Sun May 17 09:34:41 2009 -0400
[HB] Propagate property of first glyph
-
+
This slightly grows code size.
- src/hb-ot-layout-gsub-private.h | 100
- +++++++++++++++++++-----------------
+ src/hb-ot-layout-gsub-private.h | 100 +++++++++++++++++++-----------------
src/hb-ot-layout-gsubgpos-private.h | 7 +--
2 files changed, 56 insertions(+), 51 deletions(-)
[HB] Unify first glyph property checking
- src/hb-ot-layout-gsub-private.h | 81
- ++++++++++++++++---------------------
+ src/hb-ot-layout-gsub-private.h | 81 ++++++++++++++++---------------------
src/hb-ot-layout-gsubgpos-private.h | 12 ------
2 files changed, 35 insertions(+), 58 deletions(-)
[HB] Move Context matching logic out of GSUB
src/hb-ot-layout-gdef-private.h | 2 -
- src/hb-ot-layout-gsub-private.h | 331
- +---------------------------------
- src/hb-ot-layout-gsubgpos-private.h | 347
- ++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout-gsub-private.h | 331 +---------------------------------
+ src/hb-ot-layout-gsubgpos-private.h | 347 ++++++++++++++++++++++++++++++++++++
3 files changed, 352 insertions(+), 328 deletions(-)
commit a1625528cd5ed94bc8f18903da3300e823ee5b54
[GSUB] Unify ContextSubst matching
- src/hb-ot-layout-gsub-private.h | 378
- ++++++++++++++++------------------------
+ src/hb-ot-layout-gsub-private.h | 378 ++++++++++++++++------------------------
1 file changed, 154 insertions(+), 224 deletions(-)
commit c36238bea40e9e2b589028eb6de0710455b31585
[HB] Renames
- src/hb-ot-layout-gsub-private.h | 122
- ++++++++++++++++++++--------------------
+ src/hb-ot-layout-gsub-private.h | 122 ++++++++++++++++++++--------------------
1 file changed, 61 insertions(+), 61 deletions(-)
commit 15c3e75b39797a153b6bc0598f87b27c4a487228
[HB] Simplify more arrays
- src/hb-ot-layout-open-private.h | 241
- ++++++++++++++++------------------------
+ src/hb-ot-layout-open-private.h | 241 ++++++++++++++++------------------------
src/hb-ot-layout.cc | 8 +-
2 files changed, 100 insertions(+), 149 deletions(-)
[HB] Use ArrayOf<> in GSUB
src/hb-ot-layout-gdef-private.h | 3 +-
- src/hb-ot-layout-gsub-private.h | 157
- +++++++++++++---------------------------
+ src/hb-ot-layout-gsub-private.h | 157 +++++++++++++---------------------------
src/hb-ot-layout-open-private.h | 5 --
3 files changed, 53 insertions(+), 112 deletions(-)
[HB] Add ArrayOf<>
src/hb-ot-layout-gdef-private.h | 62 ++++++++-------------------------
- src/hb-ot-layout-open-private.h | 77
- ++++++++++++++++++++++++++++++-----------
+ src/hb-ot-layout-open-private.h | 77 ++++++++++++++++++++++++++++++-----------
2 files changed, 71 insertions(+), 68 deletions(-)
commit 238c855fcd4f0ef97a94a8662d2a2f2bb5c21ecb
[HB] Use OffsetTo<> for Coverage
src/hb-ot-layout-gdef-private.h | 1 +
- src/hb-ot-layout-gsub-private.h | 55
- ++++++++++++++++-------------------------
+ src/hb-ot-layout-gsub-private.h | 55 ++++++++++++++++-------------------------
src/hb-ot-layout-open-private.h | 10 +-------
3 files changed, 23 insertions(+), 43 deletions(-)
Date: Sat May 16 22:48:14 2009 -0400
[HB] Use templates for Null objects
-
+
Also use a common pool for all nul-content ones.
src/hb-ot-layout-gdef-private.h | 12 ++--
src/hb-ot-layout-gsub-private.h | 28 ++++----
- src/hb-ot-layout-open-private.h | 142
- +++++++++++++++++++++++-----------------
+ src/hb-ot-layout-open-private.h | 142 +++++++++++++++++++++++-----------------
src/hb-ot-layout.cc | 8 +--
4 files changed, 105 insertions(+), 85 deletions(-)
[GSUB] Start ChainContextSubst
- src/hb-ot-layout-gsub-private.h | 50
- ++++++++++++++++++++++++++++++++---------
+ src/hb-ot-layout-gsub-private.h | 50 ++++++++++++++++++++++++++++++++---------
1 file changed, 39 insertions(+), 11 deletions(-)
commit 7fca9e5245d2d283e8b5354eb1ddf553a7ffc033
[GSUB] Implement ContextSubstFormat3
- src/hb-ot-layout-gsub-private.h | 62
- ++++++++++++++++++++++++++++++++++++++++-
+ src/hb-ot-layout-gsub-private.h | 62 ++++++++++++++++++++++++++++++++++++++++-
1 file changed, 61 insertions(+), 1 deletion(-)
commit 1ff926a5681b5d4bfce65351062cda9dc1ffeba2
[GSUB] Implement ContextSubstFormat2
- src/hb-ot-layout-gsub-private.h | 105
- +++++++++++++++++++++++++++++++++++++---
+ src/hb-ot-layout-gsub-private.h | 105 +++++++++++++++++++++++++++++++++++++---
1 file changed, 97 insertions(+), 8 deletions(-)
commit fc36d9453ed7edb0a570abc44d7caa87aafb0fcf
[GSUB] Finish ContextSubstFormat1
- src/hb-ot-layout-gsub-private.h | 77
- ++++++++++++++++++++++++++++++++---------
+ src/hb-ot-layout-gsub-private.h | 77 ++++++++++++++++++++++++++++++++---------
src/hb-ot-layout-private.h | 14 ++++++++
src/hb-ot-layout.cc | 13 -------
3 files changed, 74 insertions(+), 30 deletions(-)
[HB] Remove get_size()
src/hb-ot-layout-gdef-private.h | 9 ------
- src/hb-ot-layout-gsub-private.h | 63
- -----------------------------------------
+ src/hb-ot-layout-gsub-private.h | 63 -----------------------------------------
src/hb-ot-layout-open-private.h | 42 ++-------------------------
3 files changed, 3 insertions(+), 111 deletions(-)
[GSUB] ContextSubst format 1
- src/hb-ot-layout-gsub-private.h | 52
- +++++++++++++++++++++++++++++++++++------
+ src/hb-ot-layout-gsub-private.h | 52 +++++++++++++++++++++++++++++++++++------
1 file changed, 45 insertions(+), 7 deletions(-)
commit f70229510303109bd0f71423cdf13aa200066d17
[GSUB] Shuffle
- src/hb-ot-layout-gsub-private.h | 170
- ++++++++++++++++++++--------------------
+ src/hb-ot-layout-gsub-private.h | 170 ++++++++++++++++++++--------------------
1 file changed, 86 insertions(+), 84 deletions(-)
commit a83e08f8728439ef75e3dfab2191ac913d8f907b
[GSUB] Towards Context subtitutes
- src/hb-ot-layout-gsub-private.h | 137
- +++++++++++++++++++++++++++++++---------
+ src/hb-ot-layout-gsub-private.h | 137 +++++++++++++++++++++++++++++++---------
1 file changed, 108 insertions(+), 29 deletions(-)
commit c9c6a78aec2b16ac06dfca8cbfaf28a77a10bae2
[GSUB] Minor refactoring
- src/hb-ot-layout-gsub-private.h | 42
- ++++++++++++++++++++++-------------------
+ src/hb-ot-layout-gsub-private.h | 42 ++++++++++++++++++++++-------------------
1 file changed, 23 insertions(+), 19 deletions(-)
commit bb3899a579b00134b24df8891b69bf1621a8190f
[GSUB] Implement ligature substitutions
src/Makefile.am | 2 +
- src/hb-ot-layout-gsub-private.h | 113
- ++++++++++++++++++++++++++++++++--------
+ src/hb-ot-layout-gsub-private.h | 113 ++++++++++++++++++++++++++++++++--------
2 files changed, 93 insertions(+), 22 deletions(-)
commit 38b011a293181856463dd08d43e2106e5bf1d56e
[GSUB] Start Ligature subtable support
- src/hb-ot-layout-gsub-private.h | 132
- +++++++++++++++++++++++++++++-----------
+ src/hb-ot-layout-gsub-private.h | 132 +++++++++++++++++++++++++++++-----------
src/hb-ot-layout.h | 2 +-
2 files changed, 96 insertions(+), 38 deletions(-)
[GSUB] Implement Alternate subtables
- src/hb-ot-layout-gsub-private.h | 104
- ++++++++++++++++++++++++++++++++++++----
+ src/hb-ot-layout-gsub-private.h | 104 ++++++++++++++++++++++++++++++++++++----
src/hb-ot-layout-open-private.h | 2 +-
2 files changed, 97 insertions(+), 9 deletions(-)
[GSUB] Implement Extension subtables
- src/hb-ot-layout-gsub-private.h | 169
- +++++++++++++++++++++++++---------------
+ src/hb-ot-layout-gsub-private.h | 169 +++++++++++++++++++++++++---------------
1 file changed, 108 insertions(+), 61 deletions(-)
commit 83e61ff4702121d3418fe82a8fe7ef6bb63bb5d2
src/harfbuzz-impl.h | 2 +-
src/harfbuzz.c | 1 -
src/hb-ot-layout-gdef-private.h | 4 +-
- src/hb-ot-layout-gsub-private.h | 383
- +++++++++++++++++++++++++++++-----------
+ src/hb-ot-layout-gsub-private.h | 383 +++++++++++++++++++++++++++++-----------
src/hb-ot-layout-open-private.h | 31 +++-
src/hb-ot-layout-private.h | 6 +-
src/hb-ot-layout.cc | 94 +++++++---
src/harfbuzz-gpos.c | 8 ++--
src/harfbuzz-gpos.h | 2 +-
src/harfbuzz-gsub.h | 2 +-
- src/hb-ot-layout-gsub-private.h | 88
- +++++++++++++++++++++++++++++++++++++----
+ src/hb-ot-layout-gsub-private.h | 88 +++++++++++++++++++++++++++++++++++++----
src/hb-ot-layout-open-private.h | 2 +-
src/hb-ot-layout-private.h | 23 ++++++-----
src/hb-ot-layout.cc | 54 +++++++++++++++++--------
src/hb-common.h | 5 +-
src/hb-ot-layout-gdef-private.h | 24 ++++----
- src/hb-ot-layout-gsub-private.h | 120
- +++++++++++++++++++++++++++++++++++++++-
+ src/hb-ot-layout-gsub-private.h | 120 +++++++++++++++++++++++++++++++++++++++-
src/hb-ot-layout-open-private.h | 51 ++++++++++-------
src/hb-ot-layout-private.h | 2 +-
src/hb-ot-layout.cc | 63 +++++++++++++++++++--
Date: Thu Apr 9 13:30:26 2009 -0400
Bug 577952 – Error loading {GDEF,GSUB,GPOS} table 0x6EAD
-
+
Detect TrueType Collections by checking the font data header instead
of checking for "face->num_faces >1".
Author: Behdad Esfahbod <behdad@gnome.org>
Date: Mon Feb 2 00:13:07 2009 +0000
- Allocate all array rows in a single ALLOC call. Saves over 100
- alloc calls
-
+ Allocate all array rows in a single ALLOC call. Saves over 100 alloc calls
+
2009-01-31 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/harfbuzz-gpos.c (Load_Mark2Array),
(Free_Mark2Array):
- Allocate all array rows in a single ALLOC call. Saves over
- 100
+ Allocate all array rows in a single ALLOC call. Saves over 100
alloc calls when loading DejaVu Sans,
- src/harfbuzz-gpos.c | 59
- +++++++++++++++--------------------------------------
+ src/harfbuzz-gpos.c | 59 +++++++++++++++--------------------------------------
1 file changed, 17 insertions(+), 42 deletions(-)
commit c561d69c721105b78bb06d1e3c5f21ca314d924a
Date: Thu Jan 29 09:20:08 2009 +0000
Remove ClassDef->Defined field. This is the comment accompanying it:
-
+
2009-01-29 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/harfbuzz-open.h:
* pango/opentype/harfbuzz-gdef.c (Make_ClassRange),
(HB_GDEF_Build_ClassDefinition):
(Load_ClassDef2), (_HB_OPEN_Load_ClassDefinition),
(_HB_OPEN_Load_EmptyClassDefinition),
(_HB_OPEN_Free_ClassDefinition):
- Remove ClassDef->Defined field. This is the comment
- accompanying it:
-
- The `Defined' field is not defined in the OpenType
- specification
- but apparently needed for processing fonts like trado.ttf:
- This
- font refers to a class which contains not a single element.
- We
+ Remove ClassDef->Defined field. This is the comment accompanying it:
+
+ The `Defined' field is not defined in the OpenType specification
+ but apparently needed for processing fonts like trado.ttf: This
+ font refers to a class which contains not a single element. We
map such classes to class 0.
-
- The comment is correct that trado.ttf (MS Traditional
- Arabic) uses
+
+ The comment is correct that trado.ttf (MS Traditional Arabic) uses
such classes. However, in my testing I couldn't identify any
- problems with the font if the special handling is removed.
- I also
- processed as many fonts as I could get my hand on and
- trado.ttf was
- the only not-totally-broken font hitting the special-case
- code.
+ problems with the font if the special handling is removed. I also
+ processed as many fonts as I could get my hand on and trado.ttf was
+ the only not-totally-broken font hitting the special-case code.
DejaVu fonts hit it too, but I'm sure they do not require the
- special-handling code. Most probably, that code introduces
- bugs
+ special-handling code. Most probably, that code introduces bugs
in them.
-
- The special-casing was consuming lots of memory.
- EIGHT MEGABYTES
- for loading DejaVu Sans! While this could be complete
- fixed, I
- decided to remove the special-handling code altogether.
- I don't
- think it will make any real difference, and if it does,
- we'll fix
+
+ The special-casing was consuming lots of memory. EIGHT MEGABYTES
+ for loading DejaVu Sans! While this could be complete fixed, I
+ decided to remove the special-handling code altogether. I don't
+ think it will make any real difference, and if it does, we'll fix
fonts. Such hacks will not be in harfbuzz-ng anyway.
-
+
Bug originally reported by nsf.
src/harfbuzz-gdef.c | 8 --------
Date: Thu Jan 29 09:19:56 2009 +0000
Use calloc(), instead of malloc()ing and memset()ing.
-
+
2009-01-29 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/harfbuzz-impl.c (_hb_alloc): Use calloc(),
instead of malloc()ing and memset()ing.
Date: Thu Jan 29 09:19:43 2009 +0000
Remove old cruft.
-
+
2009-01-29 Behdad Esfahbod <behdad@gnome.org>
+
+ * pango/opentype/harfbuzz-dump-main.c (main): Remove old cruft.
- * pango/opentype/harfbuzz-dump-main.c (main): Remove old
- cruft.
-
- src/harfbuzz-dump-main.c | 144
- +----------------------------------------------
+ src/harfbuzz-dump-main.c | 144 +----------------------------------------------
1 file changed, 1 insertion(+), 143 deletions(-)
commit 0a47c4f78e8a9e81cd305f24ec92ea61ead7dd8d
Date: Thu Jan 29 09:19:20 2009 +0000
Allocate all array rows in a single ALLOC call. Saves over 2000 alloc
-
+
2009-01-29 Behdad Esfahbod <behdad@gnome.org>
-
- * pango/opentype/harfbuzz-gpos.c (Load_BaseArray),
- (Free_BaseArray):
- Allocate all array rows in a single ALLOC call. Saves over
- 2000
+
+ * pango/opentype/harfbuzz-gpos.c (Load_BaseArray), (Free_BaseArray):
+ Allocate all array rows in a single ALLOC call. Saves over 2000
alloc calls when loading DejaVu Sans!
- src/harfbuzz-gpos.c | 57
- ++++++++++++++++-------------------------------------
+ src/harfbuzz-gpos.c | 57 ++++++++++++++++-------------------------------------
1 file changed, 17 insertions(+), 40 deletions(-)
commit 549be924bccd187f53791dfa27647981ac909545
Date: Fri Dec 26 02:31:47 2008 +0000
Bug 469049 – Fix all compiler warnings
-
+
2008-12-25 Behdad Esfahbod <behdad@gnome.org>
-
+
Bug 469049 – Fix all compiler warnings
-
+
* pango-view/viewer-pangocairo.c (render_callback):
- * pango/fonts.c (append_field),
- (pango_font_description_to_string):
+ * pango/fonts.c (append_field), (pango_font_description_to_string):
* pango/opentype/harfbuzz-dump.c:
- * pango/pango-bidi-type.c
- (pango_log2vis_get_embedding_levels):
+ * pango/pango-bidi-type.c (pango_log2vis_get_embedding_levels):
* pango/pango-coverage.c (pango_coverage_set):
* pango/pango-markup.c (span_parse_func):
* pango/pango-renderer.c
(pango_renderer_default_draw_error_underline):
* pango/pango-utils.c (pango_scan_string):
- * pango/pangocairo-render.c
- (pango_cairo_renderer_draw_trapezoid),
+ * pango/pangocairo-render.c (pango_cairo_renderer_draw_trapezoid),
(draw_error_underline), (pango_cairo_renderer_class_init):
Fix all the remaining warnings.
Date: Fri Dec 26 02:31:35 2008 +0000
Fix more warnings.
-
+
2008-12-25 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/modules.c (pango_module_load), (script_info_free):
* pango/opentype/harfbuzz-gpos.c (HB_Load_GPOS_Table):
* pango/pango-bidi-type.c:
(get_first_font), (_pango_fc_font_map_get_coverage),
(cleanup_font), (pango_fc_font_description_from_pattern),
(pango_fc_face_list_sizes), (pango_fc_family_list_faces):
- * pango/pangoft2-fontmap.c
- (pango_ft2_font_map_get_resolution):
+ * pango/pangoft2-fontmap.c (pango_ft2_font_map_get_resolution):
* pango/pangoft2-render.c (pango_ft2_renderer_init),
(pango_ft2_renderer_draw_trapezoid):
* pango/pangoft2.c (pango_ft2_font_get_face),
Date: Wed Oct 15 03:45:29 2008 +0000
Bug 528272 – "Error loading GPOS table 5503" when using katakana
-
+
2008-10-14 Behdad Esfahbod <behdad@gnome.org>
-
- Bug 528272 – "Error loading GPOS table 5503" when using
- katakana
+
+ Bug 528272 – "Error loading GPOS table 5503" when using katakana
characters
-
- * pango/opentype/harfbuzz-gpos.c (Load_Mark2Array): Skip
- parsing
+
+ * pango/opentype/harfbuzz-gpos.c (Load_Mark2Array): Skip parsing
null anchor tables.
src/harfbuzz-gpos.c | 7 +++++++
Date: Mon Sep 29 22:28:47 2008 +0000
Fix left-to-right positioning. Reported by Peter Hunter.
-
+
2008-09-29 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/harfbuzz-gpos.c (Position_CursiveChain):
Fix left-to-right positioning. Reported by Peter Hunter.
Date: Sun Jun 29 18:30:14 2008 +0000
Bug 540592 – Crash in HB_GSUB_Apply_String with Linux-Libertine font
-
+
2008-06-29 Behdad Esfahbod <behdad@gnome.org>
-
- Bug 540592 – Crash in HB_GSUB_Apply_String with
- Linux-Libertine font
-
- * pango/opentype/harfbuzz-gsub.c (GSUB_Do_String_Lookup):
- Fix reverse
+
+ Bug 540592 – Crash in HB_GSUB_Apply_String with Linux-Libertine font
+
+ * pango/opentype/harfbuzz-gsub.c (GSUB_Do_String_Lookup): Fix reverse
loops for type 8 lookups.
src/harfbuzz-gsub.c | 2 +-
[hb-ot-layout] Add proper namespace to accessors
- src/hb-ot-layout.cc | 165
- ++++++++++++++++++++++++++++++++++++++--------------
+ src/hb-ot-layout.cc | 165 ++++++++++++++++++++++++++++++++++++++--------------
src/hb-ot-layout.h | 115 +++++++++++++++++++++++-------------
2 files changed, 198 insertions(+), 82 deletions(-)
Finish script, language, and feature public API
src/hb-ot-layout-open-private.h | 22 ++++++---
- src/hb-ot-layout.cc | 107
- +++++++++++++++++++++++++++++++---------
+ src/hb-ot-layout.cc | 107 +++++++++++++++++++++++++++++++---------
src/hb-ot-layout.h | 34 ++++++++++++-
3 files changed, 132 insertions(+), 31 deletions(-)
Add script and language public getter API
src/hb-ot-layout-open-private.h | 40 ++++++++-----
- src/hb-ot-layout.cc | 127
- +++++++++++++++++++++++++++++++++++++++-
+ src/hb-ot-layout.cc | 127 +++++++++++++++++++++++++++++++++++++++-
src/hb-ot-layout.h | 56 ++++++++++++++++++
src/main.cc | 2 +-
4 files changed, 207 insertions(+), 18 deletions(-)
Make main.cc compile again, which means finished getter API
- src/hb-ot-layout-open-private.h | 117
- +++++++++++++++++++++++++++++-----------
+ src/hb-ot-layout-open-private.h | 117 +++++++++++++++++++++++++++++-----------
src/main.cc | 99 +++++++++++++++++++++++-----------
2 files changed, 155 insertions(+), 61 deletions(-)
[GDEF] Finish internal API
src/hb-ot-layout-private.h | 15 +++++++-
- src/hb-ot-layout.cc | 95
- ++++++++++++++++++++++------------------------
+ src/hb-ot-layout.cc | 95 ++++++++++++++++++++++------------------------
src/hb-ot-layout.h | 16 ++++----
3 files changed, 66 insertions(+), 60 deletions(-)
src/hb-ot-layout-gdef-private.h | 28 +++++----
src/hb-ot-layout-open-private.h | 25 ++++----
src/hb-ot-layout-private.h | 23 ++------
- src/hb-ot-layout.cc | 123
- +++++++++++++++++++++++++++++++++++++---
+ src/hb-ot-layout.cc | 123 +++++++++++++++++++++++++++++++++++++---
src/hb-ot-layout.h | 29 ++++++----
6 files changed, 176 insertions(+), 63 deletions(-)
src/hb-ot-layout-gdef-private.h | 10 ++++-
src/hb-ot-layout-private.h | 16 +++++++-
- src/hb-ot-layout.cc | 84
- +++++++++++++++++++++++++++++++++++++----
+ src/hb-ot-layout.cc | 84 +++++++++++++++++++++++++++++++++++++----
src/hb-ot-layout.h | 25 ++++++++----
4 files changed, 117 insertions(+), 18 deletions(-)
src/{Makefile => Makefile.ng} | 0
src/hb-ot-layout-gdef-private.h | 17 ++++----
src/hb-ot-layout-gsub-private.h | 3 +-
- src/hb-ot-layout-open-private.h | 92
- +++++++++++++++++++++++++++++------------
+ src/hb-ot-layout-open-private.h | 92 +++++++++++++++++++++++++++++------------
src/hb-ot-layout-private.h | 51 +++++++++++++++++++++++
src/hb-ot-layout.cc | 67 ++++++++++++++++++++++++++++++
src/hb-ot-layout.h | 35 ++++++++++++++--
src/hb-ot-layout-gdef-private.h | 37 +++++++++++++++++++++++++------
src/hb-ot-layout-gsub-private.h | 13 +++++++++++
- src/hb-ot-layout-open-private.h | 49
- ++++++++++++++++++++++++++++++++++-------
+ src/hb-ot-layout-open-private.h | 49 ++++++++++++++++++++++++++++++++++-------
src/hb-private.h | 2 ++
4 files changed, 86 insertions(+), 15 deletions(-)
Initial gsub stub
src/hb-ot-layout-gdef-private.h | 4 +
- src/hb-ot-layout-gsub-private.h | 453
- ++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-layout-gsub-private.h | 453 ++++++++++++++++++++++++++++++++++++++++
src/hb-ot-layout-open-private.h | 3 +
src/main.cc | 1 +
4 files changed, 461 insertions(+)
Minor cleanup, add LIKELY and UNLIKELY annotations
- src/hb-ot-layout-gdef-private.h | 63
- +++++++++++++++++++++++------------------
+ src/hb-ot-layout-gdef-private.h | 63 +++++++++++++++++++++++------------------
src/hb-ot-layout-open-private.h | 36 ++++++++---------------
src/hb-private.h | 15 ++++++++++
3 files changed, 63 insertions(+), 51 deletions(-)
Clean up file names, add namespace
- src/harfbuzz-common.h | 14
- --------------
- src/harfbuzz-gdef.h | 11
- -----------
- src/hb-common.h | 14
- ++++++++++++++
+ src/harfbuzz-common.h | 14 --------------
+ src/harfbuzz-gdef.h | 11 -----------
+ src/hb-common.h | 14 ++++++++++++++
...harfbuzz-gdef-private.h => hb-ot-layout-gdef-private.h} | 8 ++++----
- ...harfbuzz-open-private.h => hb-ot-layout-open-private.h} | 10
- +++++-----
- src/{harfbuzz-open.h => hb-ot-layout.h} | 12
- ++++++------
+ ...harfbuzz-open-private.h => hb-ot-layout-open-private.h} | 10 +++++-----
+ src/{harfbuzz-open.h => hb-ot-layout.h} | 12 ++++++------
src/{harfbuzz-private.h => hb-private.h} | 6 +++---
src/main.cc | 4 ++--
8 files changed, 34 insertions(+), 45 deletions(-)
Make all code NULL-free and assert-free
src/harfbuzz-gdef-private.h | 125 ++++++++++---------
- src/harfbuzz-open-private.h | 285
- +++++++++++++++++++++++---------------------
+ src/harfbuzz-open-private.h | 285 +++++++++++++++++++++++---------------------
src/main.cc | 8 +-
3 files changed, 214 insertions(+), 204 deletions(-)
Define get_for_data() factories
src/harfbuzz-gdef-private.h | 3 +++
- src/harfbuzz-open-private.h | 42
- +++++++++++++++++++++++++++++-------------
+ src/harfbuzz-open-private.h | 42 +++++++++++++++++++++++++++++-------------
src/main.cc | 10 ++++------
3 files changed, 36 insertions(+), 19 deletions(-)
Finish and test GDEF
- src/harfbuzz-gdef-private.h | 72
- ++++++++++++++++++++++++++++++++-------------
+ src/harfbuzz-gdef-private.h | 72 ++++++++++++++++++++++++++++++++-------------
src/harfbuzz-open-private.h | 23 ++++++++-------
src/harfbuzz-open.h | 4 +++
src/main.cc | 10 +++++++
src/Makefile | 10 ++++-
src/harfbuzz-gdef-private.h | 65 +++++++++++++++++++++-------
- src/harfbuzz-open-private.h | 102
- ++++++++++++++++++++++++++++++++++++++++----
+ src/harfbuzz-open-private.h | 102 ++++++++++++++++++++++++++++++++++++++++----
src/harfbuzz-private.h | 6 +++
src/main.cc | 12 +++---
5 files changed, 163 insertions(+), 32 deletions(-)
Date: Wed Jan 16 20:39:29 2008 +0000
Remove COPYING.GPL and COPYING.FTL that are no longer there.
-
+
2008-01-16 Behdad Esfahbod <behdad@gnome.org>
-
- * pango/opentype/Makefile.am: Remove COPYING.GPL and
- COPYING.FTL that
+
+ * pango/opentype/Makefile.am: Remove COPYING.GPL and COPYING.FTL that
are no longer there.
src/Makefile.am | 2 --
Author: Behdad Esfahbod <behdad@gnome.org>
Date: Tue Jan 15 22:46:32 2008 +0000
- HarfBuzz was relicensed to a more generous and simpler
- license. Adapt. See
-
+ HarfBuzz was relicensed to a more generous and simpler license. Adapt. See
+
2008-01-15 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/*:
- HarfBuzz was relicensed to a more generous and simpler
- license.
- Adapt. See pango/opentype/COPYING for the new license
- which is
+ HarfBuzz was relicensed to a more generous and simpler license.
+ Adapt. See pango/opentype/COPYING for the new license which is
LGPL-compatible.
src/COPYING | 39 +++--
src/COPYING.FTL | 174 ---------------------
- src/COPYING.GPL | 340
- ------------------------------------------
+ src/COPYING.GPL | 340 ------------------------------------------
src/harfbuzz-buffer-private.h | 32 ++--
src/harfbuzz-buffer.c | 27 +++-
src/harfbuzz-buffer.h | 32 ++--
Date: Wed Dec 5 03:41:29 2007 +0000
Bug 501575 – Compile errors Patch from Jens Granseuer
-
+
2007-12-04 Behdad Esfahbod <behdad@gnome.org>
-
+
Bug 501575 – Compile errors
Patch from Jens Granseuer
-
+
* pango/opentype/harfbuzz-stream.c (_hb_font_goto_table):
* pango/pango-utils.c (handle_alias_line):
Fix C99ism.
Date: Fri Nov 30 04:29:58 2007 +0000
Bug 485536 – underline_position can be zero
-
+
2007-11-29 Behdad Esfahbod <behdad@gnome.org>
-
+
Bug 485536 – underline_position can be zero
-
+
* pango/pango-utils.c (pango_cairo_quantize_line_geometry):
Document that returned position may be zero.
-
+
* pango/pangocairo-win32font.c
(pango_cairo_win32_font_create_metrics_for_context):
* pango/pangofc-font.c (get_face_metrics):
Date: Sat Nov 24 01:40:13 2007 +0000
Remove unused macro.
-
+
2007-11-23 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/harfbuzz-impl.c: Remove unused macro.
src/harfbuzz-impl.c | 18 ------------------
Minor
src/harfbuzz-dump-main.c | 4 +--
- src/harfbuzz-stream.c | 89
- ++++++++++++++++++++++++------------------------
+ src/harfbuzz-stream.c | 89 ++++++++++++++++++++++++------------------------
2 files changed, 46 insertions(+), 47 deletions(-)
commit 10d6a25a26bdbab4ece4edf0e34ffd3d22410ebe
Remove dead code.
- src/harfbuzz-gdef.c | 88
- -----------------------------------------------------
+ src/harfbuzz-gdef.c | 88 -----------------------------------------------------
src/harfbuzz-gpos.h | 4 +--
2 files changed, 1 insertion(+), 91 deletions(-)
Date: Wed Nov 7 09:59:18 2007 +0000
And some more.
-
+
2007-11-07 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/*: And some more.
src/harfbuzz-buffer.h | 8 ++---
src/harfbuzz-gdef.c | 14 ++++----
src/harfbuzz-gdef.h | 4 +--
src/harfbuzz-global.h | 21 +++++------
- src/harfbuzz-gpos.c | 82
- +++++++++++++++++++++----------------------
+ src/harfbuzz-gpos.c | 82 +++++++++++++++++++++----------------------
src/harfbuzz-gpos.h | 12 +++----
src/harfbuzz-gsub.c | 4 +--
src/harfbuzz-gsub.h | 4 +--
Date: Wed Nov 7 08:06:01 2007 +0000
Some more cleanup and merging.
-
+
2007-11-07 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/*: Some more cleanup and merging.
src/Makefile.am | 6 +-
src/harfbuzz-gpos.c | 32 +-----
src/harfbuzz-gsub-private.h | 1 +
src/harfbuzz-gsub.c | 33 +-----
- src/harfbuzz-impl.c | 216
- ++------------------------------------
+ src/harfbuzz-impl.c | 216 ++------------------------------------
src/harfbuzz-impl.h | 100 +-----------------
src/harfbuzz-open-private.h | 4 +-
src/harfbuzz-stream-private.h | 70 +++++++++++++
- src/harfbuzz-stream.c | 234
- ++++++++++++++++++++++++++++++++++++++++++
+ src/harfbuzz-stream.c | 234 ++++++++++++++++++++++++++++++++++++++++++
src/harfbuzz.c | 1 +
src/harfbuzz.h | 3 +-
18 files changed, 419 insertions(+), 372 deletions(-)
Date: Thu Oct 25 23:37:11 2007 +0000
Even more cleanup and more type renames.
-
+
2007-10-25 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/*: Even more cleanup and more type renames.
src/harfbuzz-buffer.h | 3 +--
Date: Thu Oct 25 23:22:17 2007 +0000
More cleanup, remove redundant error types.
-
+
2007-10-25 Behdad Esfahbod <behdad@gnome.org>
-
- * pango/opentype/*: More cleanup, remove redundant error
- types.
+
+ * pango/opentype/*: More cleanup, remove redundant error types.
src/harfbuzz-dump-main.c | 4 +-
src/harfbuzz-dump.c | 14 +++---
src/harfbuzz-gdef.c | 25 +++++-----
src/harfbuzz-gdef.h | 3 --
src/harfbuzz-global.h | 31 ++++++------
- src/harfbuzz-gpos.c | 124
- +++++++++++++++++++++++------------------------
+ src/harfbuzz-gpos.c | 124 +++++++++++++++++++++++------------------------
src/harfbuzz-gpos.h | 3 --
src/harfbuzz-gsub.c | 86 ++++++++++++++++----------------
src/harfbuzz-gsub.h | 3 --
Author: Behdad Esfahbod <behdad@gnome.org>
Date: Thu Oct 25 00:23:46 2007 +0000
- Rename ftglue.c to harfbuzz-impl.c and more type renames and
- moving code
-
+ Rename ftglue.c to harfbuzz-impl.c and more type renames and moving code
+
2007-10-24 Behdad Esfahbod <behdad@gnome.org>
-
- * pango/opentype/*: Rename ftglue.c to harfbuzz-impl.c
- and more
+
+ * pango/opentype/*: Rename ftglue.c to harfbuzz-impl.c and more
type renames and moving code around.
src/Makefile.am | 3 +-
- src/ftglue.h | 151
- --------------------------------------
+ src/ftglue.h | 151 --------------------------------------
src/harfbuzz-dump-main.c | 48 ++----------
src/harfbuzz-dump.c | 30 ++++----
src/harfbuzz-gdef.c | 18 ++---
Author: Behdad Esfahbod <behdad@gnome.org>
Date: Wed Oct 24 22:44:47 2007 +0000
- New header file harfbuzz-global.h. Rename FT_* int types to HB_*
- types.
-
+ New header file harfbuzz-global.h. Rename FT_* int types to HB_* types.
+
2007-10-24 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/*: New header file harfbuzz-global.h. Rename
FT_* int types to HB_* types.
src/harfbuzz-gdef.h | 32 +--
src/harfbuzz-global.h | 34 +++
src/harfbuzz-gpos-private.h | 182 +++++++-------
- src/harfbuzz-gpos.c | 540
- +++++++++++++++++++++---------------------
+ src/harfbuzz-gpos.c | 540 +++++++++++++++++++++---------------------
src/harfbuzz-gpos.h | 52 ++--
src/harfbuzz-gsub-private.h | 142 +++++------
src/harfbuzz-gsub.c | 432 ++++++++++++++++-----------------
Date: Wed Oct 24 21:35:03 2007 +0000
Add commented-out dummy struct for Extension lookups.
-
+
2007-10-24 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/harfbuzz-gpos-private.h:
* pango/opentype/harfbuzz-gsub-private.h:
Add commented-out dummy struct for Extension lookups.
Date: Sun Oct 21 18:17:02 2007 +0000
Bug 488840 – harfbuzz: protect against ligid overflow
-
+
2007-10-21 Behdad Esfahbod <behdad@gnome.org>
-
+
Bug 488840 – harfbuzz: protect against ligid overflow
-
- * pango/opentype/harfbuzz-buffer.c
- (_hb_buffer_allocate_ligid):
+
+ * pango/opentype/harfbuzz-buffer.c (_hb_buffer_allocate_ligid):
Never return zero, even in case of overflow.
-
+
* pango/opentype/harfbuzz-impl.h: Define dummy HB_LIKELY() and
HB_UNLIKELY(), to be filled later.
Date: Thu Oct 11 08:30:50 2007 +0000
Mark internal symbols as HB_INTERNAL and define that to static in
-
+
2007-10-11 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/*: Mark internal symbols as HB_INTERNAL and
define that to static in harfbuzz.c.
-
+
* pango/opentype/harfbuzz-buffer-internal.h: New file.
src/Makefile.am | 1 +
src/ftglue.c | 18 +++----
src/ftglue.h | 20 ++++----
src/harfbuzz-buffer-private.h | 60 +++++++++++++++++++++++
- src/harfbuzz-buffer.c | 108
- +++++++++++++++++++++-------------------
+ src/harfbuzz-buffer.c | 108 +++++++++++++++++++++-------------------
src/harfbuzz-buffer.h | 38 +--------------
src/harfbuzz-gdef-private.h | 17 ++++---
src/harfbuzz-gdef.c | 20 ++++----
src/harfbuzz-gsub.c | 20 ++++----
src/harfbuzz-impl.h | 12 +++--
src/harfbuzz-open-private.h | 81 +++++++++++++++++-------------
- src/harfbuzz-open.c | 111
- ++++++++++++++++++++++++------------------
+ src/harfbuzz-open.c | 111 ++++++++++++++++++++++++------------------
src/harfbuzz.c | 1 +
16 files changed, 315 insertions(+), 235 deletions(-)
Date: Thu Oct 11 07:46:33 2007 +0000
Remove FTGLUE_API/APIDEF cruft.
-
+
2007-10-11 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/ftglue.[ch]: Remove FTGLUE_API/APIDEF cruft.
src/ftglue.c | 16 ++++++++--------
Author: Behdad Esfahbod <behdad@gnome.org>
Date: Thu Oct 11 07:45:26 2007 +0000
- Build harfbuzz.c instead of individual source files, to let
- compiler go
-
+ Build harfbuzz.c instead of individual source files, to let compiler go
+
2007-10-11 Behdad Esfahbod <behdad@gnome.org>
-
- * pango/opentype/Makefile.am: Build harfbuzz.c instead
- of individual
+
+ * pango/opentype/Makefile.am: Build harfbuzz.c instead of individual
source files, to let compiler go wild with optimizations!
src/Makefile.am | 9 +++++----
Date: Thu Oct 11 07:34:08 2007 +0000
Same here.
-
+
2007-10-11 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/harfbuzz.c: Same here.
src/harfbuzz.c | 1 -
Author: Behdad Esfahbod <behdad@gnome.org>
Date: Thu Oct 11 07:33:19 2007 +0000
- Don't include harfbuzz-dump.[ch] in libharfbuzz.a. Those are just
- used by
-
+ Don't include harfbuzz-dump.[ch] in libharfbuzz.a. Those are just used by
+
2007-10-11 Behdad Esfahbod <behdad@gnome.org>
-
- * pango/opentype/Makefile.am: Don't include harfbuzz-dump.[ch]
- in
+
+ * pango/opentype/Makefile.am: Don't include harfbuzz-dump.[ch] in
libharfbuzz.a. Those are just used by the harfbuzz-dump tool.
src/Makefile.am | 4 ++--
Date: Thu Oct 11 07:24:47 2007 +0000
Some more cleanup.
-
+
2007-10-11 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/harfbuzz-buffer.c: Some more cleanup.
src/harfbuzz-buffer.c | 11 ++---------
Date: Thu Oct 11 07:21:31 2007 +0000
Move some code around.
-
+
2007-10-11 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/harfbuzz-buffer.c: Move some code around.
- src/harfbuzz-buffer.c | 91
- +++++++++++++++++++++++++++------------------------
+ src/harfbuzz-buffer.c | 91 +++++++++++++++++++++++++++------------------------
1 file changed, 48 insertions(+), 43 deletions(-)
commit 7a5405c8261573a0f29d28fb533e800d698f6129
Author: Behdad Esfahbod <behdad@gnome.org>
Date: Thu Oct 11 07:12:49 2007 +0000
- Rename buffer->inplace to buffer->separate_out with the inverted
- meaning,
-
+ Rename buffer->inplace to buffer->separate_out with the inverted meaning,
+
2007-10-11 Behdad Esfahbod <behdad@gnome.org>
-
- * pango/opentype/harfbuzz-buffer.[ch]: Rename buffer->inplace
- to
- buffer->separate_out with the inverted meaning, such that
- buffer
+
+ * pango/opentype/harfbuzz-buffer.[ch]: Rename buffer->inplace to
+ buffer->separate_out with the inverted meaning, such that buffer
is initialization is memset(0).
src/harfbuzz-buffer.c | 34 +++++++++++++++++-----------------
Date: Thu Oct 11 07:05:09 2007 +0000
Allocate buffer->positions lazily.
-
+
2007-10-11 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/*: Allocate buffer->positions lazily.
src/harfbuzz-buffer.c | 25 +++++++++++++++++++++++--
Date: Thu Oct 11 06:52:07 2007 +0000
Bug 485621 – Get rid of freetype memory allocator in harfbuzz
-
+
2007-10-11 Behdad Esfahbod <behdad@gnome.org>
-
- Bug 485621 – Get rid of freetype memory allocator in
- harfbuzz
-
+
+ Bug 485621 – Get rid of freetype memory allocator in harfbuzz
+
* pango/opentype/*: Remove all occurences of FT_Memory. Use
malloc/realloc/free directly.
-
+
* pango/pango-ot*: Update to above.
src/ftglue.c | 52 ++---
src/harfbuzz-gdef.c | 106 ++++------
src/harfbuzz-gdef.h | 6 +-
src/harfbuzz-gpos-private.h | 1 -
- src/harfbuzz-gpos.c | 462
- ++++++++++++++++++--------------------------
+ src/harfbuzz-gpos.c | 462 ++++++++++++++++++--------------------------
src/harfbuzz-gpos.h | 2 -
src/harfbuzz-gsub-private.h | 1 -
src/harfbuzz-gsub.c | 312 +++++++++++-------------------
Date: Thu Oct 11 00:07:58 2007 +0000
Bug 485559 – Boston Summit HarfBuzz optimizations
-
+
2007-10-10 Behdad Esfahbod <behdad@gnome.org>
-
+
Bug 485559 – Boston Summit HarfBuzz optimizations
-
+
* pango/opentype/*: HarfBuzz hacking to:
-
+
- Rename last remaining FT_Err stuff to HB_Err.
-
+
- Fix a couple invalid table paths to be permissive so
fonts work better. Particularly GDEF table for Nafees
Nastaliq is loaded and works great now.
-
+
- Optimize harfbuzz buffer to not copy/swap for simple
one-to-one and "copy" GSUB operations.
-
+
* pango/pango-ot*: Update to FT_Err to HB_Err renaming.
src/ftglue.c | 51 ++-
src/harfbuzz-gpos.c | 810 ++++++++++++++++++--------------------
src/harfbuzz-gpos.h | 30 +-
src/harfbuzz-gsub-private.h | 2 +-
- src/harfbuzz-gsub.c | 919
- +++++++++++++++++++-------------------------
+ src/harfbuzz-gsub.c | 919 +++++++++++++++++++-------------------------
src/harfbuzz-gsub.h | 24 +-
src/harfbuzz-impl.h | 22 +-
src/harfbuzz-open-private.h | 20 +-
Author: Behdad Esfahbod <behdad@gnome.org>
Date: Wed Aug 29 08:46:50 2007 +0000
- Bug 302952 – The placement of a diacritic marks for an arabic
- ligature
-
+ Bug 302952 – The placement of a diacritic marks for an arabic ligature
+
2007-08-29 Behdad Esfahbod <behdad@gnome.org>
-
- Bug 302952 – The placement of a diacritic marks for an
- arabic ligature
+
+ Bug 302952 – The placement of a diacritic marks for an arabic ligature
is not correct
-
- * pango/opentype/harfbuzz-buffer.c (hb_buffer_allocate_ligid):
- Don't
+
+ * pango/opentype/harfbuzz-buffer.c (hb_buffer_allocate_ligid): Don't
use zero as allocated ligature id. Zero means no ligature id.
src/harfbuzz-buffer.c | 2 +-
Date: Tue Aug 21 08:03:26 2007 +0000
Bug 463430 – Gets stuck while "formatting message"
-
+
2007-08-21 Behdad Esfahbod <behdad@gnome.org>
-
+
Bug 463430 – Gets stuck while "formatting message"
-
+
* pango/opentype/harfbuzz-gpos.c (Lookup_PairPos1),
(Lookup_PairPos2), (Lookup_PairPos), (Do_ContextPos):
* pango/opentype/harfbuzz-gsub.c (Do_ContextSubst):
Author: Behdad Esfahbod <behdad@gnome.org>
Date: Tue Aug 21 01:38:07 2007 +0000
- Don't ignore error return value of
- hb_buffer_copy_output_glyph(). Patch
-
+ Don't ignore error return value of hb_buffer_copy_output_glyph(). Patch
+
2007-08-20 Behdad Esfahbod <behdad@gnome.org>
-
- * pango/opentype/harfbuzz-gsub.c (GSUB_Do_String_Lookup):
- Don't
- ignore error return value of hb_buffer_copy_output_glyph().
- Patch
+
+ * pango/opentype/harfbuzz-gsub.c (GSUB_Do_String_Lookup): Don't
+ ignore error return value of hb_buffer_copy_output_glyph(). Patch
sent to harfbuzz-list.
src/harfbuzz-gsub.c | 2 +-
[gdef] Initial implementation
- src/harfbuzz-gdef-private.h | 144
- +++++++++++++++++++++++++++++++++++++++++++-
+ src/harfbuzz-gdef-private.h | 144 +++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 142 insertions(+), 2 deletions(-)
commit 5b2e947fd2b7c5ea49b2bef1e0190d99a525058c
[open] small fixes, including not using unions for main structs
- src/harfbuzz-open-private.h | 54
- ++++++++++++++++++++++++---------------------
+ src/harfbuzz-open-private.h | 54 ++++++++++++++++++++++++---------------------
1 file changed, 29 insertions(+), 25 deletions(-)
commit 151df44346990728b5dd249db5740a9543ae33b9
Date: Tue May 1 02:32:12 2007 +0000
Link freetype to harfbuzz-dump, for those systems that don't track
-
+
2007-04-30 Behdad Esfahbod <behdad@gnome.org>
-
- * pango/opentype/Makefile.am: Link freetype to harfbuzz-dump,
- for
+
+ * pango/opentype/Makefile.am: Link freetype to harfbuzz-dump, for
those systems that don't track dependencies automatically.
src/Makefile.am | 5 +++--
Date: Tue Apr 3 22:45:29 2007 +0000
Copy fixes from harfbuzz stable branch. Includes a leak fix, a kerning
-
+
2007-04-03 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/harfbuzz-gdef.c (_HB_GDEF_Check_Property):
* pango/opentype/harfbuzz-gpos.c (HB_Done_GPOS_Table),
(Lookup_PairPos):
Date: Sat Jan 13 21:31:41 2007 +0000
updated
-
+
2007-01-13 Hans Breuer <hans@breuer.org>
-
+
* pango/makefile.msc pango/opentype/makefile.msc : updated
src/makefile.msc | 16 ++++++----------
src/.gitignore | 1 +
src/Makefile | 2 +-
src/harfbuzz-common.h | 14 +++
- src/{harfbuzz-ng.cc => harfbuzz-open-private.h} | 117
- ++----------------------
+ src/{harfbuzz-ng.cc => harfbuzz-open-private.h} | 117 ++----------------------
src/harfbuzz-open.h | 13 +++
- src/main.cc | 98
- ++++++++++++++++++++
+ src/main.cc | 98 ++++++++++++++++++++
6 files changed, 133 insertions(+), 112 deletions(-)
commit 3158d84b0dfe5032e7c56c03f2da97b8ab549d94
GSUBGPOSHeader
- src/harfbuzz-ng.cc | 103
- ++++++++++++++++++++++++++++++++++++++++++++++++++---
+ src/harfbuzz-ng.cc | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 98 insertions(+), 5 deletions(-)
commit eebabd8b2ec5296deba6b09d7755933da0a7d9dc
ClassDef
- src/harfbuzz-ng.cc | 121
- ++++++++++++++++++++++++++++++++++++++++++-----------
+ src/harfbuzz-ng.cc | 121 ++++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 97 insertions(+), 24 deletions(-)
commit 53502c6723dbf9cd3b6ba91b733678b3c7871715
Coverage.
- src/harfbuzz-ng.cc | 91
- +++++++++++++++++++++++++++++++++++++++++++++++-------
+ src/harfbuzz-ng.cc | 91 +++++++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 79 insertions(+), 12 deletions(-)
commit 882e52f59196535495af8ca8069df32308ad52cf
LookupFlags
- src/hb-types-private.cc | 52
- ++++++++++++++++++++++++++++++++++++++++++++-----
+ src/hb-types-private.cc | 52 ++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 47 insertions(+), 5 deletions(-)
commit 25ad92c8a68bf72464601a644ed57b9213126a78
Implement Feature
- src/hb-types-private.cc | 46
- ++++++++++++++++++++++++++++++++++++++++++----
+ src/hb-types-private.cc | 46 ++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 42 insertions(+), 4 deletions(-)
commit befc022affd2386b3f46cd7d11e4262f6c8bce9f
LangSys
- src/hb-types-private.cc | 51
- ++++++++++++++++++++++++++++++++++++++++++-------
+ src/hb-types-private.cc | 51 ++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 44 insertions(+), 7 deletions(-)
commit c81efca149b08832d5d96a944fb5f303f3d0ca42
Make types not instantiable
- src/hb-types-private.cc | 104
- ++++++++++++++++++++++++++----------------------
+ src/hb-types-private.cc | 104 ++++++++++++++++++++++++++----------------------
1 file changed, 57 insertions(+), 47 deletions(-)
commit b739c05ca4b7acfa45bd4b0812ecbb3747f726f0
Add OpenTypeFontFile.
src/Makefile | 2 +-
- src/hb-types-private.cc | 113
- +++++++++++++++++++++++++++++++++++++++++++++---
+ src/hb-types-private.cc | 113 +++++++++++++++++++++++++++++++++++++++++++++---
2 files changed, 107 insertions(+), 8 deletions(-)
commit 8596944b7421f982960e825019fc0263442520cb
After DEFINE_SCRIPT_ARRAY
- src/hb-types-private.cc | 215
- +++++++++++++++++++++++++++++++-----------------
+ src/hb-types-private.cc | 215 +++++++++++++++++++++++++++++++-----------------
1 file changed, 140 insertions(+), 75 deletions(-)
commit 01e4fcb032be601f272e62228881e2aabfb9d925
Remove the annoying HB_ prefix.
- src/hb-types-private.cc | 107
- +++++++++++++++++++++++-------------------------
+ src/hb-types-private.cc | 107 +++++++++++++++++++++++-------------------------
1 file changed, 52 insertions(+), 55 deletions(-)
commit 6b4ce01da121e12e1c78ad7eaedf469f35f3568d
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Dec 21 22:31:10 2006 -0500
- Second version. Complete redesign, based on C++ classes to ensure
- endian
+ Second version. Complete redesign, based on C++ classes to ensure endian
correctness.
- src/hb-types-private.cc | 300
- +++++++++++++++++++++++++++++++++---------------
+ src/hb-types-private.cc | 300 +++++++++++++++++++++++++++++++++---------------
1 file changed, 205 insertions(+), 95 deletions(-)
commit f78e70c301311ffcfb007c7fc4125d71cbcff1e2
First version.
- src/hb-types-private.cc | 116
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-types-private.cc | 116 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 116 insertions(+)
commit f726b20e56e8b1106dfde0bf8d575c73e83957c4
Date: Tue Jul 25 01:02:27 2006 +0000
Bug 347073 – Allow empty GPOS table
-
+
2006-07-24 Behdad Esfahbod <behdad@gnome.org>
-
+
Bug 347073 – Allow empty GPOS table
-
- * pango/opentype/harfbuzz-open.c (_HB_OPEN_Load_ScriptList):
- Don't
+
+ * pango/opentype/harfbuzz-open.c (_HB_OPEN_Load_ScriptList): Don't
err on empty GPOS/GSUB tables.
src/harfbuzz-open.c | 5 +++++
Date: Thu Jun 22 18:09:04 2006 +0000
Bug 345600 – cvs build error in pango/opentype/Makefile
-
+
2006-06-22 Behdad Esfahbod <behdad@gnome.org>
-
+
Bug 345600 – cvs build error in pango/opentype/Makefile
-
- * pango/opentype/Makefile.am: Rename variable SOURCES to
- MAINSOURCES.
+
+ * pango/opentype/Makefile.am: Rename variable SOURCES to MAINSOURCES.
Some automake versions seem to use it or something.
src/Makefile.am | 4 ++--
Author: Behdad Esfahbod <behdad@gnome.org>
Date: Wed May 31 07:42:55 2006 +0000
- Bug 341138 – Using TTC font, Gtk2 programs begin to eating big
- memory
-
+ Bug 341138 – Using TTC font, Gtk2 programs begin to eating big memory
+
2006-05-31 Behdad Esfahbod <behdad@gnome.org>
-
- Bug 341138 – Using TTC font, Gtk2 programs begin to eating
- big memory
+
+ Bug 341138 – Using TTC font, Gtk2 programs begin to eating big memory
and have many cpu usage.
Patch from Yong Li.
-
- * pango/opentype/ftglue.c (_hb_ftglue_face_goto_table):
- TrueType table
+
+ * pango/opentype/ftglue.c (_hb_ftglue_face_goto_table): TrueType table
offsets are absolute, not relative.
src/ftglue.c | 2 +-
Author: Behdad Esfahbod <behdad@gnome.org>
Date: Wed May 31 07:23:02 2006 +0000
- Bug 336153 – Mark to mark positioning (Lookup Type 6) isn't
- correct when
-
+ Bug 336153 – Mark to mark positioning (Lookup Type 6) isn't correct when
+
2006-05-31 Behdad Esfahbod <behdad@gnome.org>
-
- Bug 336153 – Mark to mark positioning (Lookup Type 6)
- isn't correct
+
+ Bug 336153 – Mark to mark positioning (Lookup Type 6) isn't correct
when using MarkAttchmentType
Patch from Tin Myo Htet.
-
- * pango/opentype/harfbuzz-gpos.c (Lookup_MarkMarkPos):
- Ignore marks
+
+ * pango/opentype/harfbuzz-gpos.c (Lookup_MarkMarkPos): Ignore marks
of non-matchin attachment type.
src/harfbuzz-gpos.c | 37 ++++++++++++++++++++++---------------
Date: Wed Apr 12 18:47:50 2006 +0000
Fix loop variables. (coverity found bug.)
-
+
2006-04-12 Behdad Esfahbod <behdad@gnome.org>
-
- * pango/opentype/harfbuzz-gpos.c: Fix loop
- variables. (coverity
+
+ * pango/opentype/harfbuzz-gpos.c: Fix loop variables. (coverity
found bug.)
src/harfbuzz-gpos.c | 6 +++---
Date: Tue Apr 11 08:31:44 2006 +0000
Bug 337924 – cleanups for issues reported by various compilers Patch
-
+
2006-04-11 Behdad Esfahbod <behdad@gnome.org>
-
- Bug 337924 – cleanups for issues reported by various
- compilers
+
+ Bug 337924 – cleanups for issues reported by various compilers
Patch from Kjartan Maraas.
-
+
* examples/viewer-x.c (update):
* modules/arabic/arabic-fc.c (fallback_shape),
(arabic_engine_shape):
- * modules/basic/basic-fc.c (fallback_shape),
- (basic_engine_shape):
+ * modules/basic/basic-fc.c (fallback_shape), (basic_engine_shape):
* modules/basic/basic-x.c:
* modules/hangul/hangul-fc.c:
* modules/hebrew/hebrew-fc.c (hebrew_engine_shape):
* pango/pango-utils.c (read_alias_file):
* pango/pangocairo-fcfont.c (G_DEFINE_TYPE_WITH_CODE):
* pango/pangocairo-fcfontmap.c (G_DEFINE_TYPE_WITH_CODE):
- * pango/pangocairo-font.c
- (_pango_cairo_font_get_hex_box_info):
+ * pango/pangocairo-font.c (_pango_cairo_font_get_hex_box_info):
* pango/pangox-fontmap.c (pango_x_make_matching_xlfd):
* tests/dump-boundaries.c (fail):
- Remove unused variables. Remove excess semicolon after
- DEFINE_TYPE
+ Remove unused variables. Remove excess semicolon after DEFINE_TYPE
macros.
src/ftglue.c | 2 --
Date: Mon Apr 10 10:33:17 2006 +0000
Fix minor bugs reported by the Coverity scan report.
-
+
2006-04-10 Behdad Esfahbod <behdad@gnome.org>
-
+
Fix minor bugs reported by the Coverity scan report.
-
- * pango/opentype/harfbuzz-gdef.c
- (HB_GDEF_Build_ClassDefinition):
+
+ * pango/opentype/harfbuzz-gdef.c (HB_GDEF_Build_ClassDefinition):
* pango/opentype/harfbuzz-gpos.c (HB_GPOS_Query_Scripts),
- (HB_GPOS_Query_Languages), (HB_GPOS_Query_Features): Do
- not access
+ (HB_GPOS_Query_Languages), (HB_GPOS_Query_Features): Do not access
structs before we check them for nullity.
-
+
* pango/pango-layout.c (pango_layout_index_to_line),
(pango_layout_index_to_line_and_extents),
- (pango_layout_index_to_pos): Check for invalid iterators
- outside the
+ (pango_layout_index_to_pos): Check for invalid iterators outside the
loop, so we don't crash.
-
+
* pango/pango-layout.c (pango_layout_line_x_to_index): Set
- char_trailing instead of trailing in one of too many paths.
- Should
+ char_trailing instead of trailing in one of too many paths. Should
have been a typo.
-
- * pango/pangox.c (get_font_metrics_from_subfonts): Check
- for nullity
+
+ * pango/pangox.c (get_font_metrics_from_subfonts): Check for nullity
somewhere.
src/harfbuzz-gdef.c | 3 ++-
Date: Thu Apr 6 18:23:49 2006 +0000
Update from HarfBuzz. Lars Knoll fixed all the warnings.
-
+
2006-04-06 Behdad Esfahbod <behdad@gnome.org>
-
- * pango/opentype: Update from HarfBuzz. Lars Knoll fixed
- all the
+
+ * pango/opentype: Update from HarfBuzz. Lars Knoll fixed all the
warnings.
src/harfbuzz-dump.c | 94 ++++++++++++++++++++++++++++---------------
src/harfbuzz-gpos.c | 80 ++++++++++++++++++++++--------------
- src/harfbuzz-gsub.c | 114
- +++++++++++++++++++++++++++++-----------------------
+ src/harfbuzz-gsub.c | 114 +++++++++++++++++++++++++++++-----------------------
src/harfbuzz-impl.h | 4 ++
4 files changed, 179 insertions(+), 113 deletions(-)
Author: Behdad Esfahbod <behdad@gnome.org>
Date: Mon Apr 3 20:13:17 2006 +0000
- Make sure TTAG_GDEF and frineds are defined, needed for FreeType
- <= 2.1.7
-
+ Make sure TTAG_GDEF and frineds are defined, needed for FreeType <= 2.1.7
+
2006-04-03 Behdad Esfahbod <behdad@gnome.org>
-
- * pango/opentype/harfbuzz-impl.h: Make sure TTAG_GDEF and
- frineds are
+
+ * pango/opentype/harfbuzz-impl.h: Make sure TTAG_GDEF and frineds are
defined, needed for FreeType <= 2.1.7 (pointed by Tim Janik).
src/harfbuzz-gdef.c | 3 ---
Date: Fri Mar 31 12:28:09 2006 +0000
Convert pango/opentype to the new project called HarfBuzz.
-
+
2006-03-31 Behdad Esfahbod <behdad@gnome.org>
-
+
Convert pango/opentype to the new project called HarfBuzz.
-
+
* pango/opentype/*: Restructured.
-
+
* pango/pango-ot-*: Updated to use HarfBuzz symbol names.
src/COPYING | 15 +
src/ftglue.h | 68 +-
src/ftxgdef.c | 1225 -------
src/ftxgdef.h | 224 --
- src/ftxgpos.c | 6199
- -------------------------------
+ src/ftxgpos.c | 6199 -------------------------------
src/ftxgpos.h | 838 -----
src/ftxgsub.c | 4533 -----------------------
src/ftxgsub.h | 594 ---
src/harfbuzz-gdef.c | 1228 +++++++
src/harfbuzz-gdef.h | 127 +
src/harfbuzz-gpos-private.h | 683 ++++
- src/harfbuzz-gpos.c | 6269
- ++++++++++++++++++++++++++++++++
+ src/harfbuzz-gpos.c | 6269 ++++++++++++++++++++++++++++++++
src/harfbuzz-gpos.h | 168 +
src/harfbuzz-gsub-private.h | 448 +++
src/harfbuzz-gsub.c | 4581 +++++++++++++++++++++++
Date: Sat Mar 25 23:52:30 2006 +0000
Don't err on Table_Missing.
-
+
2006-03-25 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/ottest.c: Don't err on Table_Missing.
src/ottest.c | 4 ++--
Date: Mon Mar 13 05:06:05 2006 +0000
=== Released 1.12.0 ===
-
+
2006-03-13 Behdad Esfahbod <behdad@gnome.org>
-
+
* === Released 1.12.0 ===
-
+
* configure.in: Version 1.12.0
-
+
* NEWS, README: Updated.
src/README | 4 ++--
Date: Mon Jan 30 22:37:48 2006 +0000
Handle GSUB Lookup type 8, and ReverseChainContextualSubst table. (bug
-
+
2006-01-30 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/ftxgsub.c: Handle GSUB Lookup type 8,
and ReverseChainContextualSubst table. (bug #149696,
patch from Aamir Wali)
- src/ftxgsub.c | 545
- ++++++++++++++++++++++++++++++++++++++++++++++-----------
+ src/ftxgsub.c | 545 ++++++++++++++++++++++++++++++++++++++++++++++-----------
src/ftxgsub.h | 47 +++--
src/ftxopen.c | 7 +
src/ftxopenf.h | 5 +-
Date: Sat Jan 28 20:29:18 2006 +0000
Removed.
-
+
2006-01-28 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentype/pango-ot-*: Removed.
-
+
* pango/pango-ot-*: Added.
-
+
* pango/Makefile.am, pango/opentype/Makefile.am: Adjusted.
src/Makefile.am | 30 +--
src/pango-ot-buffer.c | 339 ------------------------
- src/pango-ot-info.c | 681
- -------------------------------------------------
+ src/pango-ot-info.c | 681 -------------------------------------------------
src/pango-ot-private.h | 105 --------
src/pango-ot-ruleset.c | 225 ----------------
5 files changed, 13 insertions(+), 1367 deletions(-)
Author: Behdad Esfahbod <behdad@gnome.org>
Date: Wed Jan 25 19:33:58 2006 +0000
- If major.minor of required and available glib versions are the
- same, add
-
+ If major.minor of required and available glib versions are the same, add
+
2006-01-25 Behdad Esfahbod <behdad@gnome.org>
-
- * configure.in: If major.minor of required and available
- glib versions
- are the same, add -DG_DISABLE_DEPRECATED to GLIB_CFLAGS. (bug
- #328617)
-
+
+ * configure.in: If major.minor of required and available glib versions
+ are the same, add -DG_DISABLE_DEPRECATED to GLIB_CFLAGS. (bug #328617)
+
* */Makefile.am: Remove hardcoded -DG_DISABLE_DEPRECATED.
src/Makefile.am | 1 -
Date: Sat Jan 14 07:00:13 2006 +0000
Make sure #include <config.h> is the first include in the file. (bug
-
+
2006-01-14 Behdad Esfahbod <behdad@gnome.org>
-
- * */*.c, */*/*.c: Make sure #include <config.h> is the
- first include
+
+ * */*.c, */*/*.c: Make sure #include <config.h> is the first include
in the file. (bug #158870, based on patch by Luis Menina)
src/disasm.c | 2 ++
Date: Thu Jan 5 16:14:49 2006 +0000
pango/Makefile.am, pango/fonts.c, pango/glyphstring.c,
-
+
2006-01-05 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/Makefile.am,
* pango/fonts.c,
* pango/glyphstring.c,
* pango/pangox.c,
* pango/opentype/pango-ot-info.c,
* pango/opentype/pango-ot-ruleset.c: Intern strings to avoid
- unnecessary strdups in the type system. (bug #325832,
- Matthias Clasen)
+ unnecessary strdups in the type system. (bug #325832, Matthias Clasen)
src/pango-ot-info.c | 3 ++-
src/pango-ot-ruleset.c | 3 ++-
Author: Behdad Esfahbod <behdad@gnome.org>
Date: Tue Dec 27 09:55:48 2005 +0000
- Use g_slice for PangoOTBuffer allocation. (bug #325026, Matthias
- Clasen)
-
+ Use g_slice for PangoOTBuffer allocation. (bug #325026, Matthias Clasen)
+
2005-12-27 Behdad Esfahbod <behdad@gnome.org>
-
- * pango/opentype/pango-ot-buffer.c: Use g_slice for
- PangoOTBuffer
+
+ * pango/opentype/pango-ot-buffer.c: Use g_slice for PangoOTBuffer
allocation. (bug #325026, Matthias Clasen)
src/pango-ot-buffer.c | 4 ++--
Date: Wed Nov 23 19:48:10 2005 +0000
Fix typo in docs.
-
+
2005-11-23 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/opentyp/pango-ot-buffer.c: Fix typo in docs.
src/pango-ot-buffer.c | 4 +++-
Date: Wed Nov 23 17:54:55 2005 +0000
Added "Since:" tags to all interfaces added after Pango 1.0. (#319116,
-
+
2005-11-23 Behdad Esfahbod <behdad@gnome.org>
-
+
* pango/fonts.c pango/pango-attributes.c pango/pango-context.c
pango/pango-glyph-item.c pango/pango-layout.c
pango/pango-script.c pango/pango-utils.c pango/pangofc-font.c
pango/opentype/pango-ot-ruleset.c: Added "Since:" tags to all
interfaces added after Pango 1.0. (#319116, Brian Cameron)
- src/pango-ot-buffer.c | 49
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/pango-ot-buffer.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
src/pango-ot-ruleset.c | 14 ++++++++++++++
2 files changed, 63 insertions(+)
Date: Wed Nov 23 15:19:48 2005 +0000
Protect against possible division by zeros (#316468, Steve Grubb)
-
+
2005-11-23 Behdad Esfahbod <behdad@gnome.org>
-
- Protect against possible division by zeros (#316468,
- Steve Grubb)
-
+
+ Protect against possible division by zeros (#316468, Steve Grubb)
+
* pango/pango-context.c (update_metrics_from_items),
- pango/pango-fontset.c (pango_fontset_real_get_metrics):
- If count is
+ pango/pango-fontset.c (pango_fontset_real_get_metrics): If count is
zero, do not alter approximate_{char,digit}_width.
-
+
* pango/opentype/disasm.c: Err on invalid DeltaFormat.
src/disasm.c | 28 ++++++++++++++++++----------
Author: Behdad Esfahbod <behdad@gnome.org>
Date: Wed Nov 23 11:53:03 2005 +0000
- Reworked basic shaper with OpenType support. (#101079, based on
- patch from
-
+ Reworked basic shaper with OpenType support. (#101079, based on patch from
+
2005-11-23 Behdad Esfahbod <behdad@gnome.org>
-
- * modules/basic/basic-fc.c: Reworked basic shaper with
- OpenType
- support. (#101079, based on patch from Denis Jacquerye and
- Noah Levitt)
-
- * modules/basic/basic-fc.c (basic_scripts): Added Unicode
- 4.1 addition
+
+ * modules/basic/basic-fc.c: Reworked basic shaper with OpenType
+ support. (#101079, based on patch from Denis Jacquerye and Noah Levitt)
+
+ * modules/basic/basic-fc.c (basic_scripts): Added Unicode 4.1 addition
script PANGO_SCRIPT_GLAGOLITIC that is a "simple" script.
-
- * modules/arabic/arabic-fc.c, modules/syriac/syriac-fc.c:
- Replace
+
+ * modules/arabic/arabic-fc.c, modules/syriac/syriac-fc.c: Replace
g_utf8_to_ucs4_fast() with g_utf8_strlen()!
-
- * pango/opentype/pango-ot-ruleset.c
- (pango_ot_ruleset_add_feature):
+
+ * pango/opentype/pango-ot-ruleset.c (pango_ot_ruleset_add_feature):
Remove reference in docs to pango_ot_ruleset_shape() that was
removed long ago.
Date: Thu Nov 17 06:28:11 2005 +0000
Part of #101079:
-
+
2005-11-17 Behdad Esfahbod <behdad@gnome.org>
-
+
Part of #101079:
-
- * pango/opentype/ftxopen.c (Load_Lookup): In extension
- subtables,
+
+ * pango/opentype/ftxopen.c (Load_Lookup): In extension subtables,
offset is relative to the extension subtable, not the original
table. (Greg Aumann)
-
- * pango/opentype/ftxgpos.c (Load_BaseArray): When reading
- BaseAnchor,
- skip offsets that are zero. Works around bug in Doulos
- SIL Regular.
+
+ * pango/opentype/ftxgpos.c (Load_BaseArray): When reading BaseAnchor,
+ skip offsets that are zero. Works around bug in Doulos SIL Regular.
src/ftxgpos.c | 6 ++++++
src/ftxopen.c | 6 ++++--
Date: Wed Nov 9 23:30:00 2005 +0000
Remove debug line that got in accidentally.
-
+
2005-11-09 Behdad Esfahbod <behdad@gnome.org>
-
- * pango/opentype/ftxgpos.c, pango/opentype/ftxopen.c:
- Remove debug
+
+ * pango/opentype/ftxgpos.c, pango/opentype/ftxopen.c: Remove debug
line that got in accidentally.
src/ftxgpos.c | 1 -
Date: Fri Nov 4 23:55:38 2005 +0000
Turn various gcc warnings off. Adding const, adding static, fully
-
+
2005-11-04 Behdad Esfahbod <behdad@gnome.org>
-
+
* configure.in, examples/argcontext.c examples/cairoview.c,
- examples/renderdemo.c, examples/renderdemo.h
- examples/xftview.c,
+ examples/renderdemo.c, examples/renderdemo.h examples/xftview.c,
modules/basic/basic-x.c, modules/hangul/hangul-fc.c,
- modules/hebrew/hebrew-shaper.c,
- modules/hebrew/hebrew-shaper.h,
+ modules/hebrew/hebrew-shaper.c, modules/hebrew/hebrew-shaper.h,
modules/indic/indic-fc.c, modules/indic/mprefixups.c,
modules/syriac/syriac-fc.c, pango/break.c pango/fonts.c,
pango/modules.c, pango/pango-coverage.c pango/pango-engine.c,
pango/pango-utils.c, pango/pangocairo-fc.h,
pango/pangocairo-font.c, pango/pangocairo-fontmap.c,
pango/pangocairo-private.h, pango/pangofc-decoder.c,
- pango/pangofc-font.c, pango/pangofc-fontmap.c
- pango/pangoft2.c,
- pango/pangox-fontcache.c, pango/pangox-fontmap.c
- pango/pangox.c,
+ pango/pangofc-font.c, pango/pangofc-fontmap.c pango/pangoft2.c,
+ pango/pangox-fontcache.c, pango/pangox-fontmap.c pango/pangox.c,
pango/pangoxft-font.c, pango/querymodules.c,
pango/opentype/ftglue.c, pango/opentype/ftxgpos.c,
pango/opentype/ftxopen.c, pango/opentype/pango-ot-buffer.c,
pango/opentype/pango-ot-info.c,
pango/opentype/pango-ot-ruleset.c, tests/dump-boundaries.c,
tests/testboundaries.c, tests/testcolor.c tests/testiter.c,
- tests/testscript.c: Turn various gcc warnings off. Adding
- const,
+ tests/testscript.c: Turn various gcc warnings off. Adding const,
adding static, fully initializing structs, match signedness in
comparisons. (#317804)
-
+
* tests/testscript.c, tools/gen-script-for-lang.c:
- (scripts_for_file): Pass error->message instead of error
- to fail(),
+ (scripts_for_file): Pass error->message instead of error to fail(),
which was wrong.
(compare_lang): Fix typo comparing a and a instead of a and b.
Date: Thu Nov 3 20:13:40 2005 +0000
Patches from #170414. Reviewed by Matthias Clasen.
-
+
2005-11-03 Behdad Esfahbod <behdad@gnome.org>
-
+
Patches from #170414. Reviewed by Matthias Clasen.
-
- * pango/opentype/ftxgpos.c, pango/opentype/ftxgsub.c: Use
- call table
+
+ * pango/opentype/ftxgpos.c, pango/opentype/ftxgsub.c: Use call table
to dispatch different lookup types.
-
- * pango/opentype/pango-ot-buffer.c,
- pango/opentype/pango-ot-ruleset.c:
+
+ * pango/opentype/pango-ot-buffer.c, pango/opentype/pango-ot-ruleset.c:
Small cleanup.
- src/ftxgpos.c | 143
- ++++++++++++++++++++++++-------------------------
+ src/ftxgpos.c | 143 ++++++++++++++++++++++++-------------------------
src/ftxgsub.c | 115 +++++++++++++++++++++------------------
src/pango-ot-buffer.c | 3 +-
src/pango-ot-ruleset.c | 75 +++++++++-----------------
Date: Mon Aug 29 10:06:40 2005 +0000
Generate valid XML output. Dump LookupFlag too.
-
+
2005-08-29 Behdad Esfahbod <pango@behdad.org>
-
- * pango/opentype/ottest.c, pango/opentype/disasm.c:
- Generate valid
+
+ * pango/opentype/ottest.c, pango/opentype/disasm.c: Generate valid
XML output. Dump LookupFlag too.
- src/disasm.c | 58
- ++++++++++++++++++++++++++++++----------------------------
+ src/disasm.c | 58 ++++++++++++++++++++++++++++++----------------------------
src/ottest.c | 23 ++++++++++++++---------
2 files changed, 44 insertions(+), 37 deletions(-)
Date: Mon Aug 15 04:16:04 2005 +0000
Replace perror with perror_. Remove FT_BEGIN_STMNT and FT_END_STMNT.
-
+
2005-08-15 Behdad Esfahbod <pango@behdad.org>
-
+
* pango/opentype/ftglue.h: Replace perror with perror_.
Remove FT_BEGIN_STMNT and FT_END_STMNT. (#313477)
Author: Owen Taylor <otaylor@redhat.com>
Date: Tue Jul 26 18:33:27 2005 +0000
- Skip lookups with lookup index out of range. (Patch from Behdad
- Esfahbod,
-
+ Skip lookups with lookup index out of range. (Patch from Behdad Esfahbod,
+
2005-07-26 Owen Taylor <otaylor@redhat.com>
-
- * pango/opentype/ftxgsub.c, pango/opentype/ftxgpos.c:
- Skip lookups
- with lookup index out of range. (Patch from Behdad Esfahbod,
- #171170)
+
+ * pango/opentype/ftxgsub.c, pango/opentype/ftxgpos.c: Skip lookups
+ with lookup index out of range. (Patch from Behdad Esfahbod, #171170)
src/ftxgpos.c | 30 ++++++++++++++++++++++++------
src/ftxgsub.c | 30 ++++++++++++++++++++++++------
Date: Fri Jul 22 18:03:58 2005 +0000
Remove an unecessary set of block2.
-
+
2005-07-22 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftglue.c (ftglue_realloc): Remove
an unecessary set of block2.
Date: Fri Jul 22 17:56:37 2005 +0000
Patch from David Turner. Review and testing by Behdad Esfahbod
-
+
2005-07-22 Owen Taylor <otaylor@redhat.com>
-
+
Patch from David Turner. Review and testing by Behdad Esfahbod
-
- * pango/opentype/ftglue.[ch] Makefile.am: Glue layer that
- provides
- implementation of the internal functions that the opentype
- code
+
+ * pango/opentype/ftglue.[ch] Makefile.am: Glue layer that provides
+ implementation of the internal functions that the opentype code
expects in terms of publically exported FreeType API.
-
+
* pango/opentype/ftxgdef.c pango/opentype/ftxgpos.c
pango/opentype/ftxgsub.c pango/opentype/ftxopen.c
pango/opentype/otlbuffer.c pango/opentype/pango-ot-info.c
pango/opentype/pango-ot-ruleset.c: Remove includes of
internal headers. Small changes to work with ftglue.[ch]
-
+
* pango/opentype/fterrcompat.h: Remove: no longer needed.
-
+
* pango/opentype/ftxgpos.c: Use FT_IS_SFNT(face) rather
than poking at FT_MODULE_CLASS (face->driver)->module_name.
-
+
* pango/opentype/ftxopen.c (Free_FeatureList): Free
fl->ApplyOrder. (Found by Behdad)
src/Makefile.am | 3 +-
src/fterrcompat.h | 95 --------------
- src/ftglue.c | 350
- +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/ftglue.c | 350 +++++++++++++++++++++++++++++++++++++++++++++++++
src/ftglue.h | 156 ++++++++++++++++++++++
src/ftxgdef.c | 9 +-
src/ftxgpos.c | 9 +-
Author: Owen Taylor <otaylor@redhat.com>
Date: Thu Jul 21 18:15:45 2005 +0000
- Fix up places where there is missing or incomplete Copyright and
- License
-
+ Fix up places where there is missing or incomplete Copyright and License
+
2005-07-21 Owen Taylor <otaylor@redhat.com>
-
+
Fix up places where there is missing or incomplete
Copyright and License information (Reported by William N. Ray)
-
+
* pango/opentype/fterrcompat.h: Mark as FreeType/GPL licensed.
-
+
* pango/opentype/FT-license.txt: Make this the dual-licensing
description that covers the FreeType code (FreeType's
LICENSE.TXT) rather than the FTL.
-
+
* pango/opentype/FTL.TXT: Move the FTL (referenced from
FT-license.txt) to here.
-
+
* modules/basic/basic-common.h modules/hebrew/hebrew-shaper.h
modules/thai/thai-charprop.c modules/thai/thai-shaper.h
tools/gen-script-for-lang.c tests/testcolor.c:
Add LGPL header and copyright information.
-
- * modules/indic/indic-ot.[ch]
- modules/indic/indic-ot-class-tables.c
+
+ * modules/indic/indic-ot.[ch] modules/indic/indic-ot-class-tables.c
modules/thai/thai-ot.[ch]: Add LGPL header.
-
+
* modules/thai/thai-shaper.c modules/thai/thai-charprop.h:
Minor fixes to copyright information.
+
+ * modules/arabic/arabic-ot.c: Add Freetype license boilerplate.
- * modules/arabic/arabic-ot.c: Add Freetype license
- boilerplate.
-
- src/FT-license.txt | 179
- +++++++----------------------------------------------
- src/FTL.TXT | 174
- +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/FT-license.txt | 179 +++++++----------------------------------------------
+ src/FTL.TXT | 174 +++++++++++++++++++++++++++++++++++++++++++++++++++
src/fterrcompat.h | 10 ++-
3 files changed, 204 insertions(+), 159 deletions(-)
Date: Tue Jun 14 19:54:19 2005 +0000
Chain up from finalize. (#307547, Paolo Borelli)
-
+
2005-06-14 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/pango-ot-info.c (pango_ot_info_finalize)
pango/opentype/pango-ot-ruleset.c (pango_ot_ruleset_finalize):
Chain up from finalize. (#307547, Paolo Borelli)
-
+
* pango/opentype/pango-ot-info.c (pango_ot_info_finalizer):
make accidentally public function static.
Date: Tue Apr 12 01:27:21 2005 +0000
Rename LDADDS to libpango_ot_la_LIBADD to actually make libpango-ot.la
-
+
2005-04-12 Tor Lillqvist <tml@novell.com>
-
+
* pango/opentype/Makefile.am: Rename LDADDS to
- libpango_ot_la_LIBADD to actually make libpango-ot.la
- link with
+ libpango_ot_la_LIBADD to actually make libpango-ot.la link with
it.
-
+
* pango/pangowin32.def: Rename get_scale_factor to
get_metrics_factor here, too. (#300222, Ivan Wong)
Author: Owen Taylor <otaylor@redhat.com>
Date: Thu Mar 3 19:38:02 2005 +0000
- For all binary searches, handle the case where the number of items
- is 0.
-
+ For all binary searches, handle the case where the number of items is 0.
+
2005-03-03 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxopen.c (Coverage_Index1, Coverage_Index2,
Get_Class2): For all binary searches, handle the case where
the number of items is 0. (#162977, Nick Lamb)
-
+
* pango/opentype/ftxgdef.c (TT_GDEF_Build_ClassDefinition):
Handle the case where glyph_count == 0 properly. Fix a problem
with cleanups on memory allocation failure.
(Get_New_Count, Add_Glyph_Property): Avoid reading off the
end of the ClassRangeRecord array.
- src/ftxgdef.c | 60
- +++++++++++++++++++++++++++++++++++------------------------
+ src/ftxgdef.c | 60 +++++++++++++++++++++++++++++++++++------------------------
src/ftxopen.c | 15 +++++++++++++++
2 files changed, 51 insertions(+), 24 deletions(-)
Date: Mon Nov 22 23:37:19 2004 +0000
Set G_LOG_DOMAIN.
-
+
Mon Nov 22 18:30:14 2004 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/Makefile.am pango/Makefile.am
modules/*/Makefile.am: Set G_LOG_DOMAIN.
Date: Wed Sep 22 18:14:55 2004 +0000
Cleanups from 'sparse', #149922, Kjartan Maraas
-
+
Wed Sep 22 14:07:47 2004 Owen Taylor <otaylor@redhat.com>
-
+
Cleanups from 'sparse', #149922, Kjartan Maraas
-
+
* pango/pango-utils.c (read_config): () => (void) in
definition.
-
+
* pango/pangofc-fontmap.c (pango_fc_font_map_list_families):
Initialize *n_families, not n_families.
-
+
* pango/pangofc-fontmap.c pango/pangoft2.c opentype/ftxgdef.c
opentype/ftxgpos.c opentype/ftxgsub.c: : Fix various 0/NULL
confusion.
Date: Tue Sep 14 13:45:41 2004 +0000
=== Released 1.6.0 ===
-
+
Mon Sep 13 17:38:58 2004 Owen Taylor <otaylor@redhat.com>
-
+
* === Released 1.6.0 ===
-
+
* configure.in: Update versions for 1.6.0
-
+
* NEWS: Update.
-
+
* README: Minor tweak.
-
+
* pango/fonts.c pango/pango-context.c pango/pango-types.h
pango/pango-utils.c pango/pangoft2.c pango/pango-layout.c
pango/opentype/pango-ot-buffer.c: Add a bunch of missing
Author: Owen Taylor <otaylor@redhat.com>
Date: Fri Jul 30 21:23:04 2004 +0000
- Finish extending properties flags from FT_UShort =>
- FT_UInt. (OTLBuffer
-
+ Finish extending properties flags from FT_UShort => FT_UInt. (OTLBuffer
+
Fri Jul 30 17:17:05 2004 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgpos.[ch] pango/opentype/ftxgsub.[ch]
pango/opentype/ftxopen.[ch]: Finish extending properties
flags from FT_UShort => FT_UInt. (OTLBuffer was already
Date: Tue Jul 27 17:20:01 2004 +0000
Save the order in which features were added and use that when applying
-
+
Tue Jul 27 12:38:05 2004 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxopen.[ch] pango/opentype/ftxgsub.c
pango/opentype/ftxpos.c: Save the order in which
features were added and use that when applying features.
Author: Behdad Esfahbod <behdad@src.gnome.org>
Date: Tue Jul 27 13:12:19 2004 +0000
- Remove the unused parameter from the IN_CURITEM() and IN_CURGLYPH
- macros.
-
-
+ Remove the unused parameter from the IN_CURITEM() and IN_CURGLYPH macros.
+
+
* pango/opentype/ftxgpos.c: Remove the unused parameter
from the IN_CURITEM() and IN_CURGLYPH macros.
- src/ftxgpos.c | 68
- +++++++++++++++++++++++++++++------------------------------
+ src/ftxgpos.c | 68 +++++++++++++++++++++++++++++------------------------------
src/ftxgsub.c | 2 +-
2 files changed, 35 insertions(+), 35 deletions(-)
Date: Tue Jul 27 10:43:58 2004 +0000
Fix bug to copy glyph from in_string, not out_string.
-
-
+
+
* pango/opentype/otlbuffer.c (otl_buffer_copy_output_glyph):
Fix bug to copy glyph from in_string, not out_string.
Author: Owen Taylor <otaylor@redhat.com>
Date: Mon Jul 26 23:14:53 2004 +0000
- Fix allocation and indexing in NewGlyphClasses array. (#130661,
- Masatake
-
+ Fix allocation and indexing in NewGlyphClasses array. (#130661, Masatake
+
Mon Jul 26 19:11:46 2004 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgdef.c: Fix allocation and indexing
in NewGlyphClasses array. (#130661, Masatake YAMATO)
Author: Owen Taylor <otaylor@redhat.com>
Date: Mon Jul 26 19:25:45 2004 +0000
- Remove the unused parameter from the IN_CURITEM() and IN_CURGLYPH
- macros.
-
+ Remove the unused parameter from the IN_CURITEM() and IN_CURGLYPH macros.
+
Mon Jul 26 15:24:11 2004 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgsub.c (ADD_Glyph): Remove the
unused parameter from the IN_CURITEM() and IN_CURGLYPH
macros.
- src/ftxgsub.c | 56
- ++++++++++++++++++++++++++++----------------------------
+ src/ftxgsub.c | 56 ++++++++++++++++++++++++++++----------------------------
1 file changed, 28 insertions(+), 28 deletions(-)
commit a00c4ea5626526980139b122977e367b8434d24a
Date: Mon Jul 26 19:23:06 2004 +0000
Add missing macro to make the last change actually compile.
-
+
Mon Jul 26 15:21:23 2004 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgsub.c: Add missing macro to make the
last change actually compile.
Date: Mon Jul 26 19:20:27 2004 +0000
Match backtrack context against the output glyphs not the input glyphs
-
+
Mon Jul 26 15:16:07 2004 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgsub.c (Lookup_ChainContextSubst[123]):
Match backtrack context against the output glyphs not
the input glyphs (#145174, Aamir Wali)
Date: Mon Jul 26 18:59:02 2004 +0000
Make Check_Property() take a OTL_GlyphItem, add a gproperties field to
-
+
Mon Jul 26 14:49:22 2004 Owen Taylor <otaylor@redhat.com>
-
+
* ftxgdef.[ch] otlbuffer.[ch]: Make Check_Property() take a
OTL_GlyphItem, add a gproperties field to OTLGlyphItem,
and use that to cache the properties for a glyph.
-
+
* ftxgsub.c ftxgdef.c: Adapt to Check_Property() changes.
-
+
* otlbuffer.[ch] ftxgsub.c: Add otl_buffer_copy_output_glyph()
to use when we are copying an unmodified glyph from input
to output that preserves the cached properties.
src/ftxgdef.c | 16 ++++++++++------
src/ftxgpos.c | 52 +++++++++++++++++++++++++++-------------------------
- src/ftxgsub.c | 54
- ++++++++++++++++++++++++++++--------------------------
+ src/ftxgsub.c | 54 ++++++++++++++++++++++++++++--------------------------
src/ftxopenf.h | 2 +-
src/otlbuffer.c | 21 +++++++++++++++++++--
src/otlbuffer.h | 6 ++++++
Date: Mon Jul 19 21:13:23 2004 +0000
Add support for ChainContextSubstFormat3.
-
+
Mon Jul 19 17:09:11 2004 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/disasm.c: Add support for
ChainContextSubstFormat3.
Author: Owen Taylor <otaylor@redhat.com>
Date: Mon Jul 19 20:37:22 2004 +0000
- Fix pervasive buffer overruns when skipping glyphs when matching
- contexts.
-
+ Fix pervasive buffer overruns when skipping glyphs when matching contexts.
+
Mon Jul 19 16:29:45 2004 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgsub.c pango/opentype/ftxgpos.c:
Fix pervasive buffer overruns when skipping glyphs
when matching contexts. (#118592, Kailash C. Chowksey)
src/ftxgpos.c | 259 ++++++++++++++++++----------------------
- src/ftxgsub.c | 376
- ++++++++++++++++++++++++++--------------------------------
+ src/ftxgsub.c | 376 ++++++++++++++++++++++++++--------------------------------
2 files changed, 284 insertions(+), 351 deletions(-)
commit 99848cfafee8e598ef533f254cdb99fbae4c9364
Date: Wed Jun 23 20:33:35 2004 +0000
#143693, Sayamindu Dasgupta
-
+
Wed Jun 23 16:13:53 2004 Owen Taylor <otaylor@redhat.com>
-
+
#143693, Sayamindu Dasgupta
-
- * pango/opentype/pango-ot-buffer.c
- (pango_ot_buffer_set_zero_width_marks)
- pango/opentype/pango-ot-private.h:
+
+ * pango/opentype/pango-ot-buffer.c (pango_ot_buffer_set_zero_width_marks) pango/opentype/pango-ot-private.h:
Allow setting for whether marks should be given zero width,
defaulting to FALSE.
-
+
* modules/arabic/arabic-fc.c (arabic_engine_shape): Turn
on zero-width-marks setting.
Date: Mon Jun 21 18:04:02 2004 +0000
Use the gcc-3.3 strict-aliasing compatible macros from fterrcompat.h
-
+
Mon Jun 21 13:55:17 2004 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/otlbuffer.c: Use the gcc-3.3
strict-aliasing compatible macros from fterrcompat.h
(#140495, reported by Stanislav Brabec)
Date: Fri May 28 16:41:36 2004 +0000
Negate y offset according to different conventions between
-
- * pango/opentype/pango-ot-buffer.c (apply_gpos_ltr): Negate
- y offset
- according to different conventions between PangoGlyphString
- and OTL
+
+ * pango/opentype/pango-ot-buffer.c (apply_gpos_ltr): Negate y offset
+ according to different conventions between PangoGlyphString and OTL
(#142544)
src/pango-ot-buffer.c | 2 +-
Date: Thu May 27 21:55:50 2004 +0000
Revert error return changes from last commit.
-
+
Thu May 27 17:54:24 2004 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/otlbuffer.c: Revert error return changes
from last commit.
Date: Thu May 27 21:03:42 2004 +0000
Free buffer->positions, clean up error returns that were returning
-
+
Thu May 27 16:57:30 2004 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/otlbuffer.c: Free buffer->positions,
clean up error returns that were returning uninitialized
values. (#139239, Behdad Esfahbod)
Date: Tue Mar 16 19:23:43 2004 +0000
=== Released 1.4.0 ===
-
+
Tue Mar 16 11:24:46 2004 Owen Taylor <otaylor@redhat.com>
-
+
* === Released 1.4.0 ===
-
+
* configure.in: Version 1.4.0, interface ago 0. Require
glib-2.4.0.
-
+
* NEWS: Updates.
-
+
* README: Some updates; include details about the FreeType
license of the OpenType code.
- src/FT-license.txt | 77
- +++++++++++++++++++++++++++++-------------------------
+ src/FT-license.txt | 77 +++++++++++++++++++++++++++++-------------------------
1 file changed, 42 insertions(+), 35 deletions(-)
commit 8b3554b3afe7c125b1a53171b01ac87de9c486fe
Author: Hans Breuer <hans@breuer.org>
Date: Wed Mar 3 22:35:19 2004 +0000
- if PANGO_MODULE_PREFIX is defined include the basic backend shaper
- (should
-
+ if PANGO_MODULE_PREFIX is defined include the basic backend shaper (should
+
2004-03-03 Hans Breuer <hans@breuer.org>
-
+
* pango/module-defs-win32.c.win32 : if PANGO_MODULE_PREFIX is
defined include the basic backend shaper (should have been
commited at 2003-12-12, too)
-
+
* pango/makefile.msc : generate correct type for PangoFontMask
(bug #135892, John Ehresman)
* pango/opentype/makefile.msc : updated
-
+
* pango/pango.def pango/pangoft2.def : more updatd externals
src/makefile.msc | 6 ++++--
Author: Owen Taylor <otaylor@redhat.com>
Date: Sun Feb 29 15:44:50 2004 +0000
- Rework opentype interfaces and other changes to make GPOS work
- for Arabic.
-
+ Rework opentype interfaces and other changes to make GPOS work for Arabic.
+
Sun Feb 29 09:25:13 2004 Owen Taylor <otaylor@redhat.com>
-
+
Rework opentype interfaces and other changes to make GPOS
work for Arabic. (Most of #117282, #121060)
-
+
* pango/opentype/otlbuffer.[ch]: OTL_Buffer that
acts as a replacement for the separate GSUB and
GPOS string structures and hides many of the internal
details.
-
+
* pango/opentype/ftxgsub.[ch] pango/opentype/ftxgpos.[ch]:
Adapt to OTL_Buffer.
-
+
* pango/opentype/ftxgpos.c: Redo handling of cursive
chains so that it actually works.
-
+
* pango/pango-ot.h pango/opentype/pango-ot-buffer.c:
Pango wrapper around OTL_Buffer.
-
- * pango/pango-ot.h pango/pango-ot-ruleset.c
- pango/pango-ot-buffer.c:
- Split pango_ot_ruleset_shape() into
- pango_ot_ruleset_substitute(),
+
+ * pango/pango-ot.h pango/pango-ot-ruleset.c pango/pango-ot-buffer.c:
+ Split pango_ot_ruleset_shape() into pango_ot_ruleset_substitute(),
pango_ot_ruleset_position(), make them act on
PangoOTBuffer, add a separate pango_ot_buffer_output()
which does the default positioning and writes to a
PangoGlyphString.
-
+
* modules/arabic/arabic-fc.c modules/indic/indic-fc.c
modules/indic/mprefixups.[ch]: Adapt to new OpenType
interfaces; add GPOS features for Arabic.
-
- * pango/opentype/pango-ot-info.c: Don't derive class
- information
+
+ * pango/opentype/pango-ot-info.c: Don't derive class information
from Unicode properties for Arabic presentation forms,
let the shaping process derive the properties.
src/ftxgdef.c | 4 +-
src/ftxgpos.c | 573 ++++++++++++++++-----------------------
src/ftxgpos.h | 23 +-
- src/ftxgsub.c | 719
- +++++++++++--------------------------------------
+ src/ftxgsub.c | 719 +++++++++++--------------------------------------
src/ftxgsub.h | 40 +--
src/ftxopen.h | 1 +
src/otlbuffer.c | 213 +++++++++++++++
Author: Owen Taylor <otaylor@redhat.com>
Date: Sat Feb 21 14:53:12 2004 +0000
- Sign convention for y offsets is opposite between PangoGlyphString
- and FT
-
+ Sign convention for y offsets is opposite between PangoGlyphString and FT
+
Sat Feb 21 09:49:23 2004 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/pango-ot-ruleset.c (pango_ot_ruleset_shape):
Sign convention for y offsets is opposite between
PangoGlyphString and FT code. (#132591)
Date: Fri Feb 13 16:11:40 2004 +0000
Memory leak fixes from Masatake YAMATO, #130652
-
+
Fri Feb 13 10:54:18 2004 Owen Taylor <otaylor@redhat.com>
-
+
Memory leak fixes from Masatake YAMATO, #130652
-
+
* pango/opentype/ftxgdef.c (TT_Done_GDEF_Table):
Free the gdef table as well as the contained data.
-
+
* pango/opentype/ftxgdef.c (TT_GDEF_Build_ClassDefinition):
Set gcd->loaded, so that the contents get freed later.
Date: Mon Jan 26 19:23:35 2004 +0000
Suport CFF fonts as well. (#131202, Manjunath Sripadarao)
-
+
Mon Jan 26 14:20:34 2004 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/pango-ot-info.c (is_truetype): Suport
CFF fonts as well. (#131202, Manjunath Sripadarao)
Date: Sat Dec 13 14:31:50 2003 +0000
moved pango_fc_* to the latter where they live on *nix too.
-
+
2003-12-13 Hans Breuer <hans@breuer.org>
-
+
* pango/pango.def pangoft2.def : moved pango_fc_*
to the latter where they live on *nix too.
-
+
* pango/makefile.msc : make it build again (including
the Ft2 backend)
-
- * pango/module-defs-fc.c.win32 : if PANGO_MODULE_PREFIX
- is defined
+
+ * pango/module-defs-fc.c.win32 : if PANGO_MODULE_PREFIX is defined
include the basic backend shaper
-
+
* pango/pangowin32.c (pango_win32_render_layout) :
initialize iter before first usage to avoid immediate crashing
-
+
* pango/opentype/makefile.msc
pango/modules/makefile.msc : finally build with mscv, too.
[completely untested cause I'm not able to type, write or read
any of these languages]
-
- * modules/modules.def : follow module function
- renaming/changes
-
- * modules/basic/basic-win32.c : register the right engine,
- i.e.
+
+ * modules/modules.def : follow module function renaming/changes
+
+ * modules/basic/basic-win32.c : register the right engine, i.e.
make it compile
src/makefile.msc | 21 +++++++++++++++++++++
Date: Sat Nov 1 15:02:17 2003 +0000
Switch over to recommended Freetype system of include ft2build.h then
-
+
Sat Nov 1 09:32:15 2003 Owen Taylor <otaylor@redhat.com>
-
- * pango/pango-ot.h pango/pangofc-font.h
- modules/indic/indic-ot.h
+
+ * pango/pango-ot.h pango/pangofc-font.h modules/indic/indic-ot.h
pango/pangoft2.c pango/opentype/pango-ot-info.c
pango/opentype/pango-ot-ruleset.c pango/opentype/ottest.c
pango/opentype/ftxopen.[ch] pango/opentype/ftxgdef.c
Date: Mon Sep 15 22:04:55 2003 +0000
Fix gcc-3.3 versions of macros to have the right return value.
-
+
Mon Sep 15 17:16:59 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/fterrcompat.h: Fix gcc-3.3 versions of
macros to have the right return value.
Author: Owen Taylor <otaylor@redhat.com>
Date: Mon Aug 25 14:30:12 2003 +0000
- pango/opentype/ftxgsub.c (Lookup_ChainContextSubst3) Fix problems
- where
-
+ pango/opentype/ftxgsub.c (Lookup_ChainContextSubst3) Fix problems where
+
Mon Aug 25 10:17:21 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgsub.c (Lookup_ChainContextSubst3)
* pango/opentype/ftxgpos.c (Lookup_ChainContextPos3):
Fix problems where the coverage wasn't being checked
Date: Fri Aug 22 22:52:08 2003 +0000
Add some macro definitions for gcc-3.3 that suppress the bogus
-
+
Fri Aug 22 18:09:52 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/fterrcompat.h: Add some macro definitions
for gcc-3.3 that suppress the bogus strict-aliasing
warnings.
-
+
* pango/pango-utils.c (read_config_file): Use
g_hash_table_new_full() to simplify code and fix
gcc-3.3 warnings.
-
+
* pango/pangox-fontmap.c (pango_x_real_get_coverage_win)
* pango/querymodules.c (query_module): Suppress gcc-3.3
warnings.
-
+
* pango/modules.c (pango_find_map): Fix warning from
missing declaration of pango_module_get_type().
-
+
* pango/pango-context.c/pango-engine.c: Fix name confusion
for pango_get_fallback_shaper().
Author: Owen Taylor <otaylor@redhat.com>
Date: Tue Jul 29 14:21:54 2003 +0000
- Rewrite handling of IGNORE_SPECIAL_MARKS to be properly "ignore
- marks of
-
+ Rewrite handling of IGNORE_SPECIAL_MARKS to be properly "ignore marks of
+
Tue Jul 29 09:58:13 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgdef.c (Check_Property): Rewrite
handling of IGNORE_SPECIAL_MARKS to be properly
"ignore marks of attachment type different than
Author: Owen Taylor <otaylor@redhat.com>
Date: Mon Jul 28 22:28:37 2003 +0000
- Revert back out the FreeType patch preventing ligatures of
- not-originally
-
+ Revert back out the FreeType patch preventing ligatures of not-originally
+
Sat Jul 26 09:41:22 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgsub.c (Lookup_LigatureSubst):
Revert back out the FreeType patch preventing
ligatures of not-originally adjacent glyphs;
Date: Sun Jul 27 02:40:31 2003 +0000
Check for lookahead glyphs in the right place. (Patch from #116860)
-
+
Sat Jul 26 22:30:59 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgsub.c (Lookup_ChainContextSubst{1,2,3}):
Check for lookahead glyphs in the right place. (Patch
from #116860)
-
+
* pango/opentype/ftxgpos.c (Lookup_ChainContextPos{1,2,3}):
Same fix here.
Date: Sun Jul 27 02:19:52 2003 +0000
Fix return value to only contain TTO_Err_Not_Covered if *no* lookups
-
+
Sat Jul 26 22:12:46 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgsub.c (Do_String_Lookup,
TT_GSUB_Apply_String): Fix return value to only
contain TTO_Err_Not_Covered if *no* lookups
matched. Fix memory leaks on error in Apply_String().
- src/ftxgsub.c | 120
- ++++++++++++++++++++++++++++++++++++----------------------
+ src/ftxgsub.c | 120 ++++++++++++++++++++++++++++++++++++----------------------
1 file changed, 75 insertions(+), 45 deletions(-)
commit e10ea2afd9a5868d4ec1ff3a2b99bcd64ce45816
Author: Owen Taylor <otaylor@redhat.com>
Date: Sun Jul 27 01:10:15 2003 +0000
- Fix confusion between boolean and FT_Error return. (GSUB equivalent
- of fix
-
+ Fix confusion between boolean and FT_Error return. (GSUB equivalent of fix
+
Sat Jul 26 21:06:26 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgsub.c (Load_EmptyOrClassDefinition):
Fix confusion between boolean and FT_Error return.
(GSUB equivalent of fix for #108358)
Date: Sat Jul 26 15:02:13 2003 +0000
Move allocation afer initial checks, fixing memory leak.
-
+
Sat Jul 26 10:52:20 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgpos.c (Lookup_ContextPos2):
* pango/opentype/ftxgsub.c (Lookup_ContextSubst2): Move
allocation afer initial checks, fixing memory leak.
-
+
* pango/opentype/ftxgsub.c (Lookup_ChainContextSubst2):
Fix some more error return memory leaks that weren't
fixed in the Qt changes.
Author: Owen Taylor <otaylor@redhat.com>
Date: Sat Jul 26 14:50:23 2003 +0000
- Fix various memory leaks from error returns that should have been
- jumps to
-
+ Fix various memory leaks from error returns that should have been jumps to
+
Sat Jul 26 10:43:20 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgsub.c pango/opentype/ftxgpos.c:
Fix various memory leaks from error returns that should
have been jumps to cleanup blocks. (From Qt, Lars Knoll)
Date: Sat Jul 26 14:35:29 2003 +0000
Fix additional places where TTO_Err_Not_Covered wasn't considered a
-
+
Sat Jul 26 10:30:24 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgpos.c: Fix additional places where
TTO_Err_Not_Covered wasn't considered a successful return
from Get_Class. (From Qt, Lars Knoll)
Date: Sat Jul 26 13:50:23 2003 +0000
If applying a ligature lookup makes adjacent two glyphs that were not
-
+
Sat Jul 26 09:41:22 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgsub.c (Lookup_LigatureSubst):
If applying a ligature lookup makes adjacent two glyphs
that were not originally adjacent, avoid making
Date: Sat Jul 26 13:20:52 2003 +0000
Fix some FreeType1 variable declarations that snuck in from the last
-
+
Sat Jul 26 09:16:57 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgpos.c pango/opentype/ftxopen.c:
Fix some FreeType1 variable declarations that snuck
in from the last commits (Christophe Fergeau,
Author: Owen Taylor <otaylor@redhat.com>
Date: Sat Jul 26 03:45:44 2003 +0000
- OpenType-1.4 update: backtrack information is stored with the
- item closest
-
+ OpenType-1.4 update: backtrack information is stored with the item closest
+
Fri Jul 25 23:38:07 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgpos.c pango/opentype/ftxgsub.c:
OpenType-1.4 update: backtrack information is stored with the
item closest to the input first (From FreeType,
Date: Sat Jul 26 03:14:23 2003 +0000
Update of GPOS and GSUB support to OpenType 1.3 (From FreeType, Werner
-
+
Fri Jul 25 23:07:06 2003 Owen Taylor <otaylor@redhat.com>
-
+
Update of GPOS and GSUB support to OpenType 1.3
(From FreeType, Werner Lemberg, 2001-08-08)
-
+
* pango/opentype/ftxopen.h: Add RIGHT_TO_LEFT LookupFlag
-
+
* pango/opentype/ftxgpos.c (GPOS_Instance): Add 'first'
- member to mark the beginning of a chain of cursive
- connections.
-
+ member to mark the beginning of a chain of cursive connections.
+
* pango/opentype/ftxgpos.c (Do_String_Lookup): If the
RIGHT_TO_FLAG flag is set, shift cursive chain up so
last glyph is on the baseline.
Date: Sat Jul 26 03:03:40 2003 +0000
Add GPOS_LOOKUP_EXTENSION, GSUB_LOOKUP_EXTENSION, which allow lookup
-
+
Fri Jul 25 22:59:13 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftx{gpos,gsub}.h pango/opentype/ftxgdef.c:
Add GPOS_LOOKUP_EXTENSION, GSUB_LOOKUP_EXTENSION, which
allow lookup information to be stored at 32-bit offets
Date: Sat Jul 26 02:44:19 2003 +0000
Fix a couple of places where TTO_Err_Not_Covered wasn't considered a
-
+
Fri Jul 25 22:25:48 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgsub.c (Lookup_ContextSubst2,
Lookup_ChainContextSubst2): Fix a couple of
places where TTO_Err_Not_Covered wasn't considered
Date: Sat Jul 26 02:10:42 2003 +0000
Improvements to OpenType-dumping code, based on changes in Qt by Lars
-
+
Fri Jul 25 20:12:00 2003 Owen Taylor <otaylor@redhat.com>
-
+
Improvements to OpenType-dumping code, based on
changes in Qt by Lars Knoll.
-
+
* pango/opentype/ottest.c: Tweak the debugging output,
suppress some warnings.
-
+
* pango/opentype/disasm.c: Add support for
GSUB Context/Chain GPOS MarkBase lookups, improve
output in various ways.
- src/disasm.c | 242
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ src/disasm.c | 242 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
src/ottest.c | 12 +--
2 files changed, 241 insertions(+), 13 deletions(-)
Date: Thu Jul 24 21:05:29 2003 +0000
Fix uses of g_assert() around statements with side effects. (#115498,
-
+
Thu Jul 24 17:04:21 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/pango-ot-ruleset.c (pango_ot_ruleset_shape):
Fix uses of g_assert() around statements with side effects.
(#115498, patch from David Cuthbert)
Author: Owen Taylor <otaylor@redhat.com>
Date: Wed Apr 16 21:48:29 2003 +0000
- More careful handling of face->charmap; if is NULL, try to set
- a unicode
-
+ More careful handling of face->charmap; if is NULL, try to set a unicode
+
Wed Apr 16 03:46:42 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/pango-ot-info.c (synthesize_class_def):
More careful handling of face->charmap; if is NULL,
try to set a unicode charmap, if that doesn't succeed,
Date: Wed Apr 16 03:58:17 2003 +0000
When loading in Load_Chain{Sub,Pos}ClassRule, the limit we have only
-
+
Tue Apr 15 11:49:39 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxg{sub/pos}.c: When loading
in Load_Chain{Sub,Pos}ClassRule, the limit we
have only applies to the input ClassDef table.
Date: Tue Apr 15 23:01:19 2003 +0000
Fix mispelled constant from last commit.
-
+
Tue Apr 15 06:57:02 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgpos.c: Fix mispelled constant
from last commit.
Author: Owen Taylor <otaylor@redhat.com>
Date: Tue Apr 15 22:15:41 2003 +0000
- Fix confusion between boolean and FT_Error return. (#108358,
- Noah Levitt)
-
+ Fix confusion between boolean and FT_Error return. (#108358, Noah Levitt)
+
Tue Apr 15 06:03:39 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgpos.c: Fix confusion between
boolean and FT_Error return. (#108358, Noah Levitt)
-
+
* pango/opentype/ftxopen.c (Get_Class1): index is
allowed to be NULL. (#108358, Noah Levitt)
Date: Tue Apr 15 21:05:53 2003 +0000
Fix infinite loop in the case where the charmap contains a character >
-
+
Tue Apr 15 05:00:39 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/pango-ot-info.c (synthesize_class_def):
Fix infinite loop in the case where the charmap contains
a character > 65535. (#106550, Morten Welinder.)
Date: Tue Mar 11 12:31:16 2003 +0000
make similar changes to the ones on glib head (call gtk-docize, etc).
-
+
2003-03-11 James Henstridge <james@daa.com.au>
-
+
* autogen.sh: make similar changes to the ones on glib head (call
gtk-docize, etc).
-
+
* configure.in: move some calculations into M4 macros, rather than
calculating them when configure runs.
Use AC_HELP_STRING where appropriate.
AC_CONFIG_COMMANDS (once per created file).
Get rid of the "chmod +x pango-config" bit, because there is no
pango-config anymore.
-
+
* Makefile.am: get rid of custom distcheck rule, and set
DISTCHECK_CONFIGURE_FLAGS, which is equivalent.
Use += to select which .pc files to install.
-
+
* pango/Makefile.am: Add rules to rebuild module-defs* files, and
remove them on clean.
Reorder so that rules related to each individual library are next
to each other.
Use BUILT_SOURCES for built sources.
-
+
* pango/opentype/Makefile.am: don't use STRIP_BEGIN/STRIP_END.
-
+
* modules/*/Makefile.am: simplify module makefiles through use of
+=, and regularise them a bit (fixed a few bugs in the process).
-
+
* docs/Makefile.am: remove common rules, and instead include
gtk-doc.make.
-
+
* examples/Makefile.am: add pango.modules to CLEANFILES.
-
+
* tests/Makefile.am: remove temporary files on clean.
src/Makefile.am | 11 +++++------
Author: Owen Taylor <otaylor@redhat.com>
Date: Mon Feb 17 22:04:29 2003 +0000
- Add an --enable-debug configure argument defaulting to 'yes'
- for unstable
-
+ Add an --enable-debug configure argument defaulting to 'yes' for unstable
+
Mon Feb 17 13:06:39 2003 Owen Taylor <otaylor@redhat.com>
-
+
* configure.in **/Makefile.am: Add an --enable-debug
configure argument defaulting to 'yes' for unstable
releases and 'minimum' for stable releases.
For minimum, -DG_DISABLE_CAST_CHECKS.
-
+
* pango/pangofc-fontmap.cI pango/pangoft2-fontmap.c
pango/pangoxft-fontmap.c: Add caching of fontsets
(#104495, initial patch and review by Soeren Sandmann)
-
+
* pango/pangofc-fontmap.cI pango/pangoft2-fontmap.c
pango/pangoxft-fontmap.c pango/pangoft2-private.h
pango/pangoxft-private.h: Remove cache of recently freed
fonts; not necessary now that we cache fontsets.
-
+
* pango/pangofc-fontmap.cI (pango_fc_pattern_set_free):
Rename from pango_fc_font_set_free to reflect
what it actually does.
-
+
* pango/pangofc-fontmap.cI pango/pangoft-fontmap.c
pango/pangoxft-fontmap.c: Combine clear-the-cache
functions; we didn't need separate clear-the-font-cache
Date: Wed Feb 12 22:12:55 2003 +0000
Up the FreeType version requirement to 2.0.9. (2.2.1 had a compilation
-
+
Wed Feb 12 16:59:23 2003 Owen Taylor <otaylor@redhat.com>
-
+
* configure.in pango/opentype/fterrcompat.h README:
Up the FreeType version requirement to 2.0.9.
(2.2.1 had a compilation failure with older versions,
Date: Sat Jan 11 00:16:26 2003 +0000
Export TT_New_GDEF_Table to create an empty GDEF table.
-
+
Fri Jan 10 18:56:36 2003 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgdef.c: Export TT_New_GDEF_Table
to create an empty GDEF table.
-
+
* pango/opentype/pango-ot-info.c: If the font doesn't
have a class definition table, synthesize one using
the charmap and the unicode properties of characters
src/ftxgdef.c | 46 +++++++++++++++-------
src/ftxgdef.h | 4 ++
- src/pango-ot-info.c | 108
- ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/pango-ot-info.c | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 144 insertions(+), 14 deletions(-)
commit db6bb4b034d4d8d546fc9bdc4ad28b16bb7f1bb7
Date: Thu Nov 28 23:53:18 2002 +0000
Add docs.
-
+
* docs/tmpl/xft-fonts.sgml:
* docs/tmpl/freetype-fonts.sgml: Add docs.
-
+
* pango/pangoxft-fontmap.c (pango_xft_substitute_changed):
* pango/pangoft2-fontmap.c
(pango_ft2_font_map_set_default_substitute):
Date: Tue Nov 26 13:37:10 2002 +0000
Do not add GLIB_CFLAGS to CFLAGS.
-
-
+
+
2002-11-26 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
-
+
* configure.in: Do not add GLIB_CFLAGS to CFLAGS.
-
+
* docs/Makefile.am, examples/Makefile.am,
modules/arabic/Makefile.am, modules/basic/Makefile.am,
modules/hangul/Makefile.am, modules/hebrew/Makefile.am,
modules/indic/Makefile.am, modules/tamil/Makefile.am,
modules/thai/Makefile.am, pango/Makefile.am,
pango/mini-fribidi/Makefile.am, pango/opentype/Makefile.am:
- Instead add $(GLIB_CFLAGS) directly to INCLUDES (GTKDOC_CFLAGS
- for
+ Instead add $(GLIB_CFLAGS) directly to INCLUDES (GTKDOC_CFLAGS for
docs/Makefile.am). Also some cosmetic line wrapping and
reindentation.
Date: Mon Oct 14 22:50:48 2002 +0000
Get rid of unnecessary casts for g_object_{ref,unref}
-
+
Mon Oct 14 15:39:41 2002 Manish Singh <yosh@gimp.org>
-
+
* pango/pango-context.c pango/pango-layout.c pango/pangoft2.c
- pango/pangowin32-fontmap.c pango/pangowin32.c
- pango/pangox-fontmap.c
+ pango/pangowin32-fontmap.c pango/pangowin32.c pango/pangox-fontmap.c
pango/pangox.c pango/pangoxft-font.c pango/pangoxft-fontmap.c
pango/testfonts.c pango/opentype/pango-ot-ruleset.c:
Get rid of unnecessary casts for g_object_{ref,unref}
Date: Sun Sep 29 19:06:58 2002 +0000
ligatures can be also used in MarkBasePos lookups. (2001-03-17 Werner
-
+
Sun Sep 29 14:55:36 2002 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgpos.c: ligatures can be also used in
MarkBasePos lookups. (2001-03-17 Werner Lemberg)
Date: Sun Sep 29 19:05:01 2002 +0000
Start of merges from freetype1 of OpenType fixes.
-
+
Sun Sep 29 14:51:25 2002 Owen Taylor <otaylor@redhat.com>
-
+
Start of merges from freetype1 of OpenType fixes.
-
+
(2001-03-17 Werner Lemberg)
-
- * pango/opentype/ftxgdef.c pango/opentype/ftxgpos.c
- pango/opentype/ftxg\sub.c:
+
+ * pango/opentype/ftxgdef.c pango/opentype/ftxgpos.c pango/opentype/ftxg\sub.c:
More fixes for special marks.
src/ftxgdef.c | 13 ++++++++-----
Author: Tor Lillqvist <tml@iki.fi>
Date: Mon Sep 23 21:45:31 2002 +0000
- Remove. Not used. (A static library is built here. Exported entries
- are in
-
+ Remove. Not used. (A static library is built here. Exported entries are in
+
2002-09-24 Tor Lillqvist <tml@iki.fi>
-
- * pango/opentype/pango-ot.def: Remove. Not used. (A static
- library
+
+ * pango/opentype/pango-ot.def: Remove. Not used. (A static library
is built here. Exported entries are in ../pangoft2.def.)
-
- * pango/opentype/Makefile.am (EXTRA_DIST): Remove from
- here, too.
+
+ * pango/opentype/Makefile.am (EXTRA_DIST): Remove from here, too.
src/Makefile.am | 3 +--
src/pango-ot.def | 50 --------------------------------------------------
Date: Mon Sep 23 21:19:30 2002 +0000
pango/makefile.mingw.in pango/mini-fribidi/makefile.mingw Remove. Not
-
+
2002-09-23 Tor Lillqvist <tml@iki.fi>
-
+
* pango/makefile.mingw.in
* pango/mini-fribidi/makefile.mingw
* pango/opentype/makefile.mingw.in: Remove. Not maintained.
-
+
* pango/Makefile.am (EXTRA_DIST)
* pango/mini-fribidi/Makefile.am (EXTRA_DIST)
* pango/opentype/Makefile.am (EXTRA_DIST): Remove
makefile.mingw(.in) from here, too.
-
+
* configure.in (AC_OUTPUT): Don't try to output above removed
files.
Author: Owen Taylor <otaylor@redhat.com>
Date: Wed Aug 7 17:01:52 2002 +0000
- Offset to MarkAttachClassDef is offset to table, not offset to
- offset to
-
+ Offset to MarkAttachClassDef is offset to table, not offset to offset to
+
Wed Aug 7 12:32:39 2002 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgsub.c (TT_Load_GSUB_Table):
Offset to MarkAttachClassDef is offset to table,
not offset to offset to table.
-
+
* pango/opentype/ftxopen.c (Get_Device): Handle
NULL device tables which we represent with
d->DeltaValue == NULL.
Date: Tue Jun 4 00:20:51 2002 +0000
on Jun 3 18:56:09 2002 Owen Taylor <otaylor@redhat.com>
-
+
Xft2 and fontconfig conversion, based largely on a patch
from Keith Packard.
-
+
* configure.in acconfig.h: Add checks for fontconfig, switch
Xft checks to switch for Xft2 using pkg-config.
-
+
* pangoxft.pc.in pangoxft.pc.in
modules/{arabic,basic,hebrew,indic,tamil}/Makefile.am
pango/Makefile.am: Reflect new Xft/fontconfig dependencies.
-
+
* pango/pangoxft-private.h pango/pangoxft-fontmap.c
modules/arabic/arabic-xft.c modules/indic/indic-xft.c:
Switch over to using Xft2 and fontconfig.
-
- * pango/pangoft2.c pango/pangoft2-fontmap.c
- pango/pangoft2-private.h
+
+ * pango/pangoft2.c pango/pangoft2-fontmap.c pango/pangoft2-private.h
pango/pango/Makefile.am: Remove usage of mini-xft in
favor of fontconfig.
-
- * pango/pango-ot.h pango/opentype/pango-ot-info.c
- pango/pangoxft.h
+
+ * pango/pango-ot.h pango/opentype/pango-ot-info.c pango/pangoxft.h
modules/arabic/arabic-{xft,ft2}.c modules/indic/indic-xft.c:
Attach OpenType information directly to the FT_Face
structure using FT_Generic.
-
+
* modules/tamil/Makefile.am modules/tamil/tamil-xft.c
configure.in: Remove this module, no longer needed.
-
+
* pango/pangoxft-font.c (pango_xft_real_render): Coalesce
calls to Xft rendering functions.
Date: Fri May 10 18:44:47 2002 +0000
Fix acess outside of a loaded frame and some memory leaks on failure.
-
+
Fri May 10 14:41:27 2002 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgdef.c (TT_Load_GDEF_Table): Fix acess
outside of a loaded frame and some memory leaks
on failure.
Date: Tue May 7 20:39:14 2002 +0000
Add modules modules/indic/indic-xft.c, indic-ot.c, indic-ot.h,
-
+
Mon May 06 15:07:39 2002 Eric Mader <mader@jtcsv.com>
- * Add modules modules/indic/indic-xft.c, indic-ot.c,
- indic-ot.h, indic-ot-class-tables.c
-
- * pango/opentype/ftxgdef.c: Compute full offset for mark
- attachment class table
-
- * pango/opentype/ftxgpos.c: Only return TTO_Err_Not_Covered
- if nothing matches
-
+ * Add modules modules/indic/indic-xft.c, indic-ot.c, indic-ot.h, indic-ot-class-tables.c
+
+ * pango/opentype/ftxgdef.c: Compute full offset for mark attachment class table
+
+ * pango/opentype/ftxgpos.c: Only return TTO_Err_Not_Covered if nothing matches
+
* pango/opentype/pango-ot-ruleset.c: enable GPOS processing
src/ftxgdef.c | 10 ++++++++--
Date: Tue Apr 23 20:20:29 2002 +0000
Add compatibility defines for changes in FreeType 2.1.0.
-
+
Tue Apr 23 16:15:07 2002 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/fterrcompat.h: Add compatibility
defines for changes in FreeType 2.1.0.
Date: Fri Mar 15 06:46:05 2002 +0000
In Load_ChainContextSubst2, handle the case where an empty class
-
+
Fri Mar 15 01:35:56 2002 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgsub.c pango/opentype/ftxopen.c
pango/opentype/ftxopenf.h: In Load_ChainContextSubst2,
handle the case where an empty class definition
is represented by an offset of 0.
-
+
* pango/opentype/ftxgpos.c: Same for Load_ChainContextPos2.
-
+
* pango/opentype/{ftxopen.c,ftxgpos.c,ftxgsub.c,ftgdef.c}:
Fix pervasive bug where on cleanups on failure of loading
an array element, all array elements were freed, not
just the ones that had been succesfully loaded.
src/ftxgdef.c | 24 +++---
- src/ftxgpos.c | 259
- ++++++++++++++++++++++++++++++++++++---------------------
+ src/ftxgpos.c | 259 ++++++++++++++++++++++++++++++++++++---------------------
src/ftxgsub.c | 159 ++++++++++++++++++++---------------
src/ftxopen.c | 53 ++++++++----
src/ftxopenf.h | 2 +
Date: Fri Mar 15 04:22:14 2002 +0000
Uncomment GPOS parts.
-
+
Thu Mar 14 23:05:18 2002 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxopen.c: Uncomment GPOS parts.
-
+
* pango/opentype/disasm.c: Start adding some GPOS
dumping.
- src/disasm.c | 146
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/disasm.c | 146 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/ftxopen.c | 20 ++++----
2 files changed, 154 insertions(+), 12 deletions(-)
Date: Thu Dec 13 17:44:46 2001 +0000
Resuming aborted commit
-
-
+
+
Resuming aborted commit
src/Makefile.am | 1 +
Date: Tue Oct 30 22:09:20 2001 +0000
Remove declarations of unimplemented functions
-
- * docs/pango-sections.txt, pango/pango-ot.h: Remove
- declarations
- of unimplemented functions pango_ot_ruleset_set_glyph_loader
- and
+
+ * docs/pango-sections.txt, pango/pango-ot.h: Remove declarations
+ of unimplemented functions pango_ot_ruleset_set_glyph_loader and
pango_ot_ruleset_set_alternate_func and the related typedefs
PangoOTGlyphLoader and PangoOTAlternateFunc.
-
+
* pango/opentype/pango-ot-info.c,
pango/opentype/pango-ot-ruleset.c: Documentation updates.
- src/pango-ot-info.c | 76
- ++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/pango-ot-info.c | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++
src/pango-ot-ruleset.c | 27 ++++++++++++++++++
2 files changed, 103 insertions(+)
Author: Havoc Pennington <hp@redhat.com>
Date: Wed Sep 19 21:20:36 2001 +0000
- header to abstract the difference between FreeType 2.0.3 and 2.0.4
- error
-
+ header to abstract the difference between FreeType 2.0.3 and 2.0.4 error
+
2001-09-19 Havoc Pennington <hp@redhat.com>
-
- * pango/opentype/fterrcompat.h: header to abstract the
- difference
+
+ * pango/opentype/fterrcompat.h: header to abstract the difference
between FreeType 2.0.3 and 2.0.4 error codes, based on the
configure check.
-
- * configure.in: check for the tterrors.h header in FreeType
- 2.0.3,
+
+ * configure.in: check for the tterrors.h header in FreeType 2.0.3,
and define HAVE_FREETYPE_2_0_3 if we have it
src/Makefile.am | 1 +
Date: Tue Sep 18 20:05:20 2001 +0000
Up to 0.19.
-
+
Tue Sep 18 15:47:08 2001 Owen Taylor <otaylor@redhat.com>
-
+
* configure.in (PANGO_MINOR_VERSION): Up to 0.19.
-
+
* pango/pango-font.h pango/pango-fontmap.[ch] pango/fonts.c
- pango/pangoxft-fontmap.c pango/pangoft-fontmap.c
- pango/pango-context.[ch]
- pango/pangox-fontmap.c: Add new PangoFontFace and
- PangoFontFamily
- object types, and change the font listing API to list
- faces and
+ pango/pangoxft-fontmap.c pango/pangoft-fontmap.c pango/pango-context.[ch]
+ pango/pangox-fontmap.c: Add new PangoFontFace and PangoFontFamily
+ object types, and change the font listing API to list faces and
families, instead of face names and font descriptions.
-
+
* pango/pango-font.h pango/fonts.c: Make PangoFontDescription
an opaque heap-allocated structure, add accessors and
convenience functions.
-
- * pango/pango-font.h pango/pango-private.h: Make
- PangoFontMetrics
+
+ * pango/pango-font.h pango/pango-private.h: Make PangoFontMetrics
heap allocated, protect the structure definition with
#ifdef PANGO_ENABLE_BACKEND, and add getters for the fields.
-
+
* pango/pango-attributes.[ch] ( pango_attr_iterator_get_font):
instead of providing a base font description and one to fill
in, provide a single font description to modify based on
the attributes.
-
+
* pango/pango-attributes.[ch]: Fix PangoAttrFontDesc to have
a PangoFontDescription by reference, not by value.
-
+
* pango/pango-utils.[ch]: make pango_parse_style() and friends
take pointers to individual enumerations instead of to a
PangoFontDescription structure.
-
- * pango/*.c: Fix for the PangoFontDescription and
- PangoFontMetrics
+
+ * pango/*.c: Fix for the PangoFontDescription and PangoFontMetrics
changes.
-
+
* pango/pango-{break,engine,indic,ot,xft}.h pango/Makefile.am
pango/opentype/Makefile.am: Protect portions with
PANGO_ENABLE_ENGINE to shrink the public API.
-
+
* modules/*/Makefile.am: -DPANGO_ENABLE_ENGINE.
-
- * pango/{pangox.h,pangox-private.h} modules/basic/basic-x.c:
- Move
- pango_x_font_get_unknown_glyph() into public header since
- it is
+
+ * pango/{pangox.h,pangox-private.h} modules/basic/basic-x.c: Move
+ pango_x_font_get_unknown_glyph() into public header since it is
used from modules.
-
- * pango/pango-{context,font,fontmap,modules.utils}.h
- pango/Makefile.am:
- Protect portions with PANGO_ENABLE_BACKEND to shrink the
- public API.
-
+
+ * pango/pango-{context,font,fontmap,modules.utils}.h pango/Makefile.am:
+ Protect portions with PANGO_ENABLE_BACKEND to shrink the public API.
+
* pango/*.h: Use G_BEGIN/END_DECLS
-
- * examples/viewer-qt.[cc,h]: Fix for changes to font
- listing API,
+
+ * examples/viewer-qt.[cc,h]: Fix for changes to font listing API,
PangoFontDescription.
-
+
* pango/pango-indic.h modules/indic/*: Since we install this
header fix it up to Pango conventions, namespece
ZERO_WIDTH_JOINER, ZERO_WIDTH_NON_JOINER.
-
+
* docs/pango-sections.txt: Updated.
src/Makefile.am | 1 +
Date: Thu Jul 12 16:34:40 2001 +0000
Remove stray semicolon.
-
- * modules/arabic/arabic-x.c: (arabic_engine_shape): Remove
- stray
+
+ * modules/arabic/arabic-x.c: (arabic_engine_shape): Remove stray
semicolon.
-
+
* modules/arabic/arconv.h:
- * modules/arabic/arconv.c: (shape), (doublelig),
- (arabic_reshape):
- Use long* instead of int* for parameter to match what's
- passed in.
-
+ * modules/arabic/arconv.c: (shape), (doublelig), (arabic_reshape):
+ Use long* instead of int* for parameter to match what's passed in.
+
* modules/indic/bengali-x.c: Add missing <string.h> include.
- (pango_indic_make_ligs): Use local variable that was added
- but not
+ (pango_indic_make_ligs): Use local variable that was added but not
ever used.
(pango_indic_engine_shape): Remove unused locals.
-
- * modules/indic/devanagari-x.c: Add missing <string.h>
- include.
+
+ * modules/indic/devanagari-x.c: Add missing <string.h> include.
(pango_indic_engine_shape): Remove unused local.
-
+
* modules/indic/gujarati-x.c: Add missing <string.h> include.
(pango_indic_engine_shape): Remove unused local
-
+
* modules/tamil/tamil-x.c: (tamil_engine_shape): Initialize a
variable to quiet the compiler's unused warning.
-
+
* pango/.cvsignore: Ignore more generated files.
-
- * pango/opentype/ftxgpos.c: (Get_Anchor): Add code to set
- up the
- ap variable. The old code would just use the uninitialized
- value.
-
- * pango/opentype/ftxopen.c: (Load_Coverage): Remove unused
- local.
-
+
+ * pango/opentype/ftxgpos.c: (Get_Anchor): Add code to set up the
+ ap variable. The old code would just use the uninitialized value.
+
+ * pango/opentype/ftxopen.c: (Load_Coverage): Remove unused local.
+
* pango/opentype/pango-ot-ruleset.c: (pango_ot_ruleset_shape):
Remove unused local.
-
+
* pango/pango-attributes.c: (pango_attr_list_get_type),
(pango_color_get_type): Add needed function type casts (just
warnings under gcc, but could be errors in other compilers).
-
+
* pango/pangoxft-font.c: (pango_xft_font_get_metrics),
(pango_xft_font_get_coverage), (pango_xft_get_shaper_map),
(pango_xft_font_find_shaper): Switch from lang char* to
- PangoLanguage*. The code was still compiling, but would
- not have
+ PangoLanguage*. The code was still compiling, but would not have
worked.
src/ftxgpos.c | 2 ++
Date: Fri May 18 16:04:40 2001 +0000
Use ISO C99 varargs when available.
-
+
Fri May 18 11:30:57 2001 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/disasm.c: Use ISO C99 varargs when
available.
-
+
Thu May 17 11:16:23 2001 Owen Taylor <otaylor@redhat.com>
-
+
* pango/mapping.c: Fixup docs, remove some FIXMEs that are
no longer applicable.
-
+
* pango/pango-layout.c: Move by graphemes, not characters.
-
+
* pango/pango-layout.c (pango_layout_line_x_to_index):
Position at the closest grapheme boundary, not at character
boundaries.
-
+
* pango/pango-layout.c (pango_layout_line_index_to_x):
Return positions of grapheme boundaries, not character
boundaries.
Date: Tue Apr 24 15:47:22 2001 +0000
Remove excess call to DONE_Stream left over from conversion from FT1.
-
+
Tue Apr 24 11:45:55 2001 Owen Taylor <otaylor@redhat.com>
-
+
* pango/opentype/ftxgdef.c (TT_Load_GDEF_Table): Remove
excess call to DONE_Stream left over from conversion
from FT1. (reported by Michael Jansson)
Date: Tue Apr 3 19:07:36 2001 +0000
Release 0.14
-
+
Tue Apr 3 15:05:19 2001 Owen Taylor <otaylor@redhat.com>
-
+
* Release 0.14
-
+
* NEWS: updated.
-
+
* pango/pango/opentype/Makefile.am: make dist fixes.
-
+
* configure.in (PANGO_MINOR_VERSION): Up to 0.14
src/Makefile.am | 10 ++++++++--
Date: Thu Dec 21 19:55:23 2000 +0000
Only a script engine here.
-
+
2000-12-21 Tor Lillqvist <tml@iki.fi>
-
- * modules/basic/basic-win32.c (script_engine_load): Only
- a script
+
+ * modules/basic/basic-win32.c (script_engine_load): Only a script
engine here.
-
- * pango/makefile.mingw.in: Add the built
- pango-enum-types.[ch].
-
+
+ * pango/makefile.mingw.in: Add the built pango-enum-types.[ch].
+
* pango/pango.def
* pango/pangoft2.def: Update.
-
+
* pango/opentype/pango-ot.def
* pango/opentype/makefile.mingw.in: New files.
-
+
* pango/opentype/Makefile.am (EXTRA_DIST): Add them.
-
+
* configure.in (included_modules): Generate
pango/opentype/makefile.mingw.
src/Makefile.am | 4 +++-
src/makefile.mingw.in | 43 +++++++++++++++++++++++++++++++++++++++++++
- src/pango-ot.def | 50
- ++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/pango-ot.def | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 96 insertions(+), 1 deletion(-)
commit 80a15829135065e16ce5b129c715d10d14b829ba
Author: Owen Taylor <otaylor@redhat.com>
Date: Wed Dec 20 04:41:36 2000 +0000
- Since Xft may only be available statically without shlib deps,
- check for
-
+ Since Xft may only be available statically without shlib deps, check for
+
Tue Dec 19 22:47:16 2000 Owen Taylor <otaylor@redhat.com>
-
+
* configure.in pango-config.in pangoxft.pc.in
modules/basic/Makefile.am: Since Xft may only be available
- statically without shlib deps, check for FreeType libs
- explicitly
- and include them when linking, otherwise things won't
- work. Also,
+ statically without shlib deps, check for FreeType libs explicitly
+ and include them when linking, otherwise things won't work. Also,
define FREETYPE_CFLAGS from freetype-config --cflags.
-
+
* modules/basic/basic-xft.c pango/pangoxft-font{,map}.c: Fool
Xft into not converting glyph indices by loading the
face unencoded then calling FT_Set_Charmap ourselves.
-
- * pango/Makefile.am pango/pango-ot.h pango/opentype/*
- :Add start
- of opentype handling - most of the actually meat of the
- code here
- is the OpenType layout code from FreeType 1 ported to
- freetype2
+
+ * pango/Makefile.am pango/pango-ot.h pango/opentype/* :Add start
+ of opentype handling - most of the actually meat of the code here
+ is the OpenType layout code from FreeType 1 ported to freetype2
and adapted slighlty for our purposes. Also, includes a
incomplete OpenType-table-dumping code useful for figuring
out what is going on.
-
+
* pango/pangoxft.h pango/pangoxft-font.h: Add calls for
getting FT_Face and PangoOTInfo from PangoXftFont.
-
+
* modules/arabic/{Makefile.am,arabic-ot.[ch],arabic-xft.c}:
Initial support for rendering Arabic with OpenType fonts.
src/disasm.h | 26 +
src/ftxgdef.c | 1155 +++++++++
src/ftxgdef.h | 220 ++
- src/ftxgpos.c | 6222
- ++++++++++++++++++++++++++++++++++++++++++++++++
+ src/ftxgpos.c | 6222 ++++++++++++++++++++++++++++++++++++++++++++++++
src/ftxgpos.h | 858 +++++++
src/ftxgsub.c | 4531 +++++++++++++++++++++++++++++++++++
src/ftxgsub.h | 612 +++++
$(srcdir)/ChangeLog:
$(AM_V_GEN) if test -d "$(top_srcdir)/.git"; then \
(GIT_DIR=$(top_srcdir)/.git \
- $(GIT) log $(CHANGELOG_RANGE) --stat) | fmt --split-only > $@.tmp \
+ $(GIT) log $(CHANGELOG_RANGE) --stat) > $@.tmp \
&& mv -f $@.tmp "$(srcdir)/ChangeLog" \
|| ($(RM) $@.tmp; \
echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- cscope distdir dist dist-all distcheck
+ cscope distdir distdir-am dist dist-all distcheck
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
$(LISP)config.h.in
# Read a list of newline-separated strings from the standard input,
DIST_SUBDIRS = $(SUBDIRS)
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in AUTHORS \
COPYING ChangeLog INSTALL NEWS README THANKS TODO ar-lib \
- compile config.guess config.sub depcomp install-sh ltmain.sh \
- missing
+ compile config.guess config.sub install-sh ltmain.sh missing
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@case `sed 15q $(srcdir)/NEWS` in \
*"$(VERSION)"*) : ;; \
*) \
$(srcdir)/ChangeLog:
$(AM_V_GEN) if test -d "$(top_srcdir)/.git"; then \
(GIT_DIR=$(top_srcdir)/.git \
- $(GIT) log $(CHANGELOG_RANGE) --stat) | fmt --split-only > $@.tmp \
+ $(GIT) log $(CHANGELOG_RANGE) --stat) > $@.tmp \
&& mv -f $@.tmp "$(srcdir)/ChangeLog" \
|| ($(RM) $@.tmp; \
echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \
+Overview of changes leading to 2.4.0
+Monday, March 25, 2019
+====================================
+- Unicode 12.
+- Misc fixes.
+- Subsetter improvements.
+- New API:
+HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE
+hb_directwrite_face_create()
+
+
Overview of changes leading to 2.3.1
Wednesday, January 30, 2019
====================================
-# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
_GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
])
-dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
-dnl serial 11 (pkg-config-0.29)
-dnl
+# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
+# serial 11 (pkg-config-0.29.1)
+
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
dnl
dnl See the "Since" comment for each macro you use to see what version
dnl of the macros you require.
m4_defun([PKG_PREREQ],
-[m4_define([PKG_MACROS_VERSION], [0.29])
+[m4_define([PKG_MACROS_VERSION], [0.29.1])
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
])dnl PKG_PREREQ
AS_VAR_IF([$1], [""], [$5], [$4])dnl
])dnl PKG_CHECK_VAR
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
+dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
+dnl [DESCRIPTION], [DEFAULT])
+dnl ------------------------------------------
+dnl
+dnl Prepare a "--with-" configure option using the lowercase
+dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and
+dnl PKG_CHECK_MODULES in a single macro.
+AC_DEFUN([PKG_WITH_MODULES],
+[
+m4_pushdef([with_arg], m4_tolower([$1]))
+
+m4_pushdef([description],
+ [m4_default([$5], [build with ]with_arg[ support])])
+
+m4_pushdef([def_arg], [m4_default([$6], [auto])])
+m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes])
+m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no])
+
+m4_case(def_arg,
+ [yes],[m4_pushdef([with_without], [--without-]with_arg)],
+ [m4_pushdef([with_without],[--with-]with_arg)])
+
+AC_ARG_WITH(with_arg,
+ AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),,
+ [AS_TR_SH([with_]with_arg)=def_arg])
+
+AS_CASE([$AS_TR_SH([with_]with_arg)],
+ [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)],
+ [auto],[PKG_CHECK_MODULES([$1],[$2],
+ [m4_n([def_action_if_found]) $3],
+ [m4_n([def_action_if_not_found]) $4])])
+
+m4_popdef([with_arg])
+m4_popdef([description])
+m4_popdef([def_arg])
+
+])dnl PKG_WITH_MODULES
+
+dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl [DESCRIPTION], [DEFAULT])
+dnl -----------------------------------------------
+dnl
+dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES
+dnl check._[VARIABLE-PREFIX] is exported as make variable.
+AC_DEFUN([PKG_HAVE_WITH_MODULES],
+[
+PKG_WITH_MODULES([$1],[$2],,,[$3],[$4])
+
+AM_CONDITIONAL([HAVE_][$1],
+ [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
+])dnl PKG_HAVE_WITH_MODULES
+
+dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl [DESCRIPTION], [DEFAULT])
+dnl ------------------------------------------------------
+dnl
+dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after
+dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make
+dnl and preprocessor variable.
+AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES],
+[
+PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4])
+
+AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
+ [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
+])dnl PKG_HAVE_DEFINE_WITH_MODULES
+
+# Copyright (C) 2002-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.15'
+[am__api_version='1.16'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.15.1], [],
+m4_if([$1], [1.16.1], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.15.1])dnl
+[AM_AUTOMAKE_VERSION([1.16.1])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+# Copyright (C) 1997-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Generate code to set up dependency tracking. -*- Autoconf -*-
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-
# _AM_OUTPUT_DEPENDENCY_COMMANDS
# ------------------------------
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
# Older Autoconf quotes --file arguments for eval, but not when files
# are listed without --file. Let's play safe and only enable the eval
# if we detect the quoting.
- case $CONFIG_FILES in
- *\'*) eval set x "$CONFIG_FILES" ;;
- *) set x $CONFIG_FILES ;;
- esac
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ AS_CASE([$CONFIG_FILES],
+ [*\'*], [eval set x "$CONFIG_FILES"],
+ [*], [set x $CONFIG_FILES])
shift
- for mf
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
do
# Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named 'Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
+ am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
# limit of 2048, but all sed's we know have understand at least 4000.
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
- dirpart=`AS_DIRNAME("$mf")`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running 'make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "$am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`AS_DIRNAME(["$file"])`
- AS_MKDIR_P([$dirpart/$fdir])
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`AS_DIRNAME(["$am_mf"])`
+ am_filepart=`AS_BASENAME(["$am_mf"])`
+ AM_RUN_LOG([cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles]) || am_rc=$?
done
+ if test $am_rc -ne 0; then
+ AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. Try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).])
+ fi
+ AS_UNSET([am_dirpart])
+ AS_UNSET([am_filepart])
+ AS_UNSET([am_mf])
+ AS_UNSET([am_rc])
+ rm -f conftest-deps.mk
}
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
# -----------------------------
# This macro should only be invoked once -- use via AC_REQUIRE.
#
-# This code is only required when automatic dependency tracking
-# is enabled. FIXME. This creates each '.P' file that we will
-# need in order to bootstrap the dependency handling code.
+# This code is only required when automatic dependency tracking is enabled.
+# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
+# order to bootstrap the dependency handling code.
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
[AC_CONFIG_COMMANDS([depfiles],
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
- [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
+ [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
# For better backward compatibility. To be removed once Automake 1.9.x
# dies out for good. For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
# We need awk for the "check" target (and possibly the TAP driver). The
# system "awk" is bad on some platforms.
Aborting the configuration process, to ensure you take notice of the issue.
You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
If you want to complete the configuration process using your problematic
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
fi
AC_SUBST([install_sh])])
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Check to see how 'make' treats includes. -*- Autoconf -*-
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# AM_MAKE_INCLUDE()
# -----------------
-# Check to see how make treats includes.
+# Check whether make has an 'include' directive that can support all
+# the idioms we need for our automatic dependency tracking code.
AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
+[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
+cat > confinc.mk << 'END'
am__doit:
- @echo this is the am__doit target
+ @echo this is the am__doit target >confinc.out
.PHONY: am__doit
END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
am__include="#"
am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
- am__include=include
- am__quote=
- _am_result=GNU
- ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- case `$am_make -s -f confmf 2> /dev/null` in #(
- *the\ am__doit\ target*)
- am__include=.include
- am__quote="\""
- _am_result=BSD
- ;;
- esac
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
+ AS_CASE([$?:`cat confinc.out 2>/dev/null`],
+ ['0:this is the am__doit target'],
+ [AS_CASE([$s],
+ [BSD], [am__include='.include' am__quote='"'],
+ [am__include='include' am__quote=''])])
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+AC_MSG_RESULT([${_am_result}])
+AC_SUBST([am__include])])
+AC_SUBST([am__quote])])
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+# Copyright (C) 1997-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
rm -f conftest.file
])
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006-2017 Free Software Foundation, Inc.
+# Copyright (C) 2006-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004-2017 Free Software Foundation, Inc.
+# Copyright (C) 2004-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
me=ar-lib
scriptversion=2012-03-01.08; # UTC
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
# Written by Peter Rosin <peda@lysator.liu.se>.
#
# This program is free software; you can redistribute it and/or modify
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
-scriptversion=2012-10-14.11; # UTC
+scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
echo "compile $scriptversion"
exit $?
;;
- cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
+ icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
func_cl_wrapper "$@" # Doesn't return...
;;
esac
# Local Variables:
# mode: shell-script
# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
-timestamp='2017-11-07'
+timestamp='2018-03-08'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2017 Free Software Foundation, Inc.
+Copyright 1992-2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
dummy=$tmp/dummy ;
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int x;" > $dummy.c ;
+ ,,) echo "int x;" > "$dummy.c" ;
for c in cc gcc c89 c99 ; do
- if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
CC_FOR_BUILD="$c"; break ;
fi ;
done ;
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-case "${UNAME_SYSTEM}" in
+case "$UNAME_SYSTEM" in
Linux|GNU|GNU/*)
# If the system lacks a compiler, then just pick glibc.
# We could probably try harder.
LIBC=gnu
- eval $set_cc_for_build
- cat <<-EOF > $dummy.c
+ eval "$set_cc_for_build"
+ cat <<-EOF > "$dummy.c"
#include <features.h>
#if defined(__UCLIBC__)
LIBC=uclibc
LIBC=gnu
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
+
+ # If ldd exists, use it to detect musl libc.
+ if command -v ldd >/dev/null && \
+ ldd --version 2>&1 | grep -q ^musl
+ then
+ LIBC=musl
+ fi
;;
esac
# Note: order is significant - the case branches are not exclusive.
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
- /sbin/$sysctl 2>/dev/null || \
- /usr/sbin/$sysctl 2>/dev/null || \
+ "/sbin/$sysctl" 2>/dev/null || \
+ "/usr/sbin/$sysctl" 2>/dev/null || \
echo unknown)`
- case "${UNAME_MACHINE_ARCH}" in
+ case "$UNAME_MACHINE_ARCH" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
earmv*)
- arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
- endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
- machine=${arch}${endian}-unknown
+ arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+ endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
+ machine="${arch}${endian}"-unknown
;;
- *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently (or will in the future) and ABI.
- case "${UNAME_MACHINE_ARCH}" in
+ case "$UNAME_MACHINE_ARCH" in
earm*)
os=netbsdelf
;;
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- eval $set_cc_for_build
+ eval "$set_cc_for_build"
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
then
;;
esac
# Determine ABI tags.
- case "${UNAME_MACHINE_ARCH}" in
+ case "$UNAME_MACHINE_ARCH" in
earm*)
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
- abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
+ abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
;;
esac
# The OS release
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
- case "${UNAME_VERSION}" in
+ case "$UNAME_VERSION" in
Debian*)
release='-gnu'
;;
*)
- release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
+ release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}${abi}"
+ echo "$machine-${os}${release}${abi}"
exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+ echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
exit ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
exit ;;
*:LibertyBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
exit ;;
*:MidnightBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-midnightbsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
exit ;;
*:ekkoBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
exit ;;
*:SolidBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
exit ;;
macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+ echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
exit ;;
*:MirBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
exit ;;
*:Sortix:*:*)
- echo ${UNAME_MACHINE}-unknown-sortix
+ echo "$UNAME_MACHINE"-unknown-sortix
exit ;;
*:Redox:*:*)
- echo ${UNAME_MACHINE}-unknown-redox
+ echo "$UNAME_MACHINE"-unknown-redox
exit ;;
+ mips:OSF1:*.*)
+ echo mips-dec-osf1
+ exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+ echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
exitcode=$?
trap '' 0
echo m68k-unknown-sysv4
exit ;;
*:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
+ echo "$UNAME_MACHINE"-unknown-amigaos
exit ;;
*:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
+ echo "$UNAME_MACHINE"-unknown-morphos
exit ;;
*:OS/390:*:*)
echo i370-ibm-openedition
echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
+ echo arm-acorn-riscix"$UNAME_RELEASE"
exit ;;
arm*:riscos:*:*|arm*:RISCOS:*:*)
echo arm-unknown-riscos
sparc) echo sparc-icl-nx7; exit ;;
esac ;;
s390x:SunOS:*:*)
- echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
exit ;;
sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
exit ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
- echo i386-pc-auroraux${UNAME_RELEASE}
+ echo i386-pc-auroraux"$UNAME_RELEASE"
exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- eval $set_cc_for_build
+ eval "$set_cc_for_build"
SUN_ARCH=i386
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
SUN_ARCH=x86_64
fi
fi
- echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
exit ;;
sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
+ echo m68k-sun-sunos"$UNAME_RELEASE"
exit ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
+ test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
case "`/bin/arch`" in
sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
+ echo m68k-sun-sunos"$UNAME_RELEASE"
;;
sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
+ echo sparc-sun-sunos"$UNAME_RELEASE"
;;
esac
exit ;;
aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
+ echo sparc-auspex-sunos"$UNAME_RELEASE"
exit ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint"$UNAME_RELEASE"
exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint"$UNAME_RELEASE"
exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint"$UNAME_RELEASE"
exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
+ echo m68k-milan-mint"$UNAME_RELEASE"
exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
+ echo m68k-hades-mint"$UNAME_RELEASE"
exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
+ echo m68k-unknown-mint"$UNAME_RELEASE"
exit ;;
m68k:machten:*:*)
- echo m68k-apple-machten${UNAME_RELEASE}
+ echo m68k-apple-machten"$UNAME_RELEASE"
exit ;;
powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
+ echo powerpc-apple-machten"$UNAME_RELEASE"
exit ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
exit ;;
RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
+ echo mips-dec-ultrix"$UNAME_RELEASE"
exit ;;
VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
+ echo vax-dec-ultrix"$UNAME_RELEASE"
exit ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
+ echo clipper-intergraph-clix"$UNAME_RELEASE"
exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ eval "$set_cc_for_build"
+ sed 's/^ //' << EOF > "$dummy.c"
#ifdef __cplusplus
#include <stdio.h> /* for printf() prototype */
int main (int argc, char *argv[]) {
exit (-1);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c &&
- dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
- SYSTEM_NAME=`$dummy $dummyarg` &&
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
+ dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
{ echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos${UNAME_RELEASE}
+ echo mips-mips-riscos"$UNAME_RELEASE"
exit ;;
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
+ if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
+ [ "$TARGET_BINARY_INTERFACE"x = x ]
then
- echo m88k-dg-dgux${UNAME_RELEASE}
+ echo m88k-dg-dgux"$UNAME_RELEASE"
else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ echo m88k-dg-dguxbcs"$UNAME_RELEASE"
fi
else
- echo i586-dg-dgux${UNAME_RELEASE}
+ echo i586-dg-dgux"$UNAME_RELEASE"
fi
exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m68k-tektronix-bsd
exit ;;
*:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
exit ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
fi
- echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ eval "$set_cc_for_build"
+ sed 's/^ //' << EOF > "$dummy.c"
#include <sys/systemcfg.h>
main()
exit(0);
}
EOF
- if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
then
echo "$SYSTEM_NAME"
else
exit ;;
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
exit ;;
*:AIX:*:*)
echo rs6000-ibm-aix
echo romp-ibm-bsd4.4
exit ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to
exit ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
echo m68k-hp-bsd4.4
exit ;;
9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- case "${UNAME_MACHINE}" in
+ HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+ case "$UNAME_MACHINE" in
9000/31?) HP_ARCH=m68000 ;;
9000/[34]??) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
+ case "$sc_cpu_version" in
523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
+ case "$sc_kernel_bits" in
32) HP_ARCH=hppa2.0n ;;
64) HP_ARCH=hppa2.0w ;;
'') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
esac ;;
esac
fi
- if [ "${HP_ARCH}" = "" ]; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ if [ "$HP_ARCH" = "" ]; then
+ eval "$set_cc_for_build"
+ sed 's/^ //' << EOF > "$dummy.c"
#define _HPUX_SOURCE
#include <stdlib.h>
exit (0);
}
EOF
- (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
- if [ ${HP_ARCH} = hppa2.0w ]
+ if [ "$HP_ARCH" = hppa2.0w ]
then
- eval $set_cc_for_build
+ eval "$set_cc_for_build"
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
HP_ARCH=hppa64
fi
fi
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
exit ;;
ia64:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux${HPUX_REV}
+ HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux"$HPUX_REV"
exit ;;
3050*:HI-UX:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ eval "$set_cc_for_build"
+ sed 's/^ //' << EOF > "$dummy.c"
#include <unistd.h>
int
main ()
exit (0);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
{ echo "$SYSTEM_NAME"; exit; }
echo unknown-hitachi-hiuxwe2
exit ;;
exit ;;
i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
+ echo "$UNAME_MACHINE"-unknown-osf1mk
else
- echo ${UNAME_MACHINE}-unknown-osf1
+ echo "$UNAME_MACHINE"-unknown-osf1
fi
exit ;;
parisc*:Lites*:*:*)
echo c4-convex-bsd
exit ;;
CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
*:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
+ FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
exit ;;
sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
+ echo sparc-unknown-bsdi"$UNAME_RELEASE"
exit ;;
*:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
exit ;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`/usr/bin/uname -p`
- case ${UNAME_PROCESSOR} in
+ case "$UNAME_PROCESSOR" in
amd64)
UNAME_PROCESSOR=x86_64 ;;
i386)
UNAME_PROCESSOR=i586 ;;
esac
- echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
exit ;;
i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
+ echo "$UNAME_MACHINE"-pc-cygwin
exit ;;
*:MINGW64*:*)
- echo ${UNAME_MACHINE}-pc-mingw64
+ echo "$UNAME_MACHINE"-pc-mingw64
exit ;;
*:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
+ echo "$UNAME_MACHINE"-pc-mingw32
exit ;;
*:MSYS*:*)
- echo ${UNAME_MACHINE}-pc-msys
+ echo "$UNAME_MACHINE"-pc-msys
exit ;;
i*:PW*:*)
- echo ${UNAME_MACHINE}-pc-pw32
+ echo "$UNAME_MACHINE"-pc-pw32
exit ;;
*:Interix*:*)
- case ${UNAME_MACHINE} in
+ case "$UNAME_MACHINE" in
x86)
- echo i586-pc-interix${UNAME_RELEASE}
+ echo i586-pc-interix"$UNAME_RELEASE"
exit ;;
authenticamd | genuineintel | EM64T)
- echo x86_64-unknown-interix${UNAME_RELEASE}
+ echo x86_64-unknown-interix"$UNAME_RELEASE"
exit ;;
IA64)
- echo ia64-unknown-interix${UNAME_RELEASE}
+ echo ia64-unknown-interix"$UNAME_RELEASE"
exit ;;
esac ;;
i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
+ echo "$UNAME_MACHINE"-pc-uwin
exit ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
echo x86_64-unknown-cygwin
exit ;;
prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
*:GNU:*:*)
# the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+ echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
exit ;;
i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
+ echo "$UNAME_MACHINE"-pc-minix
exit ;;
aarch64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
arc:Linux:*:* | arceb:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
arm*:Linux:*:*)
- eval $set_cc_for_build
+ eval "$set_cc_for_build"
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
else
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
fi
fi
exit ;;
avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
cris:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
exit ;;
crisv32:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
exit ;;
e2k:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
frv:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
hexagon:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
i*86:Linux:*:*)
- echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+ echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
exit ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
k1om:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ eval "$set_cc_for_build"
+ sed 's/^ //' << EOF > "$dummy.c"
#undef CPU
#undef ${UNAME_MACHINE}
#undef ${UNAME_MACHINE}el
#endif
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+ eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
+ test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
;;
mips64el:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
openrisc*:Linux:*:*)
- echo or1k-unknown-linux-${LIBC}
+ echo or1k-unknown-linux-"$LIBC"
exit ;;
or32:Linux:*:* | or1k*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
padre:Linux:*:*)
- echo sparc-unknown-linux-${LIBC}
+ echo sparc-unknown-linux-"$LIBC"
exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-${LIBC}
+ echo hppa64-unknown-linux-"$LIBC"
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
- PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
- *) echo hppa-unknown-linux-${LIBC} ;;
+ PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
+ PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
+ *) echo hppa-unknown-linux-"$LIBC" ;;
esac
exit ;;
ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-${LIBC}
+ echo powerpc64-unknown-linux-"$LIBC"
exit ;;
ppc:Linux:*:*)
- echo powerpc-unknown-linux-${LIBC}
+ echo powerpc-unknown-linux-"$LIBC"
exit ;;
ppc64le:Linux:*:*)
- echo powerpc64le-unknown-linux-${LIBC}
+ echo powerpc64le-unknown-linux-"$LIBC"
exit ;;
ppcle:Linux:*:*)
- echo powerpcle-unknown-linux-${LIBC}
+ echo powerpcle-unknown-linux-"$LIBC"
exit ;;
riscv32:Linux:*:* | riscv64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+ echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
exit ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
tile*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+ echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
exit ;;
x86_64:Linux:*:*)
- echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+ echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
exit ;;
xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
exit ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
- echo ${UNAME_MACHINE}-pc-os2-emx
+ echo "$UNAME_MACHINE"-pc-os2-emx
exit ;;
i*86:XTS-300:*:STOP)
- echo ${UNAME_MACHINE}-unknown-stop
+ echo "$UNAME_MACHINE"-unknown-stop
exit ;;
i*86:atheos:*:*)
- echo ${UNAME_MACHINE}-unknown-atheos
+ echo "$UNAME_MACHINE"-unknown-atheos
exit ;;
i*86:syllable:*:*)
- echo ${UNAME_MACHINE}-pc-syllable
+ echo "$UNAME_MACHINE"-pc-syllable
exit ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
+ echo i386-unknown-lynxos"$UNAME_RELEASE"
exit ;;
i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ echo "$UNAME_MACHINE"-pc-msdosdjgpp
exit ;;
i*86:*:4.*:*)
- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
fi
exit ;;
i*86:*:5:[678]*)
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
exit ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
else
- echo ${UNAME_MACHINE}-pc-sysv32
+ echo "$UNAME_MACHINE"-pc-sysv32
fi
exit ;;
pc:*:*:*)
exit ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4
fi
exit ;;
mini*:CTIX:SYS*5:*)
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
+ echo m68k-unknown-lynxos"$UNAME_RELEASE"
exit ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
exit ;;
TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
+ echo sparc-unknown-lynxos"$UNAME_RELEASE"
exit ;;
rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ echo rs6000-unknown-lynxos"$UNAME_RELEASE"
exit ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ echo powerpc-unknown-lynxos"$UNAME_RELEASE"
exit ;;
SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
+ echo mips-dde-sysv"$UNAME_RELEASE"
exit ;;
RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
+ echo "$UNAME_MACHINE"-sni-sysv4
else
echo ns32k-sni-sysv
fi
exit ;;
i*86:VOS:*:*)
# From Paul.Green@stratus.com.
- echo ${UNAME_MACHINE}-stratus-vos
+ echo "$UNAME_MACHINE"-stratus-vos
exit ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
echo hppa1.1-stratus-vos
exit ;;
mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
+ echo m68k-apple-aux"$UNAME_RELEASE"
exit ;;
news*:NEWS-OS:6*:*)
echo mips-sony-newsos6
exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
+ echo mips-nec-sysv"$UNAME_RELEASE"
else
- echo mips-unknown-sysv${UNAME_RELEASE}
+ echo mips-unknown-sysv"$UNAME_RELEASE"
fi
exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo x86_64-unknown-haiku
exit ;;
SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
+ echo sx4-nec-superux"$UNAME_RELEASE"
exit ;;
SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
+ echo sx5-nec-superux"$UNAME_RELEASE"
exit ;;
SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux${UNAME_RELEASE}
+ echo sx6-nec-superux"$UNAME_RELEASE"
exit ;;
SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux${UNAME_RELEASE}
+ echo sx7-nec-superux"$UNAME_RELEASE"
exit ;;
SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux${UNAME_RELEASE}
+ echo sx8-nec-superux"$UNAME_RELEASE"
exit ;;
SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux${UNAME_RELEASE}
+ echo sx8r-nec-superux"$UNAME_RELEASE"
exit ;;
SX-ACE:SUPER-UX:*:*)
- echo sxace-nec-superux${UNAME_RELEASE}
+ echo sxace-nec-superux"$UNAME_RELEASE"
exit ;;
Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ echo powerpc-apple-rhapsody"$UNAME_RELEASE"
exit ;;
*:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- eval $set_cc_for_build
+ eval "$set_cc_for_build"
if test "$UNAME_PROCESSOR" = unknown ; then
UNAME_PROCESSOR=powerpc
fi
- if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+ if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
# that Apple uses in portable devices.
UNAME_PROCESSOR=x86_64
fi
- echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
exit ;;
*:QNX:*:4*)
echo i386-pc-qnx
exit ;;
NEO-*:NONSTOP_KERNEL:*:*)
- echo neo-tandem-nsk${UNAME_RELEASE}
+ echo neo-tandem-nsk"$UNAME_RELEASE"
exit ;;
NSE-*:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk${UNAME_RELEASE}
+ echo nse-tandem-nsk"$UNAME_RELEASE"
exit ;;
NSR-*:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${UNAME_RELEASE}
+ echo nsr-tandem-nsk"$UNAME_RELEASE"
+ exit ;;
+ NSV-*:NONSTOP_KERNEL:*:*)
+ echo nsv-tandem-nsk"$UNAME_RELEASE"
exit ;;
NSX-*:NONSTOP_KERNEL:*:*)
- echo nsx-tandem-nsk${UNAME_RELEASE}
+ echo nsx-tandem-nsk"$UNAME_RELEASE"
exit ;;
*:NonStop-UX:*:*)
echo mips-compaq-nonstopux
echo bs2000-siemens-sysv
exit ;;
DS/*:UNIX_System_V:*:*)
- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
exit ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
else
UNAME_MACHINE="$cputype"
fi
- echo ${UNAME_MACHINE}-unknown-plan9
+ echo "$UNAME_MACHINE"-unknown-plan9
exit ;;
*:TOPS-10:*:*)
echo pdp10-unknown-tops10
echo pdp10-unknown-its
exit ;;
SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
+ echo mips-sei-seiux"$UNAME_RELEASE"
exit ;;
*:DragonFly:*:*)
- echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
exit ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "${UNAME_MACHINE}" in
+ case "$UNAME_MACHINE" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;
V*) echo vax-dec-vms ; exit ;;
echo i386-pc-xenix
exit ;;
i*86:skyos:*:*)
- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
+ echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
exit ;;
i*86:rdos:*:*)
- echo ${UNAME_MACHINE}-pc-rdos
+ echo "$UNAME_MACHINE"-pc-rdos
exit ;;
i*86:AROS:*:*)
- echo ${UNAME_MACHINE}-pc-aros
+ echo "$UNAME_MACHINE"-pc-aros
exit ;;
x86_64:VMkernel:*:*)
- echo ${UNAME_MACHINE}-unknown-esx
+ echo "$UNAME_MACHINE"-unknown-esx
exit ;;
amd64:Isilon\ OneFS:*:*)
echo x86_64-unknown-onefs
echo "$0: unable to guess system type" >&2
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}" in
+case "$UNAME_MACHINE:$UNAME_SYSTEM" in
mips:Linux | mips64:Linux)
# If we got here on MIPS GNU/Linux, output extra information.
cat >&2 <<EOF
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
+UNAME_MACHINE = "$UNAME_MACHINE"
+UNAME_RELEASE = "$UNAME_RELEASE"
+UNAME_SYSTEM = "$UNAME_SYSTEM"
+UNAME_VERSION = "$UNAME_VERSION"
EOF
exit 1
# Local variables:
-# eval: (add-hook 'write-file-functions 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
-timestamp='2017-11-23'
+timestamp='2018-03-08'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2017 Free Software Foundation, Inc.
+Copyright 1992-2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
*local*)
# First pass through any local machine types.
- echo $1
+ echo "$1"
exit ;;
* )
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
kopensolaris*-gnu* | cloudabi*-eabi* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
android-linux)
os=-linux-android
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+ basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
;;
*)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
+ basic_machine=`echo "$1" | sed 's/-[^-]*$//'`
+ if [ "$basic_machine" != "$1" ]
+ then os=`echo "$1" | sed 's/.*-/-/'`
else os=; fi
;;
esac
;;
-sco6)
os=-sco5v6
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
-sco5)
os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
-sco4)
os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
-sco3.2.[4-9]*)
os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
-sco3.2v[4-9]*)
# Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
-sco5v6*)
# Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
-sco*)
os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
-udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
-isc)
os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
-clix*)
basic_machine=clipper-intergraph
;;
-isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
-lynx*178)
os=-lynxos178
os=-lynxos
;;
-ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
;;
-psos*)
os=-psos
| nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \
| open8 | or1k | or1knd | or32 \
- | pdp10 | pdp11 | pj | pjl \
+ | pdp10 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \
| pru \
| pyramid \
basic_machine=$basic_machine-unknown
os=-none
;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
;;
ms1)
basic_machine=mt-unknown
;;
# Object if more than one company name word.
*-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
exit 1
;;
# Recognize the basic CPU types with company name.
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
386bsd)
- basic_machine=i386-unknown
+ basic_machine=i386-pc
os=-bsd
;;
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
basic_machine=x86_64-pc
;;
amd64-*)
- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
amdahl)
basic_machine=580-amdahl
os=-linux
;;
blackfin-*)
- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
os=-linux
;;
bluegene*)
os=-cnk
;;
c54x-*)
- basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
c55x-*)
- basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
c6x-*)
- basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
c90)
basic_machine=c90-cray
os=$os"spe"
;;
e500v[12]-*)
- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
os=$os"spe"
;;
ebmon29k)
hp9k8[0-9][0-9] | hp8[0-9][0-9])
basic_machine=hppa1.0-hp
;;
- hppa-next)
- os=-nextstep3
- ;;
hppaosf)
basic_machine=hppa1.1-hp
os=-osf
basic_machine=i370-ibm
;;
i*86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
os=-sysv32
;;
i*86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
os=-sysv4
;;
i*86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
os=-sysv
;;
i*86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
os=-solaris2
;;
i386mach)
basic_machine=i386-mach
os=-mach
;;
- i386-vsta | vsta)
+ vsta)
basic_machine=i386-unknown
os=-vsta
;;
os=-sysv
;;
leon-*|leon[3-9]-*)
- basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
+ basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
;;
m68knommu)
basic_machine=m68k-unknown
os=-linux
;;
m68knommu-*)
- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
os=-linux
;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
magnum | m3230)
basic_machine=mips-mips
os=-sysv
os=-mint
;;
mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
;;
mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
;;
monitor)
basic_machine=m68k-rom68k
os=-msdos
;;
ms1-*)
- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+ basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
;;
msys)
basic_machine=i686-pc
nsr-tandem)
basic_machine=nsr-tandem
;;
+ nsv-tandem)
+ basic_machine=nsv-tandem
+ ;;
nsx-tandem)
basic_machine=nsx-tandem
;;
os=-linux
;;
parisc-*)
- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
os=-linux
;;
pbd)
basic_machine=i386-pc
;;
pc98-*)
- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
pentium | p5 | k5 | k6 | nexgen | viac3)
basic_machine=i586-pc
basic_machine=i786-pc
;;
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
pentiumpro-* | p6-* | 6x86-* | athlon-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
pentium4-*)
- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
pn)
basic_machine=pn-gould
ppc | ppcbe) basic_machine=powerpc-unknown
;;
ppc-* | ppcbe-*)
- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle)
basic_machine=powerpcle-unknown
;;
ppcle-* | powerpclittle-*)
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
ppc64) basic_machine=powerpc64-unknown
;;
- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
ppc64le | powerpc64little)
basic_machine=powerpc64le-unknown
;;
ppc64le-* | powerpc64little-*)
- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
ps2)
basic_machine=i386-ibm
sequent)
basic_machine=i386-sequent
;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
- ;;
sh5el)
basic_machine=sh5le-unknown
;;
- sh64)
- basic_machine=sh64-unknown
- ;;
- sparclite-wrs | simso-wrs)
+ simso-wrs)
basic_machine=sparclite-wrs
os=-vxworks
;;
os=-sysv4
;;
strongarm-* | thumb-*)
- basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
sun2)
basic_machine=m68000-sun
basic_machine=a29k-wrs
os=-vxworks
;;
- wasm32)
- basic_machine=wasm32-unknown
- ;;
w65*)
basic_machine=w65-wdc
os=-none
basic_machine=xps100-honeywell
;;
xscale-* | xscalee[bl]-*)
- basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+ basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
;;
ymp)
basic_machine=ymp-cray
os=-unicos
;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
- ;;
- z80-*-coff)
- basic_machine=z80-unknown
- os=-sim
- ;;
none)
basic_machine=none-none
os=-none
vax)
basic_machine=vax-dec
;;
- pdp10)
- # there are many clones, so DEC is not a safe bet
- basic_machine=pdp10-unknown
- ;;
pdp11)
basic_machine=pdp11-dec
;;
sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
- basic_machine=sparc-sun
- ;;
cydra)
basic_machine=cydra-cydrome
;;
# Make sure to match an already-canonicalized machine name.
;;
*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
exit 1
;;
esac
# Here we canonicalize certain aliases for manufacturers.
case $basic_machine in
*-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+ basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
;;
*-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
;;
*)
;;
-solaris)
os=-solaris2
;;
- -svr4*)
- os=-sysv4
- ;;
-unixware*)
os=-sysv4.2uw
;;
-gnu/linux*)
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
;;
+ # es1800 is here to avoid being matched by es* (a different OS)
+ -es1800*)
+ os=-ose
+ ;;
# Now accept the basic system types.
# The portable systems comes first.
# Each alternative MUST end in a * to match a version number.
| -aos* | -aros* | -cloudabi* | -sortix* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+ | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
| -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \
| -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -morphos* | -superux* | -rtmk* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
- | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
+ | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
+ | -midnightbsd*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
-nto*)
os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+ -sim | -xray | -os68k* | -v88r* \
+ | -windows* | -osx | -abug | -netware* | -os9* \
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
;;
-mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
+ os=`echo "$os" | sed -e 's|mac|macos|'`
;;
-linux-dietlibc)
os=-linux-dietlibc
os=`echo $os | sed -e 's|linux|linux-gnu|'`
;;
-sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
;;
-sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
;;
-opened*)
os=-openedition
-wince*)
os=-wince
;;
- -osfrose*)
- os=-osfrose
- ;;
- -osf*)
- os=-osf
- ;;
-utek*)
os=-bsd
;;
-oss*)
os=-sysv3
;;
- -svr4)
+ -svr4*)
os=-sysv4
;;
-svr3)
-ose*)
os=-ose
;;
- -es1800*)
- os=-ose
- ;;
- -xenix)
- os=-xenix
- ;;
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
os=-mint
;;
- -aros*)
- os=-aros
- ;;
-zvmoe)
os=-zvmoe
;;
*)
# Get rid of the `-' at the beginning of $os.
os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
exit 1
;;
esac
*-be)
os=-beos
;;
- *-haiku)
- os=-haiku
- ;;
*-ibm)
os=-aix
;;
i370-*)
os=-mvs
;;
- *-next)
- os=-nextstep3
- ;;
*-gould)
os=-sysv
;;
vendor=stratus
;;
esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
;;
esac
-echo $basic_machine$os
+echo "$basic_machine$os"
exit
# Local variables:
-# eval: (add-hook 'write-file-functions 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for HarfBuzz 2.3.1.
+# Generated by GNU Autoconf 2.69 for HarfBuzz 2.4.0.
#
# Report bugs to <https://github.com/harfbuzz/harfbuzz/issues/new>.
#
# Identity of this package.
PACKAGE_NAME='HarfBuzz'
PACKAGE_TARNAME='harfbuzz'
-PACKAGE_VERSION='2.3.1'
-PACKAGE_STRING='HarfBuzz 2.3.1'
+PACKAGE_VERSION='2.4.0'
+PACKAGE_STRING='HarfBuzz 2.4.0'
PACKAGE_BUGREPORT='https://github.com/harfbuzz/harfbuzz/issues/new'
PACKAGE_URL='http://harfbuzz.org/'
AMDEPBACKSLASH
AMDEP_FALSE
AMDEP_TRUE
-am__quote
am__include
DEPDIR
OBJEXT
docdir
oldincludedir
includedir
-runstatedir
localstatedir
sharedstatedir
sysconfdir
PACKAGE_TARNAME
PACKAGE_NAME
PATH_SEPARATOR
-SHELL'
+SHELL
+am__quote'
ac_subst_files=''
ac_user_opts='
enable_option_checking
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
- -runstatedir | --runstatedir | --runstatedi | --runstated \
- | --runstate | --runstat | --runsta | --runst | --runs \
- | --run | --ru | --r)
- ac_prev=runstatedir ;;
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
- | --run=* | --ru=* | --r=*)
- runstatedir=$ac_optarg ;;
-
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir runstatedir
+ libdir localedir mandir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures HarfBuzz 2.3.1 to adapt to many kinds of systems.
+\`configure' configures HarfBuzz 2.4.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of HarfBuzz 2.3.1:";;
+ short | recursive ) echo "Configuration of HarfBuzz 2.4.0:";;
esac
cat <<\_ACEOF
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-HarfBuzz configure 2.3.1
+HarfBuzz configure 2.4.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by HarfBuzz $as_me 2.3.1, which was
+It was created by HarfBuzz $as_me 2.4.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
ac_config_headers="$ac_config_headers config.h"
-am__api_version='1.15'
+am__api_version='1.16'
ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
# Define the identity of the package.
PACKAGE='harfbuzz'
- VERSION='2.3.1'
+ VERSION='2.4.0'
# Some tools Automake needs.
# For better backward compatibility. To be removed once Automake 1.9.x
# dies out for good. For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
mkdir_p='$(MKDIR_P)'
# We need awk for the "check" target (and possibly the TAP driver). The
Aborting the configuration process, to ensure you take notice of the issue.
You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
If you want to complete the configuration process using your problematic
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
ac_config_commands="$ac_config_commands depfiles"
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
+$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }
+cat > confinc.mk << 'END'
am__doit:
- @echo this is the am__doit target
+ @echo this is the am__doit target >confinc.out
.PHONY: am__doit
END
-# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-$as_echo_n "checking for style of include used by $am_make... " >&6; }
am__include="#"
am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
- am__include=include
- am__quote=
- _am_result=GNU
- ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- case `$am_make -s -f confmf 2> /dev/null` in #(
- *the\ am__doit\ target*)
- am__include=.include
- am__quote="\""
- _am_result=BSD
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
+ (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ case $?:`cat confinc.out 2>/dev/null` in #(
+ '0:this is the am__doit target') :
+ case $s in #(
+ BSD) :
+ am__include='.include' am__quote='"' ;; #(
+ *) :
+ am__include='include' am__quote='' ;;
+esac ;; #(
+ *) :
;;
- esac
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
+esac
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
+$as_echo "${_am_result}" >&6; }
# Check whether --enable-dependency-tracking was given.
if test "${enable_dependency_tracking+set}" = set; then :
-macro_version='2.4.6'
-macro_revision='2.4.6'
+macro_version='2.4.6.42-b88ce'
+macro_revision='2.4.6.42'
lt_cv_deplibs_check_method=pass_all
;;
-netbsd* | netbsdelf*-gnu)
+netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
else
fi
: ${AR=ar}
-: ${AR_FLAGS=cru}
+# Use ARFLAGS variable as AR's operation code to sync the variable naming with
+# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
+# higher priority because thats what people were doing historically (setting
+# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS
+# variable obsoleted/removed.
+
+test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
+lt_ar_flags=$AR_FLAGS
+
+
+
+
+
+
+# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override
+# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
+
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
# Fake it for dumpbin and say T for any non-static function,
# D for any global variable and I for any imported variable.
- # Also find C++ and __fastcall symbols from MSVC++,
+ # Also find C++ and __fastcall symbols from MSVC++ or ICC,
# which start with @ or ?.
lt_cv_sys_global_symbol_pipe="$AWK '"\
" {last_section=section; section=\$ 3};"\
_LT_EOF
echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
$LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
- echo "$AR cru libconftest.a conftest.o" >&5
- $AR cru libconftest.a conftest.o 2>&5
+ echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5
+ $AR $AR_FLAGS libconftest.a conftest.o 2>&5
echo "$RANLIB libconftest.a" >&5
$RANLIB libconftest.a 2>&5
cat > conftest.c << _LT_EOF
ofile=libtool
can_build_shared=yes
-# All known linkers require a '.a' archive for static linking (except MSVC,
-# which needs '.lib').
+# All known linkers require a '.a' archive for static linking (except MSVC and
+# ICC, which need '.lib').
libext=a
with_gnu_ld=$lt_cv_prog_gnu_ld
case $host_os in
cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
# When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
+ # Microsoft Visual C++ or Intel C++ Compiler.
if test yes != "$GCC"; then
with_gnu_ld=no
fi
;;
interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
+ # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
with_gnu_ld=yes
;;
openbsd* | bitrig*)
with_gnu_ld=no
;;
- linux* | k*bsd*-gnu | gnu*)
- link_all_deplibs=no
- ;;
esac
ld_shlibs=yes
emximp -o $lib $output_objdir/$libname.def'
old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
enable_shared_with_static_runtimes=yes
+ file_list_spec='@'
;;
interix[3-9]*)
fi
;;
- netbsd* | netbsdelf*-gnu)
+ netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
else
- export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
fi
aix_use_runtimelinking=no
cygwin* | mingw* | pw32* | cegcc*)
# When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
+ # Microsoft Visual C++ or Intel C++ Compiler.
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
case $cc_basename in
- cl*)
- # Native MSVC
+ cl* | icl*)
+ # Native MSVC or ICC
hardcode_libdir_flag_spec=' '
allow_undefined_flag=unsupported
always_export_symbols=yes
fi'
;;
*)
- # Assume MSVC wrapper
+ # Assume MSVC and ICC wrapper
hardcode_libdir_flag_spec=' '
allow_undefined_flag=unsupported
# Tell ltmain to make .lib files, not .a files.
if test yes = "$lt_cv_irix_exported_symbol"; then
archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
fi
- link_all_deplibs=no
else
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
esac
;;
- netbsd* | netbsdelf*-gnu)
+ netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
else
emximp -o $lib $output_objdir/$libname.def'
old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
enable_shared_with_static_runtimes=yes
+ file_list_spec='@'
;;
osf3*)
dynamic_linker='Win32 ld.exe'
;;
- *,cl*)
- # Native MSVC
+ *,cl* | *,icl*)
+ # Native MSVC or ICC
libname_spec='$name'
soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
library_names_spec='$libname.dll.lib'
;;
*)
- # Assume MSVC wrapper
+ # Assume MSVC and ICC wrapper
library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
dynamic_linker='Win32 ld.exe'
;;
dynamic_linker='GNU/Linux ld.so'
;;
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
netbsd*)
version_type=sunos
need_lib_prefix=no
old_striplib=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
$as_echo_n "checking whether stripping libraries is possible... " >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+if test -z "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP"; then
+ if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ old_striplib="$STRIP --strip-debug"
+ striplib="$STRIP --strip-unneeded"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ case $host_os in
+ darwin*)
+ # FIXME - insert some real tests, host_os isn't really good enough
striplib="$STRIP -x"
old_striplib="$STRIP -S"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ ;;
+ freebsd*)
+ if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
+ old_striplib="$STRIP --strip-debug"
+ striplib="$STRIP --strip-unneeded"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
- fi
- ;;
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ fi
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
- ;;
- esac
+ ;;
+ esac
+ fi
fi
cygwin* | mingw* | pw32* | cegcc*)
case $GXX,$cc_basename in
- ,cl* | no,cl*)
- # Native MSVC
+ ,cl* | no,cl* | ,icl* | no,icl*)
+ # Native MSVC or ICC
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
hardcode_libdir_flag_spec_CXX=' '
emximp -o $lib $output_objdir/$libname.def'
old_archive_From_new_cmds_CXX='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
enable_shared_with_static_runtimes_CXX=yes
+ file_list_spec_CXX='@'
;;
dgux*)
;;
esac
;;
- netbsd* | netbsdelf*-gnu)
+ netbsd*)
;;
*qnx* | *nto*)
# QNX uses GNU C++, but need to define -shared option too, otherwise
if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
else
- export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
fi
;;
pw32*)
;;
cygwin* | mingw* | cegcc*)
case $cc_basename in
- cl*)
+ cl* | icl*)
exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
;;
*)
;;
esac
;;
- linux* | k*bsd*-gnu | gnu*)
- link_all_deplibs_CXX=no
- ;;
*)
export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
;;
dynamic_linker='Win32 ld.exe'
;;
- *,cl*)
- # Native MSVC
+ *,cl* | *,icl*)
+ # Native MSVC or ICC
libname_spec='$name'
soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
library_names_spec='$libname.dll.lib'
;;
*)
- # Assume MSVC wrapper
+ # Assume MSVC and ICC wrapper
library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
dynamic_linker='Win32 ld.exe'
;;
dynamic_linker='GNU/Linux ld.so'
;;
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
netbsd*)
version_type=sunos
need_lib_prefix=no
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
HB_VERSION_MAJOR=2
-HB_VERSION_MINOR=3
-HB_VERSION_MICRO=1
-HB_VERSION=2.3.1
+HB_VERSION_MINOR=4
+HB_VERSION_MICRO=0
+HB_VERSION=2.4.0
-HB_LIBTOOL_VERSION_INFO=20301:0:20301
+HB_LIBTOOL_VERSION_INFO=20400:0:20400
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by HarfBuzz $as_me 2.3.1, which was
+This file was extended by HarfBuzz $as_me 2.4.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-HarfBuzz config.status 2.3.1
+HarfBuzz config.status 2.4.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
#
# INIT-COMMANDS
#
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
# The HP-UX ksh and POSIX shell print the target directory to stdout
DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`'
AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
DLLTOOL \
sharedlib_from_linklib_cmd \
AR \
-AR_FLAGS \
archiver_list_spec \
STRIP \
RANLIB \
# Older Autoconf quotes --file arguments for eval, but not when files
# are listed without --file. Let's play safe and only enable the eval
# if we detect the quoting.
- case $CONFIG_FILES in
- *\'*) eval set x "$CONFIG_FILES" ;;
- *) set x $CONFIG_FILES ;;
- esac
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ case $CONFIG_FILES in #(
+ *\'*) :
+ eval set x "$CONFIG_FILES" ;; #(
+ *) :
+ set x $CONFIG_FILES ;; #(
+ *) :
+ ;;
+esac
shift
- for mf
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
do
# Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named 'Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
+ am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
# limit of 2048, but all sed's we know have understand at least 4000.
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
- dirpart=`$as_dirname -- "$mf" ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$mf" : 'X\(//\)[^/]' \| \
- X"$mf" : 'X\(//\)$' \| \
- X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$mf" |
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`$as_dirname -- "$am_mf" ||
+$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$am_mf" : 'X\(//\)[^/]' \| \
+ X"$am_mf" : 'X\(//\)$' \| \
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$am_mf" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
q
}
s/.*/./; q'`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running 'make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "$am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`$as_dirname -- "$file" ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
- X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
+ am_filepart=`$as_basename -- "$am_mf" ||
+$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$am_mf" : 'X\(//\)$' \| \
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$am_mf" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
- /^X\(\/\/\)$/{
+ /^X\/\(\/\/\)$/{
s//\1/
q
}
- /^X\(\/\).*/{
+ /^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
- as_dir=$dirpart/$fdir; as_fn_mkdir_p
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
+ { echo "$as_me:$LINENO: cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles" >&5
+ (cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } || am_rc=$?
done
+ if test $am_rc -ne 0; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. Try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ { am_dirpart=; unset am_dirpart;}
+ { am_filepart=; unset am_filepart;}
+ { am_mf=; unset am_mf;}
+ { am_rc=; unset am_rc;}
+ rm -f conftest-deps.mk
}
;;
"libtool":C)
cat <<_LT_EOF >> "$cfgfile"
#! $SHELL
# Generated automatically by $as_me ($PACKAGE) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
# Provide generalized library-building support services.
# The archiver.
AR=$lt_AR
+# Flags to create an archive (by configure).
+lt_ar_flags=$lt_ar_flags
+
# Flags to create an archive.
-AR_FLAGS=$lt_AR_FLAGS
+AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"}
# How to feed a file listing to the archiver.
archiver_list_spec=$lt_archiver_list_spec
fi
+echo
+echo "C++ compiler version:"
+$CXX --version
+echo
+
{ $as_echo "$as_me:${as_lineno-$LINENO}:
Build configuration:
AC_PREREQ([2.64])
AC_INIT([HarfBuzz],
- [2.3.1],
+ [2.4.0],
[https://github.com/harfbuzz/harfbuzz/issues/new],
[harfbuzz],
[http://harfbuzz.org/])
AC_OUTPUT
+echo
+echo "C++ compiler version:"
+$CXX --version
+echo
+
AC_MSG_NOTICE([
Build configuration:
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# Local Variables:
# mode: shell-script
# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Process this file with automake to produce Makefile.in
# -*- mode: makefile -*-
+#
+# gtk-doc.make - make rules for gtk-doc
+# Copyright (C) 2003 James Henstridge
+# 2004-2007 Damon Chaplin
+# 2007-2017 Stefan Sauer
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
####################################
# Everything below here is generic #
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp
#### setup ####
-GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_$(V))
-GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_@AM_V@)
+GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_@AM_DEFAULT_V@)
GTK_DOC_V_SETUP_0 = @echo " DOC Preparing build";
#### scan ####
-GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_$(V))
-GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_@AM_V@)
+GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_@AM_DEFAULT_V@)
GTK_DOC_V_SCAN_0 = @echo " DOC Scanning header files";
-GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_$(V))
-GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_@AM_V@)
+GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_@AM_DEFAULT_V@)
GTK_DOC_V_INTROSPECT_0 = @echo " DOC Introspecting gobjects";
#### xml ####
-GTK_DOC_V_XML = $(GTK_DOC_V_XML_$(V))
-GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XML = $(GTK_DOC_V_XML_@AM_V@)
+GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_@AM_DEFAULT_V@)
GTK_DOC_V_XML_0 = @echo " DOC Building XML";
#### html ####
-GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_$(V))
-GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_@AM_V@)
+GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_@AM_DEFAULT_V@)
GTK_DOC_V_HTML_0 = @echo " DOC Building HTML";
-GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_$(V))
-GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_@AM_V@)
+GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_@AM_DEFAULT_V@)
GTK_DOC_V_XREF_0 = @echo " DOC Fixing cross-references";
#### pdf ####
-GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_$(V))
-GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_@AM_V@)
+GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_@AM_DEFAULT_V@)
GTK_DOC_V_PDF_0 = @echo " DOC Building PDF";
# Files not to distribute
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_srcdir)/gtk-doc.make $(am__empty):
cscope cscopelist:
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
setup-build.stamp:
-$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
- files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \
- if test "x$$files" != "x" ; then \
- for file in $$files ; do \
- destdir=`dirname $(abs_builddir)/$$file`; \
- test -d "$$destdir" || mkdir -p "$$destdir"; \
- test -f $(abs_srcdir)/$$file && \
- cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
- done; \
- fi; \
+ files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \
+ if test "x$$files" != "x" ; then \
+ for file in $$files ; do \
+ destdir=`dirname $(abs_builddir)/$$file`; \
+ test -d "$$destdir" || mkdir -p "$$destdir"; \
+ test -f $(abs_srcdir)/$$file && \
+ cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
+ done; \
+ fi; \
fi
$(AM_V_at)touch setup-build.stamp
scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB)
$(GTK_DOC_V_SCAN)_source_dir='' ; \
for i in $(DOC_SOURCE_DIR) ; do \
- _source_dir="$${_source_dir} --source-dir=$$i" ; \
+ _source_dir="$${_source_dir} --source-dir=$$i" ; \
done ; \
gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
$(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
- scanobj_options=""; \
- gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \
- if test "$$?" = "0"; then \
- if test "x$(V)" = "x1"; then \
- scanobj_options="--verbose"; \
- fi; \
+ scanobj_options=""; \
+ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \
+ if test "$$?" = "0"; then \
+ if test "x$(V)" = "x1"; then \
+ scanobj_options="--verbose"; \
fi; \
- CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \
- gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \
+ fi; \
+ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \
+ gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \
else \
- for i in $(SCANOBJ_FILES) ; do \
- test -f $$i || touch $$i ; \
- done \
+ for i in $(SCANOBJ_FILES) ; do \
+ test -f $$i || touch $$i ; \
+ done \
fi
$(AM_V_at)touch scan-build.stamp
sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent
$(GTK_DOC_V_XML)_source_dir='' ; \
for i in $(DOC_SOURCE_DIR) ; do \
- _source_dir="$${_source_dir} --source-dir=$$i" ; \
+ _source_dir="$${_source_dir} --source-dir=$$i" ; \
done ; \
gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
$(AM_V_at)touch sgml-build.stamp
sgml.stamp: sgml-build.stamp
@true
+$(DOC_MAIN_SGML_FILE): sgml-build.stamp
+ @true
+
xml/gtkdocentities.ent: Makefile
$(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \
echo "<!ENTITY package \"$(PACKAGE)\">"; \
cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
-@test "x$(HTML_IMAGES)" = "x" || \
for file in $(HTML_IMAGES) ; do \
- if test -f $(abs_srcdir)/$$file ; then \
- cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
- fi; \
- if test -f $(abs_builddir)/$$file ; then \
- cp $(abs_builddir)/$$file $(abs_builddir)/html; \
- fi; \
+ test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
+ test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \
test -f $$file && cp $$file $(abs_builddir)/html; \
done;
$(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
<index id="api-index-full"><title>API Index</title><xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include></index>
<index id="deprecated-api-index" role="deprecated"><title>Index of deprecated API</title><xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include></index>
+ <index id="api-index-2-2-0" role="2.2.0"><title>Index of new symbols in 2.2.0</title><xi:include href="xml/api-index-2.2.0.xml"><xi:fallback /></xi:include></index>
<index id="api-index-2-1-0" role="2.1.0"><title>Index of new symbols in 2.1.0</title><xi:include href="xml/api-index-2.1.0.xml"><xi:fallback /></xi:include></index>
<index id="api-index-2-0-0" role="2.0.0"><title>Index of new symbols in 2.0.0</title><xi:include href="xml/api-index-2.0.0.xml"><xi:fallback /></xi:include></index>
<index id="api-index-1-9-0" role="1.9.0"><title>Index of new symbols in 1.9.0</title><xi:include href="xml/api-index-1.9.0.xml"><xi:fallback /></xi:include></index>
hb_language_from_string
hb_language_to_string
hb_language_get_default
+hb_feature_from_string
+hb_feature_to_string
+hb_variation_from_string
+hb_variation_to_string
hb_bool_t
hb_codepoint_t
hb_destroy_func_t
hb_direction_t
hb_language_t
+hb_feature_t
+hb_variation_t
hb_mask_t
hb_position_t
hb_tag_t
HB_DIRECTION_IS_VALID
HB_DIRECTION_IS_VERTICAL
HB_LANGUAGE_INVALID
+HB_FEATURE_GLOBAL_END
+HB_FEATURE_GLOBAL_START
<SUBSECTION Private>
HB_BEGIN_DECLS
HB_END_DECLS
hb_font_set_ptem
hb_font_set_scale
hb_font_set_user_data
-hb_variation_t
-hb_variation_from_string
-hb_variation_to_string
hb_font_set_variations
hb_font_set_var_coords_design
hb_font_set_var_coords_normalized
<SECTION>
<FILE>hb-shape</FILE>
-HB_FEATURE_GLOBAL_END
-HB_FEATURE_GLOBAL_START
-hb_feature_t
-hb_feature_from_string
-hb_feature_to_string
hb_shape
hb_shape_full
hb_shape_list_shapers
+++ /dev/null
-hb_gobject_aat_layout_feature_selector_get_type
-hb_gobject_aat_layout_feature_type_get_type
-hb_gobject_blob_get_type
-hb_gobject_buffer_cluster_level_get_type
-hb_gobject_buffer_content_type_get_type
-hb_gobject_buffer_diff_flags_get_type
-hb_gobject_buffer_flags_get_type
-hb_gobject_buffer_get_type
-hb_gobject_buffer_serialize_flags_get_type
-hb_gobject_buffer_serialize_format_get_type
-hb_gobject_direction_get_type
-hb_gobject_face_get_type
-hb_gobject_feature_get_type
-hb_gobject_font_funcs_get_type
-hb_gobject_font_get_type
-hb_gobject_glyph_flags_get_type
-hb_gobject_glyph_info_get_type
-hb_gobject_glyph_position_get_type
-hb_gobject_map_get_type
-hb_gobject_memory_mode_get_type
-hb_gobject_ot_color_palette_flags_get_type
-hb_gobject_ot_layout_glyph_class_get_type
-hb_gobject_ot_math_constant_get_type
-hb_gobject_ot_math_glyph_part_flags_get_type
-hb_gobject_ot_math_glyph_part_get_type
-hb_gobject_ot_math_glyph_variant_get_type
-hb_gobject_ot_math_kern_get_type
-hb_gobject_ot_var_axis_flags_get_type
-hb_gobject_script_get_type
-hb_gobject_segment_properties_get_type
-hb_gobject_set_get_type
-hb_gobject_shape_plan_get_type
-hb_gobject_unicode_combining_class_get_type
-hb_gobject_unicode_funcs_get_type
-hb_gobject_unicode_general_category_get_type
-hb_gobject_user_data_key_get_type
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>A clustering example for levels 0 and 1: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="clusters.html" title="Clusters">
<link rel="prev" href="working-with-harfbuzz-clusters.html" title="Working with HarfBuzz clusters">
<link rel="next" href="reordering-in-levels-0-and-1.html" title="Reordering in levels 0 and 1">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>AAT shaping: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="shaping-concepts.html" title="Shaping concepts">
<link rel="prev" href="graphite-shaping.html" title="Graphite shaping">
<link rel="next" href="buffers-language-script-and-direction.html" title="Buffers, language, script and direction">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Adding text to the buffer: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="buffers-language-script-and-direction.html" title="Buffers, language, script and direction">
<link rel="prev" href="buffers-language-script-and-direction.html" title="Buffers, language, script and direction">
<link rel="next" href="setting-buffer-properties.html" title="Setting buffer properties">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Annotation Glossary: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt02.html" title="Part II. Reference manual">
<link rel="prev" href="api-index-0-9-2.html" title="Index of new symbols in 0.9.2">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<dd class="glossdef"><p>Don't free data after the code is done.</p></dd>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.10: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-0-9-11.html" title="Index of new symbols in 0.9.11">
-<link rel="next" href="api-index-0-9-8.html" title="Index of new symbols in 0.9.8">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxO">O</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-0-9-11.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-0-9-8.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-0-9-10"></a>Index of new symbols in 0.9.10</h2></div></div></div>
-<a name="idx"></a><a name="idxO"></a><h3 class="title">O</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-get-size-params" title="hb_ot_layout_get_size_params ()">hb_ot_layout_get_size_params</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.11: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-0-9-20.html" title="Index of new symbols in 0.9.20">
-<link rel="next" href="api-index-0-9-10.html" title="Index of new symbols in 0.9.10">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-0-9-20.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-0-9-10.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-0-9-11"></a>Index of new symbols in 0.9.11</h2></div></div></div>
-<a name="idx"></a><a name="idxB"></a><h3 class="title">B</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-clear-contents" title="hb_buffer_clear_contents ()">hb_buffer_clear_contents</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.2: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-0-9-5.html" title="Index of new symbols in 0.9.5">
-<link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxD">D</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxF">F</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxG">G</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxL">L</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxO">O</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxS">S</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxT">T</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxU">U</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxV">V</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-0-9-5.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="annotation-glossary.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-0-9-2"></a>Index of new symbols in 0.9.2</h2></div></div></div>
-<a name="idx"></a><a name="idxB"></a><h3 class="title">B</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-create" title="hb_blob_create ()">hb_blob_create</a>, function in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-create-sub-blob" title="hb_blob_create_sub_blob ()">hb_blob_create_sub_blob</a>, function in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-destroy" title="hb_blob_destroy ()">hb_blob_destroy</a>, function in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-get-data" title="hb_blob_get_data ()">hb_blob_get_data</a>, function in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-get-data-writable" title="hb_blob_get_data_writable ()">hb_blob_get_data_writable</a>, function in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-get-empty" title="hb_blob_get_empty ()">hb_blob_get_empty</a>, function in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-get-length" title="hb_blob_get_length ()">hb_blob_get_length</a>, function in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-get-user-data" title="hb_blob_get_user_data ()">hb_blob_get_user_data</a>, function in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-is-immutable" title="hb_blob_is_immutable ()">hb_blob_is_immutable</a>, function in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-make-immutable" title="hb_blob_make_immutable ()">hb_blob_make_immutable</a>, function in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-reference" title="hb_blob_reference ()">hb_blob_reference</a>, function in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-set-user-data" title="hb_blob_set_user_data ()">hb_blob_set_user_data</a>, function in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-add-utf16" title="hb_buffer_add_utf16 ()">hb_buffer_add_utf16</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-add-utf32" title="hb_buffer_add_utf32 ()">hb_buffer_add_utf32</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-add-utf8" title="hb_buffer_add_utf8 ()">hb_buffer_add_utf8</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-allocation-successful" title="hb_buffer_allocation_successful ()">hb_buffer_allocation_successful</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-create" title="hb_buffer_create ()">hb_buffer_create</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-destroy" title="hb_buffer_destroy ()">hb_buffer_destroy</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-direction" title="hb_buffer_get_direction ()">hb_buffer_get_direction</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-empty" title="hb_buffer_get_empty ()">hb_buffer_get_empty</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-glyph-infos" title="hb_buffer_get_glyph_infos ()">hb_buffer_get_glyph_infos</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-glyph-positions" title="hb_buffer_get_glyph_positions ()">hb_buffer_get_glyph_positions</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-language" title="hb_buffer_get_language ()">hb_buffer_get_language</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-length" title="hb_buffer_get_length ()">hb_buffer_get_length</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-script" title="hb_buffer_get_script ()">hb_buffer_get_script</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-unicode-funcs" title="hb_buffer_get_unicode_funcs ()">hb_buffer_get_unicode_funcs</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-user-data" title="hb_buffer_get_user_data ()">hb_buffer_get_user_data</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-normalize-glyphs" title="hb_buffer_normalize_glyphs ()">hb_buffer_normalize_glyphs</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-pre-allocate" title="hb_buffer_pre_allocate ()">hb_buffer_pre_allocate</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-reference" title="hb_buffer_reference ()">hb_buffer_reference</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-reset" title="hb_buffer_reset ()">hb_buffer_reset</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-reverse" title="hb_buffer_reverse ()">hb_buffer_reverse</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-reverse-clusters" title="hb_buffer_reverse_clusters ()">hb_buffer_reverse_clusters</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t">hb_buffer_serialize_format_t</a>, enum in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-direction" title="hb_buffer_set_direction ()">hb_buffer_set_direction</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-language" title="hb_buffer_set_language ()">hb_buffer_set_language</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-length" title="hb_buffer_set_length ()">hb_buffer_set_length</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-script" title="hb_buffer_set_script ()">hb_buffer_set_script</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-unicode-funcs" title="hb_buffer_set_unicode_funcs ()">hb_buffer_set_unicode_funcs</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-user-data" title="hb_buffer_set_user_data ()">hb_buffer_set_user_data</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<a name="idxD"></a><h3 class="title">D</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-common.html#hb-direction-from-string" title="hb_direction_from_string ()">hb_direction_from_string</a>, function in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-common.html#hb-direction-to-string" title="hb_direction_to_string ()">hb_direction_to_string</a>, function in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
-</dt>
-<dd></dd>
-<a name="idxF"></a><h3 class="title">F</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-create" title="hb_face_create ()">hb_face_create</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-create-for-tables" title="hb_face_create_for_tables ()">hb_face_create_for_tables</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-destroy" title="hb_face_destroy ()">hb_face_destroy</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-get-empty" title="hb_face_get_empty ()">hb_face_get_empty</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-get-index" title="hb_face_get_index ()">hb_face_get_index</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-get-upem" title="hb_face_get_upem ()">hb_face_get_upem</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-get-user-data" title="hb_face_get_user_data ()">hb_face_get_user_data</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-is-immutable" title="hb_face_is_immutable ()">hb_face_is_immutable</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-make-immutable" title="hb_face_make_immutable ()">hb_face_make_immutable</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-reference" title="hb_face_reference ()">hb_face_reference</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-reference-blob" title="hb_face_reference_blob ()">hb_face_reference_blob</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-reference-table" title="hb_face_reference_table ()">hb_face_reference_table</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-set-index" title="hb_face_set_index ()">hb_face_set_index</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-set-upem" title="hb_face_set_upem ()">hb_face_set_upem</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-set-user-data" title="hb_face_set_user_data ()">hb_face_set_user_data</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-add-glyph-origin-for-direction" title="hb_font_add_glyph_origin_for_direction ()">hb_font_add_glyph_origin_for_direction</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-create" title="hb_font_create ()">hb_font_create</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-create-sub-font" title="hb_font_create_sub_font ()">hb_font_create_sub_font</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-destroy" title="hb_font_destroy ()">hb_font_destroy</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-create" title="hb_font_funcs_create ()">hb_font_funcs_create</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-destroy" title="hb_font_funcs_destroy ()">hb_font_funcs_destroy</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-get-empty" title="hb_font_funcs_get_empty ()">hb_font_funcs_get_empty</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-get-user-data" title="hb_font_funcs_get_user_data ()">hb_font_funcs_get_user_data</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-is-immutable" title="hb_font_funcs_is_immutable ()">hb_font_funcs_is_immutable</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-make-immutable" title="hb_font_funcs_make_immutable ()">hb_font_funcs_make_immutable</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-reference" title="hb_font_funcs_reference ()">hb_font_funcs_reference</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-contour-point-func" title="hb_font_funcs_set_glyph_contour_point_func ()">hb_font_funcs_set_glyph_contour_point_func</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-extents-func" title="hb_font_funcs_set_glyph_extents_func ()">hb_font_funcs_set_glyph_extents_func</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-from-name-func" title="hb_font_funcs_set_glyph_from_name_func ()">hb_font_funcs_set_glyph_from_name_func</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-h-advance-func" title="hb_font_funcs_set_glyph_h_advance_func ()">hb_font_funcs_set_glyph_h_advance_func</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-funcs-set-glyph-h-kerning-func" title="hb_font_funcs_set_glyph_h_kerning_func ()">hb_font_funcs_set_glyph_h_kerning_func</a>, function in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-h-origin-func" title="hb_font_funcs_set_glyph_h_origin_func ()">hb_font_funcs_set_glyph_h_origin_func</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-name-func" title="hb_font_funcs_set_glyph_name_func ()">hb_font_funcs_set_glyph_name_func</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-v-advance-func" title="hb_font_funcs_set_glyph_v_advance_func ()">hb_font_funcs_set_glyph_v_advance_func</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-funcs-set-glyph-v-kerning-func" title="hb_font_funcs_set_glyph_v_kerning_func ()">hb_font_funcs_set_glyph_v_kerning_func</a>, function in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-v-origin-func" title="hb_font_funcs_set_glyph_v_origin_func ()">hb_font_funcs_set_glyph_v_origin_func</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-user-data" title="hb_font_funcs_set_user_data ()">hb_font_funcs_set_user_data</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-empty" title="hb_font_get_empty ()">hb_font_get_empty</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-face" title="hb_font_get_face ()">hb_font_get_face</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph" title="hb_font_get_glyph ()">hb_font_get_glyph</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-advance-for-direction" title="hb_font_get_glyph_advance_for_direction ()">hb_font_get_glyph_advance_for_direction</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-contour-point" title="hb_font_get_glyph_contour_point ()">hb_font_get_glyph_contour_point</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-contour-point-for-origin" title="hb_font_get_glyph_contour_point_for_origin ()">hb_font_get_glyph_contour_point_for_origin</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-extents" title="hb_font_get_glyph_extents ()">hb_font_get_glyph_extents</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-extents-for-origin" title="hb_font_get_glyph_extents_for_origin ()">hb_font_get_glyph_extents_for_origin</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-from-name" title="hb_font_get_glyph_from_name ()">hb_font_get_glyph_from_name</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-h-advance" title="hb_font_get_glyph_h_advance ()">hb_font_get_glyph_h_advance</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-h-kerning" title="hb_font_get_glyph_h_kerning ()">hb_font_get_glyph_h_kerning</a>, function in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-h-origin" title="hb_font_get_glyph_h_origin ()">hb_font_get_glyph_h_origin</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-kerning-for-direction" title="hb_font_get_glyph_kerning_for_direction ()">hb_font_get_glyph_kerning_for_direction</a>, function in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-name" title="hb_font_get_glyph_name ()">hb_font_get_glyph_name</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-origin-for-direction" title="hb_font_get_glyph_origin_for_direction ()">hb_font_get_glyph_origin_for_direction</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-v-advance" title="hb_font_get_glyph_v_advance ()">hb_font_get_glyph_v_advance</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-v-kerning" title="hb_font_get_glyph_v_kerning ()">hb_font_get_glyph_v_kerning</a>, function in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-v-origin" title="hb_font_get_glyph_v_origin ()">hb_font_get_glyph_v_origin</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-parent" title="hb_font_get_parent ()">hb_font_get_parent</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-ppem" title="hb_font_get_ppem ()">hb_font_get_ppem</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-ptem" title="hb_font_get_ptem ()">hb_font_get_ptem</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-scale" title="hb_font_get_scale ()">hb_font_get_scale</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-user-data" title="hb_font_get_user_data ()">hb_font_get_user_data</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-glyph-from-string" title="hb_font_glyph_from_string ()">hb_font_glyph_from_string</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-glyph-to-string" title="hb_font_glyph_to_string ()">hb_font_glyph_to_string</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-is-immutable" title="hb_font_is_immutable ()">hb_font_is_immutable</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-make-immutable" title="hb_font_make_immutable ()">hb_font_make_immutable</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-reference" title="hb_font_reference ()">hb_font_reference</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-set-funcs" title="hb_font_set_funcs ()">hb_font_set_funcs</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-set-funcs-data" title="hb_font_set_funcs_data ()">hb_font_set_funcs_data</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-set-ppem" title="hb_font_set_ppem ()">hb_font_set_ppem</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-set-scale" title="hb_font_set_scale ()">hb_font_set_scale</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-set-user-data" title="hb_font_set_user_data ()">hb_font_set_user_data</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-subtract-glyph-origin-for-direction" title="hb_font_subtract_glyph_origin_for_direction ()">hb_font_subtract_glyph_origin_for_direction</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ft.html#hb-ft-face-create" title="hb_ft_face_create ()">hb_ft_face_create</a>, function in <a class="link" href="harfbuzz-hb-ft.html" title="hb-ft">hb-ft</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ft.html#hb-ft-face-create-cached" title="hb_ft_face_create_cached ()">hb_ft_face_create_cached</a>, function in <a class="link" href="harfbuzz-hb-ft.html" title="hb-ft">hb-ft</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ft.html#hb-ft-font-create" title="hb_ft_font_create ()">hb_ft_font_create</a>, function in <a class="link" href="harfbuzz-hb-ft.html" title="hb-ft">hb-ft</a>
-</dt>
-<dd></dd>
-<a name="idxG"></a><h3 class="title">G</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-blob-get-type" title="hb_gobject_blob_get_type ()">hb_gobject_blob_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-get-type" title="hb_gobject_buffer_get_type ()">hb_gobject_buffer_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-face-get-type" title="hb_gobject_face_get_type ()">hb_gobject_face_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-font-funcs-get-type" title="hb_gobject_font_funcs_get_type ()">hb_gobject_font_funcs_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-font-get-type" title="hb_gobject_font_get_type ()">hb_gobject_font_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-unicode-funcs-get-type" title="hb_gobject_unicode_funcs_get_type ()">hb_gobject_unicode_funcs_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<a name="idxL"></a><h3 class="title">L</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-common.html#hb-language-from-string" title="hb_language_from_string ()">hb_language_from_string</a>, function in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-common.html#hb-language-get-default" title="hb_language_get_default ()">hb_language_get_default</a>, function in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-common.html#hb-language-to-string" title="hb_language_to_string ()">hb_language_to_string</a>, function in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
-</dt>
-<dd></dd>
-<a name="idxO"></a><h3 class="title">O</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-shape.html#hb-ot-shape-glyphs-closure" title="hb_ot_shape_glyphs_closure ()">hb_ot_shape_glyphs_closure</a>, function in <a class="link" href="harfbuzz-hb-ot-shape.html" title="hb-ot-shape">hb-ot-shape</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-tag-to-language" title="hb_ot_tag_to_language ()">hb_ot_tag_to_language</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-<a name="idxS"></a><h3 class="title">S</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-common.html#hb-script-from-iso15924-tag" title="hb_script_from_iso15924_tag ()">hb_script_from_iso15924_tag</a>, function in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-common.html#hb-script-from-string" title="hb_script_from_string ()">hb_script_from_string</a>, function in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-common.html#hb-script-get-horizontal-direction" title="hb_script_get_horizontal_direction ()">hb_script_get_horizontal_direction</a>, function in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-common.html#hb-script-to-iso15924-tag" title="hb_script_to_iso15924_tag ()">hb_script_to_iso15924_tag</a>, function in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-add" title="hb_set_add ()">hb_set_add</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-allocation-successful" title="hb_set_allocation_successful ()">hb_set_allocation_successful</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-clear" title="hb_set_clear ()">hb_set_clear</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-create" title="hb_set_create ()">hb_set_create</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-del" title="hb_set_del ()">hb_set_del</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-destroy" title="hb_set_destroy ()">hb_set_destroy</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-get-empty" title="hb_set_get_empty ()">hb_set_get_empty</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-get-user-data" title="hb_set_get_user_data ()">hb_set_get_user_data</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-has" title="hb_set_has ()">hb_set_has</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-intersect" title="hb_set_intersect ()">hb_set_intersect</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-next" title="hb_set_next ()">hb_set_next</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-reference" title="hb_set_reference ()">hb_set_reference</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-set" title="hb_set_set ()">hb_set_set</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-set-user-data" title="hb_set_set_user_data ()">hb_set_set_user_data</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-subtract" title="hb_set_subtract ()">hb_set_subtract</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-symmetric-difference" title="hb_set_symmetric_difference ()">hb_set_symmetric_difference</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-union" title="hb_set_union ()">hb_set_union</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-shape.html#hb-shape" title="hb_shape ()">hb_shape</a>, function in <a class="link" href="harfbuzz-hb-shape.html" title="hb-shape">hb-shape</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-shape.html#hb-shape-full" title="hb_shape_full ()">hb_shape_full</a>, function in <a class="link" href="harfbuzz-hb-shape.html" title="hb-shape">hb-shape</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-shape.html#hb-shape-list-shapers" title="hb_shape_list_shapers ()">hb_shape_list_shapers</a>, function in <a class="link" href="harfbuzz-hb-shape.html" title="hb-shape">hb-shape</a>
-</dt>
-<dd></dd>
-<a name="idxT"></a><h3 class="title">T</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-common.html#hb-tag-from-string" title="hb_tag_from_string ()">hb_tag_from_string</a>, function in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
-</dt>
-<dd></dd>
-<a name="idxU"></a><h3 class="title">U</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-combining-class" title="hb_unicode_combining_class ()">hb_unicode_combining_class</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-compose" title="hb_unicode_compose ()">hb_unicode_compose</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-decompose" title="hb_unicode_decompose ()">hb_unicode_decompose</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-create" title="hb_unicode_funcs_create ()">hb_unicode_funcs_create</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-destroy" title="hb_unicode_funcs_destroy ()">hb_unicode_funcs_destroy</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-get-empty" title="hb_unicode_funcs_get_empty ()">hb_unicode_funcs_get_empty</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-get-parent" title="hb_unicode_funcs_get_parent ()">hb_unicode_funcs_get_parent</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-get-user-data" title="hb_unicode_funcs_get_user_data ()">hb_unicode_funcs_get_user_data</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-is-immutable" title="hb_unicode_funcs_is_immutable ()">hb_unicode_funcs_is_immutable</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-make-immutable" title="hb_unicode_funcs_make_immutable ()">hb_unicode_funcs_make_immutable</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-reference" title="hb_unicode_funcs_reference ()">hb_unicode_funcs_reference</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-set-combining-class-func" title="hb_unicode_funcs_set_combining_class_func ()">hb_unicode_funcs_set_combining_class_func</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-set-compose-func" title="hb_unicode_funcs_set_compose_func ()">hb_unicode_funcs_set_compose_func</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-set-decompose-func" title="hb_unicode_funcs_set_decompose_func ()">hb_unicode_funcs_set_decompose_func</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-set-general-category-func" title="hb_unicode_funcs_set_general_category_func ()">hb_unicode_funcs_set_general_category_func</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-set-mirroring-func" title="hb_unicode_funcs_set_mirroring_func ()">hb_unicode_funcs_set_mirroring_func</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-set-script-func" title="hb_unicode_funcs_set_script_func ()">hb_unicode_funcs_set_script_func</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-set-user-data" title="hb_unicode_funcs_set_user_data ()">hb_unicode_funcs_set_user_data</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-general-category" title="hb_unicode_general_category ()">hb_unicode_general_category</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-mirroring" title="hb_unicode_mirroring ()">hb_unicode_mirroring</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-script" title="hb_unicode_script ()">hb_unicode_script</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<a name="idxV"></a><h3 class="title">V</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-version.html#hb-version" title="hb_version ()">hb_version</a>, function in <a class="link" href="harfbuzz-hb-version.html" title="hb-version">hb-version</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-version.html#hb-version-string" title="hb_version_string ()">hb_version_string</a>, function in <a class="link" href="harfbuzz-hb-version.html" title="hb-version">hb-version</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.20: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-0-9-22.html" title="Index of new symbols in 0.9.22">
-<link rel="next" href="api-index-0-9-11.html" title="Index of new symbols in 0.9.11">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-0-9-22.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-0-9-11.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-0-9-20"></a>Index of new symbols in 0.9.20</h2></div></div></div>
-<a name="idx"></a><a name="idxB"></a><h3 class="title">B</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-flags-t" title="enum hb_buffer_flags_t">hb_buffer_flags_t</a>, enum in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-flags-t" title="enum hb_buffer_serialize_flags_t">hb_buffer_serialize_flags_t</a>, enum in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.22: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-0-9-28.html" title="Index of new symbols in 0.9.28">
-<link rel="next" href="api-index-0-9-20.html" title="Index of new symbols in 0.9.20">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxO">O</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-0-9-28.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-0-9-20.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-0-9-22"></a>Index of new symbols in 0.9.22</h2></div></div></div>
-<a name="idx"></a><a name="idxO"></a><h3 class="title">O</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-table-get-lookup-count" title="hb_ot_layout_table_get_lookup_count ()">hb_ot_layout_table_get_lookup_count</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.28: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-0-9-30.html" title="Index of new symbols in 0.9.30">
-<link rel="next" href="api-index-0-9-22.html" title="Index of new symbols in 0.9.22">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxO">O</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-0-9-30.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-0-9-22.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-0-9-28"></a>Index of new symbols in 0.9.28</h2></div></div></div>
-<a name="idx"></a><a name="idxO"></a><h3 class="title">O</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-font.html#hb-ot-font-set-funcs" title="hb_ot_font_set_funcs ()">hb_ot_font_set_funcs</a>, function in <a class="link" href="harfbuzz-hb-ot-font.html" title="hb-ot-font">hb-ot-font</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.30: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-0-9-31.html" title="Index of new symbols in 0.9.31">
-<link rel="next" href="api-index-0-9-28.html" title="Index of new symbols in 0.9.28">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxO">O</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxV">V</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-0-9-31.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-0-9-28.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-0-9-30"></a>Index of new symbols in 0.9.30</h2></div></div></div>
-<a name="idx"></a><a name="idxO"></a><h3 class="title">O</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-language-get-required-feature" title="hb_ot_layout_language_get_required_feature ()">hb_ot_layout_language_get_required_feature</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-<a name="idxV"></a><h3 class="title">V</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-version.html#hb-version-atleast" title="hb_version_atleast ()">hb_version_atleast</a>, function in <a class="link" href="harfbuzz-hb-version.html" title="hb-version">hb-version</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.31: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-0-9-38.html" title="Index of new symbols in 0.9.38">
-<link rel="next" href="api-index-0-9-30.html" title="Index of new symbols in 0.9.30">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-0-9-38.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-0-9-30.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-0-9-31"></a>Index of new symbols in 0.9.31</h2></div></div></div>
-<a name="idx"></a><a name="idxB"></a><h3 class="title">B</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-add-codepoints" title="hb_buffer_add_codepoints ()">hb_buffer_add_codepoints</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-replacement-codepoint" title="hb_buffer_get_replacement_codepoint ()">hb_buffer_get_replacement_codepoint</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-REPLACEMENT-CODEPOINT-DEFAULT:CAPS" title="HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT">HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT</a>, macro in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-replacement-codepoint" title="hb_buffer_set_replacement_codepoint ()">hb_buffer_set_replacement_codepoint</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.38: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-0-9-39.html" title="Index of new symbols in 0.9.39">
-<link rel="next" href="api-index-0-9-31.html" title="Index of new symbols in 0.9.31">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxF">F</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxG">G</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-0-9-39.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-0-9-31.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-0-9-38"></a>Index of new symbols in 0.9.38</h2></div></div></div>
-<a name="idx"></a><a name="idxF"></a><h3 class="title">F</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-ft.html#hb-ft-face-create-referenced" title="hb_ft_face_create_referenced ()">hb_ft_face_create_referenced</a>, function in <a class="link" href="harfbuzz-hb-ft.html" title="hb-ft">hb-ft</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ft.html#hb-ft-font-create-referenced" title="hb_ft_font_create_referenced ()">hb_ft_font_create_referenced</a>, function in <a class="link" href="harfbuzz-hb-ft.html" title="hb-ft">hb-ft</a>
-</dt>
-<dd></dd>
-<a name="idxG"></a><h3 class="title">G</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-glib.html#hb-glib-blob-create" title="hb_glib_blob_create ()">hb_glib_blob_create</a>, function in <a class="link" href="harfbuzz-hb-glib.html" title="hb-glib">hb-glib</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.39: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-0-9-41.html" title="Index of new symbols in 0.9.41">
-<link rel="next" href="api-index-0-9-38.html" title="Index of new symbols in 0.9.38">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-0-9-41.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-0-9-38.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-0-9-39"></a>Index of new symbols in 0.9.39</h2></div></div></div>
-<a name="idx"></a><a name="idxB"></a><h3 class="title">B</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-add-latin1" title="hb_buffer_add_latin1 ()">hb_buffer_add_latin1</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.41: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-0-9-42.html" title="Index of new symbols in 0.9.42">
-<link rel="next" href="api-index-0-9-39.html" title="Index of new symbols in 0.9.39">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-0-9-42.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-0-9-39.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-0-9-41"></a>Index of new symbols in 0.9.41</h2></div></div></div>
-<a name="idx"></a><a name="idxB"></a><h3 class="title">B</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-reverse-range" title="hb_buffer_reverse_range ()">hb_buffer_reverse_range</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.42: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-1-0-5.html" title="Index of new symbols in 1.0.5">
-<link rel="next" href="api-index-0-9-41.html" title="Index of new symbols in 0.9.41">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-1-0-5.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-0-9-41.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-0-9-42"></a>Index of new symbols in 0.9.42</h2></div></div></div>
-<a name="idx"></a><a name="idxB"></a><h3 class="title">B</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-cluster-level-t" title="enum hb_buffer_cluster_level_t">hb_buffer_cluster_level_t</a>, enum in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-cluster-level" title="hb_buffer_get_cluster_level ()">hb_buffer_get_cluster_level</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-cluster-level" title="hb_buffer_set_cluster_level ()">hb_buffer_set_cluster_level</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.5: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-0-9-7.html" title="Index of new symbols in 0.9.7">
-<link rel="next" href="api-index-0-9-2.html" title="Index of new symbols in 0.9.2">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxF">F</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxT">T</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-0-9-7.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-0-9-2.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-0-9-5"></a>Index of new symbols in 0.9.5</h2></div></div></div>
-<a name="idx"></a><a name="idxB"></a><h3 class="title">B</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-content-type" title="hb_buffer_get_content_type ()">hb_buffer_get_content_type</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-content-type" title="hb_buffer_set_content_type ()">hb_buffer_set_content_type</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<a name="idxF"></a><h3 class="title">F</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-shape.html#hb-feature-from-string" title="hb_feature_from_string ()">hb_feature_from_string</a>, function in <a class="link" href="harfbuzz-hb-shape.html" title="hb-shape">hb-shape</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-shape.html#hb-feature-to-string" title="hb_feature_to_string ()">hb_feature_to_string</a>, function in <a class="link" href="harfbuzz-hb-shape.html" title="hb-shape">hb-shape</a>
-</dt>
-<dd></dd>
-<a name="idxT"></a><h3 class="title">T</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-common.html#hb-tag-to-string" title="hb_tag_to_string ()">hb_tag_to_string</a>, function in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.7: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-0-9-8.html" title="Index of new symbols in 0.9.8">
-<link rel="next" href="api-index-0-9-5.html" title="Index of new symbols in 0.9.5">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxF">F</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxO">O</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxS">S</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-0-9-8.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-0-9-5.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-0-9-7"></a>Index of new symbols in 0.9.7</h2></div></div></div>
-<a name="idx"></a><a name="idxB"></a><h3 class="title">B</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-add" title="hb_buffer_add ()">hb_buffer_add</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-deserialize-glyphs" title="hb_buffer_deserialize_glyphs ()">hb_buffer_deserialize_glyphs</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-flags" title="hb_buffer_get_flags ()">hb_buffer_get_flags</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-segment-properties" title="hb_buffer_get_segment_properties ()">hb_buffer_get_segment_properties</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-guess-segment-properties" title="hb_buffer_guess_segment_properties ()">hb_buffer_guess_segment_properties</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-from-string" title="hb_buffer_serialize_format_from_string ()">hb_buffer_serialize_format_from_string</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-to-string" title="hb_buffer_serialize_format_to_string ()">hb_buffer_serialize_format_to_string</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-glyphs" title="hb_buffer_serialize_glyphs ()">hb_buffer_serialize_glyphs</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-list-formats" title="hb_buffer_serialize_list_formats ()">hb_buffer_serialize_list_formats</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-flags" title="hb_buffer_set_flags ()">hb_buffer_set_flags</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-segment-properties" title="hb_buffer_set_segment_properties ()">hb_buffer_set_segment_properties</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<a name="idxF"></a><h3 class="title">F</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-get-glyph-count" title="hb_face_get_glyph_count ()">hb_face_get_glyph_count</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-set-glyph-count" title="hb_face_set_glyph_count ()">hb_face_set_glyph_count</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<a name="idxO"></a><h3 class="title">O</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-feature-get-lookups" title="hb_ot_layout_feature_get_lookups ()">hb_ot_layout_feature_get_lookups</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-get-glyphs-in-class" title="hb_ot_layout_get_glyphs_in_class ()">hb_ot_layout_get_glyphs_in_class</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-get-glyph-class" title="hb_ot_layout_get_glyph_class ()">hb_ot_layout_get_glyph_class</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-lookup-collect-glyphs" title="hb_ot_layout_lookup_collect_glyphs ()">hb_ot_layout_lookup_collect_glyphs</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-lookup-substitute-closure" title="hb_ot_layout_lookup_substitute_closure ()">hb_ot_layout_lookup_substitute_closure</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-lookup-would-substitute" title="hb_ot_layout_lookup_would_substitute ()">hb_ot_layout_lookup_would_substitute</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-shape-plan-collect-lookups" title="hb_ot_shape_plan_collect_lookups ()">hb_ot_shape_plan_collect_lookups</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-<a name="idxS"></a><h3 class="title">S</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-equal" title="hb_segment_properties_equal ()">hb_segment_properties_equal</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-hash" title="hb_segment_properties_hash ()">hb_segment_properties_hash</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-add-range" title="hb_set_add_range ()">hb_set_add_range</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-del-range" title="hb_set_del_range ()">hb_set_del_range</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-get-max" title="hb_set_get_max ()">hb_set_get_max</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-get-min" title="hb_set_get_min ()">hb_set_get_min</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-get-population" title="hb_set_get_population ()">hb_set_get_population</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-is-empty" title="hb_set_is_empty ()">hb_set_is_empty</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-is-equal" title="hb_set_is_equal ()">hb_set_is_equal</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-next-range" title="hb_set_next_range ()">hb_set_next_range</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-create" title="hb_shape_plan_create ()">hb_shape_plan_create</a>, function in <a class="link" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">hb-shape-plan</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-create-cached" title="hb_shape_plan_create_cached ()">hb_shape_plan_create_cached</a>, function in <a class="link" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">hb-shape-plan</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-destroy" title="hb_shape_plan_destroy ()">hb_shape_plan_destroy</a>, function in <a class="link" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">hb-shape-plan</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-execute" title="hb_shape_plan_execute ()">hb_shape_plan_execute</a>, function in <a class="link" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">hb-shape-plan</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-get-empty" title="hb_shape_plan_get_empty ()">hb_shape_plan_get_empty</a>, function in <a class="link" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">hb-shape-plan</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-get-shaper" title="hb_shape_plan_get_shaper ()">hb_shape_plan_get_shaper</a>, function in <a class="link" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">hb-shape-plan</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-get-user-data" title="hb_shape_plan_get_user_data ()">hb_shape_plan_get_user_data</a>, function in <a class="link" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">hb-shape-plan</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-reference" title="hb_shape_plan_reference ()">hb_shape_plan_reference</a>, function in <a class="link" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">hb-shape-plan</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-set-user-data" title="hb_shape_plan_set_user_data ()">hb_shape_plan_set_user_data</a>, function in <a class="link" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">hb-shape-plan</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.8: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-0-9-10.html" title="Index of new symbols in 0.9.10">
-<link rel="next" href="api-index-0-9-7.html" title="Index of new symbols in 0.9.7">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxO">O</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-0-9-10.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-0-9-7.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-0-9-8"></a>Index of new symbols in 0.9.8</h2></div></div></div>
-<a name="idx"></a><a name="idxO"></a><h3 class="title">O</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-collect-lookups" title="hb_ot_layout_collect_lookups ()">hb_ot_layout_collect_lookups</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.0.5: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-1-1-2.html" title="Index of new symbols in 1.1.2">
-<link rel="next" href="api-index-0-9-42.html" title="Index of new symbols in 0.9.42">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxF">F</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-1-1-2.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-0-9-42.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-1-0-5"></a>Index of new symbols in 1.0.5</h2></div></div></div>
-<a name="idx"></a><a name="idxF"></a><h3 class="title">F</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-set-parent" title="hb_font_set_parent ()">hb_font_set_parent</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ft.html#hb-ft-font-get-load-flags" title="hb_ft_font_get_load_flags ()">hb_ft_font_get_load_flags</a>, function in <a class="link" href="harfbuzz-hb-ft.html" title="hb-ft">hb-ft</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ft.html#hb-ft-font-set-load-flags" title="hb_ft_font_set_load_flags ()">hb_ft_font_set_load_flags</a>, function in <a class="link" href="harfbuzz-hb-ft.html" title="hb-ft">hb-ft</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.1.2: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-1-1-3.html" title="Index of new symbols in 1.1.3">
-<link rel="next" href="api-index-1-0-5.html" title="Index of new symbols in 1.0.5">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxF">F</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-1-1-3.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-0-5.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-1-1-2"></a>Index of new symbols in 1.1.2</h2></div></div></div>
-<a name="idx"></a><a name="idxF"></a><h3 class="title">F</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-font-h-extents-func" title="hb_font_funcs_set_font_h_extents_func ()">hb_font_funcs_set_font_h_extents_func</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-font-v-extents-func" title="hb_font_funcs_set_font_v_extents_func ()">hb_font_funcs_set_font_v_extents_func</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.1.3: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-1-2-3.html" title="Index of new symbols in 1.2.3">
-<link rel="next" href="api-index-1-1-2.html" title="Index of new symbols in 1.1.2">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxF">F</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-1-2-3.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-1-2.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-1-1-3"></a>Index of new symbols in 1.1.3</h2></div></div></div>
-<a name="idx"></a><a name="idxB"></a><h3 class="title">B</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-message-func" title="hb_buffer_set_message_func ()">hb_buffer_set_message_func</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<a name="idxF"></a><h3 class="title">F</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-extents-for-direction" title="hb_font_get_extents_for_direction ()">hb_font_get_extents_for_direction</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-h-extents" title="hb_font_get_h_extents ()">hb_font_get_h_extents</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-v-extents" title="hb_font_get_v_extents ()">hb_font_get_v_extents</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.2.3: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-1-3-3.html" title="Index of new symbols in 1.3.3">
-<link rel="next" href="api-index-1-1-3.html" title="Index of new symbols in 1.1.3">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxF">F</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-1-3-3.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-1-3.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-1-2-3"></a>Index of new symbols in 1.2.3</h2></div></div></div>
-<a name="idx"></a><a name="idxF"></a><h3 class="title">F</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-nominal-glyph-func" title="hb_font_funcs_set_nominal_glyph_func ()">hb_font_funcs_set_nominal_glyph_func</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-variation-glyph-func" title="hb_font_funcs_set_variation_glyph_func ()">hb_font_funcs_set_variation_glyph_func</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-nominal-glyph" title="hb_font_get_nominal_glyph ()">hb_font_get_nominal_glyph</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-variation-glyph" title="hb_font_get_variation_glyph ()">hb_font_get_variation_glyph</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.3.3: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-1-4-0.html" title="Index of new symbols in 1.4.0">
-<link rel="next" href="api-index-1-2-3.html" title="Index of new symbols in 1.2.3">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxO">O</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-1-4-0.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-2-3.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-1-3-3"></a>Index of new symbols in 1.3.3</h2></div></div></div>
-<a name="idx"></a><a name="idxO"></a><h3 class="title">O</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-constant-t" title="enum hb_ot_math_constant_t">hb_ot_math_constant_t</a>, enum in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-get-constant" title="hb_ot_math_get_constant ()">hb_ot_math_get_constant</a>, function in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-get-glyph-assembly" title="hb_ot_math_get_glyph_assembly ()">hb_ot_math_get_glyph_assembly</a>, function in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-get-glyph-italics-correction" title="hb_ot_math_get_glyph_italics_correction ()">hb_ot_math_get_glyph_italics_correction</a>, function in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-get-glyph-kerning" title="hb_ot_math_get_glyph_kerning ()">hb_ot_math_get_glyph_kerning</a>, function in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-get-glyph-top-accent-attachment" title="hb_ot_math_get_glyph_top_accent_attachment ()">hb_ot_math_get_glyph_top_accent_attachment</a>, function in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-get-glyph-variants" title="hb_ot_math_get_glyph_variants ()">hb_ot_math_get_glyph_variants</a>, function in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-get-min-connector-overlap" title="hb_ot_math_get_min_connector_overlap ()">hb_ot_math_get_min_connector_overlap</a>, function in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-flags-t" title="enum hb_ot_math_glyph_part_flags_t">hb_ot_math_glyph_part_flags_t</a>, enum in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t-struct" title="hb_ot_math_glyph_part_t">hb_ot_math_glyph_part_t</a>, struct in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t-struct" title="hb_ot_math_glyph_variant_t">hb_ot_math_glyph_variant_t</a>, struct in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-has-data" title="hb_ot_math_has_data ()">hb_ot_math_has_data</a>, function in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-is-glyph-extended-shape" title="hb_ot_math_is_glyph_extended_shape ()">hb_ot_math_is_glyph_extended_shape</a>, function in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-kern-t" title="enum hb_ot_math_kern_t">hb_ot_math_kern_t</a>, enum in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.4.0: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-1-4-2.html" title="Index of new symbols in 1.4.2">
-<link rel="next" href="api-index-1-3-3.html" title="Index of new symbols in 1.3.3">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-1-4-2.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-3-3.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-1-4-0"></a>Index of new symbols in 1.4.0</h2></div></div></div>
-<div xmlns:xlink="http://www.w3.org/1999/xlink" class="index"></div>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.4.2: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-1-4-3.html" title="Index of new symbols in 1.4.3">
-<link rel="next" href="api-index-1-4-0.html" title="Index of new symbols in 1.4.0">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxF">F</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxO">O</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxV">V</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-1-4-3.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-4-0.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-1-4-2"></a>Index of new symbols in 1.4.2</h2></div></div></div>
-<a name="idx"></a><a name="idxF"></a><h3 class="title">F</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-var-coords-normalized" title="hb_font_get_var_coords_normalized ()">hb_font_get_var_coords_normalized</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-set-variations" title="hb_font_set_variations ()">hb_font_set_variations</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-set-var-coords-design" title="hb_font_set_var_coords_design ()">hb_font_set_var_coords_design</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-set-var-coords-normalized" title="hb_font_set_var_coords_normalized ()">hb_font_set_var_coords_normalized</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<a name="idxO"></a><h3 class="title">O</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-var.html#hb-ot-var-get-axis-count" title="hb_ot_var_get_axis_count ()">hb_ot_var_get_axis_count</a>, function in <a class="link" href="harfbuzz-hb-ot-var.html" title="hb-ot-var">hb-ot-var</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-var.html#hb-ot-var-has-data" title="hb_ot_var_has_data ()">hb_ot_var_has_data</a>, function in <a class="link" href="harfbuzz-hb-ot-var.html" title="hb-ot-var">hb-ot-var</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-var.html#hb-ot-var-normalize-coords" title="hb_ot_var_normalize_coords ()">hb_ot_var_normalize_coords</a>, function in <a class="link" href="harfbuzz-hb-ot-var.html" title="hb-ot-var">hb-ot-var</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-var.html#hb-ot-var-normalize-variations" title="hb_ot_var_normalize_variations ()">hb_ot_var_normalize_variations</a>, function in <a class="link" href="harfbuzz-hb-ot-var.html" title="hb-ot-var">hb-ot-var</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#HB-OT-VAR-NO-AXIS-INDEX:CAPS" title="HB_OT_VAR_NO_AXIS_INDEX">HB_OT_VAR_NO_AXIS_INDEX</a>, macro in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<a name="idxV"></a><h3 class="title">V</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-variation-from-string" title="hb_variation_from_string ()">hb_variation_from_string</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-variation-t" title="hb_variation_t">hb_variation_t</a>, struct in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-variation-to-string" title="hb_variation_to_string ()">hb_variation_to_string</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.4.3: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-1-5-0.html" title="Index of new symbols in 1.5.0">
-<link rel="next" href="api-index-1-4-2.html" title="Index of new symbols in 1.4.2">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxF">F</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-1-5-0.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-4-2.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-1-4-3"></a>Index of new symbols in 1.4.3</h2></div></div></div>
-<a name="idx"></a><a name="idxF"></a><h3 class="title">F</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-set-face" title="hb_font_set_face ()">hb_font_set_face</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.5.0: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-1-6-0.html" title="Index of new symbols in 1.6.0">
-<link rel="next" href="api-index-1-4-3.html" title="Index of new symbols in 1.4.3">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxG">G</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-1-6-0.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-4-3.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-1-5-0"></a>Index of new symbols in 1.5.0</h2></div></div></div>
-<a name="idx"></a><a name="idxB"></a><h3 class="title">B</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-append" title="hb_buffer_append ()">hb_buffer_append</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-diff" title="hb_buffer_diff ()">hb_buffer_diff</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<a name="idxG"></a><h3 class="title">G</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-flags-t" title="enum hb_glyph_flags_t">hb_glyph_flags_t</a>, enum in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-info-get-glyph-flags" title="hb_glyph_info_get_glyph_flags ()">hb_glyph_info_get_glyph_flags</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.6.0: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-1-7-5.html" title="Index of new symbols in 1.7.5">
-<link rel="next" href="api-index-1-5-0.html" title="Index of new symbols in 1.5.0">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxF">F</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-1-7-5.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-5-0.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-1-6-0"></a>Index of new symbols in 1.6.0</h2></div></div></div>
-<a name="idx"></a><a name="idxF"></a><h3 class="title">F</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-get-table-tags" title="hb_face_get_table_tags ()">hb_face_get_table_tags</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-set-ptem" title="hb_font_set_ptem ()">hb_font_set_ptem</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.7.5: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-1-7-7.html" title="Index of new symbols in 1.7.7">
-<link rel="next" href="api-index-1-6-0.html" title="Index of new symbols in 1.6.0">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-1-7-7.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-6-0.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-1-7-5"></a>Index of new symbols in 1.7.5</h2></div></div></div>
-<a name="idx"></a>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.7.7: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-1-8-0.html" title="Index of new symbols in 1.8.0">
-<link rel="next" href="api-index-1-7-5.html" title="Index of new symbols in 1.7.5">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxF">F</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxM">M</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-1-8-0.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-7-5.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-1-7-7"></a>Index of new symbols in 1.7.7</h2></div></div></div>
-<a name="idx"></a><a name="idxB"></a><h3 class="title">B</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-create-from-file" title="hb_blob_create_from_file ()">hb_blob_create_from_file</a>, function in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
-</dt>
-<dd></dd>
-<a name="idxF"></a><h3 class="title">F</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-count" title="hb_face_count ()">hb_face_count</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<a name="idxM"></a><h3 class="title">M</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-map.html#hb-map-allocation-successful" title="hb_map_allocation_successful ()">hb_map_allocation_successful</a>, function in <a class="link" href="harfbuzz-hb-map.html" title="hb-map">hb-map</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-map.html#hb-map-clear" title="hb_map_clear ()">hb_map_clear</a>, function in <a class="link" href="harfbuzz-hb-map.html" title="hb-map">hb-map</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-map.html#hb-map-create" title="hb_map_create ()">hb_map_create</a>, function in <a class="link" href="harfbuzz-hb-map.html" title="hb-map">hb-map</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-map.html#hb-map-del" title="hb_map_del ()">hb_map_del</a>, function in <a class="link" href="harfbuzz-hb-map.html" title="hb-map">hb-map</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-map.html#hb-map-destroy" title="hb_map_destroy ()">hb_map_destroy</a>, function in <a class="link" href="harfbuzz-hb-map.html" title="hb-map">hb-map</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-map.html#hb-map-get" title="hb_map_get ()">hb_map_get</a>, function in <a class="link" href="harfbuzz-hb-map.html" title="hb-map">hb-map</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-map.html#hb-map-get-empty" title="hb_map_get_empty ()">hb_map_get_empty</a>, function in <a class="link" href="harfbuzz-hb-map.html" title="hb-map">hb-map</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-map.html#hb-map-get-population" title="hb_map_get_population ()">hb_map_get_population</a>, function in <a class="link" href="harfbuzz-hb-map.html" title="hb-map">hb-map</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-map.html#hb-map-get-user-data" title="hb_map_get_user_data ()">hb_map_get_user_data</a>, function in <a class="link" href="harfbuzz-hb-map.html" title="hb-map">hb-map</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-map.html#hb-map-has" title="hb_map_has ()">hb_map_has</a>, function in <a class="link" href="harfbuzz-hb-map.html" title="hb-map">hb-map</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-map.html#hb-map-is-empty" title="hb_map_is_empty ()">hb_map_is_empty</a>, function in <a class="link" href="harfbuzz-hb-map.html" title="hb-map">hb-map</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-map.html#hb-map-reference" title="hb_map_reference ()">hb_map_reference</a>, function in <a class="link" href="harfbuzz-hb-map.html" title="hb-map">hb-map</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-map.html#hb-map-set" title="hb_map_set ()">hb_map_set</a>, function in <a class="link" href="harfbuzz-hb-map.html" title="hb-map">hb-map</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-map.html#hb-map-set-user-data" title="hb_map_set_user_data ()">hb_map_set_user_data</a>, function in <a class="link" href="harfbuzz-hb-map.html" title="hb-map">hb-map</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.8.0: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-1-8-1.html" title="Index of new symbols in 1.8.1">
-<link rel="next" href="api-index-1-7-7.html" title="Index of new symbols in 1.7.7">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxS">S</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-1-8-1.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-7-7.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-1-8-0"></a>Index of new symbols in 1.8.0</h2></div></div></div>
-<a name="idx"></a><a name="idxB"></a><h3 class="title">B</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-copy-writable-or-fail" title="hb_blob_copy_writable_or_fail ()">hb_blob_copy_writable_or_fail</a>, function in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
-</dt>
-<dd></dd>
-<a name="idxS"></a><h3 class="title">S</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-previous" title="hb_set_previous ()">hb_set_previous</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-previous-range" title="hb_set_previous_range ()">hb_set_previous_range</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.8.1: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-1-8-5.html" title="Index of new symbols in 1.8.5">
-<link rel="next" href="api-index-1-8-0.html" title="Index of new symbols in 1.8.0">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxO">O</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxS">S</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-1-8-5.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-8-0.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-1-8-1"></a>Index of new symbols in 1.8.1</h2></div></div></div>
-<a name="idx"></a><a name="idxO"></a><h3 class="title">O</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-lookups-substitute-closure" title="hb_ot_layout_lookups_substitute_closure ()">hb_ot_layout_lookups_substitute_closure</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-<a name="idxS"></a><h3 class="title">S</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-is-subset" title="hb_set_is_subset ()">hb_set_is_subset</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.8.5: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-1-8-6.html" title="Index of new symbols in 1.8.6">
-<link rel="next" href="api-index-1-8-1.html" title="Index of new symbols in 1.8.1">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxO">O</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-1-8-6.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-8-1.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-1-8-5"></a>Index of new symbols in 1.8.5</h2></div></div></div>
-<a name="idx"></a><a name="idxO"></a><h3 class="title">O</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-collect-features" title="hb_ot_layout_collect_features ()">hb_ot_layout_collect_features</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.8.6: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-1-9-0.html" title="Index of new symbols in 1.9.0">
-<link rel="next" href="api-index-1-8-5.html" title="Index of new symbols in 1.8.5">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxF">F</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-1-9-0.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-8-5.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-1-8-6"></a>Index of new symbols in 1.8.6</h2></div></div></div>
-<a name="idx"></a><a name="idxF"></a><h3 class="title">F</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-h-advances-func" title="hb_font_funcs_set_glyph_h_advances_func ()">hb_font_funcs_set_glyph_h_advances_func</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-glyph-v-advances-func" title="hb_font_funcs_set_glyph_v_advances_func ()">hb_font_funcs_set_glyph_v_advances_func</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-advances-for-direction" title="hb_font_get_glyph_advances_for_direction ()">hb_font_get_glyph_advances_for_direction</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-h-advances" title="hb_font_get_glyph_h_advances ()">hb_font_get_glyph_h_advances</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-v-advances" title="hb_font_get_glyph_v_advances ()">hb_font_get_glyph_v_advances</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.9.0: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-2-0-0.html" title="Index of new symbols in 2.0.0">
-<link rel="next" href="api-index-1-8-6.html" title="Index of new symbols in 1.8.6">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxF">F</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxU">U</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-2-0-0.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-8-6.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-1-9-0"></a>Index of new symbols in 1.9.0</h2></div></div></div>
-<a name="idx"></a><a name="idxF"></a><h3 class="title">F</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-builder-add-table" title="hb_face_builder_add_table ()">hb_face_builder_add_table</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-builder-create" title="hb_face_builder_create ()">hb_face_builder_create</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-collect-unicodes" title="hb_face_collect_unicodes ()">hb_face_collect_unicodes</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-collect-variation-selectors" title="hb_face_collect_variation_selectors ()">hb_face_collect_variation_selectors</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-collect-variation-unicodes" title="hb_face_collect_variation_unicodes ()">hb_face_collect_variation_unicodes</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<a name="idxU"></a><h3 class="title">U</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#HB-UNICODE-MAX:CAPS" title="HB_UNICODE_MAX">HB_UNICODE_MAX</a>, macro in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 2.0.0: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-2-1-0.html" title="Index of new symbols in 2.1.0">
-<link rel="next" href="api-index-1-9-0.html" title="Index of new symbols in 1.9.0">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxF">F</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxO">O</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-2-1-0.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-9-0.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-2-0-0"></a>Index of new symbols in 2.0.0</h2></div></div></div>
-<a name="idx"></a><a name="idxB"></a><h3 class="title">B</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-invisible-glyph" title="hb_buffer_get_invisible_glyph ()">hb_buffer_get_invisible_glyph</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-invisible-glyph" title="hb_buffer_set_invisible_glyph ()">hb_buffer_set_invisible_glyph</a>, function in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<a name="idxF"></a><h3 class="title">F</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-shape.html#HB-FEATURE-GLOBAL-END:CAPS" title="HB_FEATURE_GLOBAL_END">HB_FEATURE_GLOBAL_END</a>, macro in <a class="link" href="harfbuzz-hb-shape.html" title="hb-shape">hb-shape</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-shape.html#HB-FEATURE-GLOBAL-START:CAPS" title="HB_FEATURE_GLOBAL_START">HB_FEATURE_GLOBAL_START</a>, macro in <a class="link" href="harfbuzz-hb-shape.html" title="hb-shape">hb-shape</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-set-nominal-glyphs-func" title="hb_font_funcs_set_nominal_glyphs_func ()">hb_font_funcs_set_nominal_glyphs_func</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<a name="idxO"></a><h3 class="title">O</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-feature-get-characters" title="hb_ot_layout_feature_get_characters ()">hb_ot_layout_feature_get_characters</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-feature-get-name-ids" title="hb_ot_layout_feature_get_name_ids ()">hb_ot_layout_feature_get_name_ids</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-script-select-language" title="hb_ot_layout_script_select_language ()">hb_ot_layout_script_select_language</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-table-select-script" title="hb_ot_layout_table_select_script ()">hb_ot_layout_table_select_script</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#HB-OT-MAX-TAGS-PER-LANGUAGE:CAPS" title="HB_OT_MAX_TAGS_PER_LANGUAGE">HB_OT_MAX_TAGS_PER_LANGUAGE</a>, macro in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#HB-OT-MAX-TAGS-PER-SCRIPT:CAPS" title="HB_OT_MAX_TAGS_PER_SCRIPT">HB_OT_MAX_TAGS_PER_SCRIPT</a>, macro in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t">hb_ot_name_id_t</a>, typedef in <a class="link" href="harfbuzz-hb-ot-name.html" title="hb-ot-name">hb-ot-name</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-tags-from-script-and-language" title="hb_ot_tags_from_script_and_language ()">hb_ot_tags_from_script_and_language</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-tags-to-script-and-language" title="hb_ot_tags_to_script_and_language ()">hb_ot_tags_to_script_and_language</a>, function in <a class="link" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">hb-ot-layout</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 2.1.0: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="deprecated-api-index.html" title="Index of deprecated API">
-<link rel="next" href="api-index-2-0-0.html" title="Index of new symbols in 2.0.0">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxC">C</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxO">O</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="deprecated-api-index.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-2-0-0.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-2-1-0"></a>Index of new symbols in 2.1.0</h2></div></div></div>
-<a name="idx"></a><a name="idxC"></a><h3 class="title">C</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-alpha" title="hb_color_get_alpha()">hb_color_get_alpha</a>, macro in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-blue" title="hb_color_get_blue()">hb_color_get_blue</a>, macro in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-green" title="hb_color_get_green()">hb_color_get_green</a>, macro in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-get-red" title="hb_color_get_red()">hb_color_get_red</a>, macro in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-color-t" title="hb_color_t">hb_color_t</a>, typedef in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
-</dt>
-<dd></dd>
-<a name="idxO"></a><h3 class="title">O</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-glyph-get-layers" title="hb_ot_color_glyph_get_layers ()">hb_ot_color_glyph_get_layers</a>, function in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-glyph-reference-png" title="hb_ot_color_glyph_reference_png ()">hb_ot_color_glyph_reference_png</a>, function in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-glyph-reference-svg" title="hb_ot_color_glyph_reference_svg ()">hb_ot_color_glyph_reference_svg</a>, function in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-has-layers" title="hb_ot_color_has_layers ()">hb_ot_color_has_layers</a>, function in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-has-palettes" title="hb_ot_color_has_palettes ()">hb_ot_color_has_palettes</a>, function in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-has-png" title="hb_ot_color_has_png ()">hb_ot_color_has_png</a>, function in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-has-svg" title="hb_ot_color_has_svg ()">hb_ot_color_has_svg</a>, function in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-palette-color-get-name-id" title="hb_ot_color_palette_color_get_name_id ()">hb_ot_color_palette_color_get_name_id</a>, function in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-palette-flags-t" title="enum hb_ot_color_palette_flags_t">hb_ot_color_palette_flags_t</a>, enum in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-palette-get-colors" title="hb_ot_color_palette_get_colors ()">hb_ot_color_palette_get_colors</a>, function in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-palette-get-count" title="hb_ot_color_palette_get_count ()">hb_ot_color_palette_get_count</a>, function in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-palette-get-flags" title="hb_ot_color_palette_get_flags ()">hb_ot_color_palette_get_flags</a>, function in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-palette-get-name-id" title="hb_ot_color_palette_get_name_id ()">hb_ot_color_palette_get_name_id</a>, function in <a class="link" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">hb-ot-color</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-get-utf16" title="hb_ot_name_get_utf16 ()">hb_ot_name_get_utf16</a>, function in <a class="link" href="harfbuzz-hb-ot-name.html" title="hb-ot-name">hb-ot-name</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-get-utf32" title="hb_ot_name_get_utf32 ()">hb_ot_name_get_utf32</a>, function in <a class="link" href="harfbuzz-hb-ot-name.html" title="hb-ot-name">hb-ot-name</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-get-utf8" title="hb_ot_name_get_utf8 ()">hb_ot_name_get_utf8</a>, function in <a class="link" href="harfbuzz-hb-ot-name.html" title="hb-ot-name">hb-ot-name</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-list-names" title="hb_ot_name_list_names ()">hb_ot_name_list_names</a>, function in <a class="link" href="harfbuzz-hb-ot-name.html" title="hb-ot-name">hb-ot-name</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>API Index: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt02.html" title="Part II. Reference manual">
<link rel="prev" href="harfbuzz-hb-uniscribe.html" title="hb-uniscribe">
<link rel="next" href="deprecated-api-index.html" title="Index of deprecated API">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t">hb_blob_t</a>, typedef in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t">hb_blob_t</a>, typedef in <a class="link" href="harfbuzz-hb-blob.html" title="hb-blob">hb-blob</a>
</dt>
<dd></dd>
<dt>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t">hb_buffer_t</a>, typedef in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
+<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t">hb_buffer_t</a>, typedef in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
</dt>
<dd></dd>
<a name="idxC"></a><h3 class="title">C</h3>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t">hb_face_t</a>, typedef in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t">hb_face_t</a>, typedef in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-shape.html#hb-feature-from-string" title="hb_feature_from_string ()">hb_feature_from_string</a>, function in <a class="link" href="harfbuzz-hb-shape.html" title="hb-shape">hb-shape</a>
+<a class="link" href="harfbuzz-hb-common.html#hb-feature-from-string" title="hb_feature_from_string ()">hb_feature_from_string</a>, function in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-shape.html#HB-FEATURE-GLOBAL-END:CAPS" title="HB_FEATURE_GLOBAL_END">HB_FEATURE_GLOBAL_END</a>, macro in <a class="link" href="harfbuzz-hb-shape.html" title="hb-shape">hb-shape</a>
+<a class="link" href="harfbuzz-hb-common.html#HB-FEATURE-GLOBAL-END:CAPS" title="HB_FEATURE_GLOBAL_END">HB_FEATURE_GLOBAL_END</a>, macro in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-shape.html#HB-FEATURE-GLOBAL-START:CAPS" title="HB_FEATURE_GLOBAL_START">HB_FEATURE_GLOBAL_START</a>, macro in <a class="link" href="harfbuzz-hb-shape.html" title="hb-shape">hb-shape</a>
+<a class="link" href="harfbuzz-hb-common.html#HB-FEATURE-GLOBAL-START:CAPS" title="HB_FEATURE_GLOBAL_START">HB_FEATURE_GLOBAL_START</a>, macro in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-shape.html#hb-feature-t-struct" title="hb_feature_t">hb_feature_t</a>, struct in <a class="link" href="harfbuzz-hb-shape.html" title="hb-shape">hb-shape</a>
+<a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t">hb_feature_t</a>, struct in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-shape.html#hb-feature-to-string" title="hb_feature_to_string ()">hb_feature_to_string</a>, function in <a class="link" href="harfbuzz-hb-shape.html" title="hb-shape">hb-shape</a>
+<a class="link" href="harfbuzz-hb-common.html#hb-feature-to-string" title="hb_feature_to_string ()">hb_feature_to_string</a>, function in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
</dt>
<dd></dd>
<dt>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t">hb_font_funcs_t</a>, typedef in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
+<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t">hb_font_funcs_t</a>, typedef in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
</dt>
<dd></dd>
<dt>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-t">hb_font_t</a>, typedef in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
+<a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t">hb_font_t</a>, typedef in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
</dt>
<dd></dd>
<dt>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t-struct" title="hb_glyph_position_t">hb_glyph_position_t</a>, struct in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-blob-get-type" title="hb_gobject_blob_get_type ()">hb_gobject_blob_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-cluster-level-get-type" title="hb_gobject_buffer_cluster_level_get_type ()">hb_gobject_buffer_cluster_level_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-content-type-get-type" title="hb_gobject_buffer_content_type_get_type ()">hb_gobject_buffer_content_type_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-diff-flags-get-type" title="hb_gobject_buffer_diff_flags_get_type ()">hb_gobject_buffer_diff_flags_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-flags-get-type" title="hb_gobject_buffer_flags_get_type ()">hb_gobject_buffer_flags_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-get-type" title="hb_gobject_buffer_get_type ()">hb_gobject_buffer_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-flags-get-type" title="hb_gobject_buffer_serialize_flags_get_type ()">hb_gobject_buffer_serialize_flags_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-format-get-type" title="hb_gobject_buffer_serialize_format_get_type ()">hb_gobject_buffer_serialize_format_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-direction-get-type" title="hb_gobject_direction_get_type ()">hb_gobject_direction_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-face-get-type" title="hb_gobject_face_get_type ()">hb_gobject_face_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-feature-get-type" title="hb_gobject_feature_get_type ()">hb_gobject_feature_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-font-funcs-get-type" title="hb_gobject_font_funcs_get_type ()">hb_gobject_font_funcs_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-font-get-type" title="hb_gobject_font_get_type ()">hb_gobject_font_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-glyph-flags-get-type" title="hb_gobject_glyph_flags_get_type ()">hb_gobject_glyph_flags_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-glyph-info-get-type" title="hb_gobject_glyph_info_get_type ()">hb_gobject_glyph_info_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-glyph-position-get-type" title="hb_gobject_glyph_position_get_type ()">hb_gobject_glyph_position_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-map-get-type" title="hb_gobject_map_get_type ()">hb_gobject_map_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-memory-mode-get-type" title="hb_gobject_memory_mode_get_type ()">hb_gobject_memory_mode_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-color-palette-flags-get-type" title="hb_gobject_ot_color_palette_flags_get_type ()">hb_gobject_ot_color_palette_flags_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-layout-glyph-class-get-type" title="hb_gobject_ot_layout_glyph_class_get_type ()">hb_gobject_ot_layout_glyph_class_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-constant-get-type" title="hb_gobject_ot_math_constant_get_type ()">hb_gobject_ot_math_constant_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-glyph-part-flags-get-type" title="hb_gobject_ot_math_glyph_part_flags_get_type ()">hb_gobject_ot_math_glyph_part_flags_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-glyph-part-get-type" title="hb_gobject_ot_math_glyph_part_get_type ()">hb_gobject_ot_math_glyph_part_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-glyph-variant-get-type" title="hb_gobject_ot_math_glyph_variant_get_type ()">hb_gobject_ot_math_glyph_variant_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-kern-get-type" title="hb_gobject_ot_math_kern_get_type ()">hb_gobject_ot_math_kern_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-script-get-type" title="hb_gobject_script_get_type ()">hb_gobject_script_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-segment-properties-get-type" title="hb_gobject_segment_properties_get_type ()">hb_gobject_segment_properties_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-set-get-type" title="hb_gobject_set_get_type ()">hb_gobject_set_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-shape-plan-get-type" title="hb_gobject_shape_plan_get_type ()">hb_gobject_shape_plan_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BLOB:CAPS" title="HB_GOBJECT_TYPE_BLOB">HB_GOBJECT_TYPE_BLOB</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER:CAPS" title="HB_GOBJECT_TYPE_BUFFER">HB_GOBJECT_TYPE_BUFFER</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CLUSTER-LEVEL:CAPS" title="HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL">HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CONTENT-TYPE:CAPS" title="HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE">HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-DIFF-FLAGS:CAPS" title="HB_GOBJECT_TYPE_BUFFER_DIFF_FLAGS">HB_GOBJECT_TYPE_BUFFER_DIFF_FLAGS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-FLAGS:CAPS" title="HB_GOBJECT_TYPE_BUFFER_FLAGS">HB_GOBJECT_TYPE_BUFFER_FLAGS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FLAGS:CAPS" title="HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS">HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FORMAT:CAPS" title="HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT">HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-DIRECTION:CAPS" title="HB_GOBJECT_TYPE_DIRECTION">HB_GOBJECT_TYPE_DIRECTION</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FACE:CAPS" title="HB_GOBJECT_TYPE_FACE">HB_GOBJECT_TYPE_FACE</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FEATURE:CAPS" title="HB_GOBJECT_TYPE_FEATURE">HB_GOBJECT_TYPE_FEATURE</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FONT:CAPS" title="HB_GOBJECT_TYPE_FONT">HB_GOBJECT_TYPE_FONT</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FONT-FUNCS:CAPS" title="HB_GOBJECT_TYPE_FONT_FUNCS">HB_GOBJECT_TYPE_FONT_FUNCS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-FLAGS:CAPS" title="HB_GOBJECT_TYPE_GLYPH_FLAGS">HB_GOBJECT_TYPE_GLYPH_FLAGS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-INFO:CAPS" title="HB_GOBJECT_TYPE_GLYPH_INFO">HB_GOBJECT_TYPE_GLYPH_INFO</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-POSITION:CAPS" title="HB_GOBJECT_TYPE_GLYPH_POSITION">HB_GOBJECT_TYPE_GLYPH_POSITION</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-MAP:CAPS" title="HB_GOBJECT_TYPE_MAP">HB_GOBJECT_TYPE_MAP</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-MEMORY-MODE:CAPS" title="HB_GOBJECT_TYPE_MEMORY_MODE">HB_GOBJECT_TYPE_MEMORY_MODE</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-COLOR-PALETTE-FLAGS:CAPS" title="HB_GOBJECT_TYPE_OT_COLOR_PALETTE_FLAGS">HB_GOBJECT_TYPE_OT_COLOR_PALETTE_FLAGS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-LAYOUT-GLYPH-CLASS:CAPS" title="HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS">HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-CONSTANT:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_CONSTANT">HB_GOBJECT_TYPE_OT_MATH_CONSTANT</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-GLYPH-PART:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART">HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-GLYPH-PART-FLAGS:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART_FLAGS">HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART_FLAGS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-GLYPH-VARIANT:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_GLYPH_VARIANT">HB_GOBJECT_TYPE_OT_MATH_GLYPH_VARIANT</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-KERN:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_KERN">HB_GOBJECT_TYPE_OT_MATH_KERN</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SCRIPT:CAPS" title="HB_GOBJECT_TYPE_SCRIPT">HB_GOBJECT_TYPE_SCRIPT</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SEGMENT-PROPERTIES:CAPS" title="HB_GOBJECT_TYPE_SEGMENT_PROPERTIES">HB_GOBJECT_TYPE_SEGMENT_PROPERTIES</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SET:CAPS" title="HB_GOBJECT_TYPE_SET">HB_GOBJECT_TYPE_SET</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SHAPE-PLAN:CAPS" title="HB_GOBJECT_TYPE_SHAPE_PLAN">HB_GOBJECT_TYPE_SHAPE_PLAN</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-COMBINING-CLASS:CAPS" title="HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS">HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-FUNCS:CAPS" title="HB_GOBJECT_TYPE_UNICODE_FUNCS">HB_GOBJECT_TYPE_UNICODE_FUNCS</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-GENERAL-CATEGORY:CAPS" title="HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY">HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-USER-DATA-KEY:CAPS" title="HB_GOBJECT_TYPE_USER_DATA_KEY">HB_GOBJECT_TYPE_USER_DATA_KEY</a>, macro in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-unicode-combining-class-get-type" title="hb_gobject_unicode_combining_class_get_type ()">hb_gobject_unicode_combining_class_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-unicode-funcs-get-type" title="hb_gobject_unicode_funcs_get_type ()">hb_gobject_unicode_funcs_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-unicode-general-category-get-type" title="hb_gobject_unicode_general_category_get_type ()">hb_gobject_unicode_general_category_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-user-data-key-get-type" title="hb_gobject_user_data_key_get_type ()">hb_gobject_user_data_key_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+<a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t">hb_glyph_position_t</a>, struct in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
</dt>
<dd></dd>
<dt>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-map.html#hb-map-t">hb_map_t</a>, typedef in <a class="link" href="harfbuzz-hb-map.html" title="hb-map">hb-map</a>
+<a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t">hb_map_t</a>, typedef in <a class="link" href="harfbuzz-hb-map.html" title="hb-map">hb-map</a>
</dt>
<dd></dd>
<dt>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t-struct" title="hb_ot_math_glyph_part_t">hb_ot_math_glyph_part_t</a>, struct in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
+<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t" title="hb_ot_math_glyph_part_t">hb_ot_math_glyph_part_t</a>, struct in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t-struct" title="hb_ot_math_glyph_variant_t">hb_ot_math_glyph_variant_t</a>, struct in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
+<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t" title="hb_ot_math_glyph_variant_t">hb_ot_math_glyph_variant_t</a>, struct in <a class="link" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">hb-ot-math</a>
</dt>
<dd></dd>
<dt>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t-struct" title="hb_segment_properties_t">hb_segment_properties_t</a>, struct in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
+<a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t">hb_segment_properties_t</a>, struct in <a class="link" href="harfbuzz-hb-buffer.html" title="hb-buffer">hb-buffer</a>
</dt>
<dd></dd>
<dt>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-t">hb_set_t</a>, typedef in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
+<a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t">hb_set_t</a>, typedef in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
</dt>
<dd></dd>
<dt>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t">hb_shape_plan_t</a>, typedef in <a class="link" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">hb-shape-plan</a>
+<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t">hb_shape_plan_t</a>, typedef in <a class="link" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">hb-shape-plan</a>
</dt>
<dd></dd>
<a name="idxT"></a><h3 class="title">T</h3>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t">hb_unicode_funcs_t</a>, typedef in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
+<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t">hb_unicode_funcs_t</a>, typedef in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
</dt>
<dd></dd>
<dt>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t-struct" title="hb_user_data_key_t">hb_user_data_key_t</a>, struct in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
+<a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t">hb_user_data_key_t</a>, struct in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
</dt>
<dd></dd>
<a name="idxV"></a><h3 class="title">V</h3>
<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-variation-from-string" title="hb_variation_from_string ()">hb_variation_from_string</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
+<a class="link" href="harfbuzz-hb-common.html#hb-variation-from-string" title="hb_variation_from_string ()">hb_variation_from_string</a>, function in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-variation-t" title="hb_variation_t">hb_variation_t</a>, struct in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
+<a class="link" href="harfbuzz-hb-common.html#hb-variation-t" title="hb_variation_t">hb_variation_t</a>, struct in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-variation-to-string" title="hb_variation_to_string ()">hb_variation_to_string</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
+<a class="link" href="harfbuzz-hb-common.html#hb-variation-to-string" title="hb_variation_to_string ()">hb_variation_to_string</a>, function in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
</dt>
<dd></dd>
<dt>
<dd></dd>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Buffers, language, script and direction: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt01.html" title="Part I. User's manual">
<link rel="prev" href="aat-shaping.html" title="AAT shaping">
<link rel="next" href="adding-text-to-the-buffer.html" title="Adding text to the buffer">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Building HarfBuzz: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="install-harfbuzz.html" title="Installing HarfBuzz">
<link rel="prev" href="install-harfbuzz.html" title="Installing HarfBuzz">
<link rel="next" href="getting-started.html" title="Getting started with HarfBuzz">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
</td>
</tr>
+<tr>
+<td><p><span class="term"><span class="command"><strong>--enable-gtk-doc</strong></span></span></p></td>
+<td>
+<p>
+ Use <a class="ulink" href="https://www.gtk.org/gtk-doc/" target="_top">GTK-Doc</a>. <span class="emphasis"><em>(Default = no)</em></span>
+ </p>
+<p>
+ This option enables the building of the documentation.
+ </p>
+</td>
+</tr>
</tbody>
</table></div>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>What does HarfBuzz do?: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="what-is-harfbuzz.html" title="What is HarfBuzz?">
<link rel="prev" href="why-do-i-need-a-shaping-engine.html" title="Why do I need a shaping engine?">
<link rel="next" href="what-harfbuzz-doesnt-do.html" title="What HarfBuzz doesn't do">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Terminology: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="getting-started.html" title="Getting started with HarfBuzz">
<link rel="prev" href="getting-started.html" title="Getting started with HarfBuzz">
<link rel="next" href="ch03s03.html" title="A simple shaping example">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</table></div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>A simple shaping example: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="getting-started.html" title="Getting started with HarfBuzz">
<link rel="prev" href="ch03s02.html" title="Terminology">
<link rel="next" href="shaping-concepts.html" title="Shaping concepts">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
hb_buffer_add_utf8(buf, text, -1, 0, -1);
</pre>
<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem" value="2"><p>
- Guess the script, language and direction of the buffer.
+ Set the script, language and direction of the buffer.
</p></li></ol></div>
<pre class="programlisting">
hb_buffer_set_direction(buf, HB_DIRECTION_LTR);
</p></li></ol></div>
<pre class="programlisting">
for (i = 0; i < glyph_count; ++i) {
- glyphid = glyph_info[i].codepoint;
- x_offset = glyph_pos[i].x_offset / 64.0;
- y_offset = glyph_pos[i].y_offset / 64.0;
- x_advance = glyph_pos[i].x_advance / 64.0;
- y_advance = glyph_pos[i].y_advance / 64.0;
- draw_glyph(glyphid, cursor_x + x_offset, cursor_y + y_offset);
- cursor_x += x_advance;
- cursor_y += y_advance;
+ glyphid = glyph_info[i].codepoint;
+ x_offset = glyph_pos[i].x_offset / 64.0;
+ y_offset = glyph_pos[i].y_offset / 64.0;
+ x_advance = glyph_pos[i].x_advance / 64.0;
+ y_advance = glyph_pos[i].y_advance / 64.0;
+ draw_glyph(glyphid, cursor_x + x_offset, cursor_y + y_offset);
+ cursor_x += x_advance;
+ cursor_y += y_advance;
}
</pre>
<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem" value="7"><p>
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Core API: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt02.html" title="Part II. Reference manual">
<link rel="prev" href="pt02.html" title="Part II. Reference manual">
<link rel="next" href="harfbuzz-hb-blob.html" title="hb-blob">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</dl></div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>OpenType API: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt02.html" title="Part II. Reference manual">
<link rel="prev" href="harfbuzz-hb-version.html" title="hb-version">
<link rel="next" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</dl></div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Apple Advanced Typography API: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt02.html" title="Part II. Reference manual">
<link rel="prev" href="harfbuzz-hb-ot-var.html" title="hb-ot-var">
<link rel="next" href="harfbuzz-hb-aat-layout.html" title="hb-aat-layout">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</dt></dl></div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Integration API: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt02.html" title="Part II. Reference manual">
<link rel="prev" href="harfbuzz-hb-aat-layout.html" title="hb-aat-layout">
<link rel="next" href="harfbuzz-hb-coretext.html" title="hb-coretext">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</dl></div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Clusters: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt01.html" title="Part I. User's manual">
<link rel="prev" href="using-your-own-font-functions.html" title="Using your own font functions">
<link rel="next" href="working-with-harfbuzz-clusters.html" title="Working with HarfBuzz clusters">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Complex scripts: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="shaping-concepts.html" title="Shaping concepts">
<link rel="prev" href="shaping-concepts.html" title="Shaping concepts">
<link rel="next" href="shaping-operations.html" title="Shaping operations">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Customizing Unicode functions: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="buffers-language-script-and-direction.html" title="Buffers, language, script and direction">
<link rel="prev" href="what-about-the-other-scripts.html" title="What about the other scripts?">
<link rel="next" href="fonts-and-faces.html" title="Fonts and faces">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of deprecated API: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="pt02.html" title="Part II. Reference manual">
-<link rel="prev" href="api-index-full.html" title="API Index">
-<link rel="next" href="api-index-2-1-0.html" title="Index of new symbols in 2.1.0">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxF">F</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxO">O</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxS">S</a>
- <span class="dim">|</span>
- <a class="shortcut" href="#idxU">U</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="api-index-full.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-2-1-0.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="deprecated-api-index"></a>Index of deprecated API</h2></div></div></div>
-<a name="idx"></a><a name="idxB"></a><h3 class="title">B</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#HB-BUFFER-FLAGS-DEFAULT:CAPS" title="HB_BUFFER_FLAGS_DEFAULT">HB_BUFFER_FLAGS_DEFAULT</a>, macro in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#HB-BUFFER-SERIALIZE-FLAGS-DEFAULT:CAPS" title="HB_BUFFER_SERIALIZE_FLAGS_DEFAULT">HB_BUFFER_SERIALIZE_FLAGS_DEFAULT</a>, macro in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<a name="idxF"></a><h3 class="title">F</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-funcs-set-glyph-h-kerning-func" title="hb_font_funcs_set_glyph_h_kerning_func ()">hb_font_funcs_set_glyph_h_kerning_func</a>, function in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-funcs-set-glyph-v-kerning-func" title="hb_font_funcs_set_glyph_v_kerning_func ()">hb_font_funcs_set_glyph_v_kerning_func</a>, function in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-func-t" title="hb_font_get_glyph_func_t ()">hb_font_get_glyph_func_t</a>, user_function in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-h-kerning" title="hb_font_get_glyph_h_kerning ()">hb_font_get_glyph_h_kerning</a>, function in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-h-kerning-func-t" title="hb_font_get_glyph_h_kerning_func_t">hb_font_get_glyph_h_kerning_func_t</a>, typedef in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-kerning-for-direction" title="hb_font_get_glyph_kerning_for_direction ()">hb_font_get_glyph_kerning_for_direction</a>, function in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-kerning-func-t" title="hb_font_get_glyph_kerning_func_t ()">hb_font_get_glyph_kerning_func_t</a>, user_function in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-v-kerning" title="hb_font_get_glyph_v_kerning ()">hb_font_get_glyph_v_kerning</a>, function in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-v-kerning-func-t" title="hb_font_get_glyph_v_kerning_func_t">hb_font_get_glyph_v_kerning_func_t</a>, typedef in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<a name="idxO"></a><h3 class="title">O</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#HB-OT-VAR-NO-AXIS-INDEX:CAPS" title="HB_OT_VAR_NO_AXIS_INDEX">HB_OT_VAR_NO_AXIS_INDEX</a>, macro in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<a name="idxS"></a><h3 class="title">S</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#HB-SCRIPT-CANADIAN-ABORIGINAL:CAPS" title="HB_SCRIPT_CANADIAN_ABORIGINAL">HB_SCRIPT_CANADIAN_ABORIGINAL</a>, macro in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-<a name="idxU"></a><h3 class="title">U</h3>
-<dt>
-<a class="link" href="harfbuzz-hb-deprecated.html#HB-UNICODE-MAX-DECOMPOSITION-LEN:CAPS" title="HB_UNICODE_MAX_DECOMPOSITION_LEN">HB_UNICODE_MAX_DECOMPOSITION_LEN</a>, macro in <a class="link" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">hb-deprecated</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Fonts and faces: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt01.html" title="Part I. User's manual">
<link rel="prev" href="customizing-unicode-functions.html" title="Customizing Unicode functions">
<link rel="next" href="using-harfbuzzs-native-opentype-implementation.html" title="Using HarfBuzz's native OpenType implementation">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Getting started with HarfBuzz: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt01.html" title="Part I. User's manual">
<link rel="prev" href="building.html" title="Building HarfBuzz">
<link rel="next" href="ch03s02.html" title="Terminology">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Graphite shaping: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="shaping-concepts.html" title="Shaping concepts">
<link rel="prev" href="opentype-shaping-models.html" title="OpenType shaping models">
<link rel="next" href="aat-shaping.html" title="AAT shaping">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-aat-layout: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch11.html" title="Apple Advanced Typography API">
<link rel="prev" href="ch11.html" title="Apple Advanced Typography API">
<link rel="next" href="ch12.html" title="Integration API">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-aat-layout.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-aat-layout.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+ <a href="#harfbuzz-hb-aat-layout.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch11.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
</table></div>
</div>
<div class="refsect1">
-<a name="harfbuzz-hb-aat-layout.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
- <span class="lineart">├──</span> hb_aat_layout_feature_selector_t
- <span class="lineart">╰──</span> hb_aat_layout_feature_type_t
-</pre>
-</div>
-<div class="refsect1">
<a name="harfbuzz-hb-aat-layout.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include <hb-aat.h>
</pre>
<a name="hb-aat-layout-feature-type-get-name-id"></a><h3>hb_aat_layout_feature_type_get_name_id ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="returnvalue">hb_ot_name_id_t</span></a>
hb_aat_layout_feature_type_get_name_id
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-aat-layout.html#hb-aat-layout-feature-type-t" title="enum hb_aat_layout_feature_type_t"><span class="type">hb_aat_layout_feature_type_t</span></a> feature_type</code></em>);</pre>
<div class="refsect3">
<a name="hb-aat-layout-feature-type-get-name-id.parameters"></a><h4>Parameters</h4>
<a name="hb-aat-layout-feature-type-get-name-id.returns"></a><h4>Returns</h4>
<p> Name ID index</p>
</div>
-<p class="since">Since: 2.2.0</p>
+<p class="since">Since: <a class="link" href="api-index-2-2-0.html#api-index-2.2.0">2.2.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-aat-layout-feature-type-get-selector-infos"></a><h3>hb_aat_layout_feature_type_get_selector_infos ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
hb_aat_layout_feature_type_get_selector_infos
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-aat-layout.html#hb-aat-layout-feature-type-t" title="enum hb_aat_layout_feature_type_t"><span class="type">hb_aat_layout_feature_type_t</span></a> feature_type</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *selector_count</code></em>,
<div class="refsect2">
<a name="hb-aat-layout-get-feature-types"></a><h3>hb_aat_layout_get_feature_types ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_aat_layout_get_feature_types (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_aat_layout_get_feature_types (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *feature_count</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-aat-layout.html#hb-aat-layout-feature-type-t" title="enum hb_aat_layout_feature_type_t"><span class="type">hb_aat_layout_feature_type_t</span></a> *features</code></em>);</pre>
</tr>
<tr>
<td class="parameter_name"><p>feature_count</p></td>
-<td class="parameter_description"><p> buffer size as input, filled size as output. </p></td>
+<td class="parameter_description"><p>buffer size as input, filled size as output. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>features</p></td>
-<td class="parameter_description"><p> features buffer. </p></td>
+<td class="parameter_description"><p>features buffer. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=feature_count]</span></td>
</tr>
</tbody>
<a name="hb-aat-layout-get-feature-types.returns"></a><h4>Returns</h4>
<p> Number of all available feature types.</p>
</div>
-<p class="since">Since: 2.2.0</p>
+<p class="since">Since: <a class="link" href="api-index-2-2-0.html#api-index-2.2.0">2.2.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-aat-layout-has-positioning"></a><h3>hb_aat_layout_has_positioning ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_aat_layout_has_positioning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_aat_layout_has_positioning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-aat-layout-has-substitution"></a><h3>hb_aat_layout_has_substitution ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_aat_layout_has_substitution (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_aat_layout_has_substitution (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-aat-layout-has-tracking"></a><h3>hb_aat_layout_has_tracking ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_aat_layout_has_tracking (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_aat_layout_has_tracking (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
</div>
</div>
<div class="refsect1">
</tbody>
</table></div>
</div>
-<p class="since">Since: 2.2.0</p>
+<p class="since">Since: <a class="link" href="api-index-2-2-0.html#api-index-2.2.0">2.2.0</a></p>
</div>
<hr>
<div class="refsect2">
</tbody>
</table></div>
</div>
-<p class="since">Since: 2.2.0</p>
+<p class="since">Since: <a class="link" href="api-index-2-2-0.html#api-index-2.2.0">2.2.0</a></p>
</div>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-blob: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch09.html" title="Core API">
<link rel="prev" href="ch09.html" title="Core API">
<link rel="next" href="harfbuzz-hb-buffer.html" title="hb-buffer">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-blob.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-blob.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+ <a href="#harfbuzz-hb-blob.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<tbody>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-blob.html#hb-blob-create" title="hb_blob_create ()">hb_blob_create</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-blob.html#hb-blob-create-from-file" title="hb_blob_create_from_file ()">hb_blob_create_from_file</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-blob.html#hb-blob-create-sub-blob" title="hb_blob_create_sub_blob ()">hb_blob_create_sub_blob</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-blob.html#hb-blob-copy-writable-or-fail" title="hb_blob_copy_writable_or_fail ()">hb_blob_copy_writable_or_fail</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-blob.html#hb-blob-get-empty" title="hb_blob_get_empty ()">hb_blob_get_empty</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-blob.html#hb-blob-reference" title="hb_blob_reference ()">hb_blob_reference</a> <span class="c_punctuation">()</span>
</tbody>
</table></div>
</div>
-<a name="hb-blob-t"></a><div class="refsect1">
+<div class="refsect1">
<a name="harfbuzz-hb-blob.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<tbody>
<tr>
<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t">hb_blob_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t">hb_blob_t</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
</table></div>
</div>
<div class="refsect1">
-<a name="harfbuzz-hb-blob.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
- <span class="lineart">╰──</span> hb_blob_t
- <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
- <span class="lineart">╰──</span> hb_memory_mode_t
-</pre>
-</div>
-<div class="refsect1">
<a name="harfbuzz-hb-blob.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include <hb.h>
</pre>
<a name="harfbuzz-hb-blob.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="hb-blob-create"></a><h3>hb_blob_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
hb_blob_create (<em class="parameter"><code>const <span class="type">char</span> *data</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> length</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-memory-mode-t" title="enum hb_memory_mode_t"><span class="type">hb_memory_mode_t</span></a> mode</code></em>,
<hr>
<div class="refsect2">
<a name="hb-blob-create-from-file"></a><h3>hb_blob_create_from_file ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
hb_blob_create_from_file (<em class="parameter"><code>const <span class="type">char</span> *file_name</code></em>);</pre>
<div class="refsect3">
<a name="hb-blob-create-from-file.parameters"></a><h4>Parameters</h4>
<hr>
<div class="refsect2">
<a name="hb-blob-create-sub-blob"></a><h3>hb_blob_create_sub_blob ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
-hb_blob_create_sub_blob (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *parent</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+hb_blob_create_sub_blob (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *parent</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> length</code></em>);</pre>
<p>Returns a blob that represents a range of bytes in <em class="parameter"><code>parent</code></em>
<hr>
<div class="refsect2">
<a name="hb-blob-copy-writable-or-fail"></a><h3>hb_blob_copy_writable_or_fail ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
-hb_blob_copy_writable_or_fail (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+hb_blob_copy_writable_or_fail (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
<p>Makes a writable copy of <em class="parameter"><code>blob</code></em>
.</p>
<div class="refsect3">
<div class="refsect2">
<a name="hb-blob-destroy"></a><h3>hb_blob_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_blob_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
+hb_blob_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
<p>Decreases the reference count on <em class="parameter"><code>blob</code></em>
, and if it reaches zero, destroys
<em class="parameter"><code>blob</code></em>
<div class="refsect2">
<a name="hb-blob-get-data"></a><h3>hb_blob_get_data ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> *
-hb_blob_get_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
+hb_blob_get_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *length</code></em>);</pre>
<div class="refsect3">
<a name="hb-blob-get-data.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-blob-get-data-writable"></a><h3>hb_blob_get_data_writable ()</h3>
<pre class="programlisting"><span class="returnvalue">char</span> *
-hb_blob_get_data_writable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
+hb_blob_get_data_writable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *length</code></em>);</pre>
<p>Tries to make blob data writable (possibly copying it) and
return pointer to data.</p>
</tr>
<tr>
<td class="parameter_name"><p>length</p></td>
-<td class="parameter_description"><p> output length of the writable data. </p></td>
+<td class="parameter_description"><p>output length of the writable data. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</div>
<div class="refsect3">
<a name="hb-blob-get-data-writable.returns"></a><h4>Returns</h4>
-<p> Writable blob data,
-or <code class="literal">NULL</code> if failed. </p>
+<p>Writable blob data,
+or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if failed. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=length]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
<hr>
<div class="refsect2">
<a name="hb-blob-get-empty"></a><h3>hb_blob_get_empty ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
hb_blob_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>Returns the singleton empty blob.</p>
<p>See TODO:link object types for more information.</p>
<div class="refsect3">
<a name="hb-blob-get-empty.returns"></a><h4>Returns</h4>
-<p> the empty blob. </p>
+<p>the empty blob. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
<div class="refsect2">
<a name="hb-blob-get-length"></a><h3>hb_blob_get_length ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_blob_get_length (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
+hb_blob_get_length (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
<div class="refsect3">
<a name="hb-blob-get-length.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-blob-get-user-data"></a><h3>hb_blob_get_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> *
-hb_blob_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
+hb_blob_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-blob-get-user-data.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-blob-is-immutable"></a><h3>hb_blob_is_immutable ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_blob_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
+hb_blob_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
<div class="refsect3">
<a name="hb-blob-is-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-blob-make-immutable"></a><h3>hb_blob_make_immutable ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_blob_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
+hb_blob_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
<div class="refsect3">
<a name="hb-blob-make-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<hr>
<div class="refsect2">
<a name="hb-blob-reference"></a><h3>hb_blob_reference ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
-hb_blob_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+hb_blob_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
<p>Increases the reference count on <em class="parameter"><code>blob</code></em>
.</p>
<p>See TODO:link object types for more information.</p>
<div class="refsect2">
<a name="hb-blob-set-user-data"></a><h3>hb_blob_set_user_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_blob_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
+hb_blob_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
<em class="parameter"><code><span class="type">void</span> *data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-buffer: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch09.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-blob.html" title="hb-blob">
<link rel="next" href="harfbuzz-hb-common.html" title="hb-common">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-buffer.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-buffer.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+ <a href="#harfbuzz-hb-buffer.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<tbody>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="returnvalue">hb_buffer_t</span></a> *
+<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="returnvalue">hb_buffer_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-create" title="hb_buffer_create ()">hb_buffer_create</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="returnvalue">hb_buffer_t</span></a> *
+<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="returnvalue">hb_buffer_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-reference" title="hb_buffer_reference ()">hb_buffer_reference</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="returnvalue">hb_buffer_t</span></a> *
+<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="returnvalue">hb_buffer_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-empty" title="hb_buffer_get_empty ()">hb_buffer_get_empty</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-unicode-funcs" title="hb_buffer_get_unicode_funcs ()">hb_buffer_get_unicode_funcs</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t"><span class="returnvalue">hb_glyph_position_t</span></a> *
+<a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t"><span class="returnvalue">hb_glyph_position_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-glyph-positions" title="hb_buffer_get_glyph_positions ()">hb_buffer_get_glyph_positions</a> <span class="c_punctuation">()</span>
</tbody>
</table></div>
</div>
-<a name="hb-buffer-t"></a><a name="hb-glyph-position-t"></a><a name="hb-segment-properties-t"></a><div class="refsect1">
+<div class="refsect1">
<a name="harfbuzz-hb-buffer.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t">hb_buffer_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t">hb_buffer_t</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
</tr>
<tr>
<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t-struct" title="hb_glyph_position_t">hb_glyph_position_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t">hb_glyph_position_t</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
</tr>
<tr>
<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t-struct" title="hb_segment_properties_t">hb_segment_properties_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t">hb_segment_properties_t</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
</table></div>
</div>
<div class="refsect1">
-<a name="harfbuzz-hb-buffer.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
- <span class="lineart">├──</span> hb_buffer_t
- <span class="lineart">├──</span> hb_glyph_position_t
- <span class="lineart">╰──</span> hb_segment_properties_t
- <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
- <span class="lineart">├──</span> hb_buffer_cluster_level_t
- <span class="lineart">├──</span> hb_buffer_content_type_t
- <span class="lineart">╰──</span> hb_buffer_serialize_format_t
- <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GFlags</a>
- <span class="lineart">├──</span> hb_buffer_diff_flags_t
- <span class="lineart">├──</span> hb_buffer_flags_t
- <span class="lineart">├──</span> hb_buffer_serialize_flags_t
- <span class="lineart">╰──</span> hb_glyph_flags_t
-</pre>
-</div>
-<div class="refsect1">
<a name="harfbuzz-hb-buffer.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include <hb.h>
</pre>
<a name="harfbuzz-hb-buffer.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="hb-buffer-create"></a><h3>hb_buffer_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="returnvalue">hb_buffer_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="returnvalue">hb_buffer_t</span></a> *
hb_buffer_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Creates a new <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> with all properties to defaults.</p>
+<p>Creates a new <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> with all properties to defaults.</p>
<p><span class="annotation">[Xconstructor]</span></p>
<div class="refsect3">
<a name="hb-buffer-create.returns"></a><h4>Returns</h4>
-<p>A newly allocated <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> with a reference count of 1. The initial
+<p>A newly allocated <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> with a reference count of 1. The initial
reference count should be released with <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-destroy" title="hb_buffer_destroy ()"><code class="function">hb_buffer_destroy()</code></a> when you are done
-using the <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>. This function never returns <code class="literal">NULL</code>. If memory cannot
-be allocated, a special <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> object will be returned on which
+using the <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>. This function never returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. If memory cannot
+be allocated, a special <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> object will be returned on which
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-allocation-successful" title="hb_buffer_allocation_successful ()"><code class="function">hb_buffer_allocation_successful()</code></a> returns <code class="literal">false</code>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-buffer-reference"></a><h3>hb_buffer_reference ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="returnvalue">hb_buffer_t</span></a> *
-hb_buffer_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="returnvalue">hb_buffer_t</span></a> *
+hb_buffer_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Increases the reference count on <em class="parameter"><code>buffer</code></em>
by one. This prevents <em class="parameter"><code>buffer</code></em>
from
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="hb-buffer-reference.returns"></a><h4>Returns</h4>
-<p>The referenced <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>. </p>
+<p>The referenced <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
<hr>
<div class="refsect2">
<a name="hb-buffer-get-empty"></a><h3>hb_buffer_get_empty ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="returnvalue">hb_buffer_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="returnvalue">hb_buffer_t</span></a> *
hb_buffer_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="refsect3">
<a name="hb-buffer-get-empty.returns"></a><h4>Returns</h4>
<div class="refsect2">
<a name="hb-buffer-destroy"></a><h3>hb_buffer_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Deallocate the <em class="parameter"><code>buffer</code></em>
.
Decreases the reference count on <em class="parameter"><code>buffer</code></em>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-reset"></a><h3>hb_buffer_reset ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_reset (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_reset (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Resets the buffer to its initial status, as if it was just newly created
with <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-create" title="hb_buffer_create ()"><code class="function">hb_buffer_create()</code></a>.</p>
<div class="refsect3">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-clear-contents"></a><h3>hb_buffer_clear_contents ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_clear_contents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_clear_contents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Similar to <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-reset" title="hb_buffer_reset ()"><code class="function">hb_buffer_reset()</code></a>, but does not clear the Unicode functions and
the replacement code point.</p>
<div class="refsect3">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-pre-allocate"></a><h3>hb_buffer_pre_allocate ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_buffer_pre_allocate (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_pre_allocate (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> size</code></em>);</pre>
<p>Pre allocates memory for <em class="parameter"><code>buffer</code></em>
to fit at least <em class="parameter"><code>size</code></em>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-buffer-allocation-successful"></a><h3>hb_buffer_allocation_successful ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_buffer_allocation_successful (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_allocation_successful (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Check if allocating memory for the buffer succeeded.</p>
<div class="refsect3">
<a name="hb-buffer-allocation-successful.parameters"></a><h4>Parameters</h4>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-add"></a><h3>hb_buffer_add ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_add (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_add (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> codepoint</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> cluster</code></em>);</pre>
<p>Appends a character with the Unicode value of <em class="parameter"><code>codepoint</code></em>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-buffer-add-codepoints"></a><h3>hb_buffer_add_codepoints ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_add_codepoints (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_add_codepoints (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *text</code></em>,
<em class="parameter"><code><span class="type">int</span> text_length</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> item_offset</code></em>,
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>a <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> to append characters to.</p></td>
+<td class="parameter_description"><p>a <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> to append characters to.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
-<td class="parameter_description"><p> an array of Unicode code points to append. </p></td>
+<td class="parameter_description"><p>an array of Unicode code points to append. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=text_length]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>text_length</p></td>
<td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
-, or -1 if it is <code class="literal">NULL</code> terminated.</p></td>
+, or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_description"><p>the number of code points to add to the <em class="parameter"><code>buffer</code></em>
, or -1 for the
end of <em class="parameter"><code>text</code></em>
-(assuming it is <code class="literal">NULL</code> terminated).</p></td>
+(assuming it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
<div class="refsect2">
<a name="hb-buffer-add-utf32"></a><h3>hb_buffer_add_utf32 ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_add_utf32 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_add_utf32 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>const <span class="type">uint32_t</span> *text</code></em>,
<em class="parameter"><code><span class="type">int</span> text_length</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> item_offset</code></em>,
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
-<td class="parameter_description"><p> an array of UTF-32 characters to append. </p></td>
+<td class="parameter_description"><p>an array of UTF-32 characters to append. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=text_length]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>text_length</p></td>
<td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
-, or -1 if it is <code class="literal">NULL</code> terminated.</p></td>
+, or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_description"><p>the number of characters to add to the <em class="parameter"><code>buffer</code></em>
, or -1 for the
end of <em class="parameter"><code>text</code></em>
-(assuming it is <code class="literal">NULL</code> terminated).</p></td>
+(assuming it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
<div class="refsect2">
<a name="hb-buffer-add-utf16"></a><h3>hb_buffer_add_utf16 ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_add_utf16 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_add_utf16 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>const <span class="type">uint16_t</span> *text</code></em>,
<em class="parameter"><code><span class="type">int</span> text_length</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> item_offset</code></em>,
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
-<td class="parameter_description"><p> an array of UTF-16 characters to append. </p></td>
+<td class="parameter_description"><p>an array of UTF-16 characters to append. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=text_length]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>text_length</p></td>
<td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
-, or -1 if it is <code class="literal">NULL</code> terminated.</p></td>
+, or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_description"><p>the number of characters to add to the <em class="parameter"><code>buffer</code></em>
, or -1 for the
end of <em class="parameter"><code>text</code></em>
-(assuming it is <code class="literal">NULL</code> terminated).</p></td>
+(assuming it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
<div class="refsect2">
<a name="hb-buffer-add-utf8"></a><h3>hb_buffer_add_utf8 ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_add_utf8 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_add_utf8 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *text</code></em>,
<em class="parameter"><code><span class="type">int</span> text_length</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> item_offset</code></em>,
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
-<td class="parameter_description"><p> an array of UTF-8
+<td class="parameter_description"><p>an array of UTF-8
characters to append. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=text_length][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> uint8_t]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>text_length</p></td>
<td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
-, or -1 if it is <code class="literal">NULL</code> terminated.</p></td>
+, or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_description"><p>the number of characters to add to the <em class="parameter"><code>buffer</code></em>
, or -1 for the
end of <em class="parameter"><code>text</code></em>
-(assuming it is <code class="literal">NULL</code> terminated).</p></td>
+(assuming it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
<div class="refsect2">
<a name="hb-buffer-add-latin1"></a><h3>hb_buffer_add_latin1 ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_add_latin1 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_add_latin1 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>const <span class="type">uint8_t</span> *text</code></em>,
<em class="parameter"><code><span class="type">int</span> text_length</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> item_offset</code></em>,
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
-<td class="parameter_description"><p> an array of UTF-8
+<td class="parameter_description"><p>an array of UTF-8
characters to append. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=text_length][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> uint8_t]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>text_length</p></td>
<td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
-, or -1 if it is <code class="literal">NULL</code> terminated.</p></td>
+, or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_description"><p>the number of characters to add to the <em class="parameter"><code>buffer</code></em>
, or -1 for the
end of <em class="parameter"><code>text</code></em>
-(assuming it is <code class="literal">NULL</code> terminated).</p></td>
+(assuming it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
<div class="refsect2">
<a name="hb-buffer-append"></a><h3>hb_buffer_append ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_append (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *source</code></em>,
+hb_buffer_append (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *source</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> end</code></em>);</pre>
<p>Append (part of) contents of another buffer to this buffer.</p>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>source</p></td>
-<td class="parameter_description"><p>source <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>source <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-buffer-set-content-type"></a><h3>hb_buffer_set_content_type ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_content_type (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_content_type (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-content-type-t" title="enum hb_buffer_content_type_t"><span class="type">hb_buffer_content_type_t</span></a> content_type</code></em>);</pre>
<p>Sets the type of <em class="parameter"><code>buffer</code></em>
contents, buffers are either empty, contain
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-buffer-get-content-type"></a><h3>hb_buffer_get_content_type ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-content-type-t" title="enum hb_buffer_content_type_t"><span class="returnvalue">hb_buffer_content_type_t</span></a>
-hb_buffer_get_content_type (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_get_content_type (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-content-type" title="hb_buffer_set_content_type ()"><code class="function">hb_buffer_set_content_type()</code></a>.</p>
<div class="refsect3">
<a name="hb-buffer-get-content-type.parameters"></a><h4>Parameters</h4>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-set-direction"></a><h3>hb_buffer_set_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_direction (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_direction (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>);</pre>
<p>Set the text flow direction of the buffer. No shaping can happen without
setting <em class="parameter"><code>buffer</code></em>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-buffer-get-direction"></a><h3>hb_buffer_get_direction ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="returnvalue">hb_direction_t</span></a>
-hb_buffer_get_direction (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_get_direction (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-direction" title="hb_buffer_set_direction ()"><code class="function">hb_buffer_set_direction()</code></a></p>
<div class="refsect3">
<a name="hb-buffer-get-direction.parameters"></a><h4>Parameters</h4>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-set-script"></a><h3>hb_buffer_set_script ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> script</code></em>);</pre>
<p>Sets the script of <em class="parameter"><code>buffer</code></em>
to <em class="parameter"><code>script</code></em>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-buffer-get-script"></a><h3>hb_buffer_get_script ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="returnvalue">hb_script_t</span></a>
-hb_buffer_get_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_get_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-script" title="hb_buffer_set_script ()"><code class="function">hb_buffer_set_script()</code></a>.</p>
<div class="refsect3">
<a name="hb-buffer-get-script.parameters"></a><h4>Parameters</h4>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-set-language"></a><h3>hb_buffer_set_language ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_language (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_language (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> language</code></em>);</pre>
<p>Sets the language of <em class="parameter"><code>buffer</code></em>
to <em class="parameter"><code>language</code></em>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-buffer-get-language"></a><h3>hb_buffer_get_language ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="returnvalue">hb_language_t</span></a>
-hb_buffer_get_language (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_get_language (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-language" title="hb_buffer_set_language ()"><code class="function">hb_buffer_set_language()</code></a>.</p>
<div class="refsect3">
<a name="hb-buffer-get-language.parameters"></a><h4>Parameters</h4>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-set-flags"></a><h3>hb_buffer_set_flags ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-flags-t" title="enum hb_buffer_flags_t"><span class="type">hb_buffer_flags_t</span></a> flags</code></em>);</pre>
<p>Sets <em class="parameter"><code>buffer</code></em>
flags to <em class="parameter"><code>flags</code></em>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-buffer-get-flags"></a><h3>hb_buffer_get_flags ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-flags-t" title="enum hb_buffer_flags_t"><span class="returnvalue">hb_buffer_flags_t</span></a>
-hb_buffer_get_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_get_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-flags" title="hb_buffer_set_flags ()"><code class="function">hb_buffer_set_flags()</code></a>.</p>
<div class="refsect3">
<a name="hb-buffer-get-flags.parameters"></a><h4>Parameters</h4>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-set-cluster-level"></a><h3>hb_buffer_set_cluster_level ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_cluster_level (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_cluster_level (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-cluster-level-t" title="enum hb_buffer_cluster_level_t"><span class="type">hb_buffer_cluster_level_t</span></a> cluster_level</code></em>);</pre>
<div class="refsect3">
<a name="hb-buffer-set-cluster-level.parameters"></a><h4>Parameters</h4>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-get-cluster-level"></a><h3>hb_buffer_get_cluster_level ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-cluster-level-t" title="enum hb_buffer_cluster_level_t"><span class="returnvalue">hb_buffer_cluster_level_t</span></a>
-hb_buffer_get_cluster_level (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_get_cluster_level (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<div class="refsect3">
<a name="hb-buffer-get-cluster-level.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-set-length"></a><h3>hb_buffer_set_length ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_buffer_set_length (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_length (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> length</code></em>);</pre>
<p>Similar to <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-pre-allocate" title="hb_buffer_pre_allocate ()"><code class="function">hb_buffer_pre_allocate()</code></a>, but clears any new items added at the
end.</p>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-buffer-get-length"></a><h3>hb_buffer_get_length ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_buffer_get_length (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_get_length (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Returns the number of items in the buffer.</p>
<div class="refsect3">
<a name="hb-buffer-get-length.parameters"></a><h4>Parameters</h4>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-set-segment-properties"></a><h3>hb_buffer_set_segment_properties ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_segment_properties (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>);</pre>
+hb_buffer_set_segment_properties (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>);</pre>
<p>Sets the segment properties of the buffer, a shortcut for calling
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-direction" title="hb_buffer_set_direction ()"><code class="function">hb_buffer_set_direction()</code></a>, <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-script" title="hb_buffer_set_script ()"><code class="function">hb_buffer_set_script()</code></a> and
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-language" title="hb_buffer_set_language ()"><code class="function">hb_buffer_set_language()</code></a> individually.</p>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>props</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> to use.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> to use.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
<div class="refsect2">
<a name="hb-buffer-get-segment-properties"></a><h3>hb_buffer_get_segment_properties ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_get_segment_properties (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>);</pre>
+hb_buffer_get_segment_properties (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>);</pre>
<p>Sets <em class="parameter"><code>props</code></em>
- to the <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> of <em class="parameter"><code>buffer</code></em>
+ to the <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> of <em class="parameter"><code>buffer</code></em>
.</p>
<div class="refsect3">
<a name="hb-buffer-get-segment-properties.parameters"></a><h4>Parameters</h4>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>props</p></td>
-<td class="parameter_description"><p> the output <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a>. </p></td>
+<td class="parameter_description"><p>the output <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
<div class="refsect2">
<a name="hb-buffer-guess-segment-properties"></a><h3>hb_buffer_guess_segment_properties ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_guess_segment_properties (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_guess_segment_properties (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Sets unset buffer segment properties based on buffer Unicode
contents. If buffer is not empty, it must have content type
<a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-CONTENT-TYPE-UNICODE:CAPS"><code class="literal">HB_BUFFER_CONTENT_TYPE_UNICODE</code></a>.</p>
<p>If buffer script is not set (ie. is <a class="link" href="harfbuzz-hb-common.html#HB-SCRIPT-INVALID:CAPS"><code class="literal">HB_SCRIPT_INVALID</code></a>), it
will be set to the Unicode script of the first character in
-the buffer that has a script other than <a class="link" href="harfbuzz-hb-common.html#HB-SCRIPT-COMMON:CAPS"><code class="literal">HB_SCRIPT_COMMON</code></a>,
-<a class="link" href="harfbuzz-hb-common.html#HB-SCRIPT-INHERITED:CAPS"><code class="literal">HB_SCRIPT_INHERITED</code></a>, and <a class="link" href="harfbuzz-hb-common.html#HB-SCRIPT-UNKNOWN:CAPS"><code class="literal">HB_SCRIPT_UNKNOWN</code></a>.</p>
+the buffer that has a script other than <code class="literal">HB_SCRIPT_COMMON</code>,
+<code class="literal">HB_SCRIPT_INHERITED</code>, and <code class="literal">HB_SCRIPT_UNKNOWN</code>.</p>
<p>Next, if buffer direction is not set (ie. is <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-INVALID:CAPS"><code class="literal">HB_DIRECTION_INVALID</code></a>),
it will be set to the natural horizontal direction of the
buffer script as returned by <a class="link" href="harfbuzz-hb-common.html#hb-script-get-horizontal-direction" title="hb_script_get_horizontal_direction ()"><code class="function">hb_script_get_horizontal_direction()</code></a>.
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-set-unicode-funcs"></a><h3>hb_buffer_set_unicode_funcs ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_unicode_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *unicode_funcs</code></em>);</pre>
+hb_buffer_set_unicode_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *unicode_funcs</code></em>);</pre>
<div class="refsect3">
<a name="hb-buffer-set-unicode-funcs.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<hr>
<div class="refsect2">
<a name="hb-buffer-get-unicode-funcs"></a><h3>hb_buffer_get_unicode_funcs ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
-hb_buffer_get_unicode_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+hb_buffer_get_unicode_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<div class="refsect3">
<a name="hb-buffer-get-unicode-funcs.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-set-user-data"></a><h3>hb_buffer_set_user_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_buffer_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
+hb_buffer_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
<em class="parameter"><code><span class="type">void</span> *data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-get-user-data"></a><h3>hb_buffer_get_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> *
-hb_buffer_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
+hb_buffer_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-buffer-get-user-data.parameters"></a><h4>Parameters</h4>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-get-glyph-infos"></a><h3>hb_buffer_get_glyph_infos ()</h3>
<pre class="programlisting"><span class="returnvalue">hb_glyph_info_t</span> *
-hb_buffer_get_glyph_infos (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_get_glyph_infos (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *length</code></em>);</pre>
<p>Returns <em class="parameter"><code>buffer</code></em>
glyph information array. Returned pointer
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>length</p></td>
-<td class="parameter_description"><p> output array length. </p></td>
+<td class="parameter_description"><p>output array length. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
<hr>
<div class="refsect2">
<a name="hb-buffer-get-glyph-positions"></a><h3>hb_buffer_get_glyph_positions ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t"><span class="returnvalue">hb_glyph_position_t</span></a> *
-hb_buffer_get_glyph_positions (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t"><span class="returnvalue">hb_glyph_position_t</span></a> *
+hb_buffer_get_glyph_positions (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *length</code></em>);</pre>
<p>Returns <em class="parameter"><code>buffer</code></em>
glyph position array. Returned pointer
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>length</p></td>
-<td class="parameter_description"><p> output length. </p></td>
+<td class="parameter_description"><p>output length. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
<div class="refsect2">
<a name="hb-buffer-get-invisible-glyph"></a><h3>hb_buffer_get_invisible_glyph ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
-hb_buffer_get_invisible_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_get_invisible_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-invisible-glyph" title="hb_buffer_set_invisible_glyph ()"><code class="function">hb_buffer_set_invisible_glyph()</code></a>.</p>
<div class="refsect3">
<a name="hb-buffer-get-invisible-glyph.parameters"></a><h4>Parameters</h4>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-set-invisible-glyph"></a><h3>hb_buffer_set_invisible_glyph ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_invisible_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_invisible_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> invisible</code></em>);</pre>
<p>Sets the <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> that replaces invisible characters in
the shaping result. If set to zero (default), the glyph for the
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-buffer-set-replacement-codepoint"></a><h3>hb_buffer_set_replacement_codepoint ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_replacement_codepoint (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_replacement_codepoint (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> replacement</code></em>);</pre>
<p>Sets the <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> that replaces invalid entries for a given encoding
when adding text to <em class="parameter"><code>buffer</code></em>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-buffer-get-replacement-codepoint"></a><h3>hb_buffer_get_replacement_codepoint ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
-hb_buffer_get_replacement_codepoint (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_get_replacement_codepoint (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>See <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-replacement-codepoint" title="hb_buffer_set_replacement_codepoint ()"><code class="function">hb_buffer_set_replacement_codepoint()</code></a>.</p>
<div class="refsect3">
<a name="hb-buffer-get-replacement-codepoint.parameters"></a><h4>Parameters</h4>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-normalize-glyphs"></a><h3>hb_buffer_normalize_glyphs ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_normalize_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_normalize_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Reorders a glyph buffer to have canonical in-cluster glyph order / position.
The resulting clusters should behave identical to pre-reordering clusters.</p>
<div class="note">This has nothing to do with Unicode normalization.</div>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-reverse"></a><h3>hb_buffer_reverse ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_reverse (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_reverse (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Reverses buffer contents.</p>
<div class="refsect3">
<a name="hb-buffer-reverse.parameters"></a><h4>Parameters</h4>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-reverse-range"></a><h3>hb_buffer_reverse_range ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_reverse_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_reverse_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> end</code></em>);</pre>
<p>Reverses buffer contents between start to end.</p>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-buffer-reverse-clusters"></a><h3>hb_buffer_reverse_clusters ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_reverse_clusters (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
+hb_buffer_reverse_clusters (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
<p>Reverses buffer clusters. That is, the buffer contents are
reversed, then each cluster (consecutive items having the
same cluster number) are reversed again.</p>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-serialize-glyphs"></a><h3>hb_buffer_serialize_glyphs ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_buffer_serialize_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_serialize_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> end</code></em>,
<em class="parameter"><code><span class="type">char</span> *buf</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> buf_size</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *buf_consumed</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a> format</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-flags-t" title="enum hb_buffer_serialize_flags_t"><span class="type">hb_buffer_serialize_flags_t</span></a> flags</code></em>);</pre>
<p>Serializes <em class="parameter"><code>buffer</code></em>
useful for showing the contents of the buffer, for example during debugging.
There are currently two supported serialization formats:</p>
<div class="refsect3">
-<a name="id-1.3.4.3.11.48.5"></a><h4>text</h4>
+<a name="id-1.3.4.3.7.48.5"></a><h4>text</h4>
<p>A human-readable, plain text format.
The serialized glyphs will look something like:</p>
<p><code class="literal">
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem"><p>If <a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-SERIALIZE-FLAG-NO-CLUSTERS:CAPS"><span class="type">HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS</span></a> is not set, <code class="literal">=</code> then <span class="type">hb_glyph_info_t.cluster</span>.</p></li>
<li class="listitem">
-<p>If <a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-SERIALIZE-FLAG-NO-POSITIONS:CAPS"><span class="type">HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS</span></a> is not set, the <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t"><span class="type">hb_glyph_position_t</span></a> in the format:</p>
+<p>If <a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-SERIALIZE-FLAG-NO-POSITIONS:CAPS"><span class="type">HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS</span></a> is not set, the <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t"><span class="type">hb_glyph_position_t</span></a> in the format:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; ">
-<li class="listitem"><p>If both <span class="type">hb_glyph_position_t.x_offset</span> and <span class="type">hb_glyph_position_t.y_offset</span> are not 0, <code class="literal">@x_offset,y_offset</code>. Then,</p></li>
-<li class="listitem"><p><code class="literal">+x_advance</code>, then <code class="literal">,y_advance</code> if <span class="type">hb_glyph_position_t.y_advance</span> is not 0. Then,</p></li>
+<li class="listitem"><p>If both <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t.x-offset"><span class="type">hb_glyph_position_t.x_offset</span></a> and <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t.y-offset"><span class="type">hb_glyph_position_t.y_offset</span></a> are not 0, <code class="literal">@x_offset,y_offset</code>. Then,</p></li>
+<li class="listitem"><p><code class="literal">+x_advance</code>, then <code class="literal">,y_advance</code> if <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t.y-advance"><span class="type">hb_glyph_position_t.y_advance</span></a> is not 0. Then,</p></li>
</ul></div>
</li>
<li class="listitem"><p>If <a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-SERIALIZE-FLAG-GLYPH-EXTENTS:CAPS"><span class="type">HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS</span></a> is set, the
<span class="type">hb_glyph_extents_t</span> in the format
-<code class="literal"><x_bearing,y_bearing,width,height></code></p></li>
+<code class="literal">&lt;x_bearing,y_bearing,width,height&gt;</code></p></li>
</ul></div>
</li>
</ul></div>
</div>
<div class="refsect3">
-<a name="id-1.3.4.3.11.48.6"></a><h4>json</h4>
+<a name="id-1.3.4.3.7.48.6"></a><h4>json</h4>
<p>TODO.</p>
</div>
<div class="refsect3">
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> buffer.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> buffer.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
</tr>
<tr>
<td class="parameter_name"><p>buf</p></td>
-<td class="parameter_description"><p> output string to
+<td class="parameter_description"><p>output string to
write serialized buffer into. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=buf_size][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> uint8_t]</span></td>
</tr>
</tr>
<tr>
<td class="parameter_name"><p>buf_consumed</p></td>
-<td class="parameter_description"><p> if not <code class="literal">NULL</code>, will be set to the number of byes written into <em class="parameter"><code>buf</code></em>
+<td class="parameter_description"><p>if not <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, will be set to the number of byes written into <em class="parameter"><code>buf</code></em>
. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p> the <a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> used to shape this buffer, needed to
-read glyph names and extents. If <code class="literal">NULL</code>, and empty font will be used. </p></td>
+<td class="parameter_description"><p>the <a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> used to shape this buffer, needed to
+read glyph names and extents. If <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, and empty font will be used. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-buffer-deserialize-glyphs"></a><h3>hb_buffer_deserialize_glyphs ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_buffer_deserialize_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_deserialize_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *buf</code></em>,
<em class="parameter"><code><span class="type">int</span> buf_len</code></em>,
<em class="parameter"><code>const <span class="type">char</span> **end_ptr</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a> format</code></em>);</pre>
<div class="refsect3">
<a name="hb-buffer-deserialize-glyphs.parameters"></a><h4>Parameters</h4>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> buffer.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> buffer.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
-<td class="parameter_description"><p> a string to parse. </p></td>
+<td class="parameter_description"><p>a string to parse. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> uint8_t]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>length of <em class="parameter"><code>str</code></em>
-, or -1 if string is <code class="literal">NULL</code> terminated</p></td>
+, or -1 if string is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
<pre class="programlisting">const <span class="returnvalue">char</span> *
hb_buffer_serialize_format_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a> format</code></em>);</pre>
<p>Converts <em class="parameter"><code>format</code></em>
- to the string corresponding it, or <code class="literal">NULL</code> if it is not a valid
+ to the string corresponding it, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if it is not a valid
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a>.</p>
<div class="refsect3">
<a name="hb-buffer-serialize-format-to-string.parameters"></a><h4>Parameters</h4>
</div>
<div class="refsect3">
<a name="hb-buffer-serialize-format-to-string.returns"></a><h4>Returns</h4>
-<p>A <code class="literal">NULL</code> terminated string corresponding to <em class="parameter"><code>format</code></em>
+<p>A <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated string corresponding to <em class="parameter"><code>format</code></em>
. Should not be freed. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<div class="refsect2">
<a name="hb-segment-properties-equal"></a><h3>hb_segment_properties_equal ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_segment_properties_equal (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *a</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *b</code></em>);</pre>
-<p>Checks the equality of two <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a>'s.</p>
+hb_segment_properties_equal (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *a</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *b</code></em>);</pre>
+<p>Checks the equality of two <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a>'s.</p>
<div class="refsect3">
<a name="hb-segment-properties-equal.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<tbody>
<tr>
<td class="parameter_name"><p>a</p></td>
-<td class="parameter_description"><p>first <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> to compare.</p></td>
+<td class="parameter_description"><p>first <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> to compare.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>b</p></td>
-<td class="parameter_description"><p>second <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> to compare.</p></td>
+<td class="parameter_description"><p>second <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> to compare.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
<div class="refsect2">
<a name="hb-segment-properties-hash"></a><h3>hb_segment_properties_hash ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_segment_properties_hash (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *p</code></em>);</pre>
+hb_segment_properties_hash (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *p</code></em>);</pre>
<p>Creates a hash representing <em class="parameter"><code>p</code></em>
.</p>
<div class="refsect3">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>p</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> to hash.</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> to hash.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-buffer-diff"></a><h3>hb_buffer_diff ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-diff-flags-t" title="enum hb_buffer_diff_flags_t"><span class="returnvalue">hb_buffer_diff_flags_t</span></a>
-hb_buffer_diff (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *reference</code></em>,
+hb_buffer_diff (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *reference</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> dottedcircle_glyph</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> position_fuzz</code></em>);</pre>
<p>If dottedcircle_glyph is (hb_codepoint_t) -1 then <a class="link" href="harfbuzz-hb-buffer.html#HB-BUFFER-DIFF-FLAG-DOTTED-CIRCLE-PRESENT:CAPS"><code class="literal">HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT</code></a>
<div class="refsect2">
<a name="hb-buffer-set-message-func"></a><h3>hb_buffer_set_message_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_buffer_set_message_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+hb_buffer_set_message_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-message-func-t" title="hb_buffer_message_func_t ()"><span class="type">hb_buffer_message_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-buffer-message-func-t"></a><h3>hb_buffer_message_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_buffer_message_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_buffer_message_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *message</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
</div>
</div>
<hr>
<div class="refsect2">
-<a name="hb-glyph-position-t-struct"></a><h3>hb_glyph_position_t</h3>
+<a name="hb-glyph-position-t"></a><h3>hb_glyph_position_t</h3>
<pre class="programlisting">typedef struct {
hb_position_t x_advance;
hb_position_t y_advance;
hb_position_t y_offset;
} hb_glyph_position_t;
</pre>
-<p>The <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t"><span class="type">hb_glyph_position_t</span></a> is the structure that holds the positions of the
+<p>The <a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t"><span class="type">hb_glyph_position_t</span></a> is the structure that holds the positions of the
glyph in both horizontal and vertical directions. All positions in
-<a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t"><span class="type">hb_glyph_position_t</span></a> are relative to the current point.</p>
+<a class="link" href="harfbuzz-hb-buffer.html#hb-glyph-position-t" title="hb_glyph_position_t"><span class="type">hb_glyph_position_t</span></a> are relative to the current point.</p>
<div class="refsect3">
<a name="hb-glyph-position-t.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
</colgroup>
<tbody>
<tr>
-<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t-struct.x-advance"></a>x_advance</code></em>;</p></td>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t.x-advance"></a>x_advance</code></em>;</p></td>
<td class="struct_member_description"><p>how much the line advances after drawing this glyph when setting
text in horizontal direction.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
-<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t-struct.y-advance"></a>y_advance</code></em>;</p></td>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t.y-advance"></a>y_advance</code></em>;</p></td>
<td class="struct_member_description"><p>how much the line advances after drawing this glyph when setting
text in vertical direction.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
-<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t-struct.x-offset"></a>x_offset</code></em>;</p></td>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t.x-offset"></a>x_offset</code></em>;</p></td>
<td class="struct_member_description"><p>how much the glyph moves on the X-axis before drawing it, this
should not affect how much the line advances.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
-<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t-struct.y-offset"></a>y_offset</code></em>;</p></td>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-glyph-position-t.y-offset"></a>y_offset</code></em>;</p></td>
<td class="struct_member_description"><p>how much the glyph moves on the Y-axis before drawing it, this
should not affect how much the line advances.</p></td>
<td class="struct_member_annotations"> </td>
</td>
<td class="enum_member_annotations"> </td>
</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-BUFFER-FLAG-DO-NOT-INSERT-DOTTED-CIRCLE:CAPS"></a>HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE</p></td>
+<td class="enum_member_description">
+<p> flag indicating that a dotted circle should
+ not be inserted in the rendering of incorrect
+ character sequences (such at <0905 093E>). Since: 2.4</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
-<a name="hb-segment-properties-t-struct"></a><h3>hb_segment_properties_t</h3>
+<a name="hb-segment-properties-t"></a><h3>hb_segment_properties_t</h3>
<pre class="programlisting">typedef struct {
hb_direction_t direction;
hb_script_t script;
hb_language_t language;
} hb_segment_properties_t;
</pre>
-<p>The structure that holds various text properties of an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>. Can be
+<p>The structure that holds various text properties of an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a>. Can be
set and retrieved using <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-segment-properties" title="hb_buffer_set_segment_properties ()"><code class="function">hb_buffer_set_segment_properties()</code></a> and
<a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-get-segment-properties" title="hb_buffer_get_segment_properties ()"><code class="function">hb_buffer_get_segment_properties()</code></a>, respectively.</p>
<div class="refsect3">
</colgroup>
<tbody>
<tr>
-<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> <em class="structfield"><code><a name="hb-segment-properties-t-struct.direction"></a>direction</code></em>;</p></td>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> <em class="structfield"><code><a name="hb-segment-properties-t.direction"></a>direction</code></em>;</p></td>
<td class="struct_member_description"><p>the <a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> of the buffer, see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-direction" title="hb_buffer_set_direction ()"><code class="function">hb_buffer_set_direction()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
-<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> <em class="structfield"><code><a name="hb-segment-properties-t-struct.script"></a>script</code></em>;</p></td>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> <em class="structfield"><code><a name="hb-segment-properties-t.script"></a>script</code></em>;</p></td>
<td class="struct_member_description"><p>the <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> of the buffer, see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-script" title="hb_buffer_set_script ()"><code class="function">hb_buffer_set_script()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
-<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> <em class="structfield"><code><a name="hb-segment-properties-t-struct.language"></a>language</code></em>;</p></td>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> <em class="structfield"><code><a name="hb-segment-properties-t.language"></a>language</code></em>;</p></td>
<td class="struct_member_description"><p>the <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> of the buffer, see <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-set-language" title="hb_buffer_set_language ()"><code class="function">hb_buffer_set_language()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-common: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch09.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-buffer.html" title="hb-buffer">
<link rel="next" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-common.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-common.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+ <a href="#harfbuzz-hb-common.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
</tr>
<tr>
<td class="function_type">
+<a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-common.html#hb-feature-from-string" title="hb_feature_from_string ()">hb_feature_from_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-common.html#hb-feature-to-string" title="hb_feature_to_string ()">hb_feature_to_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-common.html#hb-variation-from-string" title="hb_variation_from_string ()">hb_variation_from_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-common.html#hb-variation-to-string" title="hb_variation_to_string ()">hb_variation_to_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
</tbody>
</table></div>
</div>
-<a name="hb-user-data-key-t"></a><div class="refsect1">
+<div class="refsect1">
<a name="harfbuzz-hb-common.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t">hb_language_t</a></td>
</tr>
<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t">hb_feature_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-variation-t" title="hb_variation_t">hb_variation_t</a></td>
+</tr>
+<tr>
<td class="typedef_keyword">typedef</td>
<td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-mask-t" title="hb_mask_t">hb_mask_t</a></td>
</tr>
</tr>
<tr>
<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t-struct" title="hb_user_data_key_t">hb_user_data_key_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t">hb_user_data_key_t</a></td>
</tr>
<tr>
<td class="datatype_keyword"> </td>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="harfbuzz-hb-common.html#HB-LANGUAGE-INVALID:CAPS" title="HB_LANGUAGE_INVALID">HB_LANGUAGE_INVALID</a></td>
</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-common.html#HB-FEATURE-GLOBAL-END:CAPS" title="HB_FEATURE_GLOBAL_END">HB_FEATURE_GLOBAL_END</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-common.html#HB-FEATURE-GLOBAL-START:CAPS" title="HB_FEATURE_GLOBAL_START">HB_FEATURE_GLOBAL_START</a></td>
+</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
-<a name="harfbuzz-hb-common.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
- <span class="lineart">╰──</span> hb_user_data_key_t
- <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
- <span class="lineart">├──</span> hb_direction_t
- <span class="lineart">╰──</span> hb_script_t
-</pre>
-</div>
-<div class="refsect1">
<a name="harfbuzz-hb-common.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include <hb.h>
</pre>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
-<td class="parameter_description"><p> a string representing an
+<td class="parameter_description"><p>a string representing an
ISO 15924 tag. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> uint8_t]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>length of the <em class="parameter"><code>str</code></em>
-, or -1 if it is <code class="literal">NULL</code>-terminated.</p></td>
+, or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
-<td class="parameter_description"><p> a string representing
+<td class="parameter_description"><p>a string representing
a BCP 47 language tag. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> uint8_t]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>length of the <em class="parameter"><code>str</code></em>
-, or -1 if it is <code class="literal">NULL</code>-terminated.</p></td>
+, or -1 if it is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</div>
<div class="refsect3">
<a name="hb-language-to-string.returns"></a><h4>Returns</h4>
-<p>A <code class="literal">NULL</code>-terminated string representing the <em class="parameter"><code>language</code></em>
+<p>A <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated string representing the <em class="parameter"><code>language</code></em>
. Must not be freed by
the caller. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<hr>
<div class="refsect2">
+<a name="hb-feature-from-string"></a><h3>hb_feature_from_string ()</h3>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
+hb_feature_from_string (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
+ <em class="parameter"><code><span class="type">int</span> len</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *feature</code></em>);</pre>
+<p>Parses a string into a <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a>.</p>
+<p>The format for specifying feature strings follows. All valid CSS
+font-feature-settings values other than 'normal' and the global values are
+also accepted, though not documented below. CSS string escapes are not
+supported.</p>
+<p>The range indices refer to the positions between Unicode characters. The
+position before the first character is always 0.</p>
+<p>The format is Python-esque. Here is how it all works:</p>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Syntax</th>
+<th align="left">Value</th>
+<th align="left">Start</th>
+<th align="left">End</th>
+<td class="auto-generated"> </td>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">Setting value:</td>
+<td class="auto-generated"> </td>
+<td class="auto-generated"> </td>
+<td class="auto-generated"> </td>
+<td class="auto-generated"> </td>
+</tr>
+<tr>
+<td align="left">kern</td>
+<td align="left">1</td>
+<td align="left">0</td>
+<td align="left">∞</td>
+<td align="left">Turn feature on</td>
+</tr>
+<tr>
+<td align="left">+kern</td>
+<td align="left">1</td>
+<td align="left">0</td>
+<td align="left">∞</td>
+<td align="left">Turn feature on</td>
+</tr>
+<tr>
+<td align="left">-kern</td>
+<td align="left">0</td>
+<td align="left">0</td>
+<td align="left">∞</td>
+<td align="left">Turn feature off</td>
+</tr>
+<tr>
+<td align="left">kern=0</td>
+<td align="left">0</td>
+<td align="left">0</td>
+<td align="left">∞</td>
+<td align="left">Turn feature off</td>
+</tr>
+<tr>
+<td align="left">kern=1</td>
+<td align="left">1</td>
+<td align="left">0</td>
+<td align="left">∞</td>
+<td align="left">Turn feature on</td>
+</tr>
+<tr>
+<td align="left">aalt=2</td>
+<td align="left">2</td>
+<td align="left">0</td>
+<td align="left">∞</td>
+<td align="left">Choose 2nd alternate</td>
+</tr>
+<tr>
+<td align="left">Setting index:</td>
+<td class="auto-generated"> </td>
+<td class="auto-generated"> </td>
+<td class="auto-generated"> </td>
+<td class="auto-generated"> </td>
+</tr>
+<tr>
+<td align="left">kern[]</td>
+<td align="left">1</td>
+<td align="left">0</td>
+<td align="left">∞</td>
+<td align="left">Turn feature on</td>
+</tr>
+<tr>
+<td align="left">kern[:]</td>
+<td align="left">1</td>
+<td align="left">0</td>
+<td align="left">∞</td>
+<td align="left">Turn feature on</td>
+</tr>
+<tr>
+<td align="left">kern[5:]</td>
+<td align="left">1</td>
+<td align="left">5</td>
+<td align="left">∞</td>
+<td align="left">Turn feature on, partial</td>
+</tr>
+<tr>
+<td align="left">kern[:5]</td>
+<td align="left">1</td>
+<td align="left">0</td>
+<td align="left">5</td>
+<td align="left">Turn feature on, partial</td>
+</tr>
+<tr>
+<td align="left">kern[3:5]</td>
+<td align="left">1</td>
+<td align="left">3</td>
+<td align="left">5</td>
+<td align="left">Turn feature on, range</td>
+</tr>
+<tr>
+<td align="left">kern[3]</td>
+<td align="left">1</td>
+<td align="left">3</td>
+<td align="left">3+1</td>
+<td align="left">Turn feature on, single char</td>
+</tr>
+<tr>
+<td align="left">Mixing it all:</td>
+<td class="auto-generated"> </td>
+<td class="auto-generated"> </td>
+<td class="auto-generated"> </td>
+<td class="auto-generated"> </td>
+</tr>
+<tr>
+<td align="left">aalt[3:5]=2</td>
+<td align="left">2</td>
+<td align="left">3</td>
+<td align="left">5</td>
+<td align="left">Turn 2nd alternate on for range</td>
+</tr>
+</tbody>
+</table></div>
+<div class="refsect3">
+<a name="hb-feature-from-string.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>str</p></td>
+<td class="parameter_description"><p>a string to parse. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> uint8_t]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>len</p></td>
+<td class="parameter_description"><p>length of <em class="parameter"><code>str</code></em>
+, or -1 if string is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>feature</p></td>
+<td class="parameter_description"><p>the <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> to initialize with the parsed values. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="hb-feature-from-string.returns"></a><h4>Returns</h4>
+<p><code class="literal">true</code> if <em class="parameter"><code>str</code></em>
+is successfully parsed, <code class="literal">false</code> otherwise.</p>
+</div>
+<p class="since">Since: <a class="link" href="api-index-0-9-5.html#api-index-0.9.5">0.9.5</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-feature-to-string"></a><h3>hb_feature_to_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hb_feature_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *feature</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> size</code></em>);</pre>
+<p>Converts a <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> into a <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated string in the format
+understood by <a class="link" href="harfbuzz-hb-common.html#hb-feature-from-string" title="hb_feature_from_string ()"><code class="function">hb_feature_from_string()</code></a>. The client in responsible for
+allocating big enough size for <em class="parameter"><code>buf</code></em>
+, 128 bytes is more than enough.</p>
+<div class="refsect3">
+<a name="hb-feature-to-string.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>feature</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> to convert</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>output string. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>size</p></td>
+<td class="parameter_description"><p>the allocated size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: <a class="link" href="api-index-0-9-5.html#api-index-0.9.5">0.9.5</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-variation-from-string"></a><h3>hb_variation_from_string ()</h3>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
+hb_variation_from_string (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
+ <em class="parameter"><code><span class="type">int</span> len</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-variation-t" title="hb_variation_t"><span class="type">hb_variation_t</span></a> *variation</code></em>);</pre>
+<p class="since">Since: <a class="link" href="api-index-1-4-2.html#api-index-1.4.2">1.4.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-variation-to-string"></a><h3>hb_variation_to_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hb_variation_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-variation-t" title="hb_variation_t"><span class="type">hb_variation_t</span></a> *variation</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> size</code></em>);</pre>
+<p class="since">Since: <a class="link" href="api-index-1-4-2.html#api-index-1.4.2">1.4.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
<a name="hb-destroy-func-t"></a><h3>hb_destroy_func_t ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
<span class="c_punctuation">(</span>*hb_destroy_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
+<a name="hb-feature-t"></a><h3>hb_feature_t</h3>
+<pre class="programlisting">typedef struct {
+ hb_tag_t tag;
+ uint32_t value;
+ unsigned int start;
+ unsigned int end;
+} hb_feature_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-variation-t"></a><h3>hb_variation_t</h3>
+<pre class="programlisting">typedef struct {
+ hb_tag_t tag;
+ float value;
+} hb_variation_t;
+</pre>
+<p class="since">Since: <a class="link" href="api-index-1-4-2.html#api-index-1.4.2">1.4.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
<a name="hb-mask-t"></a><h3>hb_mask_t</h3>
<pre class="programlisting">typedef uint32_t hb_mask_t;
</pre>
</colgroup>
<tbody>
<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-COMMON:CAPS"></a>HB_SCRIPT_COMMON</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-INHERITED:CAPS"></a>HB_SCRIPT_INHERITED</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-UNKNOWN:CAPS"></a>HB_SCRIPT_UNKNOWN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-ARABIC:CAPS"></a>HB_SCRIPT_ARABIC</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-ARMENIAN:CAPS"></a>HB_SCRIPT_ARMENIAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-BENGALI:CAPS"></a>HB_SCRIPT_BENGALI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-CYRILLIC:CAPS"></a>HB_SCRIPT_CYRILLIC</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-DEVANAGARI:CAPS"></a>HB_SCRIPT_DEVANAGARI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-GEORGIAN:CAPS"></a>HB_SCRIPT_GEORGIAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-GREEK:CAPS"></a>HB_SCRIPT_GREEK</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-GUJARATI:CAPS"></a>HB_SCRIPT_GUJARATI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-GURMUKHI:CAPS"></a>HB_SCRIPT_GURMUKHI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-HANGUL:CAPS"></a>HB_SCRIPT_HANGUL</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-HAN:CAPS"></a>HB_SCRIPT_HAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-HEBREW:CAPS"></a>HB_SCRIPT_HEBREW</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-HIRAGANA:CAPS"></a>HB_SCRIPT_HIRAGANA</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-KANNADA:CAPS"></a>HB_SCRIPT_KANNADA</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-KATAKANA:CAPS"></a>HB_SCRIPT_KATAKANA</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-LAO:CAPS"></a>HB_SCRIPT_LAO</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-LATIN:CAPS"></a>HB_SCRIPT_LATIN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MALAYALAM:CAPS"></a>HB_SCRIPT_MALAYALAM</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-ORIYA:CAPS"></a>HB_SCRIPT_ORIYA</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-TAMIL:CAPS"></a>HB_SCRIPT_TAMIL</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-TELUGU:CAPS"></a>HB_SCRIPT_TELUGU</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-THAI:CAPS"></a>HB_SCRIPT_THAI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-TIBETAN:CAPS"></a>HB_SCRIPT_TIBETAN</p></td>
+<td class="enum_member_name"><p><a name="HB-SCRIPT-BASSA-VAH:CAPS"></a>HB_SCRIPT_BASSA_VAH</p></td>
<td> </td>
<td> </td>
</tr>
<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-BOPOMOFO:CAPS"></a>HB_SCRIPT_BOPOMOFO</p></td>
+<td class="enum_member_name"><p><a name="HB-SCRIPT-ADLAM:CAPS"></a>HB_SCRIPT_ADLAM</p></td>
<td> </td>
<td> </td>
</tr>
<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-BRAILLE:CAPS"></a>HB_SCRIPT_BRAILLE</p></td>
+<td class="enum_member_name"><p><a name="HB-SCRIPT-MASARAM-GONDI:CAPS"></a>HB_SCRIPT_MASARAM_GONDI</p></td>
<td> </td>
<td> </td>
</tr>
<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-CANADIAN-SYLLABICS:CAPS"></a>HB_SCRIPT_CANADIAN_SYLLABICS</p></td>
+<td class="enum_member_name"><p><a name="HB-SCRIPT-DOGRA:CAPS"></a>HB_SCRIPT_DOGRA</p></td>
<td> </td>
<td> </td>
</tr>
<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-CHEROKEE:CAPS"></a>HB_SCRIPT_CHEROKEE</p></td>
+<td class="enum_member_name"><p><a name="HB-SCRIPT-ELYMAIC:CAPS"></a>HB_SCRIPT_ELYMAIC</p></td>
<td> </td>
<td> </td>
</tr>
<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-ETHIOPIC:CAPS"></a>HB_SCRIPT_ETHIOPIC</p></td>
+<td class="enum_member_name"><p><a name="HB-SCRIPT-INVALID:CAPS"></a>HB_SCRIPT_INVALID</p></td>
<td> </td>
<td> </td>
</tr>
<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-KHMER:CAPS"></a>HB_SCRIPT_KHMER</p></td>
+<td class="enum_member_name"><p><a name="HB-SCRIPT-MAX-VALUE:CAPS"></a>_HB_SCRIPT_MAX_VALUE</p></td>
<td> </td>
<td> </td>
</tr>
<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MONGOLIAN:CAPS"></a>HB_SCRIPT_MONGOLIAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MYANMAR:CAPS"></a>HB_SCRIPT_MYANMAR</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-OGHAM:CAPS"></a>HB_SCRIPT_OGHAM</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-RUNIC:CAPS"></a>HB_SCRIPT_RUNIC</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-SINHALA:CAPS"></a>HB_SCRIPT_SINHALA</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-SYRIAC:CAPS"></a>HB_SCRIPT_SYRIAC</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-THAANA:CAPS"></a>HB_SCRIPT_THAANA</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-YI:CAPS"></a>HB_SCRIPT_YI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-DESERET:CAPS"></a>HB_SCRIPT_DESERET</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-GOTHIC:CAPS"></a>HB_SCRIPT_GOTHIC</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-OLD-ITALIC:CAPS"></a>HB_SCRIPT_OLD_ITALIC</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-BUHID:CAPS"></a>HB_SCRIPT_BUHID</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-HANUNOO:CAPS"></a>HB_SCRIPT_HANUNOO</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-TAGALOG:CAPS"></a>HB_SCRIPT_TAGALOG</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-TAGBANWA:CAPS"></a>HB_SCRIPT_TAGBANWA</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-CYPRIOT:CAPS"></a>HB_SCRIPT_CYPRIOT</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-LIMBU:CAPS"></a>HB_SCRIPT_LIMBU</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-LINEAR-B:CAPS"></a>HB_SCRIPT_LINEAR_B</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-OSMANYA:CAPS"></a>HB_SCRIPT_OSMANYA</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-SHAVIAN:CAPS"></a>HB_SCRIPT_SHAVIAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-TAI-LE:CAPS"></a>HB_SCRIPT_TAI_LE</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-UGARITIC:CAPS"></a>HB_SCRIPT_UGARITIC</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-BUGINESE:CAPS"></a>HB_SCRIPT_BUGINESE</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-COPTIC:CAPS"></a>HB_SCRIPT_COPTIC</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-GLAGOLITIC:CAPS"></a>HB_SCRIPT_GLAGOLITIC</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-KHAROSHTHI:CAPS"></a>HB_SCRIPT_KHAROSHTHI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-NEW-TAI-LUE:CAPS"></a>HB_SCRIPT_NEW_TAI_LUE</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-OLD-PERSIAN:CAPS"></a>HB_SCRIPT_OLD_PERSIAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-SYLOTI-NAGRI:CAPS"></a>HB_SCRIPT_SYLOTI_NAGRI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-TIFINAGH:CAPS"></a>HB_SCRIPT_TIFINAGH</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-BALINESE:CAPS"></a>HB_SCRIPT_BALINESE</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-CUNEIFORM:CAPS"></a>HB_SCRIPT_CUNEIFORM</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-NKO:CAPS"></a>HB_SCRIPT_NKO</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-PHAGS-PA:CAPS"></a>HB_SCRIPT_PHAGS_PA</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-PHOENICIAN:CAPS"></a>HB_SCRIPT_PHOENICIAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-CARIAN:CAPS"></a>HB_SCRIPT_CARIAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-CHAM:CAPS"></a>HB_SCRIPT_CHAM</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-KAYAH-LI:CAPS"></a>HB_SCRIPT_KAYAH_LI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-LEPCHA:CAPS"></a>HB_SCRIPT_LEPCHA</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-LYCIAN:CAPS"></a>HB_SCRIPT_LYCIAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-LYDIAN:CAPS"></a>HB_SCRIPT_LYDIAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-OL-CHIKI:CAPS"></a>HB_SCRIPT_OL_CHIKI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-REJANG:CAPS"></a>HB_SCRIPT_REJANG</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-SAURASHTRA:CAPS"></a>HB_SCRIPT_SAURASHTRA</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-SUNDANESE:CAPS"></a>HB_SCRIPT_SUNDANESE</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-VAI:CAPS"></a>HB_SCRIPT_VAI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-AVESTAN:CAPS"></a>HB_SCRIPT_AVESTAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-BAMUM:CAPS"></a>HB_SCRIPT_BAMUM</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-EGYPTIAN-HIEROGLYPHS:CAPS"></a>HB_SCRIPT_EGYPTIAN_HIEROGLYPHS</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-IMPERIAL-ARAMAIC:CAPS"></a>HB_SCRIPT_IMPERIAL_ARAMAIC</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-INSCRIPTIONAL-PAHLAVI:CAPS"></a>HB_SCRIPT_INSCRIPTIONAL_PAHLAVI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-INSCRIPTIONAL-PARTHIAN:CAPS"></a>HB_SCRIPT_INSCRIPTIONAL_PARTHIAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-JAVANESE:CAPS"></a>HB_SCRIPT_JAVANESE</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-KAITHI:CAPS"></a>HB_SCRIPT_KAITHI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-LISU:CAPS"></a>HB_SCRIPT_LISU</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MEETEI-MAYEK:CAPS"></a>HB_SCRIPT_MEETEI_MAYEK</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-OLD-SOUTH-ARABIAN:CAPS"></a>HB_SCRIPT_OLD_SOUTH_ARABIAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-OLD-TURKIC:CAPS"></a>HB_SCRIPT_OLD_TURKIC</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-SAMARITAN:CAPS"></a>HB_SCRIPT_SAMARITAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-TAI-THAM:CAPS"></a>HB_SCRIPT_TAI_THAM</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-TAI-VIET:CAPS"></a>HB_SCRIPT_TAI_VIET</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-BATAK:CAPS"></a>HB_SCRIPT_BATAK</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-BRAHMI:CAPS"></a>HB_SCRIPT_BRAHMI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MANDAIC:CAPS"></a>HB_SCRIPT_MANDAIC</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-CHAKMA:CAPS"></a>HB_SCRIPT_CHAKMA</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MEROITIC-CURSIVE:CAPS"></a>HB_SCRIPT_MEROITIC_CURSIVE</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MEROITIC-HIEROGLYPHS:CAPS"></a>HB_SCRIPT_MEROITIC_HIEROGLYPHS</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MIAO:CAPS"></a>HB_SCRIPT_MIAO</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-SHARADA:CAPS"></a>HB_SCRIPT_SHARADA</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-SORA-SOMPENG:CAPS"></a>HB_SCRIPT_SORA_SOMPENG</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-TAKRI:CAPS"></a>HB_SCRIPT_TAKRI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-BASSA-VAH:CAPS"></a>HB_SCRIPT_BASSA_VAH</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-CAUCASIAN-ALBANIAN:CAPS"></a>HB_SCRIPT_CAUCASIAN_ALBANIAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-DUPLOYAN:CAPS"></a>HB_SCRIPT_DUPLOYAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-ELBASAN:CAPS"></a>HB_SCRIPT_ELBASAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-GRANTHA:CAPS"></a>HB_SCRIPT_GRANTHA</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-KHOJKI:CAPS"></a>HB_SCRIPT_KHOJKI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-KHUDAWADI:CAPS"></a>HB_SCRIPT_KHUDAWADI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-LINEAR-A:CAPS"></a>HB_SCRIPT_LINEAR_A</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MAHAJANI:CAPS"></a>HB_SCRIPT_MAHAJANI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MANICHAEAN:CAPS"></a>HB_SCRIPT_MANICHAEAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MENDE-KIKAKUI:CAPS"></a>HB_SCRIPT_MENDE_KIKAKUI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MODI:CAPS"></a>HB_SCRIPT_MODI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MRO:CAPS"></a>HB_SCRIPT_MRO</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-NABATAEAN:CAPS"></a>HB_SCRIPT_NABATAEAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-OLD-NORTH-ARABIAN:CAPS"></a>HB_SCRIPT_OLD_NORTH_ARABIAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-OLD-PERMIC:CAPS"></a>HB_SCRIPT_OLD_PERMIC</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-PAHAWH-HMONG:CAPS"></a>HB_SCRIPT_PAHAWH_HMONG</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-PALMYRENE:CAPS"></a>HB_SCRIPT_PALMYRENE</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-PAU-CIN-HAU:CAPS"></a>HB_SCRIPT_PAU_CIN_HAU</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-PSALTER-PAHLAVI:CAPS"></a>HB_SCRIPT_PSALTER_PAHLAVI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-SIDDHAM:CAPS"></a>HB_SCRIPT_SIDDHAM</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-TIRHUTA:CAPS"></a>HB_SCRIPT_TIRHUTA</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-WARANG-CITI:CAPS"></a>HB_SCRIPT_WARANG_CITI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-AHOM:CAPS"></a>HB_SCRIPT_AHOM</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-ANATOLIAN-HIEROGLYPHS:CAPS"></a>HB_SCRIPT_ANATOLIAN_HIEROGLYPHS</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-HATRAN:CAPS"></a>HB_SCRIPT_HATRAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MULTANI:CAPS"></a>HB_SCRIPT_MULTANI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-OLD-HUNGARIAN:CAPS"></a>HB_SCRIPT_OLD_HUNGARIAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-SIGNWRITING:CAPS"></a>HB_SCRIPT_SIGNWRITING</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-ADLAM:CAPS"></a>HB_SCRIPT_ADLAM</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-BHAIKSUKI:CAPS"></a>HB_SCRIPT_BHAIKSUKI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MARCHEN:CAPS"></a>HB_SCRIPT_MARCHEN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-OSAGE:CAPS"></a>HB_SCRIPT_OSAGE</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-TANGUT:CAPS"></a>HB_SCRIPT_TANGUT</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-NEWA:CAPS"></a>HB_SCRIPT_NEWA</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MASARAM-GONDI:CAPS"></a>HB_SCRIPT_MASARAM_GONDI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-NUSHU:CAPS"></a>HB_SCRIPT_NUSHU</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-SOYOMBO:CAPS"></a>HB_SCRIPT_SOYOMBO</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-ZANABAZAR-SQUARE:CAPS"></a>HB_SCRIPT_ZANABAZAR_SQUARE</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-DOGRA:CAPS"></a>HB_SCRIPT_DOGRA</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-GUNJALA-GONDI:CAPS"></a>HB_SCRIPT_GUNJALA_GONDI</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-HANIFI-ROHINGYA:CAPS"></a>HB_SCRIPT_HANIFI_ROHINGYA</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MAKASAR:CAPS"></a>HB_SCRIPT_MAKASAR</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MEDEFAIDRIN:CAPS"></a>HB_SCRIPT_MEDEFAIDRIN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-OLD-SOGDIAN:CAPS"></a>HB_SCRIPT_OLD_SOGDIAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-SOGDIAN:CAPS"></a>HB_SCRIPT_SOGDIAN</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-INVALID:CAPS"></a>HB_SCRIPT_INVALID</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MAX-VALUE:CAPS"></a>_HB_SCRIPT_MAX_VALUE</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="HB-SCRIPT-MAX-VALUE-SIGNED:CAPS"></a>_HB_SCRIPT_MAX_VALUE_SIGNED</p></td>
+<td class="enum_member_name"><p><a name="HB-SCRIPT-MAX-VALUE-SIGNED:CAPS"></a>_HB_SCRIPT_MAX_VALUE_SIGNED</p></td>
<td> </td>
<td> </td>
</tr>
</div>
<hr>
<div class="refsect2">
-<a name="hb-user-data-key-t-struct"></a><h3>hb_user_data_key_t</h3>
+<a name="hb-user-data-key-t"></a><h3>hb_user_data_key_t</h3>
<pre class="programlisting">typedef struct {
} hb_user_data_key_t;
</pre>
<pre class="programlisting">#define HB_LANGUAGE_INVALID ((hb_language_t) 0)
</pre>
</div>
+<hr>
+<div class="refsect2">
+<a name="HB-FEATURE-GLOBAL-END:CAPS"></a><h3>HB_FEATURE_GLOBAL_END</h3>
+<pre class="programlisting">#define HB_FEATURE_GLOBAL_END ((unsigned int) -1)
+</pre>
+<p class="since">Since: <a class="link" href="api-index-2-0-0.html#api-index-2.0.0">2.0.0</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HB-FEATURE-GLOBAL-START:CAPS"></a><h3>HB_FEATURE_GLOBAL_START</h3>
+<pre class="programlisting">#define HB_FEATURE_GLOBAL_START 0
+</pre>
+<p class="since">Since: <a class="link" href="api-index-2-0-0.html#api-index-2.0.0">2.0.0</a></p>
+</div>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-coretext: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch12.html" title="Integration API">
<link rel="prev" href="ch12.html" title="Integration API">
<link rel="next" href="harfbuzz-hb-ft.html" title="hb-ft">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<tbody>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-coretext.html#hb-coretext-face-create" title="hb_coretext_face_create ()">hb_coretext_face_create</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-coretext.html#hb-coretext-font-create" title="hb_coretext_font_create ()">hb_coretext_font_create</a> <span class="c_punctuation">()</span>
<a name="harfbuzz-hb-coretext.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="hb-coretext-face-create"></a><h3>hb_coretext_face_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
hb_coretext_face_create (<em class="parameter"><code><span class="type">CGFontRef</span> cg_font</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-coretext-font-create"></a><h3>hb_coretext_font_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
hb_coretext_font_create (<em class="parameter"><code><span class="type">CTFontRef</span> ct_font</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-coretext-face-get-cg-font"></a><h3>hb_coretext_face_get_cg_font ()</h3>
<pre class="programlisting"><span class="returnvalue">CGFontRef</span>
-hb_coretext_face_get_cg_font (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_coretext_face_get_cg_font (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-coretext-font-get-ct-font"></a><h3>hb_coretext_font_get_ct_font ()</h3>
<pre class="programlisting"><span class="returnvalue">CTFontRef</span>
-hb_coretext_font_get_ct_font (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_coretext_font_get_ct_font (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
</div>
</div>
<div class="refsect1">
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-deprecated: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch09.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-common.html" title="hb-common">
<link rel="next" href="harfbuzz-hb-face.html" title="hb-face">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="refsect2">
<a name="hb-font-get-glyph-func-t"></a><h3>hb_font_get_glyph_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_glyph_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_glyph_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> variation_selector</code></em>,
<div class="refsect2">
<a name="hb-ot-layout-table-find-script"></a><h3>hb_ot_layout_table_find_script ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_table_find_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_table_find_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> script_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *script_index</code></em>);</pre>
<a name="hb-font-funcs-set-glyph-h-kerning-func"></a><h3>hb_font_funcs_set_glyph_h_kerning_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_funcs_set_glyph_h_kerning_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-h-kerning-func-t" title="hb_font_get_glyph_h_kerning_func_t"><span class="type">hb_font_get_glyph_h_kerning_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<a name="hb-font-funcs-set-glyph-v-kerning-func"></a><h3>hb_font_funcs_set_glyph_v_kerning_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_funcs_set_glyph_v_kerning_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-deprecated.html#hb-font-get-glyph-v-kerning-func-t" title="hb_font_get_glyph_v_kerning_func_t"><span class="type">hb_font_get_glyph_v_kerning_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-get-glyph-h-kerning"></a><h3>hb_font_get_glyph_h_kerning ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-hb_font_get_glyph_h_kerning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_h_kerning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> left_glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> right_glyph</code></em>);</pre>
<div class="warning"><p><code class="literal">hb_font_get_glyph_h_kerning</code> has been deprecated since version 2.0.0 and should not be used in newly-written code.</p></div>
<a name="hb-font-get-glyph-kerning-for-direction"></a><h3>hb_font_get_glyph_kerning_for_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_get_glyph_kerning_for_direction
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> first_glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> second_glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<div class="refsect2">
<a name="hb-font-get-glyph-kerning-func-t"></a><h3>hb_font_get_glyph_kerning_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_glyph_kerning_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_glyph_kerning_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> first_glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> second_glyph</code></em>,
<div class="refsect2">
<a name="hb-font-get-glyph-v-kerning"></a><h3>hb_font_get_glyph_v_kerning ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-hb_font_get_glyph_v_kerning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_v_kerning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> top_glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> bottom_glyph</code></em>);</pre>
<div class="warning"><p><code class="literal">hb_font_get_glyph_v_kerning</code> has been deprecated since version 2.0.0 and should not be used in newly-written code.</p></div>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-face: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch09.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">
<link rel="next" href="harfbuzz-hb-font.html" title="hb-font">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-face.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-face.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+ <a href="#harfbuzz-hb-face.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-face.html#hb-face-create" title="hb_face_create ()">hb_face_create</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-face.html#hb-face-create-for-tables" title="hb_face_create_for_tables ()">hb_face_create_for_tables</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-face.html#hb-face-get-empty" title="hb_face_get_empty ()">hb_face_get_empty</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-face.html#hb-face-reference" title="hb_face_reference ()">hb_face_reference</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-face.html#hb-face-reference-blob" title="hb_face_reference_blob ()">hb_face_reference_blob</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-face.html#hb-face-reference-table" title="hb_face_reference_table ()">hb_face_reference_table</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-face.html#hb-face-builder-create" title="hb_face_builder_create ()">hb_face_builder_create</a> <span class="c_punctuation">()</span>
</tbody>
</table></div>
</div>
-<a name="hb-face-t"></a><div class="refsect1">
+<div class="refsect1">
<a name="harfbuzz-hb-face.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
</colgroup>
<tbody><tr>
<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-face.html#hb-face-t">hb_face_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t">hb_face_t</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
-<a name="harfbuzz-hb-face.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
- <span class="lineart">╰──</span> hb_face_t
-</pre>
-</div>
-<div class="refsect1">
<a name="harfbuzz-hb-face.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include <hb.h>
</pre>
<div class="refsect2">
<a name="hb-face-count"></a><h3>hb_face_count ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_face_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
+hb_face_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
<p>Get number of faces in a blob.</p>
<div class="refsect3">
<a name="hb-face-count.parameters"></a><h4>Parameters</h4>
<hr>
<div class="refsect2">
<a name="hb-face-create"></a><h3>hb_face_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
-hb_face_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+hb_face_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> index</code></em>);</pre>
<p><span class="annotation">[Xconstructor]</span></p>
<div class="refsect3">
<hr>
<div class="refsect2">
<a name="hb-face-create-for-tables"></a><h3>hb_face_create_for_tables ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
hb_face_create_for_tables (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-reference-table-func-t" title="hb_reference_table_func_t ()"><span class="type">hb_reference_table_func_t</span></a> reference_table_func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect2">
<a name="hb-face-destroy"></a><h3>hb_face_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_face_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_face_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-face-destroy.parameters"></a><h4>Parameters</h4>
<hr>
<div class="refsect2">
<a name="hb-face-get-empty"></a><h3>hb_face_get_empty ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
hb_face_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="refsect3">
<a name="hb-face-get-empty.returns"></a><h4>Returns</h4>
<div class="refsect2">
<a name="hb-face-get-table-tags"></a><h3>hb_face_get_table_tags ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_face_get_table_tags (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_face_get_table_tags (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *table_count</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *table_tags</code></em>);</pre>
<div class="refsect2">
<a name="hb-face-get-glyph-count"></a><h3>hb_face_get_glyph_count ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_face_get_glyph_count (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_face_get_glyph_count (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-get-glyph-count.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-face-get-index"></a><h3>hb_face_get_index ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_face_get_index (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_face_get_index (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-get-index.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-face-get-upem"></a><h3>hb_face_get_upem ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_face_get_upem (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_face_get_upem (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-get-upem.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-face-get-user-data"></a><h3>hb_face_get_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> *
-hb_face_get_user_data (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
+hb_face_get_user_data (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-face-get-user-data.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-face-is-immutable"></a><h3>hb_face_is_immutable ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_face_is_immutable (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_face_is_immutable (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-is-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-face-make-immutable"></a><h3>hb_face_make_immutable ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_face_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_face_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-make-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<hr>
<div class="refsect2">
<a name="hb-face-reference"></a><h3>hb_face_reference ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
-hb_face_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+hb_face_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-face-reference.parameters"></a><h4>Parameters</h4>
<hr>
<div class="refsect2">
<a name="hb-face-reference-blob"></a><h3>hb_face_reference_blob ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
-hb_face_reference_blob (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+hb_face_reference_blob (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-reference-blob.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<hr>
<div class="refsect2">
<a name="hb-face-reference-table"></a><h3>hb_face_reference_table ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
-hb_face_reference_table (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+hb_face_reference_table (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> tag</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-reference-table.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-face-set-glyph-count"></a><h3>hb_face_set_glyph_count ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_face_set_glyph_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_face_set_glyph_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> glyph_count</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-set-glyph-count.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-face-set-index"></a><h3>hb_face_set_index ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_face_set_index (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_face_set_index (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> index</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-set-index.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-face-set-upem"></a><h3>hb_face_set_upem ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_face_set_upem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_face_set_upem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> upem</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-set-upem.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-face-set-user-data"></a><h3>hb_face_set_user_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_face_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
+hb_face_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
<em class="parameter"><code><span class="type">void</span> *data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
<div class="refsect2">
<a name="hb-face-collect-unicodes"></a><h3>hb_face_collect_unicodes ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_face_collect_unicodes (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *out</code></em>);</pre>
+hb_face_collect_unicodes (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *out</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-collect-unicodes.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-face-collect-variation-selectors"></a><h3>hb_face_collect_variation_selectors ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_face_collect_variation_selectors (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *out</code></em>);</pre>
+hb_face_collect_variation_selectors (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *out</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-collect-variation-selectors.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-face-collect-variation-unicodes"></a><h3>hb_face_collect_variation_unicodes ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_face_collect_variation_unicodes (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_face_collect_variation_unicodes (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> variation_selector</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *out</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *out</code></em>);</pre>
<div class="refsect3">
<a name="hb-face-collect-variation-unicodes.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<hr>
<div class="refsect2">
<a name="hb-face-builder-create"></a><h3>hb_face_builder_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
hb_face_builder_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Creates a <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> that can be used with <a class="link" href="harfbuzz-hb-face.html#hb-face-builder-add-table" title="hb_face_builder_add_table ()"><code class="function">hb_face_builder_add_table()</code></a>.
+<p>Creates a <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> that can be used with <a class="link" href="harfbuzz-hb-face.html#hb-face-builder-add-table" title="hb_face_builder_add_table ()"><code class="function">hb_face_builder_add_table()</code></a>.
After tables are added to the face, it can be compiled to a binary
font file by calling <a class="link" href="harfbuzz-hb-face.html#hb-face-reference-blob" title="hb_face_reference_blob ()"><code class="function">hb_face_reference_blob()</code></a>.</p>
<div class="refsect3">
<a name="hb-face-builder-create.returns"></a><h4>Returns</h4>
-<p> New face. </p>
+<p>New face. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-1-9-0.html#api-index-1.9.0">1.9.0</a></p>
<div class="refsect2">
<a name="hb-face-builder-add-table"></a><h3>hb_face_builder_add_table ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_face_builder_add_table (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_face_builder_add_table (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> tag</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
<p>Add table for <em class="parameter"><code>tag</code></em>
with data provided by <em class="parameter"><code>blob</code></em>
to the face. <em class="parameter"><code>face</code></em>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-font: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch09.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-face.html" title="hb-face">
<link rel="next" href="harfbuzz-hb-map.html" title="hb-map">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-font.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-font.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+ <a href="#harfbuzz-hb-font.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-create" title="hb_font_create ()">hb_font_create</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-create-sub-font" title="hb_font_create_sub_font ()">hb_font_create_sub_font</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="returnvalue">hb_font_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="returnvalue">hb_font_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-create" title="hb_font_funcs_create ()">hb_font_funcs_create</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="returnvalue">hb_font_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="returnvalue">hb_font_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-get-empty" title="hb_font_funcs_get_empty ()">hb_font_funcs_get_empty</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="returnvalue">hb_font_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="returnvalue">hb_font_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-reference" title="hb_font_funcs_reference ()">hb_font_funcs_reference</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-get-empty" title="hb_font_get_empty ()">hb_font_get_empty</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-get-face" title="hb_font_get_face ()">hb_font_get_face</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-get-parent" title="hb_font_get_parent ()">hb_font_get_parent</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-font.html#hb-font-reference" title="hb_font_reference ()">hb_font_reference</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-font.html#hb-variation-from-string" title="hb_variation_from_string ()">hb_variation_from_string</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">void</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-font.html#hb-variation-to-string" title="hb_variation_to_string ()">hb_variation_to_string</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="harfbuzz-hb-font.html#hb-reference-table-func-t" title="hb_reference_table_func_t ()">*hb_reference_table_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</tbody>
</table></div>
</div>
-<a name="hb-font-funcs-t"></a><a name="hb-font-t"></a><div class="refsect1">
+<div class="refsect1">
<a name="harfbuzz-hb-font.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<tbody>
<tr>
<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t">hb_font_funcs_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t">hb_font_funcs_t</a></td>
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
<td class="function_name"><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-v-origin-func-t" title="hb_font_get_glyph_v_origin_func_t">hb_font_get_glyph_v_origin_func_t</a></td>
</tr>
<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-font.html#hb-variation-t" title="hb_variation_t">hb_variation_t</a></td>
-</tr>
-<tr>
<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-font.html#hb-font-t">hb_font_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t">hb_font_t</a></td>
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
</table></div>
</div>
<div class="refsect1">
-<a name="harfbuzz-hb-font.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
- <span class="lineart">├──</span> hb_font_funcs_t
- <span class="lineart">╰──</span> hb_font_t
-</pre>
-</div>
-<div class="refsect1">
<a name="harfbuzz-hb-font.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include <hb.h>
</pre>
<a name="hb-font-add-glyph-origin-for-direction"></a><h3>hb_font_add_glyph_origin_for_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_add_glyph_origin_for_direction
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
<hr>
<div class="refsect2">
<a name="hb-font-create"></a><h3>hb_font_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
-hb_font_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
+hb_font_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<p><span class="annotation">[Xconstructor]</span></p>
<div class="refsect3">
<a name="hb-font-create.parameters"></a><h4>Parameters</h4>
<hr>
<div class="refsect2">
<a name="hb-font-create-sub-font"></a><h3>hb_font_create_sub_font ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
-hb_font_create_sub_font (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *parent</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
+hb_font_create_sub_font (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *parent</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-create-sub-font.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-font-destroy"></a><h3>hb_font_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_font_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-font-destroy.parameters"></a><h4>Parameters</h4>
<hr>
<div class="refsect2">
<a name="hb-font-funcs-create"></a><h3>hb_font_funcs_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="returnvalue">hb_font_funcs_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="returnvalue">hb_font_funcs_t</span></a> *
hb_font_funcs_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p><span class="annotation">[Xconstructor]</span></p>
<div class="refsect3">
<div class="refsect2">
<a name="hb-font-funcs-destroy"></a><h3>hb_font_funcs_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
+hb_font_funcs_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-font-funcs-destroy.parameters"></a><h4>Parameters</h4>
<hr>
<div class="refsect2">
<a name="hb-font-funcs-get-empty"></a><h3>hb_font_funcs_get_empty ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="returnvalue">hb_font_funcs_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="returnvalue">hb_font_funcs_t</span></a> *
hb_font_funcs_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="refsect3">
<a name="hb-font-funcs-get-empty.returns"></a><h4>Returns</h4>
<div class="refsect2">
<a name="hb-font-funcs-get-user-data"></a><h3>hb_font_funcs_get_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> *
-hb_font_funcs_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
+hb_font_funcs_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-font-funcs-get-user-data.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-font-funcs-is-immutable"></a><h3>hb_font_funcs_is_immutable ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_funcs_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
+hb_font_funcs_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-funcs-is-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-font-funcs-make-immutable"></a><h3>hb_font_funcs_make_immutable ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
+hb_font_funcs_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-funcs-make-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<hr>
<div class="refsect2">
<a name="hb-font-funcs-reference"></a><h3>hb_font_funcs_reference ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="returnvalue">hb_font_funcs_t</span></a> *
-hb_font_funcs_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="returnvalue">hb_font_funcs_t</span></a> *
+hb_font_funcs_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-font-funcs-reference.parameters"></a><h4>Parameters</h4>
<a name="hb-font-funcs-set-glyph-contour-point-func"></a><h3>hb_font_funcs_set_glyph_contour_point_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_funcs_set_glyph_contour_point_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-contour-point-func-t" title="hb_font_get_glyph_contour_point_func_t ()"><span class="type">hb_font_get_glyph_contour_point_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-funcs-set-glyph-extents-func"></a><h3>hb_font_funcs_set_glyph_extents_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_set_glyph_extents_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+hb_font_funcs_set_glyph_extents_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-extents-func-t" title="hb_font_get_glyph_extents_func_t ()"><span class="type">hb_font_get_glyph_extents_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<a name="hb-font-funcs-set-glyph-from-name-func"></a><h3>hb_font_funcs_set_glyph_from_name_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_funcs_set_glyph_from_name_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-from-name-func-t" title="hb_font_get_glyph_from_name_func_t ()"><span class="type">hb_font_get_glyph_from_name_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<a name="hb-font-funcs-set-glyph-h-advance-func"></a><h3>hb_font_funcs_set_glyph_h_advance_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_funcs_set_glyph_h_advance_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-h-advance-func-t" title="hb_font_get_glyph_h_advance_func_t"><span class="type">hb_font_get_glyph_h_advance_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<a name="hb-font-funcs-set-glyph-h-advances-func"></a><h3>hb_font_funcs_set_glyph_h_advances_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_funcs_set_glyph_h_advances_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-h-advances-func-t" title="hb_font_get_glyph_h_advances_func_t"><span class="type">hb_font_get_glyph_h_advances_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-funcs-set-glyph-h-origin-func"></a><h3>hb_font_funcs_set_glyph_h_origin_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_set_glyph_h_origin_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+hb_font_funcs_set_glyph_h_origin_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-h-origin-func-t" title="hb_font_get_glyph_h_origin_func_t"><span class="type">hb_font_get_glyph_h_origin_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-funcs-set-glyph-name-func"></a><h3>hb_font_funcs_set_glyph_name_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_set_glyph_name_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+hb_font_funcs_set_glyph_name_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-name-func-t" title="hb_font_get_glyph_name_func_t ()"><span class="type">hb_font_get_glyph_name_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<a name="hb-font-funcs-set-glyph-v-advance-func"></a><h3>hb_font_funcs_set_glyph_v_advance_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_funcs_set_glyph_v_advance_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-v-advance-func-t" title="hb_font_get_glyph_v_advance_func_t"><span class="type">hb_font_get_glyph_v_advance_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<a name="hb-font-funcs-set-glyph-v-advances-func"></a><h3>hb_font_funcs_set_glyph_v_advances_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_funcs_set_glyph_v_advances_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-v-advances-func-t" title="hb_font_get_glyph_v_advances_func_t"><span class="type">hb_font_get_glyph_v_advances_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-funcs-set-glyph-v-origin-func"></a><h3>hb_font_funcs_set_glyph_v_origin_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_set_glyph_v_origin_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+hb_font_funcs_set_glyph_v_origin_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-glyph-v-origin-func-t" title="hb_font_get_glyph_v_origin_func_t"><span class="type">hb_font_get_glyph_v_origin_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-funcs-set-nominal-glyph-func"></a><h3>hb_font_funcs_set_nominal_glyph_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_set_nominal_glyph_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+hb_font_funcs_set_nominal_glyph_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-nominal-glyph-func-t" title="hb_font_get_nominal_glyph_func_t ()"><span class="type">hb_font_get_nominal_glyph_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-funcs-set-nominal-glyphs-func"></a><h3>hb_font_funcs_set_nominal_glyphs_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_set_nominal_glyphs_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+hb_font_funcs_set_nominal_glyphs_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><span class="type">hb_font_get_nominal_glyphs_func_t</span> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-funcs-set-user-data"></a><h3>hb_font_funcs_set_user_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_funcs_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
+hb_font_funcs_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
<em class="parameter"><code><span class="type">void</span> *data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
<a name="hb-font-funcs-set-variation-glyph-func"></a><h3>hb_font_funcs_set_variation_glyph_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_funcs_set_variation_glyph_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-variation-glyph-func-t" title="hb_font_get_variation_glyph_func_t ()"><span class="type">hb_font_get_variation_glyph_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<hr>
<div class="refsect2">
<a name="hb-font-get-empty"></a><h3>hb_font_get_empty ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
hb_font_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="refsect3">
<a name="hb-font-get-empty.returns"></a><h4>Returns</h4>
<hr>
<div class="refsect2">
<a name="hb-font-get-face"></a><h3>hb_font_get_face ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
-hb_font_get_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
+hb_font_get_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-get-face.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-font-get-glyph"></a><h3>hb_font_get_glyph ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> variation_selector</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyph</code></em>);</pre>
<a name="hb-font-get-glyph-advance-for-direction"></a><h3>hb_font_get_glyph_advance_for_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_get_glyph_advance_for_direction
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
<div class="refsect2">
<a name="hb-font-get-glyph-advance-func-t"></a><h3>hb_font_get_glyph_advance_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_glyph_advance_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_glyph_advance_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
<a name="hb-font-get-glyph-advances-for-direction"></a><h3>hb_font_get_glyph_advances_for_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_get_glyph_advances_for_direction
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> count</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *first_glyph</code></em>,
<div class="refsect2">
<a name="hb-font-get-glyph-advances-func-t"></a><h3>hb_font_get_glyph_advances_func_t ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-<span class="c_punctuation">(</span>*hb_font_get_glyph_advances_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_glyph_advances_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> count</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *first_glyph</code></em>,
<div class="refsect2">
<a name="hb-font-get-glyph-contour-point"></a><h3>hb_font_get_glyph_contour_point ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_glyph_contour_point (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_contour_point (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> point_index</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
<a name="hb-font-get-glyph-contour-point-for-origin"></a><h3>hb_font_get_glyph_contour_point_for_origin ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
hb_font_get_glyph_contour_point_for_origin
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> point_index</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<a name="hb-font-get-glyph-contour-point-func-t"></a><h3>hb_font_get_glyph_contour_point_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
<span class="c_punctuation">(</span>*hb_font_get_glyph_contour_point_func_t<span class="c_punctuation">)</span>
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> point_index</code></em>,
<div class="refsect2">
<a name="hb-font-get-glyph-extents"></a><h3>hb_font_get_glyph_extents ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_glyph_extents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_extents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><span class="type">hb_glyph_extents_t</span> *extents</code></em>);</pre>
<div class="refsect3">
<div class="refsect2">
<a name="hb-font-get-glyph-extents-for-origin"></a><h3>hb_font_get_glyph_extents_for_origin ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_glyph_extents_for_origin (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_extents_for_origin (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code><span class="type">hb_glyph_extents_t</span> *extents</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-get-glyph-extents-func-t"></a><h3>hb_font_get_glyph_extents_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_glyph_extents_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_glyph_extents_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><span class="type">hb_glyph_extents_t</span> *extents</code></em>,
<div class="refsect2">
<a name="hb-font-get-glyph-from-name"></a><h3>hb_font_get_glyph_from_name ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_glyph_from_name (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_from_name (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
<em class="parameter"><code><span class="type">int</span> len</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyph</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-get-glyph-from-name-func-t"></a><h3>hb_font_get_glyph_from_name_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_glyph_from_name_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_glyph_from_name_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
<em class="parameter"><code><span class="type">int</span> len</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-get-glyph-h-advance"></a><h3>hb_font_get_glyph_h_advance ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-hb_font_get_glyph_h_advance (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_h_advance (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-get-glyph-h-advance.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-font-get-glyph-h-advances"></a><h3>hb_font_get_glyph_h_advances ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_get_glyph_h_advances (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_h_advances (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> count</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *first_glyph</code></em>,
<em class="parameter"><code><span class="type">unsigned </span> glyph_stride</code></em>,
<div class="refsect2">
<a name="hb-font-get-glyph-h-origin"></a><h3>hb_font_get_glyph_h_origin ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_glyph_h_origin (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_h_origin (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *y</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-get-glyph-name"></a><h3>hb_font_get_glyph_name ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_glyph_name (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_name (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><span class="type">char</span> *name</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> size</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-get-glyph-name-func-t"></a><h3>hb_font_get_glyph_name_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_glyph_name_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_glyph_name_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><span class="type">char</span> *name</code></em>,
<a name="hb-font-get-glyph-origin-for-direction"></a><h3>hb_font_get_glyph_origin_for_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_get_glyph_origin_for_direction
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
<div class="refsect2">
<a name="hb-font-get-glyph-origin-func-t"></a><h3>hb_font_get_glyph_origin_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_glyph_origin_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_glyph_origin_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
<div class="refsect2">
<a name="hb-font-get-glyph-v-advance"></a><h3>hb_font_get_glyph_v_advance ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-hb_font_get_glyph_v_advance (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_v_advance (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-get-glyph-v-advance.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-font-get-glyph-v-advances"></a><h3>hb_font_get_glyph_v_advances ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_get_glyph_v_advances (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_v_advances (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> count</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *first_glyph</code></em>,
<em class="parameter"><code><span class="type">unsigned </span> glyph_stride</code></em>,
<div class="refsect2">
<a name="hb-font-get-glyph-v-origin"></a><h3>hb_font_get_glyph_v_origin ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_glyph_v_origin (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_glyph_v_origin (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *y</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-get-nominal-glyph"></a><h3>hb_font_get_nominal_glyph ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_nominal_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_nominal_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyph</code></em>);</pre>
<div class="refsect3">
<div class="refsect2">
<a name="hb-font-get-nominal-glyph-func-t"></a><h3>hb_font_get_nominal_glyph_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_nominal_glyph_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_nominal_glyph_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyph</code></em>,
<hr>
<div class="refsect2">
<a name="hb-font-get-parent"></a><h3>hb_font_get_parent ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
-hb_font_get_parent (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
+hb_font_get_parent (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-get-parent.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-font-get-ppem"></a><h3>hb_font_get_ppem ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_get_ppem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_ppem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *x_ppem</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *y_ppem</code></em>);</pre>
<div class="refsect3">
<div class="refsect2">
<a name="hb-font-get-ptem"></a><h3>hb_font_get_ptem ()</h3>
<pre class="programlisting"><span class="returnvalue">float</span>
-hb_font_get_ptem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_font_get_ptem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
<p>Gets the "point size" of the font. A value of 0 means unset.</p>
<div class="refsect3">
<a name="hb-font-get-ptem.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-font-get-scale"></a><h3>hb_font_get_scale ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_get_scale (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_scale (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">int</span> *x_scale</code></em>,
<em class="parameter"><code><span class="type">int</span> *y_scale</code></em>);</pre>
<div class="refsect3">
<div class="refsect2">
<a name="hb-font-get-user-data"></a><h3>hb_font_get_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> *
-hb_font_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
+hb_font_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-font-get-user-data.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-font-get-variation-glyph"></a><h3>hb_font_get_variation_glyph ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_variation_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_variation_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> variation_selector</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyph</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-get-variation-glyph-func-t"></a><h3>hb_font_get_variation_glyph_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_variation_glyph_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_variation_glyph_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> variation_selector</code></em>,
<div class="refsect2">
<a name="hb-font-get-var-coords-normalized"></a><h3>hb_font_get_var_coords_normalized ()</h3>
<pre class="programlisting">const <span class="returnvalue">int</span> *
-hb_font_get_var_coords_normalized (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_var_coords_normalized (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *length</code></em>);</pre>
<p>Return value is valid as long as variation coordinates of the font
are not modified.</p>
<div class="refsect2">
<a name="hb-font-glyph-from-string"></a><h3>hb_font_glyph_from_string ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_glyph_from_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_glyph_from_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *s</code></em>,
<em class="parameter"><code><span class="type">int</span> len</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyph</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-glyph-to-string"></a><h3>hb_font_glyph_to_string ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_glyph_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_glyph_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><span class="type">char</span> *s</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> size</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-is-immutable"></a><h3>hb_font_is_immutable ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_font_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-is-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-font-make-immutable"></a><h3>hb_font_make_immutable ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_font_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-make-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<hr>
<div class="refsect2">
<a name="hb-font-reference"></a><h3>hb_font_reference ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
-hb_font_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
+hb_font_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-font-reference.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-font-set-face"></a><h3>hb_font_set_face ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_font_set_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<p>Sets font-face of <em class="parameter"><code>font</code></em>
.</p>
<div class="refsect3">
<div class="refsect2">
<a name="hb-font-set-funcs"></a><h3>hb_font_set_funcs ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *klass</code></em>,
+hb_font_set_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *klass</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect3">
<div class="refsect2">
<a name="hb-font-set-funcs-data"></a><h3>hb_font_set_funcs_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_funcs_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_set_funcs_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect3">
<div class="refsect2">
<a name="hb-font-set-parent"></a><h3>hb_font_set_parent ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_parent (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *parent</code></em>);</pre>
+hb_font_set_parent (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *parent</code></em>);</pre>
<p>Sets parent font of <em class="parameter"><code>font</code></em>
.</p>
<div class="refsect3">
<div class="refsect2">
<a name="hb-font-set-ppem"></a><h3>hb_font_set_ppem ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_ppem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_set_ppem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> x_ppem</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> y_ppem</code></em>);</pre>
<div class="refsect3">
<div class="refsect2">
<a name="hb-font-set-ptem"></a><h3>hb_font_set_ptem ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_ptem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_set_ptem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">float</span> ptem</code></em>);</pre>
<p>Sets "point size" of the font. Set to 0 to unset.</p>
<p>There are 72 points in an inch.</p>
<div class="refsect2">
<a name="hb-font-set-scale"></a><h3>hb_font_set_scale ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_scale (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_set_scale (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">int</span> x_scale</code></em>,
<em class="parameter"><code><span class="type">int</span> y_scale</code></em>);</pre>
<div class="refsect3">
<div class="refsect2">
<a name="hb-font-set-user-data"></a><h3>hb_font_set_user_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
+hb_font_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
<em class="parameter"><code><span class="type">void</span> *data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
-<a name="hb-variation-from-string"></a><h3>hb_variation_from_string ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_variation_from_string (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
- <em class="parameter"><code><span class="type">int</span> len</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-variation-t" title="hb_variation_t"><span class="type">hb_variation_t</span></a> *variation</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-1-4-2.html#api-index-1.4.2">1.4.2</a></p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-variation-to-string"></a><h3>hb_variation_to_string ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-hb_variation_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-variation-t" title="hb_variation_t"><span class="type">hb_variation_t</span></a> *variation</code></em>,
- <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
- <em class="parameter"><code>unsigned <span class="type">int</span> size</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-1-4-2.html#api-index-1.4.2">1.4.2</a></p>
-</div>
-<hr>
-<div class="refsect2">
<a name="hb-font-set-variations"></a><h3>hb_font_set_variations ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_variations (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-font.html#hb-variation-t" title="hb_variation_t"><span class="type">hb_variation_t</span></a> *variations</code></em>,
+hb_font_set_variations (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-variation-t" title="hb_variation_t"><span class="type">hb_variation_t</span></a> *variations</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> variations_length</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-1-4-2.html#api-index-1.4.2">1.4.2</a></p>
</div>
<div class="refsect2">
<a name="hb-font-set-var-coords-design"></a><h3>hb_font_set_var_coords_design ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_var_coords_design (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_set_var_coords_design (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>const <span class="type">float</span> *coords</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> coords_length</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-1-4-2.html#api-index-1.4.2">1.4.2</a></p>
<div class="refsect2">
<a name="hb-font-set-var-coords-normalized"></a><h3>hb_font_set_var_coords_normalized ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_set_var_coords_normalized (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_set_var_coords_normalized (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code>const <span class="type">int</span> *coords</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> coords_length</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-1-4-2.html#api-index-1.4.2">1.4.2</a></p>
<a name="hb-font-subtract-glyph-origin-for-direction"></a><h3>hb_font_subtract_glyph_origin_for_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_font_subtract_glyph_origin_for_direction
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
<hr>
<div class="refsect2">
<a name="hb-reference-table-func-t"></a><h3>hb_reference_table_func_t ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
-<span class="c_punctuation">(</span>*hb_reference_table_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+<span class="c_punctuation">(</span>*hb_reference_table_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> tag</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
</div>
<div class="refsect2">
<a name="hb-font-funcs-set-font-h-extents-func"></a><h3>hb_font_funcs_set_font_h_extents_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_set_font_h_extents_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+hb_font_funcs_set_font_h_extents_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-font-h-extents-func-t" title="hb_font_get_font_h_extents_func_t"><span class="type">hb_font_get_font_h_extents_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-funcs-set-font-v-extents-func"></a><h3>hb_font_funcs_set_font_v_extents_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_funcs_set_font_v_extents_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
+hb_font_funcs_set_font_v_extents_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t" title="hb_font_funcs_t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-get-font-v-extents-func-t" title="hb_font_get_font_v_extents_func_t"><span class="type">hb_font_get_font_v_extents_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-get-extents-for-direction"></a><h3>hb_font_get_extents_for_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_font_get_extents_for_direction (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_extents_for_direction (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code><span class="type">hb_font_extents_t</span> *extents</code></em>);</pre>
<div class="refsect3">
<div class="refsect2">
<a name="hb-font-get-font-extents-func-t"></a><h3>hb_font_get_font_extents_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_font_get_font_extents_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_font_get_font_extents_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
<em class="parameter"><code><span class="type">hb_font_extents_t</span> *extents</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
<div class="refsect2">
<a name="hb-font-get-h-extents"></a><h3>hb_font_get_h_extents ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_h_extents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_h_extents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">hb_font_extents_t</span> *extents</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-get-h-extents.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-font-get-v-extents"></a><h3>hb_font_get_v_extents ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_font_get_v_extents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_font_get_v_extents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">hb_font_extents_t</span> *extents</code></em>);</pre>
<div class="refsect3">
<a name="hb-font-get-v-extents.parameters"></a><h4>Parameters</h4>
</div>
<hr>
<div class="refsect2">
-<a name="hb-variation-t"></a><h3>hb_variation_t</h3>
-<pre class="programlisting">typedef struct {
- hb_tag_t tag;
- float value;
-} hb_variation_t;
-</pre>
-<p class="since">Since: <a class="link" href="api-index-1-4-2.html#api-index-1.4.2">1.4.2</a></p>
-</div>
-<hr>
-<div class="refsect2">
<a name="hb-font-t"></a><h3>hb_font_t</h3>
<pre class="programlisting">typedef struct hb_font_t hb_font_t;
</pre>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-ft: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch12.html" title="Integration API">
<link rel="prev" href="harfbuzz-hb-coretext.html" title="hb-coretext">
<link rel="next" href="harfbuzz-hb-glib.html" title="hb-glib">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<tbody>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-ft.html#hb-ft-face-create" title="hb_ft_face_create ()">hb_ft_face_create</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-ft.html#hb-ft-face-create-cached" title="hb_ft_face_create_cached ()">hb_ft_face_create_cached</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+<a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-ft.html#hb-ft-face-create-referenced" title="hb_ft_face_create_referenced ()">hb_ft_face_create_referenced</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-ft.html#hb-ft-font-create" title="hb_ft_font_create ()">hb_ft_font_create</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
+<a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-ft.html#hb-ft-font-create-referenced" title="hb_ft_font_create_referenced ()">hb_ft_font_create_referenced</a> <span class="c_punctuation">()</span>
<a name="harfbuzz-hb-ft.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="hb-ft-face-create"></a><h3>hb_ft_face_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
hb_ft_face_create (<em class="parameter"><code><span class="type">FT_Face</span> ft_face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect3">
<hr>
<div class="refsect2">
<a name="hb-ft-face-create-cached"></a><h3>hb_ft_face_create_cached ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
hb_ft_face_create_cached (<em class="parameter"><code><span class="type">FT_Face</span> ft_face</code></em>);</pre>
<div class="refsect3">
<a name="hb-ft-face-create-cached.returns"></a><h4>Returns</h4>
<hr>
<div class="refsect2">
<a name="hb-ft-face-create-referenced"></a><h3>hb_ft_face_create_referenced ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="returnvalue">hb_face_t</span></a> *
hb_ft_face_create_referenced (<em class="parameter"><code><span class="type">FT_Face</span> ft_face</code></em>);</pre>
<div class="refsect3">
<a name="hb-ft-face-create-referenced.returns"></a><h4>Returns</h4>
<hr>
<div class="refsect2">
<a name="hb-ft-font-create"></a><h3>hb_ft_font_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
hb_ft_font_create (<em class="parameter"><code><span class="type">FT_Face</span> ft_face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect3">
<hr>
<div class="refsect2">
<a name="hb-ft-font-create-referenced"></a><h3>hb_ft_font_create_referenced ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="returnvalue">hb_font_t</span></a> *
hb_ft_font_create_referenced (<em class="parameter"><code><span class="type">FT_Face</span> ft_face</code></em>);</pre>
<div class="refsect3">
<a name="hb-ft-font-create-referenced.returns"></a><h4>Returns</h4>
<div class="refsect2">
<a name="hb-ft-font-changed"></a><h3>hb_ft_font_changed ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ft_font_changed (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_ft_font_changed (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-ft-font-get-face"></a><h3>hb_ft_font_get_face ()</h3>
<pre class="programlisting"><span class="returnvalue">FT_Face</span>
-hb_ft_font_get_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_ft_font_get_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-ft-font-set-load-flags"></a><h3>hb_ft_font_set_load_flags ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ft_font_set_load_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ft_font_set_load_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><span class="type">int</span> load_flags</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-1-0-5.html#api-index-1.0.5">1.0.5</a></p>
</div>
<div class="refsect2">
<a name="hb-ft-font-get-load-flags"></a><h3>hb_ft_font_get_load_flags ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
-hb_ft_font_get_load_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_ft_font_get_load_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-1-0-5.html#api-index-1.0.5">1.0.5</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ft-font-set-funcs"></a><h3>hb_ft_font_set_funcs ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ft_font_set_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_ft_font_set_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
</div>
</div>
<div class="refsect1">
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-glib: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch12.html" title="Integration API">
<link rel="prev" href="harfbuzz-hb-ft.html" title="hb-ft">
<link rel="next" href="harfbuzz-hb-gobject.html" title="hb-gobject">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<tbody>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-glib.html#hb-glib-get-unicode-funcs" title="hb_glib_get_unicode_funcs ()">hb_glib_get_unicode_funcs</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<span class="returnvalue">GUnicodeScript</span>
+<a href="/usr/share/gtk-doc/html/glib/glib-Unicode-Manipulation.html#GUnicodeScript"><span class="returnvalue">GUnicodeScript</span></a>
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-glib.html#hb-glib-script-from-script" title="hb_glib_script_from_script ()">hb_glib_script_from_script</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-glib.html#hb-glib-blob-create" title="hb_glib_blob_create ()">hb_glib_blob_create</a> <span class="c_punctuation">()</span>
<a name="harfbuzz-hb-glib.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="hb-glib-get-unicode-funcs"></a><h3>hb_glib_get_unicode_funcs ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
hb_glib_get_unicode_funcs (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-glib-script-from-script"></a><h3>hb_glib_script_from_script ()</h3>
-<pre class="programlisting"><span class="returnvalue">GUnicodeScript</span>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Unicode-Manipulation.html#GUnicodeScript"><span class="returnvalue">GUnicodeScript</span></a>
hb_glib_script_from_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> script</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-glib-script-to-script"></a><h3>hb_glib_script_to_script ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="returnvalue">hb_script_t</span></a>
-hb_glib_script_to_script (<em class="parameter"><code><span class="type">GUnicodeScript</span> script</code></em>);</pre>
+hb_glib_script_to_script (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Unicode-Manipulation.html#GUnicodeScript"><span class="type">GUnicodeScript</span></a> script</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-glib-blob-create"></a><h3>hb_glib_blob_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
-hb_glib_blob_create (<em class="parameter"><code><span class="type">GBytes</span> *gbytes</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+hb_glib_blob_create (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a> *gbytes</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-38.html#api-index-0.9.38">0.9.38</a></p>
</div>
</div>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-gobject: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch12.html" title="Integration API">
<link rel="prev" href="harfbuzz-hb-glib.html" title="hb-glib">
<link rel="next" href="harfbuzz-hb-graphite2.html" title="hb-graphite2">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="harfbuzz-hb-gobject.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="functions_return">
-<col class="functions_name">
-</colgroup>
-<tbody>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-blob-get-type" title="hb_gobject_blob_get_type ()">hb_gobject_blob_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-content-type-get-type" title="hb_gobject_buffer_content_type_get_type ()">hb_gobject_buffer_content_type_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-diff-flags-get-type" title="hb_gobject_buffer_diff_flags_get_type ()">hb_gobject_buffer_diff_flags_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-flags-get-type" title="hb_gobject_buffer_flags_get_type ()">hb_gobject_buffer_flags_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-get-type" title="hb_gobject_buffer_get_type ()">hb_gobject_buffer_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-flags-get-type" title="hb_gobject_buffer_serialize_flags_get_type ()">hb_gobject_buffer_serialize_flags_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-format-get-type" title="hb_gobject_buffer_serialize_format_get_type ()">hb_gobject_buffer_serialize_format_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-direction-get-type" title="hb_gobject_direction_get_type ()">hb_gobject_direction_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-face-get-type" title="hb_gobject_face_get_type ()">hb_gobject_face_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-font-funcs-get-type" title="hb_gobject_font_funcs_get_type ()">hb_gobject_font_funcs_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-font-get-type" title="hb_gobject_font_get_type ()">hb_gobject_font_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-glyph-flags-get-type" title="hb_gobject_glyph_flags_get_type ()">hb_gobject_glyph_flags_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-map-get-type" title="hb_gobject_map_get_type ()">hb_gobject_map_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-memory-mode-get-type" title="hb_gobject_memory_mode_get_type ()">hb_gobject_memory_mode_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-color-palette-flags-get-type" title="hb_gobject_ot_color_palette_flags_get_type ()">hb_gobject_ot_color_palette_flags_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-layout-glyph-class-get-type" title="hb_gobject_ot_layout_glyph_class_get_type ()">hb_gobject_ot_layout_glyph_class_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-constant-get-type" title="hb_gobject_ot_math_constant_get_type ()">hb_gobject_ot_math_constant_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-glyph-part-get-type" title="hb_gobject_ot_math_glyph_part_get_type ()">hb_gobject_ot_math_glyph_part_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-glyph-part-flags-get-type" title="hb_gobject_ot_math_glyph_part_flags_get_type ()">hb_gobject_ot_math_glyph_part_flags_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-glyph-variant-get-type" title="hb_gobject_ot_math_glyph_variant_get_type ()">hb_gobject_ot_math_glyph_variant_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-math-kern-get-type" title="hb_gobject_ot_math_kern_get_type ()">hb_gobject_ot_math_kern_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-script-get-type" title="hb_gobject_script_get_type ()">hb_gobject_script_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-shape-plan-get-type" title="hb_gobject_shape_plan_get_type ()">hb_gobject_shape_plan_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-unicode-combining-class-get-type" title="hb_gobject_unicode_combining_class_get_type ()">hb_gobject_unicode_combining_class_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-unicode-funcs-get-type" title="hb_gobject_unicode_funcs_get_type ()">hb_gobject_unicode_funcs_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-unicode-general-category-get-type" title="hb_gobject_unicode_general_category_get_type ()">hb_gobject_unicode_general_category_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-cluster-level-get-type" title="hb_gobject_buffer_cluster_level_get_type ()">hb_gobject_buffer_cluster_level_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-feature-get-type" title="hb_gobject_feature_get_type ()">hb_gobject_feature_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-glyph-info-get-type" title="hb_gobject_glyph_info_get_type ()">hb_gobject_glyph_info_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-glyph-position-get-type" title="hb_gobject_glyph_position_get_type ()">hb_gobject_glyph_position_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-segment-properties-get-type" title="hb_gobject_segment_properties_get_type ()">hb_gobject_segment_properties_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-set-get-type" title="hb_gobject_set_get_type ()">hb_gobject_set_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GType</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-user-data-key-get-type" title="hb_gobject_user_data_key_get_type ()">hb_gobject_user_data_key_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect1">
-<a name="harfbuzz-hb-gobject.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="name">
-<col class="description">
-</colgroup>
-<tbody>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BLOB:CAPS" title="HB_GOBJECT_TYPE_BLOB">HB_GOBJECT_TYPE_BLOB</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER:CAPS" title="HB_GOBJECT_TYPE_BUFFER">HB_GOBJECT_TYPE_BUFFER</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CONTENT-TYPE:CAPS" title="HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE">HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-DIFF-FLAGS:CAPS" title="HB_GOBJECT_TYPE_BUFFER_DIFF_FLAGS">HB_GOBJECT_TYPE_BUFFER_DIFF_FLAGS</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-FLAGS:CAPS" title="HB_GOBJECT_TYPE_BUFFER_FLAGS">HB_GOBJECT_TYPE_BUFFER_FLAGS</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FLAGS:CAPS" title="HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS">HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FORMAT:CAPS" title="HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT">HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-DIRECTION:CAPS" title="HB_GOBJECT_TYPE_DIRECTION">HB_GOBJECT_TYPE_DIRECTION</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FACE:CAPS" title="HB_GOBJECT_TYPE_FACE">HB_GOBJECT_TYPE_FACE</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FONT:CAPS" title="HB_GOBJECT_TYPE_FONT">HB_GOBJECT_TYPE_FONT</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FONT-FUNCS:CAPS" title="HB_GOBJECT_TYPE_FONT_FUNCS">HB_GOBJECT_TYPE_FONT_FUNCS</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-FLAGS:CAPS" title="HB_GOBJECT_TYPE_GLYPH_FLAGS">HB_GOBJECT_TYPE_GLYPH_FLAGS</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-MAP:CAPS" title="HB_GOBJECT_TYPE_MAP">HB_GOBJECT_TYPE_MAP</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-MEMORY-MODE:CAPS" title="HB_GOBJECT_TYPE_MEMORY_MODE">HB_GOBJECT_TYPE_MEMORY_MODE</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-COLOR-PALETTE-FLAGS:CAPS" title="HB_GOBJECT_TYPE_OT_COLOR_PALETTE_FLAGS">HB_GOBJECT_TYPE_OT_COLOR_PALETTE_FLAGS</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-LAYOUT-GLYPH-CLASS:CAPS" title="HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS">HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-CONSTANT:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_CONSTANT">HB_GOBJECT_TYPE_OT_MATH_CONSTANT</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-GLYPH-PART:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART">HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-GLYPH-PART-FLAGS:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART_FLAGS">HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART_FLAGS</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-GLYPH-VARIANT:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_GLYPH_VARIANT">HB_GOBJECT_TYPE_OT_MATH_GLYPH_VARIANT</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-KERN:CAPS" title="HB_GOBJECT_TYPE_OT_MATH_KERN">HB_GOBJECT_TYPE_OT_MATH_KERN</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SCRIPT:CAPS" title="HB_GOBJECT_TYPE_SCRIPT">HB_GOBJECT_TYPE_SCRIPT</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SHAPE-PLAN:CAPS" title="HB_GOBJECT_TYPE_SHAPE_PLAN">HB_GOBJECT_TYPE_SHAPE_PLAN</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-COMBINING-CLASS:CAPS" title="HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS">HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-FUNCS:CAPS" title="HB_GOBJECT_TYPE_UNICODE_FUNCS">HB_GOBJECT_TYPE_UNICODE_FUNCS</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-GENERAL-CATEGORY:CAPS" title="HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY">HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CLUSTER-LEVEL:CAPS" title="HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL">HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FEATURE:CAPS" title="HB_GOBJECT_TYPE_FEATURE">HB_GOBJECT_TYPE_FEATURE</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-INFO:CAPS" title="HB_GOBJECT_TYPE_GLYPH_INFO">HB_GOBJECT_TYPE_GLYPH_INFO</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-POSITION:CAPS" title="HB_GOBJECT_TYPE_GLYPH_POSITION">HB_GOBJECT_TYPE_GLYPH_POSITION</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SEGMENT-PROPERTIES:CAPS" title="HB_GOBJECT_TYPE_SEGMENT_PROPERTIES">HB_GOBJECT_TYPE_SEGMENT_PROPERTIES</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SET:CAPS" title="HB_GOBJECT_TYPE_SET">HB_GOBJECT_TYPE_SET</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-USER-DATA-KEY:CAPS" title="HB_GOBJECT_TYPE_USER_DATA_KEY">HB_GOBJECT_TYPE_USER_DATA_KEY</a></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect1">
<a name="harfbuzz-hb-gobject.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include <hb-gobject.h>
</pre>
</div>
<div class="refsect1">
<a name="harfbuzz-hb-gobject.functions_details"></a><h2>Functions</h2>
-<div class="refsect2">
-<a name="hb-gobject-blob-get-type"></a><h3>hb_gobject_blob_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_blob_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-buffer-content-type-get-type"></a><h3>hb_gobject_buffer_content_type_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_buffer_content_type_get_type
- ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-buffer-diff-flags-get-type"></a><h3>hb_gobject_buffer_diff_flags_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_buffer_diff_flags_get_type ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-buffer-flags-get-type"></a><h3>hb_gobject_buffer_flags_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_buffer_flags_get_type ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-buffer-get-type"></a><h3>hb_gobject_buffer_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_buffer_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-buffer-serialize-flags-get-type"></a><h3>hb_gobject_buffer_serialize_flags_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_buffer_serialize_flags_get_type
- ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-buffer-serialize-format-get-type"></a><h3>hb_gobject_buffer_serialize_format_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_buffer_serialize_format_get_type
- ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-direction-get-type"></a><h3>hb_gobject_direction_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_direction_get_type ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-face-get-type"></a><h3>hb_gobject_face_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_face_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-font-funcs-get-type"></a><h3>hb_gobject_font_funcs_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_font_funcs_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-font-get-type"></a><h3>hb_gobject_font_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_font_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-glyph-flags-get-type"></a><h3>hb_gobject_glyph_flags_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_glyph_flags_get_type ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-map-get-type"></a><h3>hb_gobject_map_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_map_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-memory-mode-get-type"></a><h3>hb_gobject_memory_mode_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_memory_mode_get_type ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-ot-color-palette-flags-get-type"></a><h3>hb_gobject_ot_color_palette_flags_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_ot_color_palette_flags_get_type
- ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-ot-layout-glyph-class-get-type"></a><h3>hb_gobject_ot_layout_glyph_class_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_ot_layout_glyph_class_get_type
- ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-ot-math-constant-get-type"></a><h3>hb_gobject_ot_math_constant_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_ot_math_constant_get_type ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-ot-math-glyph-part-get-type"></a><h3>hb_gobject_ot_math_glyph_part_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_ot_math_glyph_part_get_type
- (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-ot-math-glyph-part-flags-get-type"></a><h3>hb_gobject_ot_math_glyph_part_flags_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_ot_math_glyph_part_flags_get_type
- ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-ot-math-glyph-variant-get-type"></a><h3>hb_gobject_ot_math_glyph_variant_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_ot_math_glyph_variant_get_type
- (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-ot-math-kern-get-type"></a><h3>hb_gobject_ot_math_kern_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_ot_math_kern_get_type ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-script-get-type"></a><h3>hb_gobject_script_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_script_get_type ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-shape-plan-get-type"></a><h3>hb_gobject_shape_plan_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_shape_plan_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-unicode-combining-class-get-type"></a><h3>hb_gobject_unicode_combining_class_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_unicode_combining_class_get_type
- ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-unicode-funcs-get-type"></a><h3>hb_gobject_unicode_funcs_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_unicode_funcs_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-unicode-general-category-get-type"></a><h3>hb_gobject_unicode_general_category_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_unicode_general_category_get_type
- ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-buffer-cluster-level-get-type"></a><h3>hb_gobject_buffer_cluster_level_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_buffer_cluster_level_get_type
- ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-feature-get-type"></a><h3>hb_gobject_feature_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_feature_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-glyph-info-get-type"></a><h3>hb_gobject_glyph_info_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_glyph_info_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-glyph-position-get-type"></a><h3>hb_gobject_glyph_position_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_glyph_position_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-segment-properties-get-type"></a><h3>hb_gobject_segment_properties_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_segment_properties_get_type
- (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-set-get-type"></a><h3>hb_gobject_set_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_set_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-user-data-key-get-type"></a><h3>hb_gobject_user_data_key_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_user_data_key_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
+<p></p>
</div>
<div class="refsect1">
<a name="harfbuzz-hb-gobject.other_details"></a><h2>Types and Values</h2>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-BLOB:CAPS"></a><h3>HB_GOBJECT_TYPE_BLOB</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_BLOB (hb_gobject_blob_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-BUFFER:CAPS"></a><h3>HB_GOBJECT_TYPE_BUFFER</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_BUFFER (hb_gobject_buffer_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-BUFFER-CONTENT-TYPE:CAPS"></a><h3>HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE (hb_gobject_buffer_content_type_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-BUFFER-DIFF-FLAGS:CAPS"></a><h3>HB_GOBJECT_TYPE_BUFFER_DIFF_FLAGS</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_BUFFER_DIFF_FLAGS (hb_gobject_buffer_diff_flags_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-BUFFER-FLAGS:CAPS"></a><h3>HB_GOBJECT_TYPE_BUFFER_FLAGS</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_BUFFER_FLAGS (hb_gobject_buffer_flags_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FLAGS:CAPS"></a><h3>HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS (hb_gobject_buffer_serialize_flags_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FORMAT:CAPS"></a><h3>HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT (hb_gobject_buffer_serialize_format_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-DIRECTION:CAPS"></a><h3>HB_GOBJECT_TYPE_DIRECTION</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_DIRECTION (hb_gobject_direction_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-FACE:CAPS"></a><h3>HB_GOBJECT_TYPE_FACE</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_FACE (hb_gobject_face_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-FONT:CAPS"></a><h3>HB_GOBJECT_TYPE_FONT</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_FONT (hb_gobject_font_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-FONT-FUNCS:CAPS"></a><h3>HB_GOBJECT_TYPE_FONT_FUNCS</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_FONT_FUNCS (hb_gobject_font_funcs_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-GLYPH-FLAGS:CAPS"></a><h3>HB_GOBJECT_TYPE_GLYPH_FLAGS</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_GLYPH_FLAGS (hb_gobject_glyph_flags_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-MAP:CAPS"></a><h3>HB_GOBJECT_TYPE_MAP</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_MAP (hb_gobject_map_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-MEMORY-MODE:CAPS"></a><h3>HB_GOBJECT_TYPE_MEMORY_MODE</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_MEMORY_MODE (hb_gobject_memory_mode_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-OT-COLOR-PALETTE-FLAGS:CAPS"></a><h3>HB_GOBJECT_TYPE_OT_COLOR_PALETTE_FLAGS</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_OT_COLOR_PALETTE_FLAGS (hb_gobject_ot_color_palette_flags_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-OT-LAYOUT-GLYPH-CLASS:CAPS"></a><h3>HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS (hb_gobject_ot_layout_glyph_class_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-OT-MATH-CONSTANT:CAPS"></a><h3>HB_GOBJECT_TYPE_OT_MATH_CONSTANT</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_OT_MATH_CONSTANT (hb_gobject_ot_math_constant_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-OT-MATH-GLYPH-PART:CAPS"></a><h3>HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART (hb_gobject_ot_math_glyph_part_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-OT-MATH-GLYPH-PART-FLAGS:CAPS"></a><h3>HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART_FLAGS</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART_FLAGS (hb_gobject_ot_math_glyph_part_flags_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-OT-MATH-GLYPH-VARIANT:CAPS"></a><h3>HB_GOBJECT_TYPE_OT_MATH_GLYPH_VARIANT</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_OT_MATH_GLYPH_VARIANT (hb_gobject_ot_math_glyph_variant_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-OT-MATH-KERN:CAPS"></a><h3>HB_GOBJECT_TYPE_OT_MATH_KERN</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_OT_MATH_KERN (hb_gobject_ot_math_kern_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-SCRIPT:CAPS"></a><h3>HB_GOBJECT_TYPE_SCRIPT</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_SCRIPT (hb_gobject_script_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-SHAPE-PLAN:CAPS"></a><h3>HB_GOBJECT_TYPE_SHAPE_PLAN</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_SHAPE_PLAN (hb_gobject_shape_plan_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-UNICODE-COMBINING-CLASS:CAPS"></a><h3>HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS (hb_gobject_unicode_combining_class_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-UNICODE-FUNCS:CAPS"></a><h3>HB_GOBJECT_TYPE_UNICODE_FUNCS</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_UNICODE_FUNCS (hb_gobject_unicode_funcs_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-UNICODE-GENERAL-CATEGORY:CAPS"></a><h3>HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY (hb_gobject_unicode_general_category_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-BUFFER-CLUSTER-LEVEL:CAPS"></a><h3>HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL (hb_gobject_buffer_cluster_level_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-FEATURE:CAPS"></a><h3>HB_GOBJECT_TYPE_FEATURE</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_FEATURE (hb_gobject_feature_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-GLYPH-INFO:CAPS"></a><h3>HB_GOBJECT_TYPE_GLYPH_INFO</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_GLYPH_INFO (hb_gobject_glyph_info_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-GLYPH-POSITION:CAPS"></a><h3>HB_GOBJECT_TYPE_GLYPH_POSITION</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_GLYPH_POSITION (hb_gobject_glyph_position_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-SEGMENT-PROPERTIES:CAPS"></a><h3>HB_GOBJECT_TYPE_SEGMENT_PROPERTIES</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_SEGMENT_PROPERTIES (hb_gobject_segment_properties_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-SET:CAPS"></a><h3>HB_GOBJECT_TYPE_SET</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_SET (hb_gobject_set_get_type ())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-GOBJECT-TYPE-USER-DATA-KEY:CAPS"></a><h3>HB_GOBJECT_TYPE_USER_DATA_KEY</h3>
-<pre class="programlisting">#define HB_GOBJECT_TYPE_USER_DATA_KEY (hb_gobject_user_data_key_get_type ())
-</pre>
-</div>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-graphite2: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch12.html" title="Integration API">
<link rel="prev" href="harfbuzz-hb-gobject.html" title="hb-gobject">
<link rel="next" href="harfbuzz-hb-icu.html" title="hb-icu">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="refsect2">
<a name="hb-graphite2-face-get-gr-face"></a><h3>hb_graphite2_face_get_gr_face ()</h3>
<pre class="programlisting"><span class="returnvalue">gr_face</span> *
-hb_graphite2_face_get_gr_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_graphite2_face_get_gr_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
</div>
</div>
<div class="refsect1">
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-icu: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch12.html" title="Integration API">
<link rel="prev" href="harfbuzz-hb-graphite2.html" title="hb-graphite2">
<link rel="next" href="harfbuzz-hb-uniscribe.html" title="hb-uniscribe">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<tbody>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-icu.html#hb-icu-get-unicode-funcs" title="hb_icu_get_unicode_funcs ()">hb_icu_get_unicode_funcs</a> <span class="c_punctuation">()</span>
<a name="harfbuzz-hb-icu.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="hb-icu-get-unicode-funcs"></a><h3>hb_icu_get_unicode_funcs ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
hb_icu_get_unicode_funcs (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
</div>
<hr>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-map: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch09.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-font.html" title="hb-font">
<link rel="next" href="harfbuzz-hb-set.html" title="hb-set">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-map.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-map.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+ <a href="#harfbuzz-hb-map.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="returnvalue">hb_map_t</span></a> *
+<a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="returnvalue">hb_map_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-map.html#hb-map-create" title="hb_map_create ()">hb_map_create</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="returnvalue">hb_map_t</span></a> *
+<a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="returnvalue">hb_map_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-map.html#hb-map-get-empty" title="hb_map_get_empty ()">hb_map_get_empty</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="returnvalue">hb_map_t</span></a> *
+<a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="returnvalue">hb_map_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-map.html#hb-map-reference" title="hb_map_reference ()">hb_map_reference</a> <span class="c_punctuation">()</span>
</tbody>
</table></div>
</div>
-<a name="hb-map-t"></a><div class="refsect1">
+<div class="refsect1">
<a name="harfbuzz-hb-map.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-map.html#hb-map-t">hb_map_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t">hb_map_t</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
-<a name="harfbuzz-hb-map.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
- <span class="lineart">╰──</span> hb_map_t
-</pre>
-</div>
-<div class="refsect1">
<a name="harfbuzz-hb-map.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include <hb.h>
</pre>
<div class="refsect2">
<a name="hb-map-allocation-successful"></a><h3>hb_map_allocation_successful ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_map_allocation_successful (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
+hb_map_allocation_successful (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
<div class="refsect3">
<a name="hb-map-allocation-successful.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-map-clear"></a><h3>hb_map_clear ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_map_clear (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
+hb_map_clear (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
<div class="refsect3">
<a name="hb-map-clear.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<hr>
<div class="refsect2">
<a name="hb-map-create"></a><h3>hb_map_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="returnvalue">hb_map_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="returnvalue">hb_map_t</span></a> *
hb_map_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p><span class="annotation">[Xconstructor]</span></p>
<div class="refsect3">
<div class="refsect2">
<a name="hb-map-del"></a><h3>hb_map_del ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_map_del (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>,
+hb_map_del (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> key</code></em>);</pre>
<div class="refsect3">
<a name="hb-map-del.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-map-destroy"></a><h3>hb_map_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_map_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
+hb_map_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-map-destroy.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-map-get"></a><h3>hb_map_get ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
-hb_map_get (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>,
+hb_map_get (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> key</code></em>);</pre>
<div class="refsect3">
<a name="hb-map-get.parameters"></a><h4>Parameters</h4>
<hr>
<div class="refsect2">
<a name="hb-map-get-empty"></a><h3>hb_map_get_empty ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="returnvalue">hb_map_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="returnvalue">hb_map_t</span></a> *
hb_map_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="refsect3">
<a name="hb-map-get-empty.returns"></a><h4>Returns</h4>
<div class="refsect2">
<a name="hb-map-get-population"></a><h3>hb_map_get_population ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_map_get_population (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
+hb_map_get_population (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
<div class="refsect3">
<a name="hb-map-get-population.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-map-get-user-data"></a><h3>hb_map_get_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> *
-hb_map_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
+hb_map_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-map-get-user-data.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-map-has"></a><h3>hb_map_has ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_map_has (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>,
+hb_map_has (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> key</code></em>);</pre>
<div class="refsect3">
<a name="hb-map-has.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-map-is-empty"></a><h3>hb_map_is_empty ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_map_is_empty (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
+hb_map_is_empty (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
<div class="refsect3">
<a name="hb-map-is-empty.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<hr>
<div class="refsect2">
<a name="hb-map-reference"></a><h3>hb_map_reference ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="returnvalue">hb_map_t</span></a> *
-hb_map_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="returnvalue">hb_map_t</span></a> *
+hb_map_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-map-reference.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-map-set"></a><h3>hb_map_set ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_map_set (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>,
+hb_map_set (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> key</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> value</code></em>);</pre>
<div class="refsect3">
<div class="refsect2">
<a name="hb-map-set-user-data"></a><h3>hb_map_set_user_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_map_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t"><span class="type">hb_map_t</span></a> *map</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
+hb_map_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-map.html#hb-map-t" title="hb_map_t"><span class="type">hb_map_t</span></a> *map</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
<em class="parameter"><code><span class="type">void</span> *data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-ot-color: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch10.html" title="OpenType API">
<link rel="prev" href="ch10.html" title="OpenType API">
<link rel="next" href="harfbuzz-hb-ot-font.html" title="hb-ot-font">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-ot-color.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-ot-color.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+ <a href="#harfbuzz-hb-ot-color.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch10.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-glyph-reference-png" title="hb_ot_color_glyph_reference_png ()">hb_ot_color_glyph_reference_png</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
+<a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-glyph-reference-svg" title="hb_ot_color_glyph_reference_svg ()">hb_ot_color_glyph_reference_svg</a> <span class="c_punctuation">()</span>
</table></div>
</div>
<div class="refsect1">
-<a name="harfbuzz-hb-ot-color.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GFlags</a>
- <span class="lineart">╰──</span> hb_ot_color_palette_flags_t
-</pre>
-</div>
-<div class="refsect1">
<a name="harfbuzz-hb-ot-color.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include <hb-ot.h>
</pre>
<div class="refsect2">
<a name="hb-ot-color-glyph-get-layers"></a><h3>hb_ot_color_glyph_get_layers ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_color_glyph_get_layers (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_color_glyph_get_layers (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *count</code></em>,
</tr>
<tr>
<td class="parameter_name"><p>count</p></td>
-<td class="parameter_description"><p> gets number of layers available to be written on buffer
+<td class="parameter_description"><p>gets number of layers available to be written on buffer
and returns number of written layers. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>layers</p></td>
-<td class="parameter_description"><p> layers buffer to buffer. </p></td>
+<td class="parameter_description"><p>layers buffer to buffer. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=count][<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
</tbody>
<hr>
<div class="refsect2">
<a name="hb-ot-color-glyph-reference-png"></a><h3>hb_ot_color_glyph_reference_png ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
-hb_ot_color_glyph_reference_png (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+hb_ot_color_glyph_reference_png (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
<p>Get PNG image for a glyph.</p>
<div class="refsect3">
</div>
<div class="refsect3">
<a name="hb-ot-color-glyph-reference-png.returns"></a><h4>Returns</h4>
-<p> respective PNG blob of the glyph, if available. </p>
+<p>respective PNG blob of the glyph, if available. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
<hr>
<div class="refsect2">
<a name="hb-ot-color-glyph-reference-svg"></a><h3>hb_ot_color_glyph_reference_svg ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
-hb_ot_color_glyph_reference_svg (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t" title="hb_blob_t"><span class="returnvalue">hb_blob_t</span></a> *
+hb_ot_color_glyph_reference_svg (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
<p>Get SVG document for a glyph. The blob may be either plain text or gzip-encoded.</p>
<div class="refsect3">
</div>
<div class="refsect3">
<a name="hb-ot-color-glyph-reference-svg.returns"></a><h4>Returns</h4>
-<p> respective svg blob of the glyph, if available. </p>
+<p>respective svg blob of the glyph, if available. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
<div class="refsect2">
<a name="hb-ot-color-has-layers"></a><h3>hb_ot_color_has_layers ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_color_has_layers (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_color_has_layers (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<div class="refsect3">
<a name="hb-ot-color-has-layers.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-ot-color-has-palettes"></a><h3>hb_ot_color_has_palettes ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_color_has_palettes (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_color_has_palettes (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<div class="refsect3">
<a name="hb-ot-color-has-palettes.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-ot-color-has-png"></a><h3>hb_ot_color_has_png ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_color_has_png (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_color_has_png (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<p>Check whether <em class="parameter"><code>face</code></em>
has PNG glyph images (either CBDT or sbix tables).</p>
<p>Returns true if available, false otherwise.</p>
<div class="refsect2">
<a name="hb-ot-color-has-svg"></a><h3>hb_ot_color_has_svg ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_color_has_svg (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_color_has_svg (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<p>Check whether <em class="parameter"><code>face</code></em>
has SVG glyph images.</p>
<p>Returns true if available, false otherwise.</p>
<div class="refsect2">
<a name="hb-ot-color-palette-color-get-name-id"></a><h3>hb_ot_color_palette_color_get_name_id ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="returnvalue">hb_ot_name_id_t</span></a>
-hb_ot_color_palette_color_get_name_id (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_color_palette_color_get_name_id (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> color_index</code></em>);</pre>
<div class="refsect3">
<a name="hb-ot-color-palette-color-get-name-id.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-ot-color-palette-get-colors"></a><h3>hb_ot_color_palette_get_colors ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_color_palette_get_colors (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_color_palette_get_colors (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> palette_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *color_count</code></em>,
</tr>
<tr>
<td class="parameter_name"><p>color_count</p></td>
-<td class="parameter_description"><p> on input, how many colors
+<td class="parameter_description"><p>on input, how many colors
can be maximally stored into the <em class="parameter"><code>colors</code></em>
array;
on output, how many colors were actually stored. </p></td>
</tr>
<tr>
<td class="parameter_name"><p>colors</p></td>
-<td class="parameter_description"><p> an array of <a class="link" href="harfbuzz-hb-ot-color.html#hb-color-t" title="hb_color_t"><span class="type">hb_color_t</span></a> records. After calling
+<td class="parameter_description"><p>an array of <a class="link" href="harfbuzz-hb-ot-color.html#hb-color-t" title="hb_color_t"><span class="type">hb_color_t</span></a> records. After calling
this function, <em class="parameter"><code>colors</code></em>
will be filled with
the palette colors. If <em class="parameter"><code>colors</code></em>
<div class="refsect2">
<a name="hb-ot-color-palette-get-count"></a><h3>hb_ot_color_palette_get_count ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_color_palette_get_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_color_palette_get_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<div class="refsect3">
<a name="hb-ot-color-palette-get-count.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-ot-color-palette-get-flags"></a><h3>hb_ot_color_palette_get_flags ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-ot-color.html#hb-ot-color-palette-flags-t" title="enum hb_ot_color_palette_flags_t"><span class="returnvalue">hb_ot_color_palette_flags_t</span></a>
-hb_ot_color_palette_get_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_color_palette_get_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> palette_index</code></em>);</pre>
<div class="refsect3">
<a name="hb-ot-color-palette-get-flags.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-ot-color-palette-get-name-id"></a><h3>hb_ot_color_palette_get_name_id ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="returnvalue">hb_ot_name_id_t</span></a>
-hb_ot_color_palette_get_name_id (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_color_palette_get_name_id (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> palette_index</code></em>);</pre>
<p>Retrieves the name id of a color palette. For example, a color font can
have themed palettes like "Spring", "Summer", "Fall", and "Winter".</p>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-ot-font: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch10.html" title="OpenType API">
<link rel="prev" href="harfbuzz-hb-ot-color.html" title="hb-ot-color">
<link rel="next" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="harfbuzz-hb-ot-font.description"></a><h2>Description</h2>
-<p>Functions for using OpenType fonts with <a class="link" href="harfbuzz-hb-shape.html#hb-shape" title="hb_shape ()"><code class="function">hb_shape()</code></a>. Not that fonts returned
+<p>Functions for using OpenType fonts with <a class="link" href="harfbuzz-hb-shape.html#hb-shape" title="hb_shape ()"><code class="function">hb_shape()</code></a>. Note that fonts returned
by <a class="link" href="harfbuzz-hb-font.html#hb-font-create" title="hb_font_create ()"><code class="function">hb_font_create()</code></a> default to using these functions, so most clients would
never need to call these functions directly.</p>
</div>
<div class="refsect2">
<a name="hb-ot-font-set-funcs"></a><h3>hb_ot_font_set_funcs ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ot_font_set_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_ot_font_set_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-28.html#api-index-0.9.28">0.9.28</a></p>
</div>
</div>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-ot-layout: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch10.html" title="OpenType API">
<link rel="prev" href="harfbuzz-hb-ot-font.html" title="hb-ot-font">
<link rel="next" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-ot-layout.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-ot-layout.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+ <a href="#harfbuzz-hb-ot-layout.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch10.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
</table></div>
</div>
<div class="refsect1">
-<a name="harfbuzz-hb-ot-layout.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
- <span class="lineart">╰──</span> hb_ot_layout_glyph_class_t
-</pre>
-</div>
-<div class="refsect1">
<a name="harfbuzz-hb-ot-layout.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include <hb-ot.h>
</pre>
</tr>
<tr>
<td class="parameter_name"><p>script_count</p></td>
-<td class="parameter_description"><p> maximum number of script tags to retrieve (IN)
+<td class="parameter_description"><p>maximum number of script tags to retrieve (IN)
and actual number of script tags retrieved (OUT). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>script_tags</p></td>
-<td class="parameter_description"><p> array of size at least <em class="parameter"><code>script_count</code></em>
+<td class="parameter_description"><p>array of size at least <em class="parameter"><code>script_count</code></em>
to store the
script tag results. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>language_count</p></td>
-<td class="parameter_description"><p> maximum number of language tags to retrieve
+<td class="parameter_description"><p>maximum number of language tags to retrieve
(IN) and actual number of language tags retrieved (OUT). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>language_tags</p></td>
-<td class="parameter_description"><p> array of size at least <em class="parameter"><code>language_count</code></em>
+<td class="parameter_description"><p>array of size at least <em class="parameter"><code>language_count</code></em>
to store
the language tag results. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>script</p></td>
-<td class="parameter_description"><p> the <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> corresponding to <em class="parameter"><code>script_tag</code></em>
+<td class="parameter_description"><p>the <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> corresponding to <em class="parameter"><code>script_tag</code></em>
(OUT). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>language</p></td>
-<td class="parameter_description"><p> the <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> corresponding to <em class="parameter"><code>script_tag</code></em>
+<td class="parameter_description"><p>the <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> corresponding to <em class="parameter"><code>script_tag</code></em>
and
<em class="parameter"><code>language_tag</code></em>
(OUT). </p></td>
<div class="refsect2">
<a name="hb-ot-layout-collect-lookups"></a><h3>hb_ot_layout_collect_lookups ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ot_layout_collect_lookups (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_collect_lookups (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *scripts</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *languages</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *features</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *lookup_indexes</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *lookup_indexes</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-8.html#api-index-0.9.8">0.9.8</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-collect-features"></a><h3>hb_ot_layout_collect_features ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ot_layout_collect_features (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_collect_features (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *scripts</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *languages</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *features</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *feature_indexes</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *feature_indexes</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-1-8-5.html#api-index-1.8.5">1.8.5</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-feature-get-characters"></a><h3>hb_ot_layout_feature_get_characters ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_layout_feature_get_characters (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_feature_get_characters (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> feature_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<tbody>
<tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
</tr>
<tr>
<td class="parameter_name"><p>char_count</p></td>
-<td class="parameter_description"><p> The count of characters for which this feature
+<td class="parameter_description"><p>The count of characters for which this feature
provides glyph variants. (May be zero.). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>characters</p></td>
-<td class="parameter_description"><p> A buffer pointer. The Unicode codepoints
+<td class="parameter_description"><p>A buffer pointer. The Unicode codepoints
of the characters for which this feature provides glyph variants. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=char_count]</span></td>
</tr>
<div class="refsect2">
<a name="hb-ot-layout-feature-get-lookups"></a><h3>hb_ot_layout_feature_get_lookups ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_layout_feature_get_lookups (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_feature_get_lookups (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> feature_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<div class="refsect2">
<a name="hb-ot-layout-feature-get-name-ids"></a><h3>hb_ot_layout_feature_get_name_ids ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_feature_get_name_ids (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_feature_get_name_ids (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> feature_index</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="type">hb_ot_name_id_t</span></a> *label_id</code></em>,
<tbody>
<tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to work upon</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
</tr>
<tr>
<td class="parameter_name"><p>label_id</p></td>
-<td class="parameter_description"><p> The ‘name’ table name ID that specifies a string
+<td class="parameter_description"><p>The ‘name’ table name ID that specifies a string
for a user-interface label for this feature. (May be NULL.). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>tooltip_id</p></td>
-<td class="parameter_description"><p> The ‘name’ table name ID that specifies a string
+<td class="parameter_description"><p>The ‘name’ table name ID that specifies a string
that an application can use for tooltip text for this
feature. (May be NULL.). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>sample_id</p></td>
-<td class="parameter_description"><p> The ‘name’ table name ID that specifies sample text
+<td class="parameter_description"><p>The ‘name’ table name ID that specifies sample text
that illustrates the effect of this feature. (May be NULL.). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>num_named_parameters</p></td>
-<td class="parameter_description"><p> Number of named parameters. (May be zero.). </p></td>
+<td class="parameter_description"><p>Number of named parameters. (May be zero.). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>first_param_id</p></td>
-<td class="parameter_description"><p> The first ‘name’ table name ID used to specify
+<td class="parameter_description"><p>The first ‘name’ table name ID used to specify
strings for user-interface labels for the feature
parameters. (Must be zero if numParameters is zero.). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
<a name="hb-ot-layout-feature-with-variations-get-lookups"></a><h3>hb_ot_layout_feature_with_variations_get_lookups ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
hb_ot_layout_feature_with_variations_get_lookups
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> feature_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> variations_index</code></em>,
<div class="refsect2">
<a name="hb-ot-layout-get-attach-points"></a><h3>hb_ot_layout_get_attach_points ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_layout_get_attach_points (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_get_attach_points (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *point_count</code></em>,
<div class="refsect2">
<a name="hb-ot-layout-get-glyph-class"></a><h3>hb_ot_layout_get_glyph_class ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-class-t" title="enum hb_ot_layout_glyph_class_t"><span class="returnvalue">hb_ot_layout_glyph_class_t</span></a>
-hb_ot_layout_get_glyph_class (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_get_glyph_class (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
</div>
<div class="refsect2">
<a name="hb-ot-layout-get-glyphs-in-class"></a><h3>hb_ot_layout_get_glyphs_in_class ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ot_layout_get_glyphs_in_class (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_get_glyphs_in_class (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-class-t" title="enum hb_ot_layout_glyph_class_t"><span class="type">hb_ot_layout_glyph_class_t</span></a> klass</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-get-ligature-carets"></a><h3>hb_ot_layout_get_ligature_carets ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_layout_get_ligature_carets (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ot_layout_get_ligature_carets (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<div class="refsect2">
<a name="hb-ot-layout-get-size-params"></a><h3>hb_ot_layout_get_size_params ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_get_size_params (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_get_size_params (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *design_size</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *subfamily_id</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="type">hb_ot_name_id_t</span></a> *subfamily_name_id</code></em>,
<div class="refsect2">
<a name="hb-ot-layout-glyph-sequence-func-t"></a><h3>hb_ot_layout_glyph_sequence_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_ot_layout_glyph_sequence_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+<span class="c_punctuation">(</span>*hb_ot_layout_glyph_sequence_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> lookup_index</code></em>,
<em class="parameter"><code>const <span class="type">hb_ot_layout_glyph_sequence_t</span> *sequence</code></em>,
<div class="refsect2">
<a name="hb-ot-layout-has-glyph-classes"></a><h3>hb_ot_layout_has_glyph_classes ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_has_glyph_classes (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_layout_has_glyph_classes (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-has-positioning"></a><h3>hb_ot_layout_has_positioning ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_has_positioning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_layout_has_positioning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-has-substitution"></a><h3>hb_ot_layout_has_substitution ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_has_substitution (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_layout_has_substitution (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-layout-language-find-feature"></a><h3>hb_ot_layout_language_find_feature ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_language_find_feature (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_language_find_feature (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> language_index</code></em>,
<a name="hb-ot-layout-language-get-feature-indexes"></a><h3>hb_ot_layout_language_get_feature_indexes ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
hb_ot_layout_language_get_feature_indexes
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> language_index</code></em>,
<a name="hb-ot-layout-language-get-feature-tags"></a><h3>hb_ot_layout_language_get_feature_tags ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
hb_ot_layout_language_get_feature_tags
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> language_index</code></em>,
<a name="hb-ot-layout-language-get-required-feature"></a><h3>hb_ot_layout_language_get_required_feature ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
hb_ot_layout_language_get_required_feature
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> language_index</code></em>,
<div class="refsect2">
<a name="hb-ot-layout-lookup-collect-glyphs"></a><h3>hb_ot_layout_lookup_collect_glyphs ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ot_layout_lookup_collect_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_lookup_collect_glyphs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> lookup_index</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs_before</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs_input</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs_after</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs_output</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *glyphs_before</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *glyphs_input</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *glyphs_after</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *glyphs_output</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
</div>
<hr>
<a name="hb-ot-layout-lookup-substitute-closure"></a><h3>hb_ot_layout_lookup_substitute_closure ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_ot_layout_lookup_substitute_closure
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> lookup_index</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
</div>
<hr>
<a name="hb-ot-layout-lookups-substitute-closure"></a><h3>hb_ot_layout_lookups_substitute_closure ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_ot_layout_lookups_substitute_closure
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *lookups</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *lookups</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
<p>Compute the transitive closure of glyphs needed for all of the
provided lookups.</p>
<p class="since">Since: <a class="link" href="api-index-1-8-1.html#api-index-1.8.1">1.8.1</a></p>
<div class="refsect2">
<a name="hb-ot-layout-lookup-would-substitute"></a><h3>hb_ot_layout_lookup_would_substitute ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_lookup_would_substitute (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_lookup_would_substitute (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> lookup_index</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyphs</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> glyphs_length</code></em>,
<div class="refsect2">
<a name="hb-ot-layout-script-get-language-tags"></a><h3>hb_ot_layout_script_get_language_tags ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_layout_script_get_language_tags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_script_get_language_tags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<div class="refsect2">
<a name="hb-ot-layout-script-select-language"></a><h3>hb_ot_layout_script_select_language ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_script_select_language (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_script_select_language (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> language_count</code></em>,
<a name="hb-ot-layout-table-find-feature-variations"></a><h3>hb_ot_layout_table_find_feature_variations ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
hb_ot_layout_table_find_feature_variations
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>const <span class="type">int</span> *coords</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_coords</code></em>,
<div class="refsect2">
<a name="hb-ot-layout-table-get-feature-tags"></a><h3>hb_ot_layout_table_get_feature_tags ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_layout_table_get_feature_tags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_table_get_feature_tags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *feature_count</code></em>,
<div class="refsect2">
<a name="hb-ot-layout-table-get-script-tags"></a><h3>hb_ot_layout_table_get_script_tags ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_layout_table_get_script_tags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_table_get_script_tags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *script_count</code></em>,
<div class="refsect2">
<a name="hb-ot-layout-table-get-lookup-count"></a><h3>hb_ot_layout_table_get_lookup_count ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_layout_table_get_lookup_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_table_get_lookup_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-22.html#api-index-0.9.22">0.9.22</a></p>
</div>
<div class="refsect2">
<a name="hb-ot-layout-table-select-script"></a><h3>hb_ot_layout_table_select_script ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_layout_table_select_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_layout_table_select_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> script_count</code></em>,
<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *script_tags</code></em>,
<div class="refsect2">
<a name="hb-ot-shape-plan-collect-lookups"></a><h3>hb_ot_shape_plan_collect_lookups ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ot_shape_plan_collect_lookups (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
+hb_ot_shape_plan_collect_lookups (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *lookup_indexes</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *lookup_indexes</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
</div>
<hr>
<a name="hb-ot-layout-language-get-required-feature-index"></a><h3>hb_ot_layout_language_get_required_feature_index ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
hb_ot_layout_language_get_required_feature_index
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> script_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> language_index</code></em>,
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-ot-math: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch10.html" title="OpenType API">
<link rel="prev" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">
<link rel="next" href="harfbuzz-hb-ot-name.html" title="hb-ot-name">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-ot-math.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-ot-math.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+ <a href="#harfbuzz-hb-ot-math.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch10.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
</tbody>
</table></div>
</div>
-<a name="hb-ot-math-glyph-variant-t"></a><a name="hb-ot-math-glyph-part-t"></a><div class="refsect1">
+<div class="refsect1">
<a name="harfbuzz-hb-ot-math.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
</tr>
<tr>
<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t-struct" title="hb_ot_math_glyph_variant_t">hb_ot_math_glyph_variant_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t" title="hb_ot_math_glyph_variant_t">hb_ot_math_glyph_variant_t</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
</tr>
<tr>
<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t-struct" title="hb_ot_math_glyph_part_t">hb_ot_math_glyph_part_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t" title="hb_ot_math_glyph_part_t">hb_ot_math_glyph_part_t</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
-<a name="harfbuzz-hb-ot-math.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
- <span class="lineart">├──</span> hb_ot_math_glyph_part_t
- <span class="lineart">╰──</span> hb_ot_math_glyph_variant_t
- <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
- <span class="lineart">├──</span> hb_ot_math_constant_t
- <span class="lineart">╰──</span> hb_ot_math_kern_t
- <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GFlags</a>
- <span class="lineart">╰──</span> hb_ot_math_glyph_part_flags_t
-</pre>
-</div>
-<div class="refsect1">
<a name="harfbuzz-hb-ot-math.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include <hb-ot.h>
</pre>
<div class="refsect2">
<a name="hb-ot-math-has-data"></a><h3>hb_ot_math_has_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_math_has_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_math_has_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<p>This function allows to verify the presence of an OpenType MATH table on the
face.</p>
<div class="refsect3">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to test</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to test</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-ot-math-get-constant"></a><h3>hb_ot_math_get_constant ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-hb_ot_math_get_constant (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ot_math_get_constant (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-constant-t" title="enum hb_ot_math_constant_t"><span class="type">hb_ot_math_constant_t</span></a> constant</code></em>);</pre>
<p>This function returns the requested math constants as a <a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a>.
If the request constant is HB_OT_MATH_CONSTANT_SCRIPT_PERCENT_SCALE_DOWN,
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<a name="hb-ot-math-get-glyph-italics-correction"></a><h3>hb_ot_math_get_glyph_italics_correction ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
hb_ot_math_get_glyph_italics_correction
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
<div class="refsect3">
<a name="hb-ot-math-get-glyph-italics-correction.parameters"></a><h4>Parameters</h4>
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<a name="hb-ot-math-get-glyph-top-accent-attachment"></a><h3>hb_ot_math_get_glyph_top_accent_attachment ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
hb_ot_math_get_glyph_top_accent_attachment
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
<div class="refsect3">
<a name="hb-ot-math-get-glyph-top-accent-attachment.parameters"></a><h4>Parameters</h4>
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-ot-math-get-glyph-kerning"></a><h3>hb_ot_math_get_glyph_kerning ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-hb_ot_math_get_glyph_kerning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ot_math_get_glyph_kerning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-kern-t" title="enum hb_ot_math_kern_t"><span class="type">hb_ot_math_kern_t</span></a> kern</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> correction_height</code></em>);</pre>
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-ot-math-is-glyph-extended-shape"></a><h3>hb_ot_math_is_glyph_extended_shape ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_math_is_glyph_extended_shape (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_math_is_glyph_extended_shape (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
<div class="refsect3">
<a name="hb-ot-math-is-glyph-extended-shape.parameters"></a><h4>Parameters</h4>
<tbody>
<tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p>a <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to test</p></td>
+<td class="parameter_description"><p>a <a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to test</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-ot-math-get-glyph-variants"></a><h3>hb_ot_math_get_glyph_variants ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_math_get_glyph_variants (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ot_math_get_glyph_variants (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *variants_count</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t"><span class="type">hb_ot_math_glyph_variant_t</span></a> *variants</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t" title="hb_ot_math_glyph_variant_t"><span class="type">hb_ot_math_glyph_variant_t</span></a> *variants</code></em>);</pre>
<p>This function tries to retrieve the MathGlyphConstruction for the specified
font, glyph and direction. Note that only the value of
<a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-HORIZONTAL:CAPS" title="HB_DIRECTION_IS_HORIZONTAL()"><span class="type">HB_DIRECTION_IS_HORIZONTAL</span></a> is considered. It provides the corresponding list
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> from which to retrieve the values</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> from which to retrieve the values</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-ot-math-get-min-connector-overlap"></a><h3>hb_ot_math_get_min_connector_overlap ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-hb_ot_math_get_min_connector_overlap (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ot_math_get_min_connector_overlap (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>);</pre>
<p>This function tries to retrieve the MathVariants table for the specified
font and returns the minimum overlap of connecting glyphs to draw a glyph
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-ot-math-get-glyph-assembly"></a><h3>hb_ot_math_get_glyph_assembly ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_math_get_glyph_assembly (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ot_math_get_glyph_assembly (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *parts_count</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t"><span class="type">hb_ot_math_glyph_part_t</span></a> *parts</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t" title="hb_ot_math_glyph_part_t"><span class="type">hb_ot_math_glyph_part_t</span></a> *parts</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *italics_correction</code></em>);</pre>
<p>This function tries to retrieve the GlyphAssembly for the specified font,
glyph and direction. Note that only the value of <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-HORIZONTAL:CAPS" title="HB_DIRECTION_IS_HORIZONTAL()"><span class="type">HB_DIRECTION_IS_HORIZONTAL</span></a>
is considered. It provides the information necessary to draw the glyph
-assembly as an array of <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t"><span class="type">hb_ot_math_glyph_part_t</span></a>.</p>
+assembly as an array of <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t" title="hb_ot_math_glyph_part_t"><span class="type">hb_ot_math_glyph_part_t</span></a>.</p>
<div class="refsect3">
<a name="hb-ot-math-get-glyph-assembly.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> from which to retrieve the values</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> from which to retrieve the values</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
</div>
<hr>
<div class="refsect2">
-<a name="hb-ot-math-glyph-variant-t-struct"></a><h3>hb_ot_math_glyph_variant_t</h3>
+<a name="hb-ot-math-glyph-variant-t"></a><h3>hb_ot_math_glyph_variant_t</h3>
<pre class="programlisting">typedef struct {
hb_codepoint_t glyph;
hb_position_t advance;
</div>
<hr>
<div class="refsect2">
-<a name="hb-ot-math-glyph-part-t-struct"></a><h3>hb_ot_math_glyph_part_t</h3>
+<a name="hb-ot-math-glyph-part-t"></a><h3>hb_ot_math_glyph_part_t</h3>
<pre class="programlisting">typedef struct {
hb_codepoint_t glyph;
hb_position_t start_connector_length;
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-ot-name: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch10.html" title="OpenType API">
<link rel="prev" href="harfbuzz-hb-ot-math.html" title="hb-ot-math">
<link rel="next" href="harfbuzz-hb-ot-shape.html" title="hb-ot-shape">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="refsect2">
<a name="hb-ot-name-list-names"></a><h3>hb_ot_name_list_names ()</h3>
<pre class="programlisting">const <span class="returnvalue">hb_ot_name_entry_t</span> *
-hb_ot_name_list_names (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_name_list_names (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *num_entries</code></em>);</pre>
<p>Enumerates all available name IDs and language combinations. Returned
array is owned by the <em class="parameter"><code>face</code></em>
</tr>
<tr>
<td class="parameter_name"><p>num_entries</p></td>
-<td class="parameter_description"><p> number of returned entries. </p></td>
+<td class="parameter_description"><p>number of returned entries. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</div>
<div class="refsect3">
<a name="hb-ot-name-list-names.returns"></a><h4>Returns</h4>
-<p> Array of available name entries. </p>
+<p>Array of available name entries. </p>
<p><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=num_entries]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-1-0.html#api-index-2.1.0">2.1.0</a></p>
<div class="refsect2">
<a name="hb-ot-name-get-utf16"></a><h3>hb_ot_name_get_utf16 ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_name_get_utf16 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_name_get_utf16 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="type">hb_ot_name_id_t</span></a> name_id</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> language</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *text_size</code></em>,
</tr>
<tr>
<td class="parameter_name"><p>text_size</p></td>
-<td class="parameter_description"><p> input size of <em class="parameter"><code>text</code></em>
+<td class="parameter_description"><p>input size of <em class="parameter"><code>text</code></em>
buffer, and output size of
text written to buffer. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
-<td class="parameter_description"><p> buffer to write fetched name into. </p></td>
+<td class="parameter_description"><p>buffer to write fetched name into. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=text_size]</span></td>
</tr>
</tbody>
<div class="refsect2">
<a name="hb-ot-name-get-utf32"></a><h3>hb_ot_name_get_utf32 ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_name_get_utf32 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_name_get_utf32 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="type">hb_ot_name_id_t</span></a> name_id</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> language</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *text_size</code></em>,
</tr>
<tr>
<td class="parameter_name"><p>text_size</p></td>
-<td class="parameter_description"><p> input size of <em class="parameter"><code>text</code></em>
+<td class="parameter_description"><p>input size of <em class="parameter"><code>text</code></em>
buffer, and output size of
text written to buffer. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
-<td class="parameter_description"><p> buffer to write fetched name into. </p></td>
+<td class="parameter_description"><p>buffer to write fetched name into. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=text_size]</span></td>
</tr>
</tbody>
<div class="refsect2">
<a name="hb-ot-name-get-utf8"></a><h3>hb_ot_name_get_utf8 ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_name_get_utf8 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_name_get_utf8 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="type">hb_ot_name_id_t</span></a> name_id</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> language</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *text_size</code></em>,
</tr>
<tr>
<td class="parameter_name"><p>text_size</p></td>
-<td class="parameter_description"><p> input size of <em class="parameter"><code>text</code></em>
+<td class="parameter_description"><p>input size of <em class="parameter"><code>text</code></em>
buffer, and output size of
text written to buffer. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
-<td class="parameter_description"><p> buffer to write fetched name into. </p></td>
+<td class="parameter_description"><p>buffer to write fetched name into. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=text_size]</span></td>
</tr>
</tbody>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-ot-shape: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch10.html" title="OpenType API">
<link rel="prev" href="harfbuzz-hb-ot-name.html" title="hb-ot-name">
<link rel="next" href="harfbuzz-hb-ot-var.html" title="hb-ot-var">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="refsect2">
<a name="hb-ot-shape-glyphs-closure"></a><h3>hb_ot_shape_glyphs_closure ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ot_shape_glyphs_closure (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-shape.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *features</code></em>,
+hb_ot_shape_glyphs_closure (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *features</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_features</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
</div>
</div>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-ot-var: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch10.html" title="OpenType API">
<link rel="prev" href="harfbuzz-hb-ot-shape.html" title="hb-ot-shape">
<link rel="next" href="ch11.html" title="Apple Advanced Typography API">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-ot-var.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-ot-var.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+ <a href="#harfbuzz-hb-ot-var.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch10.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
</table></div>
</div>
<div class="refsect1">
-<a name="harfbuzz-hb-ot-var.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GFlags</a>
- <span class="lineart">╰──</span> hb_ot_var_axis_flags_t
-</pre>
-</div>
-<div class="refsect1">
<a name="harfbuzz-hb-ot-var.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include <hb-ot.h>
</pre>
<div class="refsect2">
<a name="hb-ot-var-has-data"></a><h3>hb_ot_var_has_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_var_has_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_var_has_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<p>This function allows to verify the presence of OpenType variation data on the face.</p>
<div class="refsect3">
<a name="hb-ot-var-has-data.parameters"></a><h4>Parameters</h4>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to test</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to test</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
<div class="refsect2">
<a name="hb-ot-var-find-axis-info"></a><h3>hb_ot_var_find_axis_info ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_var_find_axis_info (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_var_find_axis_info (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> axis_tag</code></em>,
<em class="parameter"><code><span class="type">hb_ot_var_axis_info_t</span> *axis_info</code></em>);</pre>
-<p class="since">Since: 2.2.0</p>
+<p class="since">Since: <a class="link" href="api-index-2-2-0.html#api-index-2.2.0">2.2.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-var-get-axis-count"></a><h3>hb_ot_var_get_axis_count ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_var_get_axis_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_var_get_axis_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-1-4-2.html#api-index-1.4.2">1.4.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-var-get-axis-infos"></a><h3>hb_ot_var_get_axis_infos ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_var_get_axis_infos (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_var_get_axis_infos (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *axes_count</code></em>,
<em class="parameter"><code><span class="type">hb_ot_var_axis_info_t</span> *axes_array</code></em>);</pre>
-<p class="since">Since: 2.2.0</p>
+<p class="since">Since: <a class="link" href="api-index-2-2-0.html#api-index-2.2.0">2.2.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-var-get-named-instance-count"></a><h3>hb_ot_var_get_named_instance_count ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_var_get_named_instance_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+hb_ot_var_get_named_instance_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-ot-var-named-instance-get-subfamily-name-id"></a><h3>hb_ot_var_named_instance_get_subfamily_name_id ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="returnvalue">hb_ot_name_id_t</span></a>
hb_ot_var_named_instance_get_subfamily_name_id
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> instance_index</code></em>);</pre>
</div>
<hr>
<a name="hb-ot-var-named-instance-get-postscript-name-id"></a><h3>hb_ot_var_named_instance_get_postscript_name_id ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-ot-name.html#hb-ot-name-id-t" title="hb_ot_name_id_t"><span class="returnvalue">hb_ot_name_id_t</span></a>
hb_ot_var_named_instance_get_postscript_name_id
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> instance_index</code></em>);</pre>
</div>
<hr>
<a name="hb-ot-var-named-instance-get-design-coords"></a><h3>hb_ot_var_named_instance_get_design_coords ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
hb_ot_var_named_instance_get_design_coords
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> instance_index</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> *coords_length</code></em>,
<em class="parameter"><code><span class="type">float</span> *coords</code></em>);</pre>
<div class="refsect2">
<a name="hb-ot-var-normalize-variations"></a><h3>hb_ot_var_normalize_variations ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ot_var_normalize_variations (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-font.html#hb-variation-t" title="hb_variation_t"><span class="type">hb_variation_t</span></a> *variations</code></em>,
+hb_ot_var_normalize_variations (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-variation-t" title="hb_variation_t"><span class="type">hb_variation_t</span></a> *variations</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> variations_length</code></em>,
<em class="parameter"><code><span class="type">int</span> *coords</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> coords_length</code></em>);</pre>
<div class="refsect2">
<a name="hb-ot-var-normalize-coords"></a><h3>hb_ot_var_normalize_coords ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_ot_var_normalize_coords (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_var_normalize_coords (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> coords_length</code></em>,
<em class="parameter"><code>const <span class="type">float</span> *design_coords</code></em>,
<em class="parameter"><code><span class="type">int</span> *normalized_coords</code></em>);</pre>
</tbody>
</table></div>
</div>
-<p class="since">Since: 2.2.0</p>
+<p class="since">Since: <a class="link" href="api-index-2-2-0.html#api-index-2.2.0">2.2.0</a></p>
</div>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-set: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch09.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-map.html" title="hb-map">
<link rel="next" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-set.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-set.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+ <a href="#harfbuzz-hb-set.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="returnvalue">hb_set_t</span></a> *
+<a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="returnvalue">hb_set_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-set.html#hb-set-create" title="hb_set_create ()">hb_set_create</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="returnvalue">hb_set_t</span></a> *
+<a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="returnvalue">hb_set_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-set.html#hb-set-get-empty" title="hb_set_get_empty ()">hb_set_get_empty</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="returnvalue">hb_set_t</span></a> *
+<a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="returnvalue">hb_set_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-set.html#hb-set-reference" title="hb_set_reference ()">hb_set_reference</a> <span class="c_punctuation">()</span>
</tbody>
</table></div>
</div>
-<a name="hb-set-t"></a><div class="refsect1">
+<div class="refsect1">
<a name="harfbuzz-hb-set.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-set.html#hb-set-t">hb_set_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t">hb_set_t</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
-<a name="harfbuzz-hb-set.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
- <span class="lineart">╰──</span> hb_set_t
-</pre>
-</div>
-<div class="refsect1">
<a name="harfbuzz-hb-set.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include <hb.h>
</pre>
<div class="refsect2">
<a name="hb-set-add"></a><h3>hb_set_add ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_add (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
+hb_set_add (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> codepoint</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-add.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-set-add-range"></a><h3>hb_set_add_range ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_add_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
+hb_set_add_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> first</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> last</code></em>);</pre>
<div class="refsect3">
<div class="refsect2">
<a name="hb-set-allocation-successful"></a><h3>hb_set_allocation_successful ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_allocation_successful (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
+hb_set_allocation_successful (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-allocation-successful.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-set-clear"></a><h3>hb_set_clear ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_clear (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
+hb_set_clear (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-clear.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<hr>
<div class="refsect2">
<a name="hb-set-create"></a><h3>hb_set_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="returnvalue">hb_set_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="returnvalue">hb_set_t</span></a> *
hb_set_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p><span class="annotation">[Xconstructor]</span></p>
<div class="refsect3">
<div class="refsect2">
<a name="hb-set-del"></a><h3>hb_set_del ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_del (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
+hb_set_del (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> codepoint</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-del.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-set-del-range"></a><h3>hb_set_del_range ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_del_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
+hb_set_del_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> first</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> last</code></em>);</pre>
<div class="refsect3">
<div class="refsect2">
<a name="hb-set-destroy"></a><h3>hb_set_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
+hb_set_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-set-destroy.parameters"></a><h4>Parameters</h4>
<hr>
<div class="refsect2">
<a name="hb-set-get-empty"></a><h3>hb_set_get_empty ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="returnvalue">hb_set_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="returnvalue">hb_set_t</span></a> *
hb_set_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="refsect3">
<a name="hb-set-get-empty.returns"></a><h4>Returns</h4>
<div class="refsect2">
<a name="hb-set-get-max"></a><h3>hb_set_get_max ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
-hb_set_get_max (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
+hb_set_get_max (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
<p>Finds the maximum number in the set.</p>
<div class="refsect3">
<a name="hb-set-get-max.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-set-get-min"></a><h3>hb_set_get_min ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
-hb_set_get_min (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
+hb_set_get_min (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
<p>Finds the minimum number in the set.</p>
<div class="refsect3">
<a name="hb-set-get-min.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-set-get-population"></a><h3>hb_set_get_population ()</h3>
<pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_set_get_population (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
+hb_set_get_population (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
<p>Returns the number of numbers in the set.</p>
<div class="refsect3">
<a name="hb-set-get-population.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-set-get-user-data"></a><h3>hb_set_get_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> *
-hb_set_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
+hb_set_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-set-get-user-data.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-set-has"></a><h3>hb_set_has ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_has (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
+hb_set_has (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> codepoint</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-has.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-set-intersect"></a><h3>hb_set_intersect ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_intersect (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
+hb_set_intersect (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-intersect.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-set-is-empty"></a><h3>hb_set_is_empty ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_is_empty (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
+hb_set_is_empty (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-is-empty.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-set-is-equal"></a><h3>hb_set_is_equal ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_is_equal (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
+hb_set_is_equal (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-is-equal.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
</div>
<div class="refsect3">
<a name="hb-set-is-equal.returns"></a><h4>Returns</h4>
-<p> <code class="literal">TRUE</code> if the two sets are equal, <code class="literal">FALSE</code> otherwise.</p>
+<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the two sets are equal, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
</div>
<div class="refsect2">
<a name="hb-set-is-subset"></a><h3>hb_set_is_subset ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_is_subset (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *larger_set</code></em>);</pre>
+hb_set_is_subset (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *larger_set</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-is-subset.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
</div>
<div class="refsect3">
<a name="hb-set-is-subset.returns"></a><h4>Returns</h4>
-<p> <code class="literal">TRUE</code> if the <em class="parameter"><code>set</code></em>
+<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <em class="parameter"><code>set</code></em>
is a subset of (or equal to) <em class="parameter"><code>larger_set</code></em>
-, <code class="literal">FALSE</code> otherwise.</p>
+, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-1-8-1.html#api-index-1.8.1">1.8.1</a></p>
</div>
<div class="refsect2">
<a name="hb-set-next"></a><h3>hb_set_next ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_next (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
+hb_set_next (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *codepoint</code></em>);</pre>
<p>Gets the next number in <em class="parameter"><code>set</code></em>
that is greater than current value of <em class="parameter"><code>codepoint</code></em>
<div class="refsect2">
<a name="hb-set-next-range"></a><h3>hb_set_next_range ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_next_range (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
+hb_set_next_range (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *first</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *last</code></em>);</pre>
<p>Gets the next consecutive range of numbers in <em class="parameter"><code>set</code></em>
</tr>
<tr>
<td class="parameter_name"><p>first</p></td>
-<td class="parameter_description"><p> output first codepoint in the range. </p></td>
+<td class="parameter_description"><p>output first codepoint in the range. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>last</p></td>
-<td class="parameter_description"><p> input current last and output last codepoint in the range. </p></td>
+<td class="parameter_description"><p>input current last and output last codepoint in the range. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>]</span></td>
</tr>
</tbody>
<div class="refsect2">
<a name="hb-set-previous"></a><h3>hb_set_previous ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_previous (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
+hb_set_previous (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *codepoint</code></em>);</pre>
<p>Gets the previous number in <em class="parameter"><code>set</code></em>
that is slower than current value of <em class="parameter"><code>codepoint</code></em>
<div class="refsect2">
<a name="hb-set-previous-range"></a><h3>hb_set_previous_range ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_previous_range (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
+hb_set_previous_range (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *first</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *last</code></em>);</pre>
<p>Gets the previous consecutive range of numbers in <em class="parameter"><code>set</code></em>
</tr>
<tr>
<td class="parameter_name"><p>first</p></td>
-<td class="parameter_description"><p> input current first and output first codepoint in the range. </p></td>
+<td class="parameter_description"><p>input current first and output first codepoint in the range. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>last</p></td>
-<td class="parameter_description"><p> output last codepoint in the range. </p></td>
+<td class="parameter_description"><p>output last codepoint in the range. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
<hr>
<div class="refsect2">
<a name="hb-set-reference"></a><h3>hb_set_reference ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="returnvalue">hb_set_t</span></a> *
-hb_set_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="returnvalue">hb_set_t</span></a> *
+hb_set_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-set-reference.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-set-set"></a><h3>hb_set_set ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_set (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
+hb_set_set (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-set.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-set-set-user-data"></a><h3>hb_set_set_user_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_set_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
+hb_set_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
<em class="parameter"><code><span class="type">void</span> *data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
<div class="refsect2">
<a name="hb-set-subtract"></a><h3>hb_set_subtract ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_subtract (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
+hb_set_subtract (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-subtract.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-set-symmetric-difference"></a><h3>hb_set_symmetric_difference ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_symmetric_difference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
+hb_set_symmetric_difference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-symmetric-difference.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-set-union"></a><h3>hb_set_union ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_set_union (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
+hb_set_union (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *set</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t" title="hb_set_t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
<div class="refsect3">
<a name="hb-set-union.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-shape-plan: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch09.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-set.html" title="hb-set">
<link rel="next" href="harfbuzz-hb-shape.html" title="hb-shape">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-shape-plan.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-shape-plan.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+ <a href="#harfbuzz-hb-shape-plan.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<tbody>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-create" title="hb_shape_plan_create ()">hb_shape_plan_create</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-create-cached" title="hb_shape_plan_create_cached ()">hb_shape_plan_create_cached</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-create2" title="hb_shape_plan_create2 ()">hb_shape_plan_create2</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-create-cached2" title="hb_shape_plan_create_cached2 ()">hb_shape_plan_create_cached2</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-get-empty" title="hb_shape_plan_get_empty ()">hb_shape_plan_get_empty</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-reference" title="hb_shape_plan_reference ()">hb_shape_plan_reference</a> <span class="c_punctuation">()</span>
</tbody>
</table></div>
</div>
-<a name="hb-shape-plan-t"></a><div class="refsect1">
+<div class="refsect1">
<a name="harfbuzz-hb-shape-plan.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
</colgroup>
<tbody><tr>
<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t">hb_shape_plan_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t">hb_shape_plan_t</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
-<a name="harfbuzz-hb-shape-plan.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
- <span class="lineart">╰──</span> hb_shape_plan_t
-</pre>
-</div>
-<div class="refsect1">
<a name="harfbuzz-hb-shape-plan.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include <hb.h>
</pre>
<a name="harfbuzz-hb-shape-plan.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="hb-shape-plan-create"></a><h3>hb_shape_plan_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
-hb_shape_plan_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-shape.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *user_features</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+hb_shape_plan_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *user_features</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_user_features</code></em>,
<em class="parameter"><code>const <span class="type">char</span> * const *shaper_list</code></em>);</pre>
<p><span class="annotation">[Xconstructor]</span></p>
<hr>
<div class="refsect2">
<a name="hb-shape-plan-create-cached"></a><h3>hb_shape_plan_create_cached ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
-hb_shape_plan_create_cached (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-shape.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *user_features</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+hb_shape_plan_create_cached (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *user_features</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_user_features</code></em>,
<em class="parameter"><code>const <span class="type">char</span> * const *shaper_list</code></em>);</pre>
<div class="refsect3">
<hr>
<div class="refsect2">
<a name="hb-shape-plan-create2"></a><h3>hb_shape_plan_create2 ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
-hb_shape_plan_create2 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-shape.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *user_features</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+hb_shape_plan_create2 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *user_features</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_user_features</code></em>,
<em class="parameter"><code>const <span class="type">int</span> *coords</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_coords</code></em>,
<hr>
<div class="refsect2">
<a name="hb-shape-plan-create-cached2"></a><h3>hb_shape_plan_create_cached2 ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
-hb_shape_plan_create_cached2 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-shape.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *user_features</code></em>,
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+hb_shape_plan_create_cached2 (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-buffer.html#hb-segment-properties-t" title="hb_segment_properties_t"><span class="type">hb_segment_properties_t</span></a> *props</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *user_features</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_user_features</code></em>,
<em class="parameter"><code>const <span class="type">int</span> *coords</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_coords</code></em>,
<div class="refsect2">
<a name="hb-shape-plan-destroy"></a><h3>hb_shape_plan_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_shape_plan_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>);</pre>
+hb_shape_plan_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-shape-plan-destroy.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-shape-plan-execute"></a><h3>hb_shape_plan_execute ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_shape_plan_execute (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-shape.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *features</code></em>,
+hb_shape_plan_execute (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *features</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_features</code></em>);</pre>
<div class="refsect3">
<a name="hb-shape-plan-execute.parameters"></a><h4>Parameters</h4>
<hr>
<div class="refsect2">
<a name="hb-shape-plan-get-empty"></a><h3>hb_shape_plan_get_empty ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
hb_shape_plan_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="refsect3">
<a name="hb-shape-plan-get-empty.returns"></a><h4>Returns</h4>
<div class="refsect2">
<a name="hb-shape-plan-get-shaper"></a><h3>hb_shape_plan_get_shaper ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> *
-hb_shape_plan_get_shaper (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>);</pre>
+hb_shape_plan_get_shaper (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>);</pre>
<div class="refsect3">
<a name="hb-shape-plan-get-shaper.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-shape-plan-get-user-data"></a><h3>hb_shape_plan_get_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> *
-hb_shape_plan_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
+hb_shape_plan_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-shape-plan-get-user-data.parameters"></a><h4>Parameters</h4>
<hr>
<div class="refsect2">
<a name="hb-shape-plan-reference"></a><h3>hb_shape_plan_reference ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
-hb_shape_plan_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="returnvalue">hb_shape_plan_t</span></a> *
+hb_shape_plan_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-shape-plan-reference.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-shape-plan-set-user-data"></a><h3>hb_shape_plan_set_user_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_shape_plan_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
+hb_shape_plan_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t" title="hb_shape_plan_t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
<em class="parameter"><code><span class="type">void</span> *data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-shape: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch09.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">
<link rel="next" href="harfbuzz-hb-unicode.html" title="hb-unicode">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-shape.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-shape.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+ <a href="#harfbuzz-hb-shape.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<tbody>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-shape.html#hb-feature-from-string" title="hb_feature_from_string ()">hb_feature_from_string</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">void</span>
-</td>
-<td class="function_name">
-<a class="link" href="harfbuzz-hb-shape.html#hb-feature-to-string" title="hb_feature_to_string ()">hb_feature_to_string</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
</tbody>
</table></div>
</div>
-<a name="hb-feature-t"></a><div class="refsect1">
-<a name="harfbuzz-hb-shape.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="name">
-<col class="description">
-</colgroup>
-<tbody>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-shape.html#HB-FEATURE-GLOBAL-END:CAPS" title="HB_FEATURE_GLOBAL_END">HB_FEATURE_GLOBAL_END</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-shape.html#HB-FEATURE-GLOBAL-START:CAPS" title="HB_FEATURE_GLOBAL_START">HB_FEATURE_GLOBAL_START</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-shape.html#hb-feature-t-struct" title="hb_feature_t">hb_feature_t</a></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect1">
-<a name="harfbuzz-hb-shape.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
- <span class="lineart">╰──</span> hb_feature_t
-</pre>
-</div>
<div class="refsect1">
<a name="harfbuzz-hb-shape.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include <hb.h>
<div class="refsect1">
<a name="harfbuzz-hb-shape.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
-<a name="hb-feature-from-string"></a><h3>hb_feature_from_string ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_feature_from_string (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
- <em class="parameter"><code><span class="type">int</span> len</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-shape.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *feature</code></em>);</pre>
-<p>Parses a string into a <a class="link" href="harfbuzz-hb-shape.html#hb-feature-t"><span class="type">hb_feature_t</span></a>.</p>
-<p>TODO: document the syntax here.</p>
-<div class="refsect3">
-<a name="hb-feature-from-string.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>str</p></td>
-<td class="parameter_description"><p> a string to parse. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> uint8_t]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>length of <em class="parameter"><code>str</code></em>
-, or -1 if string is <code class="literal">NULL</code> terminated</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>feature</p></td>
-<td class="parameter_description"><p> the <a class="link" href="harfbuzz-hb-shape.html#hb-feature-t"><span class="type">hb_feature_t</span></a> to initialize with the parsed values. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="hb-feature-from-string.returns"></a><h4>Returns</h4>
-<p><code class="literal">true</code> if <em class="parameter"><code>str</code></em>
-is successfully parsed, <code class="literal">false</code> otherwise.</p>
-</div>
-<p class="since">Since: <a class="link" href="api-index-0-9-5.html#api-index-0.9.5">0.9.5</a></p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-feature-to-string"></a><h3>hb_feature_to_string ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-hb_feature_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *feature</code></em>,
- <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
- <em class="parameter"><code>unsigned <span class="type">int</span> size</code></em>);</pre>
-<p>Converts a <a class="link" href="harfbuzz-hb-shape.html#hb-feature-t"><span class="type">hb_feature_t</span></a> into a <code class="literal">NULL</code>-terminated string in the format
-understood by <a class="link" href="harfbuzz-hb-shape.html#hb-feature-from-string" title="hb_feature_from_string ()"><code class="function">hb_feature_from_string()</code></a>. The client in responsible for
-allocating big enough size for <em class="parameter"><code>buf</code></em>
-, 128 bytes is more than enough.</p>
-<div class="refsect3">
-<a name="hb-feature-to-string.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>feature</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-shape.html#hb-feature-t"><span class="type">hb_feature_t</span></a> to convert</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>buf</p></td>
-<td class="parameter_description"><p> output string. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>the allocated size of <em class="parameter"><code>buf</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: <a class="link" href="api-index-0-9-5.html#api-index-0.9.5">0.9.5</a></p>
-</div>
-<hr>
-<div class="refsect2">
<a name="hb-shape"></a><h3>hb_shape ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_shape (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-shape.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *features</code></em>,
+hb_shape (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *features</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_features</code></em>);</pre>
<p>Shapes <em class="parameter"><code>buffer</code></em>
using <em class="parameter"><code>font</code></em>
turning its Unicode characters content to
positioned glyphs. If <em class="parameter"><code>features</code></em>
- is not <code class="literal">NULL</code>, it will be used to control the
+ is not <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, it will be used to control the
features applied during shaping.</p>
<div class="refsect3">
<a name="hb-shape.parameters"></a><h4>Parameters</h4>
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> to use for shaping</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> to use for shaping</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> to shape</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> to shape</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>features</p></td>
-<td class="parameter_description"><p> an array of user
-specified <a class="link" href="harfbuzz-hb-shape.html#hb-feature-t"><span class="type">hb_feature_t</span></a> or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_description"><p>an array of user
+specified <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=num_features][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<div class="refsect2">
<a name="hb-shape-full"></a><h3>hb_shape_full ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_shape_full (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
- <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-shape.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *features</code></em>,
+hb_shape_full (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+ <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *features</code></em>,
<em class="parameter"><code>unsigned <span class="type">int</span> num_features</code></em>,
<em class="parameter"><code>const <span class="type">char</span> * const *shaper_list</code></em>);</pre>
<p>See <a class="link" href="harfbuzz-hb-shape.html#hb-shape" title="hb_shape ()"><code class="function">hb_shape()</code></a> for details. If <em class="parameter"><code>shaper_list</code></em>
- is not <code class="literal">NULL</code>, the specified
+ is not <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the specified
shapers will be used in the given order, otherwise the default shapers list
will be used.</p>
<div class="refsect3">
<tbody>
<tr>
<td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> to use for shaping</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> to use for shaping</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> to shape</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> to shape</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>features</p></td>
-<td class="parameter_description"><p> an array of user
-specified <a class="link" href="harfbuzz-hb-shape.html#hb-feature-t"><span class="type">hb_feature_t</span></a> or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_description"><p>an array of user
+specified <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=num_features][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
</tr>
<tr>
<td class="parameter_name"><p>shaper_list</p></td>
-<td class="parameter_description"><p> a <code class="literal">NULL</code>-terminated
-array of shapers to use or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated
+array of shapers to use or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
<p>Retrieves the list of shapers supported by HarfBuzz.</p>
<div class="refsect3">
<a name="hb-shape-list-shapers.returns"></a><h4>Returns</h4>
-<p> an array of
+<p>an array of
constant strings. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span></p>
</div>
</div>
<div class="refsect1">
<a name="harfbuzz-hb-shape.other_details"></a><h2>Types and Values</h2>
-<div class="refsect2">
-<a name="HB-FEATURE-GLOBAL-END:CAPS"></a><h3>HB_FEATURE_GLOBAL_END</h3>
-<pre class="programlisting">#define HB_FEATURE_GLOBAL_END ((unsigned int) -1)
-</pre>
-<p class="since">Since: <a class="link" href="api-index-2-0-0.html#api-index-2.0.0">2.0.0</a></p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HB-FEATURE-GLOBAL-START:CAPS"></a><h3>HB_FEATURE_GLOBAL_START</h3>
-<pre class="programlisting">#define HB_FEATURE_GLOBAL_START 0
-</pre>
-<p class="since">Since: <a class="link" href="api-index-2-0-0.html#api-index-2.0.0">2.0.0</a></p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-feature-t-struct"></a><h3>hb_feature_t</h3>
-<pre class="programlisting">typedef struct {
- hb_tag_t tag;
- uint32_t value;
- unsigned int start;
- unsigned int end;
-} hb_feature_t;
-</pre>
-</div>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-unicode: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch09.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-shape.html" title="hb-shape">
<link rel="next" href="harfbuzz-hb-version.html" title="hb-version">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-unicode.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
- <a href="#harfbuzz-hb-unicode.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+ <a href="#harfbuzz-hb-unicode.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-create" title="hb_unicode_funcs_create ()">hb_unicode_funcs_create</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-get-default" title="hb_unicode_funcs_get_default ()">hb_unicode_funcs_get_default</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-get-empty" title="hb_unicode_funcs_get_empty ()">hb_unicode_funcs_get_empty</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-get-parent" title="hb_unicode_funcs_get_parent ()">hb_unicode_funcs_get_parent</a> <span class="c_punctuation">()</span>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-reference" title="hb_unicode_funcs_reference ()">hb_unicode_funcs_reference</a> <span class="c_punctuation">()</span>
</tbody>
</table></div>
</div>
-<a name="hb-unicode-funcs-t"></a><div class="refsect1">
+<div class="refsect1">
<a name="harfbuzz-hb-unicode.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t">hb_unicode_funcs_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t">hb_unicode_funcs_t</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
</table></div>
</div>
<div class="refsect1">
-<a name="harfbuzz-hb-unicode.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
- <span class="lineart">╰──</span> hb_unicode_funcs_t
- <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
- <span class="lineart">├──</span> hb_unicode_combining_class_t
- <span class="lineart">╰──</span> hb_unicode_general_category_t
-</pre>
-</div>
-<div class="refsect1">
<a name="harfbuzz-hb-unicode.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include <hb.h>
</pre>
<div class="refsect2">
<a name="hb-unicode-combining-class"></a><h3>hb_unicode_combining_class ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-combining-class-t" title="enum hb_unicode_combining_class_t"><span class="returnvalue">hb_unicode_combining_class_t</span></a>
-hb_unicode_combining_class (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_combining_class (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
</div>
<div class="refsect2">
<a name="hb-unicode-combining-class-func-t"></a><h3>hb_unicode_combining_class_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-combining-class-t" title="enum hb_unicode_combining_class_t"><span class="returnvalue">hb_unicode_combining_class_t</span></a>
-<span class="c_punctuation">(</span>*hb_unicode_combining_class_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+<span class="c_punctuation">(</span>*hb_unicode_combining_class_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
</div>
<div class="refsect2">
<a name="hb-unicode-compose"></a><h3>hb_unicode_compose ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_unicode_compose (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_compose (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> a</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> b</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *ab</code></em>);</pre>
<div class="refsect2">
<a name="hb-unicode-compose-func-t"></a><h3>hb_unicode_compose_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_unicode_compose_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+<span class="c_punctuation">(</span>*hb_unicode_compose_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> a</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> b</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *ab</code></em>,
<div class="refsect2">
<a name="hb-unicode-decompose"></a><h3>hb_unicode_decompose ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_unicode_decompose (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_decompose (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> ab</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *a</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *b</code></em>);</pre>
<div class="refsect2">
<a name="hb-unicode-decompose-func-t"></a><h3>hb_unicode_decompose_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-<span class="c_punctuation">(</span>*hb_unicode_decompose_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+<span class="c_punctuation">(</span>*hb_unicode_decompose_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> ab</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *a</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *b</code></em>,
<hr>
<div class="refsect2">
<a name="hb-unicode-funcs-create"></a><h3>hb_unicode_funcs_create ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
-hb_unicode_funcs_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *parent</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+hb_unicode_funcs_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *parent</code></em>);</pre>
<p><span class="annotation">[Xconstructor]</span></p>
<div class="refsect3">
<a name="hb-unicode-funcs-create.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-unicode-funcs-destroy"></a><h3>hb_unicode_funcs_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_unicode_funcs_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
+hb_unicode_funcs_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-unicode-funcs-destroy.parameters"></a><h4>Parameters</h4>
<hr>
<div class="refsect2">
<a name="hb-unicode-funcs-get-default"></a><h3>hb_unicode_funcs_get_default ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
hb_unicode_funcs_get_default (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-unicode-funcs-get-empty"></a><h3>hb_unicode_funcs_get_empty ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
hb_unicode_funcs_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="refsect3">
<a name="hb-unicode-funcs-get-empty.returns"></a><h4>Returns</h4>
<hr>
<div class="refsect2">
<a name="hb-unicode-funcs-get-parent"></a><h3>hb_unicode_funcs_get_parent ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
-hb_unicode_funcs_get_parent (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+hb_unicode_funcs_get_parent (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
<div class="refsect3">
<a name="hb-unicode-funcs-get-parent.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-unicode-funcs-get-user-data"></a><h3>hb_unicode_funcs_get_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> *
-hb_unicode_funcs_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
+hb_unicode_funcs_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-unicode-funcs-get-user-data.parameters"></a><h4>Parameters</h4>
<div class="refsect2">
<a name="hb-unicode-funcs-is-immutable"></a><h3>hb_unicode_funcs_is_immutable ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_unicode_funcs_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
+hb_unicode_funcs_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
<div class="refsect3">
<a name="hb-unicode-funcs-is-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<div class="refsect2">
<a name="hb-unicode-funcs-make-immutable"></a><h3>hb_unicode_funcs_make_immutable ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_unicode_funcs_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
+hb_unicode_funcs_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
<div class="refsect3">
<a name="hb-unicode-funcs-make-immutable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<hr>
<div class="refsect2">
<a name="hb-unicode-funcs-reference"></a><h3>hb_unicode_funcs_reference ()</h3>
-<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
-hb_unicode_funcs_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
+hb_unicode_funcs_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="hb-unicode-funcs-reference.parameters"></a><h4>Parameters</h4>
<a name="hb-unicode-funcs-set-combining-class-func"></a><h3>hb_unicode_funcs_set_combining_class_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_unicode_funcs_set_combining_class_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-combining-class-func-t" title="hb_unicode_combining_class_func_t ()"><span class="type">hb_unicode_combining_class_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect2">
<a name="hb-unicode-funcs-set-compose-func"></a><h3>hb_unicode_funcs_set_compose_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_unicode_funcs_set_compose_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_funcs_set_compose_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-compose-func-t" title="hb_unicode_compose_func_t ()"><span class="type">hb_unicode_compose_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect2">
<a name="hb-unicode-funcs-set-decompose-func"></a><h3>hb_unicode_funcs_set_decompose_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_unicode_funcs_set_decompose_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_funcs_set_decompose_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-decompose-func-t" title="hb_unicode_decompose_func_t ()"><span class="type">hb_unicode_decompose_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<a name="hb-unicode-funcs-set-general-category-func"></a><h3>hb_unicode_funcs_set_general_category_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
hb_unicode_funcs_set_general_category_func
- (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+ (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-general-category-func-t" title="hb_unicode_general_category_func_t ()"><span class="type">hb_unicode_general_category_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect2">
<a name="hb-unicode-funcs-set-mirroring-func"></a><h3>hb_unicode_funcs_set_mirroring_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_unicode_funcs_set_mirroring_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_funcs_set_mirroring_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-mirroring-func-t" title="hb_unicode_mirroring_func_t ()"><span class="type">hb_unicode_mirroring_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect2">
<a name="hb-unicode-funcs-set-script-func"></a><h3>hb_unicode_funcs_set_script_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
-hb_unicode_funcs_set_script_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_funcs_set_script_func (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-script-func-t" title="hb_unicode_script_func_t ()"><span class="type">hb_unicode_script_func_t</span></a> func</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
<div class="refsect2">
<a name="hb-unicode-funcs-set-user-data"></a><h3>hb_unicode_funcs_set_user_data ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_unicode_funcs_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
- <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
+hb_unicode_funcs_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+ <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t" title="hb_user_data_key_t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
<em class="parameter"><code><span class="type">void</span> *data</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
<div class="refsect2">
<a name="hb-unicode-general-category"></a><h3>hb_unicode_general_category ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-general-category-t" title="enum hb_unicode_general_category_t"><span class="returnvalue">hb_unicode_general_category_t</span></a>
-hb_unicode_general_category (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_general_category (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
</div>
<div class="refsect2">
<a name="hb-unicode-general-category-func-t"></a><h3>hb_unicode_general_category_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-general-category-t" title="enum hb_unicode_general_category_t"><span class="returnvalue">hb_unicode_general_category_t</span></a>
-<span class="c_punctuation">(</span>*hb_unicode_general_category_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+<span class="c_punctuation">(</span>*hb_unicode_general_category_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
</div>
<div class="refsect2">
<a name="hb-unicode-mirroring"></a><h3>hb_unicode_mirroring ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
-hb_unicode_mirroring (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_mirroring (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
</div>
<div class="refsect2">
<a name="hb-unicode-mirroring-func-t"></a><h3>hb_unicode_mirroring_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
-<span class="c_punctuation">(</span>*hb_unicode_mirroring_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+<span class="c_punctuation">(</span>*hb_unicode_mirroring_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
</div>
<div class="refsect2">
<a name="hb-unicode-script"></a><h3>hb_unicode_script ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="returnvalue">hb_script_t</span></a>
-hb_unicode_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+hb_unicode_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>);</pre>
<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
</div>
<div class="refsect2">
<a name="hb-unicode-script-func-t"></a><h3>hb_unicode_script_func_t ()</h3>
<pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="returnvalue">hb_script_t</span></a>
-<span class="c_punctuation">(</span>*hb_unicode_script_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
+<span class="c_punctuation">(</span>*hb_unicode_script_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t" title="hb_unicode_funcs_t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
</div>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-uniscribe: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch12.html" title="Integration API">
<link rel="prev" href="harfbuzz-hb-icu.html" title="hb-icu">
<link rel="next" href="api-index-full.html" title="API Index">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="refsect2">
<a name="hb-uniscribe-font-get-hfont"></a><h3>hb_uniscribe_font_get_hfont ()</h3>
<pre class="programlisting"><span class="returnvalue">HFONT</span>
-hb_uniscribe_font_get_hfont (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_uniscribe_font_get_hfont (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="hb-uniscribe-font-get-logfontw"></a><h3>hb_uniscribe_font_get_logfontw ()</h3>
<pre class="programlisting"><span class="returnvalue">LOGFONTW</span> *
-hb_uniscribe_font_get_logfontw (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
+hb_uniscribe_font_get_logfontw (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
</div>
</div>
<div class="refsect1">
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hb-version: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="ch09.html" title="Core API">
<link rel="prev" href="harfbuzz-hb-unicode.html" title="hb-unicode">
<link rel="next" href="ch10.html" title="OpenType API">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<tbody>
<tr>
<td class="parameter_name"><p>major</p></td>
-<td class="parameter_description"><p> Library major version component. </p></td>
+<td class="parameter_description"><p>Library major version component. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>minor</p></td>
-<td class="parameter_description"><p> Library minor version component. </p></td>
+<td class="parameter_description"><p>Library minor version component. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>micro</p></td>
-<td class="parameter_description"><p> Library micro version component. </p></td>
+<td class="parameter_description"><p>Library micro version component. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
<hr>
<div class="refsect2">
<a name="HB-VERSION-MICRO:CAPS"></a><h3>HB_VERSION_MICRO</h3>
-<pre class="programlisting">#define HB_VERSION_MICRO 1
+<pre class="programlisting">#define HB_VERSION_MICRO 0
</pre>
</div>
<hr>
<div class="refsect2">
<a name="HB-VERSION-MINOR:CAPS"></a><h3>HB_VERSION_MINOR</h3>
-<pre class="programlisting">#define HB_VERSION_MINOR 3
+<pre class="programlisting">#define HB_VERSION_MINOR 4
</pre>
</div>
<hr>
<div class="refsect2">
<a name="HB-VERSION-STRING:CAPS"></a><h3>HB_VERSION_STRING</h3>
-<pre class="programlisting">#define HB_VERSION_STRING "2.3.1"
+<pre class="programlisting">#define HB_VERSION_STRING "2.4.0"
</pre>
</div>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
</sub>
<sub name="API Index" link="api-index-full.html"/>
<sub name="Index of deprecated API" link="deprecated-api-index.html"/>
+ <sub name="Index of new symbols in 2.2.0" link="api-index-2-2-0.html"/>
<sub name="Index of new symbols in 2.1.0" link="api-index-2-1-0.html"/>
<sub name="Index of new symbols in 2.0.0" link="api-index-2-0-0.html"/>
<sub name="Index of new symbols in 1.9.0" link="api-index-1-9-0.html"/>
<keyword type="macro" name="HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT" link="harfbuzz-hb-buffer.html#HB-BUFFER-REPLACEMENT-CODEPOINT-DEFAULT:CAPS" since="0.9.31"/>
<keyword type="typedef" name="hb_buffer_t" link="harfbuzz-hb-buffer.html#hb-buffer-t"/>
<keyword type="enum" name="enum hb_glyph_flags_t" link="harfbuzz-hb-buffer.html#hb-glyph-flags-t" since="1.5.0"/>
- <keyword type="struct" name="hb_glyph_position_t" link="harfbuzz-hb-buffer.html#hb-glyph-position-t-struct"/>
+ <keyword type="struct" name="hb_glyph_position_t" link="harfbuzz-hb-buffer.html#hb-glyph-position-t"/>
<keyword type="enum" name="enum hb_buffer_content_type_t" link="harfbuzz-hb-buffer.html#hb-buffer-content-type-t"/>
<keyword type="enum" name="enum hb_buffer_flags_t" link="harfbuzz-hb-buffer.html#hb-buffer-flags-t" since="0.9.20"/>
<keyword type="enum" name="enum hb_buffer_cluster_level_t" link="harfbuzz-hb-buffer.html#hb-buffer-cluster-level-t" since="0.9.42"/>
- <keyword type="struct" name="hb_segment_properties_t" link="harfbuzz-hb-buffer.html#hb-segment-properties-t-struct"/>
+ <keyword type="struct" name="hb_segment_properties_t" link="harfbuzz-hb-buffer.html#hb-segment-properties-t"/>
<keyword type="enum" name="enum hb_buffer_serialize_format_t" link="harfbuzz-hb-buffer.html#hb-buffer-serialize-format-t" since="0.9.2"/>
<keyword type="enum" name="enum hb_buffer_serialize_flags_t" link="harfbuzz-hb-buffer.html#hb-buffer-serialize-flags-t" since="0.9.20"/>
<keyword type="enum" name="enum hb_buffer_diff_flags_t" link="harfbuzz-hb-buffer.html#hb-buffer-diff-flags-t"/>
<keyword type="function" name="hb_language_from_string ()" link="harfbuzz-hb-common.html#hb-language-from-string" since="0.9.2"/>
<keyword type="function" name="hb_language_to_string ()" link="harfbuzz-hb-common.html#hb-language-to-string" since="0.9.2"/>
<keyword type="function" name="hb_language_get_default ()" link="harfbuzz-hb-common.html#hb-language-get-default" since="0.9.2"/>
+ <keyword type="function" name="hb_feature_from_string ()" link="harfbuzz-hb-common.html#hb-feature-from-string" since="0.9.5"/>
+ <keyword type="function" name="hb_feature_to_string ()" link="harfbuzz-hb-common.html#hb-feature-to-string" since="0.9.5"/>
+ <keyword type="function" name="hb_variation_from_string ()" link="harfbuzz-hb-common.html#hb-variation-from-string" since="1.4.2"/>
+ <keyword type="function" name="hb_variation_to_string ()" link="harfbuzz-hb-common.html#hb-variation-to-string" since="1.4.2"/>
<keyword type="function" name="hb_destroy_func_t ()" link="harfbuzz-hb-common.html#hb-destroy-func-t"/>
<keyword type="macro" name="HB_TAG()" link="harfbuzz-hb-common.html#HB-TAG:CAPS"/>
<keyword type="macro" name="HB_UNTAG()" link="harfbuzz-hb-common.html#HB-UNTAG:CAPS"/>
<keyword type="typedef" name="hb_codepoint_t" link="harfbuzz-hb-common.html#hb-codepoint-t"/>
<keyword type="enum" name="enum hb_direction_t" link="harfbuzz-hb-common.html#hb-direction-t"/>
<keyword type="typedef" name="hb_language_t" link="harfbuzz-hb-common.html#hb-language-t"/>
+ <keyword type="struct" name="hb_feature_t" link="harfbuzz-hb-common.html#hb-feature-t"/>
+ <keyword type="struct" name="hb_variation_t" link="harfbuzz-hb-common.html#hb-variation-t" since="1.4.2"/>
<keyword type="typedef" name="hb_mask_t" link="harfbuzz-hb-common.html#hb-mask-t"/>
<keyword type="typedef" name="hb_position_t" link="harfbuzz-hb-common.html#hb-position-t"/>
<keyword type="typedef" name="hb_tag_t" link="harfbuzz-hb-common.html#hb-tag-t"/>
<keyword type="enum" name="enum hb_script_t" link="harfbuzz-hb-common.html#hb-script-t"/>
- <keyword type="struct" name="hb_user_data_key_t" link="harfbuzz-hb-common.html#hb-user-data-key-t-struct"/>
+ <keyword type="struct" name="hb_user_data_key_t" link="harfbuzz-hb-common.html#hb-user-data-key-t"/>
<keyword type="union" name="hb_var_int_t" link="harfbuzz-hb-common.html#hb-var-int-t"/>
<keyword type="macro" name="HB_TAG_NONE" link="harfbuzz-hb-common.html#HB-TAG-NONE:CAPS"/>
<keyword type="macro" name="HB_TAG_MAX" link="harfbuzz-hb-common.html#HB-TAG-MAX:CAPS"/>
<keyword type="macro" name="HB_TAG_MAX_SIGNED" link="harfbuzz-hb-common.html#HB-TAG-MAX-SIGNED:CAPS"/>
<keyword type="macro" name="HB_LANGUAGE_INVALID" link="harfbuzz-hb-common.html#HB-LANGUAGE-INVALID:CAPS"/>
+ <keyword type="macro" name="HB_FEATURE_GLOBAL_END" link="harfbuzz-hb-common.html#HB-FEATURE-GLOBAL-END:CAPS" since="2.0.0"/>
+ <keyword type="macro" name="HB_FEATURE_GLOBAL_START" link="harfbuzz-hb-common.html#HB-FEATURE-GLOBAL-START:CAPS" since="2.0.0"/>
<keyword type="function" name="hb_font_get_glyph_func_t ()" link="harfbuzz-hb-deprecated.html#hb-font-get-glyph-func-t" deprecated=""/>
<keyword type="function" name="hb_ot_layout_table_find_script ()" link="harfbuzz-hb-deprecated.html#hb-ot-layout-table-find-script"/>
<keyword type="function" name="hb_font_funcs_set_glyph_h_kerning_func ()" link="harfbuzz-hb-deprecated.html#hb-font-funcs-set-glyph-h-kerning-func" deprecated="2.0.0" since="0.9.2"/>
<keyword type="function" name="hb_font_set_ptem ()" link="harfbuzz-hb-font.html#hb-font-set-ptem" since="1.6.0"/>
<keyword type="function" name="hb_font_set_scale ()" link="harfbuzz-hb-font.html#hb-font-set-scale" since="0.9.2"/>
<keyword type="function" name="hb_font_set_user_data ()" link="harfbuzz-hb-font.html#hb-font-set-user-data" since="0.9.2"/>
- <keyword type="function" name="hb_variation_from_string ()" link="harfbuzz-hb-font.html#hb-variation-from-string" since="1.4.2"/>
- <keyword type="function" name="hb_variation_to_string ()" link="harfbuzz-hb-font.html#hb-variation-to-string" since="1.4.2"/>
<keyword type="function" name="hb_font_set_variations ()" link="harfbuzz-hb-font.html#hb-font-set-variations" since="1.4.2"/>
<keyword type="function" name="hb_font_set_var_coords_design ()" link="harfbuzz-hb-font.html#hb-font-set-var-coords-design" since="1.4.2"/>
<keyword type="function" name="hb_font_set_var_coords_normalized ()" link="harfbuzz-hb-font.html#hb-font-set-var-coords-normalized" since="1.4.2"/>
<keyword type="typedef" name="hb_font_get_glyph_v_advance_func_t" link="harfbuzz-hb-font.html#hb-font-get-glyph-v-advance-func-t"/>
<keyword type="typedef" name="hb_font_get_glyph_v_advances_func_t" link="harfbuzz-hb-font.html#hb-font-get-glyph-v-advances-func-t"/>
<keyword type="typedef" name="hb_font_get_glyph_v_origin_func_t" link="harfbuzz-hb-font.html#hb-font-get-glyph-v-origin-func-t"/>
- <keyword type="struct" name="hb_variation_t" link="harfbuzz-hb-font.html#hb-variation-t" since="1.4.2"/>
<keyword type="typedef" name="hb_font_t" link="harfbuzz-hb-font.html#hb-font-t"/>
<keyword type="typedef" name="hb_font_get_font_h_extents_func_t" link="harfbuzz-hb-font.html#hb-font-get-font-h-extents-func-t"/>
<keyword type="typedef" name="hb_font_get_font_v_extents_func_t" link="harfbuzz-hb-font.html#hb-font-get-font-v-extents-func-t"/>
<keyword type="function" name="hb_shape_plan_reference ()" link="harfbuzz-hb-shape-plan.html#hb-shape-plan-reference" since="0.9.7"/>
<keyword type="function" name="hb_shape_plan_set_user_data ()" link="harfbuzz-hb-shape-plan.html#hb-shape-plan-set-user-data" since="0.9.7"/>
<keyword type="typedef" name="hb_shape_plan_t" link="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"/>
- <keyword type="function" name="hb_feature_from_string ()" link="harfbuzz-hb-shape.html#hb-feature-from-string" since="0.9.5"/>
- <keyword type="function" name="hb_feature_to_string ()" link="harfbuzz-hb-shape.html#hb-feature-to-string" since="0.9.5"/>
<keyword type="function" name="hb_shape ()" link="harfbuzz-hb-shape.html#hb-shape" since="0.9.2"/>
<keyword type="function" name="hb_shape_full ()" link="harfbuzz-hb-shape.html#hb-shape-full" since="0.9.2"/>
<keyword type="function" name="hb_shape_list_shapers ()" link="harfbuzz-hb-shape.html#hb-shape-list-shapers" since="0.9.2"/>
- <keyword type="macro" name="HB_FEATURE_GLOBAL_END" link="harfbuzz-hb-shape.html#HB-FEATURE-GLOBAL-END:CAPS" since="2.0.0"/>
- <keyword type="macro" name="HB_FEATURE_GLOBAL_START" link="harfbuzz-hb-shape.html#HB-FEATURE-GLOBAL-START:CAPS" since="2.0.0"/>
- <keyword type="struct" name="hb_feature_t" link="harfbuzz-hb-shape.html#hb-feature-t-struct"/>
<keyword type="function" name="hb_unicode_combining_class ()" link="harfbuzz-hb-unicode.html#hb-unicode-combining-class" since="0.9.2"/>
<keyword type="function" name="hb_unicode_combining_class_func_t ()" link="harfbuzz-hb-unicode.html#hb-unicode-combining-class-func-t"/>
<keyword type="function" name="hb_unicode_compose ()" link="harfbuzz-hb-unicode.html#hb-unicode-compose" since="0.9.2"/>
<keyword type="macro" name="HB_OT_MATH_SCRIPT" link="harfbuzz-hb-ot-math.html#HB-OT-MATH-SCRIPT:CAPS"/>
<keyword type="enum" name="enum hb_ot_math_constant_t" link="harfbuzz-hb-ot-math.html#hb-ot-math-constant-t" since="1.3.3"/>
<keyword type="enum" name="enum hb_ot_math_kern_t" link="harfbuzz-hb-ot-math.html#hb-ot-math-kern-t" since="1.3.3"/>
- <keyword type="struct" name="hb_ot_math_glyph_variant_t" link="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t-struct"/>
+ <keyword type="struct" name="hb_ot_math_glyph_variant_t" link="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t" since="1.3.3"/>
<keyword type="enum" name="enum hb_ot_math_glyph_part_flags_t" link="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-flags-t" since="1.3.3"/>
- <keyword type="struct" name="hb_ot_math_glyph_part_t" link="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t-struct"/>
+ <keyword type="struct" name="hb_ot_math_glyph_part_t" link="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t" since="1.3.3"/>
<keyword type="function" name="hb_ot_name_list_names ()" link="harfbuzz-hb-ot-name.html#hb-ot-name-list-names" since="2.1.0"/>
<keyword type="function" name="hb_ot_name_get_utf16 ()" link="harfbuzz-hb-ot-name.html#hb-ot-name-get-utf16" since="2.1.0"/>
<keyword type="function" name="hb_ot_name_get_utf32 ()" link="harfbuzz-hb-ot-name.html#hb-ot-name-get-utf32" since="2.1.0"/>
<keyword type="function" name="hb_glib_script_from_script ()" link="harfbuzz-hb-glib.html#hb-glib-script-from-script"/>
<keyword type="function" name="hb_glib_script_to_script ()" link="harfbuzz-hb-glib.html#hb-glib-script-to-script"/>
<keyword type="function" name="hb_glib_blob_create ()" link="harfbuzz-hb-glib.html#hb-glib-blob-create" since="0.9.38"/>
- <keyword type="function" name="hb_gobject_blob_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-blob-get-type" since="0.9.2"/>
- <keyword type="function" name="hb_gobject_buffer_content_type_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-content-type-get-type"/>
- <keyword type="function" name="hb_gobject_buffer_diff_flags_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-diff-flags-get-type"/>
- <keyword type="function" name="hb_gobject_buffer_flags_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-flags-get-type"/>
- <keyword type="function" name="hb_gobject_buffer_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-get-type" since="0.9.2"/>
- <keyword type="function" name="hb_gobject_buffer_serialize_flags_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-flags-get-type"/>
- <keyword type="function" name="hb_gobject_buffer_serialize_format_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-format-get-type"/>
- <keyword type="function" name="hb_gobject_direction_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-direction-get-type"/>
- <keyword type="function" name="hb_gobject_face_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-face-get-type" since="0.9.2"/>
- <keyword type="function" name="hb_gobject_font_funcs_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-font-funcs-get-type" since="0.9.2"/>
- <keyword type="function" name="hb_gobject_font_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-font-get-type" since="0.9.2"/>
- <keyword type="function" name="hb_gobject_glyph_flags_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-glyph-flags-get-type"/>
- <keyword type="function" name="hb_gobject_map_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-map-get-type"/>
- <keyword type="function" name="hb_gobject_memory_mode_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-memory-mode-get-type"/>
- <keyword type="function" name="hb_gobject_ot_color_palette_flags_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-ot-color-palette-flags-get-type"/>
- <keyword type="function" name="hb_gobject_ot_layout_glyph_class_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-ot-layout-glyph-class-get-type"/>
- <keyword type="function" name="hb_gobject_ot_math_constant_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-ot-math-constant-get-type"/>
- <keyword type="function" name="hb_gobject_ot_math_glyph_part_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-ot-math-glyph-part-get-type"/>
- <keyword type="function" name="hb_gobject_ot_math_glyph_part_flags_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-ot-math-glyph-part-flags-get-type"/>
- <keyword type="function" name="hb_gobject_ot_math_glyph_variant_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-ot-math-glyph-variant-get-type"/>
- <keyword type="function" name="hb_gobject_ot_math_kern_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-ot-math-kern-get-type"/>
- <keyword type="function" name="hb_gobject_script_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-script-get-type"/>
- <keyword type="function" name="hb_gobject_shape_plan_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-shape-plan-get-type"/>
- <keyword type="function" name="hb_gobject_unicode_combining_class_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-unicode-combining-class-get-type"/>
- <keyword type="function" name="hb_gobject_unicode_funcs_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-unicode-funcs-get-type" since="0.9.2"/>
- <keyword type="function" name="hb_gobject_unicode_general_category_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-unicode-general-category-get-type"/>
- <keyword type="function" name="hb_gobject_buffer_cluster_level_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-cluster-level-get-type"/>
- <keyword type="function" name="hb_gobject_feature_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-feature-get-type"/>
- <keyword type="function" name="hb_gobject_glyph_info_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-glyph-info-get-type"/>
- <keyword type="function" name="hb_gobject_glyph_position_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-glyph-position-get-type"/>
- <keyword type="function" name="hb_gobject_segment_properties_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-segment-properties-get-type"/>
- <keyword type="function" name="hb_gobject_set_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-set-get-type"/>
- <keyword type="function" name="hb_gobject_user_data_key_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-user-data-key-get-type"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_BLOB" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BLOB:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_BUFFER" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CONTENT-TYPE:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_BUFFER_DIFF_FLAGS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-DIFF-FLAGS:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_BUFFER_FLAGS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-FLAGS:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FLAGS:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FORMAT:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_DIRECTION" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-DIRECTION:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_FACE" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FACE:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_FONT" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FONT:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_FONT_FUNCS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FONT-FUNCS:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_GLYPH_FLAGS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-FLAGS:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_MAP" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-MAP:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_MEMORY_MODE" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-MEMORY-MODE:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_OT_COLOR_PALETTE_FLAGS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-COLOR-PALETTE-FLAGS:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-LAYOUT-GLYPH-CLASS:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_OT_MATH_CONSTANT" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-CONSTANT:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-GLYPH-PART:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART_FLAGS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-GLYPH-PART-FLAGS:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_OT_MATH_GLYPH_VARIANT" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-GLYPH-VARIANT:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_OT_MATH_KERN" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-MATH-KERN:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_SCRIPT" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SCRIPT:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_SHAPE_PLAN" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SHAPE-PLAN:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-COMBINING-CLASS:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_UNICODE_FUNCS" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-FUNCS:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-GENERAL-CATEGORY:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CLUSTER-LEVEL:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_FEATURE" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FEATURE:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_GLYPH_INFO" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-INFO:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_GLYPH_POSITION" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-POSITION:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_SEGMENT_PROPERTIES" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SEGMENT-PROPERTIES:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_SET" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SET:CAPS"/>
- <keyword type="macro" name="HB_GOBJECT_TYPE_USER_DATA_KEY" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-USER-DATA-KEY:CAPS"/>
<keyword type="function" name="hb_graphite2_face_get_gr_face ()" link="harfbuzz-hb-graphite2.html#hb-graphite2-face-get-gr-face"/>
<keyword type="macro" name="HB_GRAPHITE2_TAG_SILF" link="harfbuzz-hb-graphite2.html#HB-GRAPHITE2-TAG-SILF:CAPS"/>
<keyword type="function" name="hb_icu_get_unicode_funcs ()" link="harfbuzz-hb-icu.html#hb-icu-get-unicode-funcs"/>
<keyword type="constant" name="HB_BUFFER_FLAG_EOT" link="harfbuzz-hb-buffer.html#HB-BUFFER-FLAG-EOT:CAPS"/>
<keyword type="constant" name="HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES" link="harfbuzz-hb-buffer.html#HB-BUFFER-FLAG-PRESERVE-DEFAULT-IGNORABLES:CAPS"/>
<keyword type="constant" name="HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES" link="harfbuzz-hb-buffer.html#HB-BUFFER-FLAG-REMOVE-DEFAULT-IGNORABLES:CAPS"/>
+ <keyword type="constant" name="HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE" link="harfbuzz-hb-buffer.html#HB-BUFFER-FLAG-DO-NOT-INSERT-DOTTED-CIRCLE:CAPS"/>
<keyword type="constant" name="HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES" link="harfbuzz-hb-buffer.html#HB-BUFFER-CLUSTER-LEVEL-MONOTONE-GRAPHEMES:CAPS"/>
<keyword type="constant" name="HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS" link="harfbuzz-hb-buffer.html#HB-BUFFER-CLUSTER-LEVEL-MONOTONE-CHARACTERS:CAPS"/>
<keyword type="constant" name="HB_BUFFER_CLUSTER_LEVEL_CHARACTERS" link="harfbuzz-hb-buffer.html#HB-BUFFER-CLUSTER-LEVEL-CHARACTERS:CAPS"/>
<keyword type="constant" name="HB_DIRECTION_RTL" link="harfbuzz-hb-common.html#HB-DIRECTION-RTL:CAPS"/>
<keyword type="constant" name="HB_DIRECTION_TTB" link="harfbuzz-hb-common.html#HB-DIRECTION-TTB:CAPS"/>
<keyword type="constant" name="HB_DIRECTION_BTT" link="harfbuzz-hb-common.html#HB-DIRECTION-BTT:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_COMMON" link="harfbuzz-hb-common.html#HB-SCRIPT-COMMON:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_INHERITED" link="harfbuzz-hb-common.html#HB-SCRIPT-INHERITED:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_UNKNOWN" link="harfbuzz-hb-common.html#HB-SCRIPT-UNKNOWN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_ARABIC" link="harfbuzz-hb-common.html#HB-SCRIPT-ARABIC:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_ARMENIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-ARMENIAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_BENGALI" link="harfbuzz-hb-common.html#HB-SCRIPT-BENGALI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_CYRILLIC" link="harfbuzz-hb-common.html#HB-SCRIPT-CYRILLIC:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_DEVANAGARI" link="harfbuzz-hb-common.html#HB-SCRIPT-DEVANAGARI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_GEORGIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-GEORGIAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_GREEK" link="harfbuzz-hb-common.html#HB-SCRIPT-GREEK:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_GUJARATI" link="harfbuzz-hb-common.html#HB-SCRIPT-GUJARATI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_GURMUKHI" link="harfbuzz-hb-common.html#HB-SCRIPT-GURMUKHI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_HANGUL" link="harfbuzz-hb-common.html#HB-SCRIPT-HANGUL:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_HAN" link="harfbuzz-hb-common.html#HB-SCRIPT-HAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_HEBREW" link="harfbuzz-hb-common.html#HB-SCRIPT-HEBREW:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_HIRAGANA" link="harfbuzz-hb-common.html#HB-SCRIPT-HIRAGANA:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_KANNADA" link="harfbuzz-hb-common.html#HB-SCRIPT-KANNADA:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_KATAKANA" link="harfbuzz-hb-common.html#HB-SCRIPT-KATAKANA:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_LAO" link="harfbuzz-hb-common.html#HB-SCRIPT-LAO:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_LATIN" link="harfbuzz-hb-common.html#HB-SCRIPT-LATIN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_MALAYALAM" link="harfbuzz-hb-common.html#HB-SCRIPT-MALAYALAM:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_ORIYA" link="harfbuzz-hb-common.html#HB-SCRIPT-ORIYA:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_TAMIL" link="harfbuzz-hb-common.html#HB-SCRIPT-TAMIL:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_TELUGU" link="harfbuzz-hb-common.html#HB-SCRIPT-TELUGU:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_THAI" link="harfbuzz-hb-common.html#HB-SCRIPT-THAI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_TIBETAN" link="harfbuzz-hb-common.html#HB-SCRIPT-TIBETAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_BOPOMOFO" link="harfbuzz-hb-common.html#HB-SCRIPT-BOPOMOFO:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_BRAILLE" link="harfbuzz-hb-common.html#HB-SCRIPT-BRAILLE:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_CANADIAN_SYLLABICS" link="harfbuzz-hb-common.html#HB-SCRIPT-CANADIAN-SYLLABICS:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_CHEROKEE" link="harfbuzz-hb-common.html#HB-SCRIPT-CHEROKEE:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_ETHIOPIC" link="harfbuzz-hb-common.html#HB-SCRIPT-ETHIOPIC:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_KHMER" link="harfbuzz-hb-common.html#HB-SCRIPT-KHMER:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_MONGOLIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-MONGOLIAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_MYANMAR" link="harfbuzz-hb-common.html#HB-SCRIPT-MYANMAR:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_OGHAM" link="harfbuzz-hb-common.html#HB-SCRIPT-OGHAM:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_RUNIC" link="harfbuzz-hb-common.html#HB-SCRIPT-RUNIC:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_SINHALA" link="harfbuzz-hb-common.html#HB-SCRIPT-SINHALA:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_SYRIAC" link="harfbuzz-hb-common.html#HB-SCRIPT-SYRIAC:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_THAANA" link="harfbuzz-hb-common.html#HB-SCRIPT-THAANA:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_YI" link="harfbuzz-hb-common.html#HB-SCRIPT-YI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_DESERET" link="harfbuzz-hb-common.html#HB-SCRIPT-DESERET:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_GOTHIC" link="harfbuzz-hb-common.html#HB-SCRIPT-GOTHIC:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_OLD_ITALIC" link="harfbuzz-hb-common.html#HB-SCRIPT-OLD-ITALIC:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_BUHID" link="harfbuzz-hb-common.html#HB-SCRIPT-BUHID:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_HANUNOO" link="harfbuzz-hb-common.html#HB-SCRIPT-HANUNOO:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_TAGALOG" link="harfbuzz-hb-common.html#HB-SCRIPT-TAGALOG:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_TAGBANWA" link="harfbuzz-hb-common.html#HB-SCRIPT-TAGBANWA:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_CYPRIOT" link="harfbuzz-hb-common.html#HB-SCRIPT-CYPRIOT:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_LIMBU" link="harfbuzz-hb-common.html#HB-SCRIPT-LIMBU:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_LINEAR_B" link="harfbuzz-hb-common.html#HB-SCRIPT-LINEAR-B:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_OSMANYA" link="harfbuzz-hb-common.html#HB-SCRIPT-OSMANYA:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_SHAVIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-SHAVIAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_TAI_LE" link="harfbuzz-hb-common.html#HB-SCRIPT-TAI-LE:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_UGARITIC" link="harfbuzz-hb-common.html#HB-SCRIPT-UGARITIC:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_BUGINESE" link="harfbuzz-hb-common.html#HB-SCRIPT-BUGINESE:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_COPTIC" link="harfbuzz-hb-common.html#HB-SCRIPT-COPTIC:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_GLAGOLITIC" link="harfbuzz-hb-common.html#HB-SCRIPT-GLAGOLITIC:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_KHAROSHTHI" link="harfbuzz-hb-common.html#HB-SCRIPT-KHAROSHTHI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_NEW_TAI_LUE" link="harfbuzz-hb-common.html#HB-SCRIPT-NEW-TAI-LUE:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_OLD_PERSIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-OLD-PERSIAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_SYLOTI_NAGRI" link="harfbuzz-hb-common.html#HB-SCRIPT-SYLOTI-NAGRI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_TIFINAGH" link="harfbuzz-hb-common.html#HB-SCRIPT-TIFINAGH:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_BALINESE" link="harfbuzz-hb-common.html#HB-SCRIPT-BALINESE:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_CUNEIFORM" link="harfbuzz-hb-common.html#HB-SCRIPT-CUNEIFORM:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_NKO" link="harfbuzz-hb-common.html#HB-SCRIPT-NKO:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_PHAGS_PA" link="harfbuzz-hb-common.html#HB-SCRIPT-PHAGS-PA:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_PHOENICIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-PHOENICIAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_CARIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-CARIAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_CHAM" link="harfbuzz-hb-common.html#HB-SCRIPT-CHAM:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_KAYAH_LI" link="harfbuzz-hb-common.html#HB-SCRIPT-KAYAH-LI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_LEPCHA" link="harfbuzz-hb-common.html#HB-SCRIPT-LEPCHA:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_LYCIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-LYCIAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_LYDIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-LYDIAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_OL_CHIKI" link="harfbuzz-hb-common.html#HB-SCRIPT-OL-CHIKI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_REJANG" link="harfbuzz-hb-common.html#HB-SCRIPT-REJANG:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_SAURASHTRA" link="harfbuzz-hb-common.html#HB-SCRIPT-SAURASHTRA:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_SUNDANESE" link="harfbuzz-hb-common.html#HB-SCRIPT-SUNDANESE:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_VAI" link="harfbuzz-hb-common.html#HB-SCRIPT-VAI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_AVESTAN" link="harfbuzz-hb-common.html#HB-SCRIPT-AVESTAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_BAMUM" link="harfbuzz-hb-common.html#HB-SCRIPT-BAMUM:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_EGYPTIAN_HIEROGLYPHS" link="harfbuzz-hb-common.html#HB-SCRIPT-EGYPTIAN-HIEROGLYPHS:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_IMPERIAL_ARAMAIC" link="harfbuzz-hb-common.html#HB-SCRIPT-IMPERIAL-ARAMAIC:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_INSCRIPTIONAL_PAHLAVI" link="harfbuzz-hb-common.html#HB-SCRIPT-INSCRIPTIONAL-PAHLAVI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_INSCRIPTIONAL_PARTHIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-INSCRIPTIONAL-PARTHIAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_JAVANESE" link="harfbuzz-hb-common.html#HB-SCRIPT-JAVANESE:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_KAITHI" link="harfbuzz-hb-common.html#HB-SCRIPT-KAITHI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_LISU" link="harfbuzz-hb-common.html#HB-SCRIPT-LISU:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_MEETEI_MAYEK" link="harfbuzz-hb-common.html#HB-SCRIPT-MEETEI-MAYEK:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_OLD_SOUTH_ARABIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-OLD-SOUTH-ARABIAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_OLD_TURKIC" link="harfbuzz-hb-common.html#HB-SCRIPT-OLD-TURKIC:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_SAMARITAN" link="harfbuzz-hb-common.html#HB-SCRIPT-SAMARITAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_TAI_THAM" link="harfbuzz-hb-common.html#HB-SCRIPT-TAI-THAM:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_TAI_VIET" link="harfbuzz-hb-common.html#HB-SCRIPT-TAI-VIET:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_BATAK" link="harfbuzz-hb-common.html#HB-SCRIPT-BATAK:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_BRAHMI" link="harfbuzz-hb-common.html#HB-SCRIPT-BRAHMI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_MANDAIC" link="harfbuzz-hb-common.html#HB-SCRIPT-MANDAIC:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_CHAKMA" link="harfbuzz-hb-common.html#HB-SCRIPT-CHAKMA:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_MEROITIC_CURSIVE" link="harfbuzz-hb-common.html#HB-SCRIPT-MEROITIC-CURSIVE:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_MEROITIC_HIEROGLYPHS" link="harfbuzz-hb-common.html#HB-SCRIPT-MEROITIC-HIEROGLYPHS:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_MIAO" link="harfbuzz-hb-common.html#HB-SCRIPT-MIAO:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_SHARADA" link="harfbuzz-hb-common.html#HB-SCRIPT-SHARADA:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_SORA_SOMPENG" link="harfbuzz-hb-common.html#HB-SCRIPT-SORA-SOMPENG:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_TAKRI" link="harfbuzz-hb-common.html#HB-SCRIPT-TAKRI:CAPS"/>
<keyword type="constant" name="HB_SCRIPT_BASSA_VAH" link="harfbuzz-hb-common.html#HB-SCRIPT-BASSA-VAH:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_CAUCASIAN_ALBANIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-CAUCASIAN-ALBANIAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_DUPLOYAN" link="harfbuzz-hb-common.html#HB-SCRIPT-DUPLOYAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_ELBASAN" link="harfbuzz-hb-common.html#HB-SCRIPT-ELBASAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_GRANTHA" link="harfbuzz-hb-common.html#HB-SCRIPT-GRANTHA:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_KHOJKI" link="harfbuzz-hb-common.html#HB-SCRIPT-KHOJKI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_KHUDAWADI" link="harfbuzz-hb-common.html#HB-SCRIPT-KHUDAWADI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_LINEAR_A" link="harfbuzz-hb-common.html#HB-SCRIPT-LINEAR-A:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_MAHAJANI" link="harfbuzz-hb-common.html#HB-SCRIPT-MAHAJANI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_MANICHAEAN" link="harfbuzz-hb-common.html#HB-SCRIPT-MANICHAEAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_MENDE_KIKAKUI" link="harfbuzz-hb-common.html#HB-SCRIPT-MENDE-KIKAKUI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_MODI" link="harfbuzz-hb-common.html#HB-SCRIPT-MODI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_MRO" link="harfbuzz-hb-common.html#HB-SCRIPT-MRO:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_NABATAEAN" link="harfbuzz-hb-common.html#HB-SCRIPT-NABATAEAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_OLD_NORTH_ARABIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-OLD-NORTH-ARABIAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_OLD_PERMIC" link="harfbuzz-hb-common.html#HB-SCRIPT-OLD-PERMIC:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_PAHAWH_HMONG" link="harfbuzz-hb-common.html#HB-SCRIPT-PAHAWH-HMONG:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_PALMYRENE" link="harfbuzz-hb-common.html#HB-SCRIPT-PALMYRENE:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_PAU_CIN_HAU" link="harfbuzz-hb-common.html#HB-SCRIPT-PAU-CIN-HAU:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_PSALTER_PAHLAVI" link="harfbuzz-hb-common.html#HB-SCRIPT-PSALTER-PAHLAVI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_SIDDHAM" link="harfbuzz-hb-common.html#HB-SCRIPT-SIDDHAM:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_TIRHUTA" link="harfbuzz-hb-common.html#HB-SCRIPT-TIRHUTA:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_WARANG_CITI" link="harfbuzz-hb-common.html#HB-SCRIPT-WARANG-CITI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_AHOM" link="harfbuzz-hb-common.html#HB-SCRIPT-AHOM:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_ANATOLIAN_HIEROGLYPHS" link="harfbuzz-hb-common.html#HB-SCRIPT-ANATOLIAN-HIEROGLYPHS:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_HATRAN" link="harfbuzz-hb-common.html#HB-SCRIPT-HATRAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_MULTANI" link="harfbuzz-hb-common.html#HB-SCRIPT-MULTANI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_OLD_HUNGARIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-OLD-HUNGARIAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_SIGNWRITING" link="harfbuzz-hb-common.html#HB-SCRIPT-SIGNWRITING:CAPS"/>
<keyword type="constant" name="HB_SCRIPT_ADLAM" link="harfbuzz-hb-common.html#HB-SCRIPT-ADLAM:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_BHAIKSUKI" link="harfbuzz-hb-common.html#HB-SCRIPT-BHAIKSUKI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_MARCHEN" link="harfbuzz-hb-common.html#HB-SCRIPT-MARCHEN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_OSAGE" link="harfbuzz-hb-common.html#HB-SCRIPT-OSAGE:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_TANGUT" link="harfbuzz-hb-common.html#HB-SCRIPT-TANGUT:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_NEWA" link="harfbuzz-hb-common.html#HB-SCRIPT-NEWA:CAPS"/>
<keyword type="constant" name="HB_SCRIPT_MASARAM_GONDI" link="harfbuzz-hb-common.html#HB-SCRIPT-MASARAM-GONDI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_NUSHU" link="harfbuzz-hb-common.html#HB-SCRIPT-NUSHU:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_SOYOMBO" link="harfbuzz-hb-common.html#HB-SCRIPT-SOYOMBO:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_ZANABAZAR_SQUARE" link="harfbuzz-hb-common.html#HB-SCRIPT-ZANABAZAR-SQUARE:CAPS"/>
<keyword type="constant" name="HB_SCRIPT_DOGRA" link="harfbuzz-hb-common.html#HB-SCRIPT-DOGRA:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_GUNJALA_GONDI" link="harfbuzz-hb-common.html#HB-SCRIPT-GUNJALA-GONDI:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_HANIFI_ROHINGYA" link="harfbuzz-hb-common.html#HB-SCRIPT-HANIFI-ROHINGYA:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_MAKASAR" link="harfbuzz-hb-common.html#HB-SCRIPT-MAKASAR:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_MEDEFAIDRIN" link="harfbuzz-hb-common.html#HB-SCRIPT-MEDEFAIDRIN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_OLD_SOGDIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-OLD-SOGDIAN:CAPS"/>
- <keyword type="constant" name="HB_SCRIPT_SOGDIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-SOGDIAN:CAPS"/>
+ <keyword type="constant" name="HB_SCRIPT_ELYMAIC" link="harfbuzz-hb-common.html#HB-SCRIPT-ELYMAIC:CAPS"/>
<keyword type="constant" name="HB_SCRIPT_INVALID" link="harfbuzz-hb-common.html#HB-SCRIPT-INVALID:CAPS"/>
<keyword type="constant" name="_HB_SCRIPT_MAX_VALUE" link="harfbuzz-hb-common.html#HB-SCRIPT-MAX-VALUE:CAPS"/>
<keyword type="constant" name="_HB_SCRIPT_MAX_VALUE_SIGNED" link="harfbuzz-hb-common.html#HB-SCRIPT-MAX-VALUE-SIGNED:CAPS"/>
<keyword type="constant" name="HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_CJK_ROMAN" link="harfbuzz-hb-aat-layout.html#HB-AAT-LAYOUT-FEATURE-SELECTOR-DEFAULT-CJK-ROMAN:CAPS"/>
<keyword type="constant" name="HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_CJK_ROMAN" link="harfbuzz-hb-aat-layout.html#HB-AAT-LAYOUT-FEATURE-SELECTOR-FULL-WIDTH-CJK-ROMAN:CAPS"/>
<keyword type="constant" name="_HB_AAT_LAYOUT_FEATURE_SELECTOR_MAX_VALUE" link="harfbuzz-hb-aat-layout.html#HB-AAT-LAYOUT-FEATURE-SELECTOR-MAX-VALUE:CAPS"/>
- <keyword type="member" name="hb-glyph-position-t-struct.x-advance" link="harfbuzz-hb-buffer.html#hb-glyph-position-t-struct.x-advance"/>
- <keyword type="member" name="hb-glyph-position-t-struct.y-advance" link="harfbuzz-hb-buffer.html#hb-glyph-position-t-struct.y-advance"/>
- <keyword type="member" name="hb-glyph-position-t-struct.x-offset" link="harfbuzz-hb-buffer.html#hb-glyph-position-t-struct.x-offset"/>
- <keyword type="member" name="hb-glyph-position-t-struct.y-offset" link="harfbuzz-hb-buffer.html#hb-glyph-position-t-struct.y-offset"/>
- <keyword type="member" name="hb-segment-properties-t-struct.direction" link="harfbuzz-hb-buffer.html#hb-segment-properties-t-struct.direction"/>
- <keyword type="member" name="hb-segment-properties-t-struct.script" link="harfbuzz-hb-buffer.html#hb-segment-properties-t-struct.script"/>
- <keyword type="member" name="hb-segment-properties-t-struct.language" link="harfbuzz-hb-buffer.html#hb-segment-properties-t-struct.language"/>
+ <keyword type="member" name="hb-glyph-position-t.x-advance" link="harfbuzz-hb-buffer.html#hb-glyph-position-t.x-advance"/>
+ <keyword type="member" name="hb-glyph-position-t.y-advance" link="harfbuzz-hb-buffer.html#hb-glyph-position-t.y-advance"/>
+ <keyword type="member" name="hb-glyph-position-t.x-offset" link="harfbuzz-hb-buffer.html#hb-glyph-position-t.x-offset"/>
+ <keyword type="member" name="hb-glyph-position-t.y-offset" link="harfbuzz-hb-buffer.html#hb-glyph-position-t.y-offset"/>
+ <keyword type="member" name="hb-segment-properties-t.direction" link="harfbuzz-hb-buffer.html#hb-segment-properties-t.direction"/>
+ <keyword type="member" name="hb-segment-properties-t.script" link="harfbuzz-hb-buffer.html#hb-segment-properties-t.script"/>
+ <keyword type="member" name="hb-segment-properties-t.language" link="harfbuzz-hb-buffer.html#hb-segment-properties-t.language"/>
</functions>
</book>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>HarfBuzz Manual: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<meta name="description" content="HarfBuzz HarfBuzz is an OpenType text shaping engine. Using the HarfBuzz library allows programs to convert a sequence of Unicode input into properly formatted and positioned glyph output—for any writing system and language. The canonical source-code tree is available at github.com/harfbuzz/harfbuzz and is also available at cgit.freedesktop.org/harfbuzz. See for release tarballs.">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="next" href="pt01.html" title="Part I. User's manual">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</dt>
</dl></dd>
<dt><span class="index"><a href="api-index-full.html">API Index</a></span></dt>
-<dt><span class="index"><a href="deprecated-api-index.html">Index of deprecated API</a></span></dt>
-<dt><span class="index"><a href="api-index-2-1-0.html">Index of new symbols in 2.1.0</a></span></dt>
-<dt><span class="index"><a href="api-index-2-0-0.html">Index of new symbols in 2.0.0</a></span></dt>
-<dt><span class="index"><a href="api-index-1-9-0.html">Index of new symbols in 1.9.0</a></span></dt>
-<dt><span class="index"><a href="api-index-1-8-6.html">Index of new symbols in 1.8.6</a></span></dt>
-<dt><span class="index"><a href="api-index-1-8-5.html">Index of new symbols in 1.8.5</a></span></dt>
-<dt><span class="index"><a href="api-index-1-8-1.html">Index of new symbols in 1.8.1</a></span></dt>
-<dt><span class="index"><a href="api-index-1-8-0.html">Index of new symbols in 1.8.0</a></span></dt>
-<dt><span class="index"><a href="api-index-1-7-7.html">Index of new symbols in 1.7.7</a></span></dt>
-<dt><span class="index"><a href="api-index-1-7-5.html">Index of new symbols in 1.7.5</a></span></dt>
-<dt><span class="index"><a href="api-index-1-6-0.html">Index of new symbols in 1.6.0</a></span></dt>
-<dt><span class="index"><a href="api-index-1-5-0.html">Index of new symbols in 1.5.0</a></span></dt>
-<dt><span class="index"><a href="api-index-1-4-3.html">Index of new symbols in 1.4.3</a></span></dt>
-<dt><span class="index"><a href="api-index-1-4-2.html">Index of new symbols in 1.4.2</a></span></dt>
-<dt><span class="index"><a href="api-index-1-4-0.html">Index of new symbols in 1.4.0</a></span></dt>
-<dt><span class="index"><a href="api-index-1-3-3.html">Index of new symbols in 1.3.3</a></span></dt>
-<dt><span class="index"><a href="api-index-1-2-3.html">Index of new symbols in 1.2.3</a></span></dt>
-<dt><span class="index"><a href="api-index-1-1-3.html">Index of new symbols in 1.1.3</a></span></dt>
-<dt><span class="index"><a href="api-index-1-1-2.html">Index of new symbols in 1.1.2</a></span></dt>
-<dt><span class="index"><a href="api-index-1-0-5.html">Index of new symbols in 1.0.5</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-42.html">Index of new symbols in 0.9.42</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-41.html">Index of new symbols in 0.9.41</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-39.html">Index of new symbols in 0.9.39</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-38.html">Index of new symbols in 0.9.38</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-31.html">Index of new symbols in 0.9.31</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-30.html">Index of new symbols in 0.9.30</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-28.html">Index of new symbols in 0.9.28</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-22.html">Index of new symbols in 0.9.22</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-20.html">Index of new symbols in 0.9.20</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-11.html">Index of new symbols in 0.9.11</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-10.html">Index of new symbols in 0.9.10</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-8.html">Index of new symbols in 0.9.8</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-7.html">Index of new symbols in 0.9.7</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-5.html">Index of new symbols in 0.9.5</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-2.html">Index of new symbols in 0.9.2</a></span></dt>
<dt><span class="glossary"><a href="annotation-glossary.html">Annotation Glossary</a></span></dt>
</dl></dd>
</dl></div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Installing HarfBuzz: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt01.html" title="Part I. User's manual">
<link rel="prev" href="why-is-it-called-harfbuzz.html" title="Why is it called HarfBuzz?">
<link rel="next" href="building.html" title="Building HarfBuzz">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Level 2: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="clusters.html" title="Clusters">
<link rel="prev" href="the-distinction-between-levels-0-and-1.html" title="The distinction between levels 0 and 1">
<link rel="next" href="shaping-and-shape-plans.html" title="Shaping and shape plans">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
There may be other problems encountered with ligatures under
level 2, such as if the direction of the text is forced to
- opposite of its natural direction (for example, Arabic text
+ the opposite of its natural direction (for example, Arabic text
that is forced into left-to-right directionality). But,
generally speaking, these other scenarios are minor corner
cases that are too obscure for most client programs to need to
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>OpenType shaping models: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="shaping-concepts.html" title="Shaping concepts">
<link rel="prev" href="text-runs.html" title="Text runs">
<link rel="next" href="graphite-shaping.html" title="Graphite shaping">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</ul></div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Plans and caching: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="shaping-and-shape-plans.html" title="Shaping and shape plans">
<link rel="prev" href="shaping-and-shape-plans.html" title="Shaping and shape plans">
<link rel="next" href="pt02.html" title="Part II. Reference manual">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Part I. User's manual: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="index.html" title="HarfBuzz Manual">
<link rel="prev" href="index.html" title="HarfBuzz Manual">
<link rel="next" href="what-is-harfbuzz.html" title="What is HarfBuzz?">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Part II. Reference manual: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="index.html" title="HarfBuzz Manual">
<link rel="prev" href="plans-and-caching.html" title="Plans and caching">
<link rel="next" href="ch09.html" title="Core API">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div><h1 class="title">
<a name="id-1.3"></a>Part II. Reference manual</h1></div>
<div><p class="releaseinfo">
- This document is for HarfBuzz 2.3.1
+ This document is for HarfBuzz 2.4.0
.
</p></div>
</dt>
</dl></dd>
<dt><span class="index"><a href="api-index-full.html">API Index</a></span></dt>
-<dt><span class="index"><a href="deprecated-api-index.html">Index of deprecated API</a></span></dt>
-<dt><span class="index"><a href="api-index-2-1-0.html">Index of new symbols in 2.1.0</a></span></dt>
-<dt><span class="index"><a href="api-index-2-0-0.html">Index of new symbols in 2.0.0</a></span></dt>
-<dt><span class="index"><a href="api-index-1-9-0.html">Index of new symbols in 1.9.0</a></span></dt>
-<dt><span class="index"><a href="api-index-1-8-6.html">Index of new symbols in 1.8.6</a></span></dt>
-<dt><span class="index"><a href="api-index-1-8-5.html">Index of new symbols in 1.8.5</a></span></dt>
-<dt><span class="index"><a href="api-index-1-8-1.html">Index of new symbols in 1.8.1</a></span></dt>
-<dt><span class="index"><a href="api-index-1-8-0.html">Index of new symbols in 1.8.0</a></span></dt>
-<dt><span class="index"><a href="api-index-1-7-7.html">Index of new symbols in 1.7.7</a></span></dt>
-<dt><span class="index"><a href="api-index-1-7-5.html">Index of new symbols in 1.7.5</a></span></dt>
-<dt><span class="index"><a href="api-index-1-6-0.html">Index of new symbols in 1.6.0</a></span></dt>
-<dt><span class="index"><a href="api-index-1-5-0.html">Index of new symbols in 1.5.0</a></span></dt>
-<dt><span class="index"><a href="api-index-1-4-3.html">Index of new symbols in 1.4.3</a></span></dt>
-<dt><span class="index"><a href="api-index-1-4-2.html">Index of new symbols in 1.4.2</a></span></dt>
-<dt><span class="index"><a href="api-index-1-4-0.html">Index of new symbols in 1.4.0</a></span></dt>
-<dt><span class="index"><a href="api-index-1-3-3.html">Index of new symbols in 1.3.3</a></span></dt>
-<dt><span class="index"><a href="api-index-1-2-3.html">Index of new symbols in 1.2.3</a></span></dt>
-<dt><span class="index"><a href="api-index-1-1-3.html">Index of new symbols in 1.1.3</a></span></dt>
-<dt><span class="index"><a href="api-index-1-1-2.html">Index of new symbols in 1.1.2</a></span></dt>
-<dt><span class="index"><a href="api-index-1-0-5.html">Index of new symbols in 1.0.5</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-42.html">Index of new symbols in 0.9.42</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-41.html">Index of new symbols in 0.9.41</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-39.html">Index of new symbols in 0.9.39</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-38.html">Index of new symbols in 0.9.38</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-31.html">Index of new symbols in 0.9.31</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-30.html">Index of new symbols in 0.9.30</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-28.html">Index of new symbols in 0.9.28</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-22.html">Index of new symbols in 0.9.22</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-20.html">Index of new symbols in 0.9.20</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-11.html">Index of new symbols in 0.9.11</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-10.html">Index of new symbols in 0.9.10</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-8.html">Index of new symbols in 0.9.8</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-7.html">Index of new symbols in 0.9.7</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-5.html">Index of new symbols in 0.9.5</a></span></dt>
-<dt><span class="index"><a href="api-index-0-9-2.html">Index of new symbols in 0.9.2</a></span></dt>
<dt><span class="glossary"><a href="annotation-glossary.html">Annotation Glossary</a></span></dt>
</dl>
</div>
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Reordering in levels 0 and 1: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="clusters.html" title="Clusters">
<link rel="prev" href="a-clustering-example-for-levels-0-and-1.html" title="A clustering example for levels 0 and 1">
<link rel="next" href="the-distinction-between-levels-0-and-1.html" title="The distinction between levels 0 and 1">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Setting buffer properties: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="buffers-language-script-and-direction.html" title="Buffers, language, script and direction">
<link rel="prev" href="adding-text-to-the-buffer.html" title="Adding text to the buffer">
<link rel="next" href="what-about-the-other-scripts.html" title="What about the other scripts?">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Shaping and shape plans: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt01.html" title="Part I. User's manual">
<link rel="prev" href="level-2.html" title="Level 2">
<link rel="next" href="plans-and-caching.html" title="Plans and caching">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Shaping concepts: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt01.html" title="Part I. User's manual">
<link rel="prev" href="ch03s03.html" title="A simple shaping example">
<link rel="next" href="complex-scripts.html" title="Complex scripts">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Shaping operations: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="shaping-concepts.html" title="Shaping concepts">
<link rel="prev" href="complex-scripts.html" title="Complex scripts">
<link rel="next" href="unicode-character-categories.html" title="Unicode character categories">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</ul></div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
vertical-align: top;
}
+span.nowrap {
+ white-space: nowrap;
+}
+
div.gallery-float
{
float: left;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Text runs: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="shaping-concepts.html" title="Shaping concepts">
<link rel="prev" href="unicode-character-categories.html" title="Unicode character categories">
<link rel="next" href="opentype-shaping-models.html" title="OpenType shaping models">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>The distinction between levels 0 and 1: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="clusters.html" title="Clusters">
<link rel="prev" href="reordering-in-levels-0-and-1.html" title="Reordering in levels 0 and 1">
<link rel="next" href="level-2.html" title="Level 2">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
<p>
But this initial cluster-merging behavior makes it impossible
- client programs to implement some features (such as to
+ for client programs to implement some features (such as to
color diacritic marks differently from their base
characters). That is why, in level 1, HarfBuzz does not perform
the initial merging step.
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Unicode character categories: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="shaping-concepts.html" title="Shaping concepts">
<link rel="prev" href="shaping-operations.html" title="Shaping operations">
<link rel="next" href="text-runs.html" title="Text runs">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Using HarfBuzz's native OpenType implementation: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="fonts-and-faces.html" title="Fonts and faces">
<link rel="prev" href="fonts-and-faces.html" title="Fonts and faces">
<link rel="next" href="using-your-own-font-functions.html" title="Using your own font functions">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Using your own font functions: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="fonts-and-faces.html" title="Fonts and faces">
<link rel="prev" href="using-harfbuzzs-native-opentype-implementation.html" title="Using HarfBuzz's native OpenType implementation">
<link rel="next" href="clusters.html" title="Clusters">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>What about the other scripts?: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="buffers-language-script-and-direction.html" title="Buffers, language, script and direction">
<link rel="prev" href="setting-buffer-properties.html" title="Setting buffer properties">
<link rel="next" href="customizing-unicode-functions.html" title="Customizing Unicode functions">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>What HarfBuzz doesn't do: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="what-is-harfbuzz.html" title="What is HarfBuzz?">
<link rel="prev" href="ch01s03.html" title="What does HarfBuzz do?">
<link rel="next" href="why-is-it-called-harfbuzz.html" title="Why is it called HarfBuzz?">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>What is HarfBuzz?: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="pt01.html" title="Part I. User's manual">
<link rel="prev" href="pt01.html" title="Part I. User's manual">
<link rel="next" href="why-do-i-need-a-shaping-engine.html" title="Why do I need a shaping engine?">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Why do I need a shaping engine?: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="what-is-harfbuzz.html" title="What is HarfBuzz?">
<link rel="prev" href="what-is-harfbuzz.html" title="What is HarfBuzz?">
<link rel="next" href="ch01s03.html" title="What does HarfBuzz do?">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p></div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Why is it called HarfBuzz?: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="what-is-harfbuzz.html" title="What is HarfBuzz?">
<link rel="prev" href="what-harfbuzz-doesnt-do.html" title="What HarfBuzz doesn't do">
<link rel="next" href="install-harfbuzz.html" title="Installing HarfBuzz">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</p>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Working with HarfBuzz clusters: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="clusters.html" title="Clusters">
<link rel="prev" href="clusters.html" title="Clusters">
<link rel="next" href="a-clustering-example-for-levels-0-and-1.html" title="A clustering example for levels 0 and 1">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</ul></div>
</div>
<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.29</div>
</body>
</html>
\ No newline at end of file
</para>
<para>
But this initial cluster-merging behavior makes it impossible
- client programs to implement some features (such as to
+ for client programs to implement some features (such as to
color diacritic marks differently from their base
characters). That is why, in level 1, HarfBuzz does not perform
the initial merging step.
<para>
There may be other problems encountered with ligatures under
level 2, such as if the direction of the text is forced to
- opposite of its natural direction (for example, Arabic text
+ the opposite of its natural direction (for example, Arabic text
that is forced into left-to-right directionality). But,
generally speaking, these other scenarios are minor corner
cases that are too obscure for most client programs to need to
<orderedlist numeration="arabic">
<listitem override="2">
<para>
- Guess the script, language and direction of the buffer.
+ Set the script, language and direction of the buffer.
</para>
</listitem>
</orderedlist>
</orderedlist>
<programlisting language="C">
for (i = 0; i < glyph_count; ++i) {
- glyphid = glyph_info[i].codepoint;
- x_offset = glyph_pos[i].x_offset / 64.0;
- y_offset = glyph_pos[i].y_offset / 64.0;
- x_advance = glyph_pos[i].x_advance / 64.0;
- y_advance = glyph_pos[i].y_advance / 64.0;
- draw_glyph(glyphid, cursor_x + x_offset, cursor_y + y_offset);
- cursor_x += x_advance;
- cursor_y += y_advance;
+ glyphid = glyph_info[i].codepoint;
+ x_offset = glyph_pos[i].x_offset / 64.0;
+ y_offset = glyph_pos[i].y_offset / 64.0;
+ x_advance = glyph_pos[i].x_advance / 64.0;
+ y_advance = glyph_pos[i].y_advance / 64.0;
+ draw_glyph(glyphid, cursor_x + x_offset, cursor_y + y_offset);
+ cursor_x += x_advance;
+ cursor_y += y_advance;
}
</programlisting>
<orderedlist numeration="arabic">
</para>
</listitem>
</varlistentry>
+
+ <varlistentry>
+ <term><command>--enable-gtk-doc</command></term>
+ <listitem>
+ <para>
+ Use <ulink url="https://www.gtk.org/gtk-doc/">GTK-Doc</ulink>. <emphasis>(Default = no)</emphasis>
+ </para>
+ <para>
+ This option enables the building of the documentation.
+ </para>
+ </listitem>
+ </varlistentry>
</variablelist>
</section>
# -*- mode: makefile -*-
+#
+# gtk-doc.make - make rules for gtk-doc
+# Copyright (C) 2003 James Henstridge
+# 2004-2007 Damon Chaplin
+# 2007-2017 Stefan Sauer
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
####################################
# Everything below here is generic #
#### setup ####
-GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_$(V))
-GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_@AM_V@)
+GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_@AM_DEFAULT_V@)
GTK_DOC_V_SETUP_0=@echo " DOC Preparing build";
setup-build.stamp:
-$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
- files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \
- if test "x$$files" != "x" ; then \
- for file in $$files ; do \
- destdir=`dirname $(abs_builddir)/$$file`; \
- test -d "$$destdir" || mkdir -p "$$destdir"; \
- test -f $(abs_srcdir)/$$file && \
- cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
- done; \
- fi; \
+ files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \
+ if test "x$$files" != "x" ; then \
+ for file in $$files ; do \
+ destdir=`dirname $(abs_builddir)/$$file`; \
+ test -d "$$destdir" || mkdir -p "$$destdir"; \
+ test -f $(abs_srcdir)/$$file && \
+ cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
+ done; \
+ fi; \
fi
$(AM_V_at)touch setup-build.stamp
-
#### scan ####
-GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_$(V))
-GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_@AM_V@)
+GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_@AM_DEFAULT_V@)
GTK_DOC_V_SCAN_0=@echo " DOC Scanning header files";
-GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_$(V))
-GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_@AM_V@)
+GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_@AM_DEFAULT_V@)
GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects";
scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB)
$(GTK_DOC_V_SCAN)_source_dir='' ; \
for i in $(DOC_SOURCE_DIR) ; do \
- _source_dir="$${_source_dir} --source-dir=$$i" ; \
+ _source_dir="$${_source_dir} --source-dir=$$i" ; \
done ; \
gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
$(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
- scanobj_options=""; \
- gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \
- if test "$$?" = "0"; then \
- if test "x$(V)" = "x1"; then \
- scanobj_options="--verbose"; \
- fi; \
+ scanobj_options=""; \
+ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \
+ if test "$$?" = "0"; then \
+ if test "x$(V)" = "x1"; then \
+ scanobj_options="--verbose"; \
fi; \
- CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \
- gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \
+ fi; \
+ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \
+ gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \
else \
- for i in $(SCANOBJ_FILES) ; do \
- test -f $$i || touch $$i ; \
- done \
+ for i in $(SCANOBJ_FILES) ; do \
+ test -f $$i || touch $$i ; \
+ done \
fi
$(AM_V_at)touch scan-build.stamp
#### xml ####
-GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V))
-GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XML=$(GTK_DOC_V_XML_@AM_V@)
+GTK_DOC_V_XML_=$(GTK_DOC_V_XML_@AM_DEFAULT_V@)
GTK_DOC_V_XML_0=@echo " DOC Building XML";
sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent
$(GTK_DOC_V_XML)_source_dir='' ; \
for i in $(DOC_SOURCE_DIR) ; do \
- _source_dir="$${_source_dir} --source-dir=$$i" ; \
+ _source_dir="$${_source_dir} --source-dir=$$i" ; \
done ; \
gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
$(AM_V_at)touch sgml-build.stamp
sgml.stamp: sgml-build.stamp
@true
+$(DOC_MAIN_SGML_FILE): sgml-build.stamp
+ @true
+
xml/gtkdocentities.ent: Makefile
$(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \
echo "<!ENTITY package \"$(PACKAGE)\">"; \
#### html ####
-GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_$(V))
-GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_@AM_V@)
+GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_@AM_DEFAULT_V@)
GTK_DOC_V_HTML_0=@echo " DOC Building HTML";
-GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_$(V))
-GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_@AM_V@)
+GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_@AM_DEFAULT_V@)
GTK_DOC_V_XREF_0=@echo " DOC Fixing cross-references";
html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files)
cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
-@test "x$(HTML_IMAGES)" = "x" || \
for file in $(HTML_IMAGES) ; do \
- if test -f $(abs_srcdir)/$$file ; then \
- cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
- fi; \
- if test -f $(abs_builddir)/$$file ; then \
- cp $(abs_builddir)/$$file $(abs_builddir)/html; \
- fi; \
+ test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
+ test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \
test -f $$file && cp $$file $(abs_builddir)/html; \
done;
$(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
#### pdf ####
-GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_$(V))
-GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_@AM_V@)
+GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_@AM_DEFAULT_V@)
GTK_DOC_V_PDF_0=@echo " DOC Building PDF";
pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files)
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2014-09-12.12; # UTC
+scriptversion=2018-03-11.20; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
fi
dst=$dst_arg
- # If destination is a directory, append the input filename; won't work
- # if double slashes aren't ignored.
+ # If destination is a directory, append the input filename.
if test -d "$dst"; then
if test "$is_target_a_directory" = never; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
dstdir=$dst
- dst=$dstdir/`basename "$src"`
+ dstbase=`basename "$src"`
+ case $dst in
+ */) dst=$dst$dstbase;;
+ *) dst=$dst/$dstbase;;
+ esac
dstdir_status=0
else
dstdir=`dirname "$dst"`
fi
fi
+ case $dstdir in
+ */) dstdirslash=$dstdir;;
+ *) dstdirslash=$dstdir/;;
+ esac
+
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
- # $RANDOM is not portable (e.g. dash); use it when possible to
- # lower collision chance
+ # Note that $RANDOM variable is not portable (e.g. dash); Use it
+ # here however when possible just to lower collision chance.
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+
trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
- # As "mkdir -p" follows symlinks and we work in /tmp possibly; so
- # create the $tmpdir first (and fail if unsuccessful) to make sure
- # that nobody tries to guess the $tmpdir name.
+ # Because "mkdir -p" follows existing symlinks and we likely work
+ # directly in world-writeable /tmp, make sure that the '$tmpdir'
+ # directory is successfully created first before we actually test
+ # 'mkdir -p' feature.
if (umask $mkdir_umask &&
$mkdirprog $mkdir_mode "$tmpdir" &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
else
# Make a couple of temp file names in the proper directory.
- dsttmp=$dstdir/_inst.$$_
- rmtmp=$dstdir/_rm.$$_
+ dsttmp=${dstdirslash}_inst.$$_
+ rmtmp=${dstdirslash}_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
done
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
#! /bin/sh
## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
-## by inline-source v2014-01-03.01
+## by inline-source v2018-07-24.06
-# libtool (GNU libtool) 2.4.6
+# libtool (GNU libtool) 2.4.6.42-b88ce
# Provide generalized library-building support services.
# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-# Copyright (C) 1996-2015 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
PROGRAM=libtool
PACKAGE=libtool
-VERSION="2.4.6 Debian-2.4.6-2"
-package_revision=2.4.6
+VERSION=2.4.6.42-b88ce
+package_revision=2.4.6.42
## ------ ##
# libraries, which are installed to $pkgauxdir.
# Set a version string for this script.
-scriptversion=2015-01-20.17; # UTC
+scriptversion=2018-07-24.06; # UTC
# General shell script boiler plate, and helper functions.
# Written by Gary V. Vaughan, 2004
-# Copyright (C) 2004-2015 Free Software Foundation, Inc.
-# This is free software; see the source for copying conditions. There is NO
-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-
-# As a special exception to the GNU General Public License, if you distribute
-# this file as part of a program or library that is built using GNU Libtool,
-# you may include this file under the same distribution terms that you use
-# for the rest of that program.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# This is free software. There is NO warranty; not even for
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# Copyright (C) 2004-2018 Bootstrap Authors
+#
+# This file is dual licensed under the terms of the MIT license
+# <https://opensource.org/license/MIT>, and GPL version 3 or later
+# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
+# these licenses when using or redistributing this software or any of
+# the files within it. See the URLs above, or the file `LICENSE`
+# included in the Bootstrap distribution for the full license texts.
-# Please report bugs or propose patches to gary@gnu.org.
+# Please report bugs or propose patches to:
+# <https://github.com/gnulib-modules/bootstrap/issues>
## ------ ##
fi"
done
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
# Make sure IFS has a sensible default
sp=' '
nl='
fi
+# func_unset VAR
+# --------------
+# Portably unset VAR.
+# In some shells, an 'unset VAR' statement leaves a non-zero return
+# status if VAR is already unset, which might be problematic if the
+# statement is used at the end of a function (thus poisoning its return
+# value) or when 'set -e' is active (causing even a spurious abort of
+# the script in this case).
+func_unset ()
+{
+ { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; }
+}
+
+
+# Make sure CDPATH doesn't cause `cd` commands to output the target dir.
+func_unset CDPATH
+
+# Make sure ${,E,F}GREP behave sanely.
+func_unset GREP_OPTIONS
+
## ------------------------- ##
## Locate command utilities. ##
rm -f conftest.in conftest.tmp conftest.nl conftest.out
}
- func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin
+ func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin"
rm -f conftest.sed
SED=$func_path_progs_result
}
rm -f conftest.in conftest.tmp conftest.nl conftest.out
}
- func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin
+ func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin"
GREP=$func_path_progs_result
}
{
$debug_cmd
- func_quote_for_eval "$2"
- eval "$1+=\\ \$func_quote_for_eval_result"
+ func_quote_arg pretty "$2"
+ eval "$1+=\\ \$func_quote_arg_result"
}'
else
func_append_quoted ()
{
$debug_cmd
- func_quote_for_eval "$2"
- eval "$1=\$$1\\ \$func_quote_for_eval_result"
+ func_quote_arg pretty "$2"
+ eval "$1=\$$1\\ \$func_quote_arg_result"
}
fi
}
-# func_quote_for_eval ARG...
-# --------------------------
-# Aesthetically quote ARGs to be evaled later.
-# This function returns two values:
-# i) func_quote_for_eval_result
-# double-quoted, suitable for a subsequent eval
-# ii) func_quote_for_eval_unquoted_result
-# has all characters that are still active within double
-# quotes backslashified.
-func_quote_for_eval ()
+# func_quote_portable EVAL ARG
+# ----------------------------
+# Internal function to portably implement func_quote_arg. Note that we still
+# keep attention to performance here so we as much as possible try to avoid
+# calling sed binary (so far O(N) complexity as long as func_append is O(1)).
+func_quote_portable ()
{
$debug_cmd
- func_quote_for_eval_unquoted_result=
- func_quote_for_eval_result=
- while test 0 -lt $#; do
- case $1 in
- *[\\\`\"\$]*)
- _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
- *)
- _G_unquoted_arg=$1 ;;
- esac
- if test -n "$func_quote_for_eval_unquoted_result"; then
- func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
- else
- func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg"
+ func_quote_portable_result=$2
+
+ # one-time-loop (easy break)
+ while true
+ do
+ if $1; then
+ func_quote_portable_result=`$ECHO "$2" | $SED \
+ -e "$sed_double_quote_subst" -e "$sed_double_backslash"`
+ break
fi
- case $_G_unquoted_arg in
- # Double-quote args containing shell metacharacters to delay
- # word splitting, command substitution and variable expansion
- # for a subsequent eval.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- _G_quoted_arg=\"$_G_unquoted_arg\"
+ # Quote for eval.
+ case $func_quote_portable_result in
+ *[\\\`\"\$]*)
+ case $func_quote_portable_result in
+ *[\[\*\?]*)
+ func_quote_portable_result=`$ECHO "$func_quote_portable_result" \
+ | $SED "$sed_quote_subst"`
+ break
+ ;;
+ esac
+
+ func_quote_portable_old_IFS=$IFS
+ for _G_char in '\' '`' '"' '$'
+ do
+ # STATE($1) PREV($2) SEPARATOR($3)
+ set start "" ""
+ func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy
+ IFS=$_G_char
+ for _G_part in $func_quote_portable_result
+ do
+ case $1 in
+ quote)
+ func_append func_quote_portable_result "$3$2"
+ set quote "$_G_part" "\\$_G_char"
+ ;;
+ start)
+ set first "" ""
+ func_quote_portable_result=
+ ;;
+ first)
+ set quote "$_G_part" ""
+ ;;
+ esac
+ done
+ done
+ IFS=$func_quote_portable_old_IFS
;;
- *)
- _G_quoted_arg=$_G_unquoted_arg
- ;;
+ *) ;;
esac
-
- if test -n "$func_quote_for_eval_result"; then
- func_append func_quote_for_eval_result " $_G_quoted_arg"
- else
- func_append func_quote_for_eval_result "$_G_quoted_arg"
- fi
- shift
+ break
done
+
+ func_quote_portable_unquoted_result=$func_quote_portable_result
+ case $func_quote_portable_result in
+ # double-quote args containing shell metacharacters to delay
+ # word splitting, command substitution and variable expansion
+ # for a subsequent eval.
+ # many bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ func_quote_portable_result=\"$func_quote_portable_result\"
+ ;;
+ esac
}
-# func_quote_for_expand ARG
-# -------------------------
-# Aesthetically quote ARG to be evaled later; same as above,
-# but do not quote variable references.
-func_quote_for_expand ()
-{
- $debug_cmd
+# func_quotefast_eval ARG
+# -----------------------
+# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG',
+# but optimized for speed. Result is stored in $func_quotefast_eval.
+if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then
+ printf -v _GL_test_printf_tilde %q '~'
+ if test '\~' = "$_GL_test_printf_tilde"; then
+ func_quotefast_eval ()
+ {
+ printf -v func_quotefast_eval_result %q "$1"
+ }
+ else
+ # Broken older Bash implementations. Make those faster too if possible.
+ func_quotefast_eval ()
+ {
+ case $1 in
+ '~'*)
+ func_quote_portable false "$1"
+ func_quotefast_eval_result=$func_quote_portable_result
+ ;;
+ *)
+ printf -v func_quotefast_eval_result %q "$1"
+ ;;
+ esac
+ }
+ fi
+else
+ func_quotefast_eval ()
+ {
+ func_quote_portable false "$1"
+ func_quotefast_eval_result=$func_quote_portable_result
+ }
+fi
- case $1 in
- *[\\\`\"]*)
- _G_arg=`$ECHO "$1" | $SED \
- -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;
- *)
- _G_arg=$1 ;;
+
+# func_quote_arg MODEs ARG
+# ------------------------
+# Quote one ARG to be evaled later. MODEs argument may contain zero or more
+# specifiers listed below separated by ',' character. This function returns two
+# values:
+# i) func_quote_arg_result
+# double-quoted (when needed), suitable for a subsequent eval
+# ii) func_quote_arg_unquoted_result
+# has all characters that are still active within double
+# quotes backslashified. Available only if 'unquoted' is specified.
+#
+# Available modes:
+# ----------------
+# 'eval' (default)
+# - escape shell special characters
+# 'expand'
+# - the same as 'eval'; but do not quote variable references
+# 'pretty'
+# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might
+# be used later in func_quote to get output like: 'echo "a b"' instead
+# of 'echo a\ b'. This is slower than default on some shells.
+# 'unquoted'
+# - produce also $func_quote_arg_unquoted_result which does not contain
+# wrapping double-quotes.
+#
+# Examples for 'func_quote_arg pretty,unquoted string':
+#
+# string | *_result | *_unquoted_result
+# ------------+-----------------------+-------------------
+# " | \" | \"
+# a b | "a b" | a b
+# "a b" | "\"a b\"" | \"a b\"
+# * | "*" | *
+# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\"
+#
+# Examples for 'func_quote_arg pretty,unquoted,expand string':
+#
+# string | *_result | *_unquoted_result
+# --------------+---------------------+--------------------
+# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\"
+func_quote_arg ()
+{
+ _G_quote_expand=false
+ case ,$1, in
+ *,expand,*)
+ _G_quote_expand=:
+ ;;
esac
- case $_G_arg in
- # Double-quote args containing shell metacharacters to delay
- # word splitting and command substitution for a subsequent eval.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- _G_arg=\"$_G_arg\"
+ case ,$1, in
+ *,pretty,*|*,expand,*|*,unquoted,*)
+ func_quote_portable $_G_quote_expand "$2"
+ func_quote_arg_result=$func_quote_portable_result
+ func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result
+ ;;
+ *)
+ # Faster quote-for-eval for some shells.
+ func_quotefast_eval "$2"
+ func_quote_arg_result=$func_quotefast_eval_result
;;
esac
+}
+
- func_quote_for_expand_result=$_G_arg
+# func_quote MODEs ARGs...
+# ------------------------
+# Quote all ARGs to be evaled later and join them into single command. See
+# func_quote_arg's description for more info.
+func_quote ()
+{
+ $debug_cmd
+ _G_func_quote_mode=$1 ; shift
+ func_quote_result=
+ while test 0 -lt $#; do
+ func_quote_arg "$_G_func_quote_mode" "$1"
+ if test -n "$func_quote_result"; then
+ func_append func_quote_result " $func_quote_arg_result"
+ else
+ func_append func_quote_result "$func_quote_arg_result"
+ fi
+ shift
+ done
}
_G_cmd=$1
_G_fail_exp=${2-':'}
- func_quote_for_expand "$_G_cmd"
- eval "func_notquiet $func_quote_for_expand_result"
+ func_quote_arg pretty,expand "$_G_cmd"
+ eval "func_notquiet $func_quote_arg_result"
$opt_dry_run || {
eval "$_G_cmd"
_G_fail_exp=${2-':'}
$opt_quiet || {
- func_quote_for_expand "$_G_cmd"
- eval "func_echo $func_quote_for_expand_result"
+ func_quote_arg expand,pretty "$_G_cmd"
+ eval "func_echo $func_quote_arg_result"
}
$opt_dry_run || {
# End:
#! /bin/sh
-# Set a version string for this script.
-scriptversion=2014-01-07.03; # UTC
-
# A portable, pluggable option parser for Bourne shell.
# Written by Gary V. Vaughan, 2010
-# Copyright (C) 2010-2015 Free Software Foundation, Inc.
-# This is free software; see the source for copying conditions. There is NO
-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
+# This is free software. There is NO warranty; not even for
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# Copyright (C) 2010-2018 Bootstrap Authors
+#
+# This file is dual licensed under the terms of the MIT license
+# <https://opensource.org/license/MIT>, and GPL version 3 or later
+# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
+# these licenses when using or redistributing this software or any of
+# the files within it. See the URLs above, or the file `LICENSE`
+# included in the Bootstrap distribution for the full license texts.
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# Please report bugs or propose patches to:
+# <https://github.com/gnulib-modules/bootstrap/issues>
-# Please report bugs or propose patches to gary@gnu.org.
+# Set a version string for this script.
+scriptversion=2018-07-24.06; # UTC
## ------ ##
#
# In order for the '--version' option to work, you will need to have a
# suitably formatted comment like the one at the top of this file
-# starting with '# Written by ' and ending with '# warranty; '.
+# starting with '# Written by ' and ending with '# Copyright'.
#
# For '-h' and '--help' to work, you will also need a one line
# description of your script's purpose in a comment directly above the
# to display verbose messages only when your user has specified
# '--verbose'.
#
-# After sourcing this file, you can plug processing for additional
+# After sourcing this file, you can plug in processing for additional
# options by amending the variables from the 'Configuration' section
# below, and following the instructions in the 'Option parsing'
# section further down.
## ------------------------- ##
# This section contains functions for adding, removing, and running hooks
-# to the main code. A hook is just a named list of of function, that can
-# be run in order later on.
+# in the main code. A hook is just a list of function names that can be
+# run in order later on.
# func_hookable FUNC_NAME
# -----------------------
# func_remove_hook FUNC_NAME HOOK_FUNC
# ------------------------------------
-# Remove HOOK_FUNC from the list of functions called by FUNC_NAME.
+# Remove HOOK_FUNC from the list of hook functions to be called by
+# FUNC_NAME.
func_remove_hook ()
{
$debug_cmd
}
+# func_propagate_result FUNC_NAME_A FUNC_NAME_B
+# ---------------------------------------------
+# If the *_result variable of FUNC_NAME_A _is set_, assign its value to
+# *_result variable of FUNC_NAME_B.
+func_propagate_result ()
+{
+ $debug_cmd
+
+ func_propagate_result_result=:
+ if eval "test \"\${${1}_result+set}\" = set"
+ then
+ eval "${2}_result=\$${1}_result"
+ else
+ func_propagate_result_result=false
+ fi
+}
+
+
# func_run_hooks FUNC_NAME [ARG]...
# ---------------------------------
# Run all hook functions registered to FUNC_NAME.
-# It is assumed that the list of hook functions contains nothing more
+# It's assumed that the list of hook functions contains nothing more
# than a whitespace-delimited list of legal shell function names, and
# no effort is wasted trying to catch shell meta-characters or preserve
# whitespace.
case " $hookable_fns " in
*" $1 "*) ;;
- *) func_fatal_error "'$1' does not support hook funcions.n" ;;
+ *) func_fatal_error "'$1' does not support hook functions." ;;
esac
eval _G_hook_fns=\$$1_hooks; shift
for _G_hook in $_G_hook_fns; do
- eval $_G_hook '"$@"'
-
- # store returned options list back into positional
- # parameters for next 'cmd' execution.
- eval _G_hook_result=\$${_G_hook}_result
- eval set dummy "$_G_hook_result"; shift
+ func_unset "${_G_hook}_result"
+ eval $_G_hook '${1+"$@"}'
+ func_propagate_result $_G_hook func_run_hooks
+ if $func_propagate_result_result; then
+ eval set dummy "$func_run_hooks_result"; shift
+ fi
done
-
- func_quote_for_eval ${1+"$@"}
- func_run_hooks_result=$func_quote_for_eval_result
}
## --------------- ##
# In order to add your own option parsing hooks, you must accept the
-# full positional parameter list in your hook function, remove any
-# options that you action, and then pass back the remaining unprocessed
-# options in '<hooked_function_name>_result', escaped suitably for
-# 'eval'. Like this:
+# full positional parameter list from your hook function. You may remove
+# or edit any options that you action, and then pass back the remaining
+# unprocessed options in '<hooked_function_name>_result', escaped
+# suitably for 'eval'.
+#
+# The '<hooked_function_name>_result' variable is automatically unset
+# before your hook gets called; for best performance, only set the
+# *_result variable when necessary (i.e. don't call the 'func_quote'
+# function unnecessarily because it can be an expensive operation on some
+# machines).
+#
+# Like this:
#
# my_options_prep ()
# {
# usage_message=$usage_message'
# -s, --silent don'\''t print informational messages
# '
-#
-# func_quote_for_eval ${1+"$@"}
-# my_options_prep_result=$func_quote_for_eval_result
+# # No change in '$@' (ignored completely by this hook). Leave
+# # my_options_prep_result variable intact.
# }
# func_add_hook func_options_prep my_options_prep
#
# {
# $debug_cmd
#
-# # Note that for efficiency, we parse as many options as we can
+# args_changed=false
+#
+# # Note that, for efficiency, we parse as many options as we can
# # recognise in a loop before passing the remainder back to the
# # caller on the first unrecognised argument we encounter.
# while test $# -gt 0; do
# opt=$1; shift
# case $opt in
-# --silent|-s) opt_silent=: ;;
+# --silent|-s) opt_silent=:
+# args_changed=:
+# ;;
# # Separate non-argument short options:
# -s*) func_split_short_opt "$_G_opt"
# set dummy "$func_split_short_opt_name" \
# "-$func_split_short_opt_arg" ${1+"$@"}
# shift
+# args_changed=:
# ;;
-# *) set dummy "$_G_opt" "$*"; shift; break ;;
+# *) # Make sure the first unrecognised option "$_G_opt"
+# # is added back to "$@" in case we need it later,
+# # if $args_changed was set to 'true'.
+# set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
# esac
# done
#
-# func_quote_for_eval ${1+"$@"}
-# my_silent_option_result=$func_quote_for_eval_result
+# # Only call 'func_quote' here if we processed at least one argument.
+# if $args_changed; then
+# func_quote eval ${1+"$@"}
+# my_silent_option_result=$func_quote_result
+# fi
# }
# func_add_hook func_parse_options my_silent_option
#
#
# $opt_silent && $opt_verbose && func_fatal_help "\
# '--silent' and '--verbose' options are mutually exclusive."
-#
-# func_quote_for_eval ${1+"$@"}
-# my_option_validation_result=$func_quote_for_eval_result
# }
# func_add_hook func_validate_options my_option_validation
#
-# You'll alse need to manually amend $usage_message to reflect the extra
+# You'll also need to manually amend $usage_message to reflect the extra
# options you parse. It's preferable to append if you can, so that
# multiple option parsing hooks can be added safely.
+# func_options_finish [ARG]...
+# ----------------------------
+# Finishing the option parse loop (call 'func_options' hooks ATM).
+func_options_finish ()
+{
+ $debug_cmd
+
+ func_run_hooks func_options ${1+"$@"}
+ func_propagate_result func_run_hooks func_options_finish
+}
+
+
# func_options [ARG]...
# ---------------------
# All the functions called inside func_options are hookable. See the
{
$debug_cmd
- func_options_prep ${1+"$@"}
- eval func_parse_options \
- ${func_options_prep_result+"$func_options_prep_result"}
- eval func_validate_options \
- ${func_parse_options_result+"$func_parse_options_result"}
+ _G_options_quoted=false
- eval func_run_hooks func_options \
- ${func_validate_options_result+"$func_validate_options_result"}
+ for my_func in options_prep parse_options validate_options options_finish
+ do
+ func_unset func_${my_func}_result
+ func_unset func_run_hooks_result
+ eval func_$my_func '${1+"$@"}'
+ func_propagate_result func_$my_func func_options
+ if $func_propagate_result_result; then
+ eval set dummy "$func_options_result"; shift
+ _G_options_quoted=:
+ fi
+ done
- # save modified positional parameters for caller
- func_options_result=$func_run_hooks_result
+ $_G_options_quoted || {
+ # As we (func_options) are top-level options-parser function and
+ # nobody quoted "$@" for us yet, we need to do it explicitly for
+ # caller.
+ func_quote eval ${1+"$@"}
+ func_options_result=$func_quote_result
+ }
}
# All initialisations required before starting the option parse loop.
# Note that when calling hook functions, we pass through the list of
# positional parameters. If a hook function modifies that list, and
-# needs to propogate that back to rest of this script, then the complete
-# modified list must be put in 'func_run_hooks_result' before
-# returning.
+# needs to propagate that back to rest of this script, then the complete
+# modified list must be put in 'func_run_hooks_result' before returning.
func_hookable func_options_prep
func_options_prep ()
{
opt_warning_types=
func_run_hooks func_options_prep ${1+"$@"}
-
- # save modified positional parameters for caller
- func_options_prep_result=$func_run_hooks_result
+ func_propagate_result func_run_hooks func_options_prep
}
{
$debug_cmd
- func_parse_options_result=
-
+ _G_parse_options_requote=false
# this just eases exit handling
while test $# -gt 0; do
# Defer to hook functions for initial option parsing, so they
# get priority in the event of reusing an option name.
func_run_hooks func_parse_options ${1+"$@"}
-
- # Adjust func_parse_options positional parameters to match
- eval set dummy "$func_run_hooks_result"; shift
+ func_propagate_result func_run_hooks func_parse_options
+ if $func_propagate_result_result; then
+ eval set dummy "$func_parse_options_result"; shift
+ # Even though we may have changed "$@", we passed the "$@" array
+ # down into the hook and it quoted it for us (because we are in
+ # this if-branch). No need to quote it again.
+ _G_parse_options_requote=false
+ fi
# Break out of the loop if we already parsed every option.
test $# -gt 0 || break
+ # We expect that one of the options parsed in this function matches
+ # and thus we remove _G_opt from "$@" and need to re-quote.
+ _G_match_parse_options=:
_G_opt=$1
shift
case $_G_opt in
--debug|-x) debug_cmd='set -x'
- func_echo "enabling shell trace mode"
+ func_echo "enabling shell trace mode" >&2
$debug_cmd
;;
;;
--warnings|--warning|-W)
- test $# = 0 && func_missing_arg $_G_opt && break
+ if test $# = 0 && func_missing_arg $_G_opt; then
+ _G_parse_options_requote=:
+ break
+ fi
case " $warning_categories $1" in
*" $1 "*)
# trailing space prevents matching last $1 above
shift
;;
- --) break ;;
+ --) _G_parse_options_requote=: ; break ;;
-*) func_fatal_help "unrecognised option: '$_G_opt'" ;;
- *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
+ *) set dummy "$_G_opt" ${1+"$@"}; shift
+ _G_match_parse_options=false
+ break
+ ;;
esac
+
+ if $_G_match_parse_options; then
+ _G_parse_options_requote=:
+ fi
done
- # save modified positional parameters for caller
- func_quote_for_eval ${1+"$@"}
- func_parse_options_result=$func_quote_for_eval_result
+ if $_G_parse_options_requote; then
+ # save modified positional parameters for caller
+ func_quote eval ${1+"$@"}
+ func_parse_options_result=$func_quote_result
+ fi
}
test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
func_run_hooks func_validate_options ${1+"$@"}
+ func_propagate_result func_run_hooks func_validate_options
# Bail if the options were screwed!
$exit_cmd $EXIT_FAILURE
-
- # save modified positional parameters for caller
- func_validate_options_result=$func_run_hooks_result
}
# func_split_equals STRING
# ------------------------
-# Set func_split_equals_lhs and func_split_equals_rhs shell variables after
-# splitting STRING at the '=' sign.
+# Set func_split_equals_lhs and func_split_equals_rhs shell variables
+# after splitting STRING at the '=' sign.
test -z "$_G_HAVE_XSI_OPS" \
&& (eval 'x=a/b/c;
test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
func_split_equals_lhs=${1%%=*}
func_split_equals_rhs=${1#*=}
- test "x$func_split_equals_lhs" = "x$1" \
- && func_split_equals_rhs=
+ if test "x$func_split_equals_lhs" = "x$1"; then
+ func_split_equals_rhs=
+ fi
}'
else
# ...otherwise fall back to using expr, which is often a shell builtin.
# func_version
# ------------
# Echo version message to standard output and exit.
+# The version message is extracted from the calling file's header
+# comments, with leading '# ' stripped:
+# 1. First display the progname and version
+# 2. Followed by the header comment line matching /^# Written by /
+# 3. Then a blank line followed by the first following line matching
+# /^# Copyright /
+# 4. Immediately followed by any lines between the previous matches,
+# except lines preceding the intervening completely blank line.
+# For example, see the header comments of this file.
func_version ()
{
$debug_cmd
printf '%s\n' "$progname $scriptversion"
$SED -n '
- /(C)/!b go
- :more
- /\./!{
- N
- s|\n# | |
- b more
- }
- :go
- /^# Written by /,/# warranty; / {
- s|^# ||
- s|^# *$||
- s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
- p
+ /^# Written by /!b
+ s|^# ||; p; n
+
+ :fwd2blnk
+ /./ {
+ n
+ b fwd2blnk
}
- /^# Written by / {
- s|^# ||
- p
+ p; n
+
+ :holdwrnt
+ s|^# ||
+ s|^# *$||
+ /^Copyright /!{
+ /./H
+ n
+ b holdwrnt
}
- /^warranty; /q' < "$progpath"
+
+ s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
+ G
+ s|\(\n\)\n*|\1|g
+ p; q' < "$progpath"
exit $?
}
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'before-save-hook 'time-stamp)
-# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
+# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC"
# time-stamp-time-zone: "UTC"
# End:
# Set a version string.
-scriptversion='(GNU libtool) 2.4.6'
+scriptversion='(GNU libtool) 2.4.6.42-b88ce'
# func_echo ARG...
compiler: $LTCC
compiler flags: $LTCFLAGS
linker: $LD (gnu? $with_gnu_ld)
- version: $progname $scriptversion Debian-2.4.6-2
+ version: $progname (GNU libtool) 2.4.6.42-b88ce
automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
# a configuration failure hint, and exit.
func_fatal_configuration ()
{
- func__fatal_error ${1+"$@"} \
+ func_fatal_error ${1+"$@"} \
"See the $PACKAGE documentation for more information." \
"Fatal configuration error."
}
nonopt=
preserve_args=
+ _G_rc_lt_options_prep=:
+
# Shorthand for --mode=foo, only valid as the first argument
case $1 in
clean|clea|cle|cl)
uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
shift; set dummy --mode uninstall ${1+"$@"}; shift
;;
+ *)
+ _G_rc_lt_options_prep=false
+ ;;
esac
- # Pass back the list of options.
- func_quote_for_eval ${1+"$@"}
- libtool_options_prep_result=$func_quote_for_eval_result
+ if $_G_rc_lt_options_prep; then
+ # Pass back the list of options.
+ func_quote eval ${1+"$@"}
+ libtool_options_prep_result=$func_quote_result
+ fi
}
func_add_hook func_options_prep libtool_options_prep
{
$debug_cmd
+ _G_rc_lt_parse_options=false
+
# Perform our own loop to consume as many options as possible in
# each iteration.
while test $# -gt 0; do
+ _G_match_lt_parse_options=:
_G_opt=$1
shift
case $_G_opt in
func_append preserve_args " $_G_opt"
;;
- # An option not handled by this hook function:
- *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
+ # An option not handled by this hook function:
+ *) set dummy "$_G_opt" ${1+"$@"} ; shift
+ _G_match_lt_parse_options=false
+ break
+ ;;
esac
+ $_G_match_lt_parse_options && _G_rc_lt_parse_options=:
done
-
- # save modified positional parameters for caller
- func_quote_for_eval ${1+"$@"}
- libtool_parse_options_result=$func_quote_for_eval_result
+ if $_G_rc_lt_parse_options; then
+ # save modified positional parameters for caller
+ func_quote eval ${1+"$@"}
+ libtool_parse_options_result=$func_quote_result
+ fi
}
func_add_hook func_parse_options libtool_parse_options
}
# Pass back the unparsed argument list
- func_quote_for_eval ${1+"$@"}
- libtool_validate_options_result=$func_quote_for_eval_result
+ func_quote eval ${1+"$@"}
+ libtool_validate_options_result=$func_quote_result
}
func_add_hook func_validate_options libtool_validate_options
esac
done
- func_quote_for_eval "$libobj"
- test "X$libobj" != "X$func_quote_for_eval_result" \
+ func_quote_arg pretty "$libobj"
+ test "X$libobj" != "X$func_quote_arg_result" \
&& $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
&& func_warning "libobj name '$libobj' may not contain shell special characters."
func_dirname_and_basename "$obj" "/" ""
func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
srcfile=$func_to_tool_file_result
- func_quote_for_eval "$srcfile"
- qsrcfile=$func_quote_for_eval_result
+ func_quote_arg pretty "$srcfile"
+ qsrcfile=$func_quote_arg_result
# Only build a PIC object if we are building libtool libraries.
if test yes = "$build_libtool_libs"; then
case $nonopt in *shtool*) :;; *) false;; esac
then
# Aesthetically quote it.
- func_quote_for_eval "$nonopt"
- install_prog="$func_quote_for_eval_result "
+ func_quote_arg pretty "$nonopt"
+ install_prog="$func_quote_arg_result "
arg=$1
shift
else
# The real first argument should be the name of the installation program.
# Aesthetically quote it.
- func_quote_for_eval "$arg"
- func_append install_prog "$func_quote_for_eval_result"
+ func_quote_arg pretty "$arg"
+ func_append install_prog "$func_quote_arg_result"
install_shared_prog=$install_prog
case " $install_prog " in
*[\\\ /]cp\ *) install_cp=: ;;
esac
# Aesthetically quote the argument.
- func_quote_for_eval "$arg"
- func_append install_prog " $func_quote_for_eval_result"
+ func_quote_arg pretty "$arg"
+ func_append install_prog " $func_quote_arg_result"
if test -n "$arg2"; then
- func_quote_for_eval "$arg2"
+ func_quote_arg pretty "$arg2"
fi
- func_append install_shared_prog " $func_quote_for_eval_result"
+ func_append install_shared_prog " $func_quote_arg_result"
done
test -z "$install_prog" && \
if test -n "$install_override_mode" && $no_mode; then
if $install_cp; then :; else
- func_quote_for_eval "$install_override_mode"
- func_append install_shared_prog " -m $func_quote_for_eval_result"
+ func_quote_arg pretty "$install_override_mode"
+ func_append install_shared_prog " -m $func_quote_arg_result"
fi
fi
relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
$opt_quiet || {
- func_quote_for_expand "$relink_command"
- eval "func_echo $func_quote_for_expand_result"
+ func_quote_arg expand,pretty "$relink_command"
+ eval "func_echo $func_quote_arg_result"
}
if eval "$relink_command"; then :
else
if test \"\$libtool_execute_magic\" != \"$magic\"; then
file=\"\$0\""
- qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
+ func_quote_arg pretty "$ECHO"
+ qECHO=$func_quote_arg_result
$ECHO "\
# A function that is used when there is no print builtin or printf.
\$1
_LTECHO_EOF'
}
- ECHO=\"$qECHO\"
+ ECHO=$qECHO
fi
# Very basic option parsing. These options are (a) specific to
while test "$#" -gt 0; do
arg=$1
shift
- func_quote_for_eval "$arg"
- qarg=$func_quote_for_eval_unquoted_result
- func_append libtool_args " $func_quote_for_eval_result"
+ func_quote_arg pretty,unquoted "$arg"
+ qarg=$func_quote_arg_unquoted_result
+ func_append libtool_args " $func_quote_arg_result"
# If the previous option needs an argument, assign it.
if test -n "$prev"; then
save_ifs=$IFS; IFS=,
for flag in $args; do
IFS=$save_ifs
- func_quote_for_eval "$flag"
- func_append arg " $func_quote_for_eval_result"
- func_append compiler_flags " $func_quote_for_eval_result"
+ func_quote_arg pretty "$flag"
+ func_append arg " $func_quote_arg_result"
+ func_append compiler_flags " $func_quote_arg_result"
done
IFS=$save_ifs
func_stripname ' ' '' "$arg"
save_ifs=$IFS; IFS=,
for flag in $args; do
IFS=$save_ifs
- func_quote_for_eval "$flag"
- func_append arg " $wl$func_quote_for_eval_result"
- func_append compiler_flags " $wl$func_quote_for_eval_result"
- func_append linker_flags " $func_quote_for_eval_result"
+ func_quote_arg pretty "$flag"
+ func_append arg " $wl$func_quote_arg_result"
+ func_append compiler_flags " $wl$func_quote_arg_result"
+ func_append linker_flags " $func_quote_arg_result"
done
IFS=$save_ifs
func_stripname ' ' '' "$arg"
# -msg_* for osf cc
-msg_*)
- func_quote_for_eval "$arg"
- arg=$func_quote_for_eval_result
+ func_quote_arg pretty "$arg"
+ arg=$func_quote_arg_result
;;
# Flags to be passed through unchanged, with rationale:
# -specs=* GCC specs files
# -stdlib=* select c++ std lib with clang
# -fsanitize=* Clang/GCC memory and address sanitizer
+ # -fuse-ld=* Linker select flags for GCC
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
-O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
- -specs=*|-fsanitize=*)
- func_quote_for_eval "$arg"
- arg=$func_quote_for_eval_result
+ -specs=*|-fsanitize=*|-fuse-ld=*)
+ func_quote_arg pretty "$arg"
+ arg=$func_quote_arg_result
func_append compile_command " $arg"
func_append finalize_command " $arg"
func_append compiler_flags " $arg"
continue
else
# Otherwise treat like 'Some other compiler flag' below
- func_quote_for_eval "$arg"
- arg=$func_quote_for_eval_result
+ func_quote_arg pretty "$arg"
+ arg=$func_quote_arg_result
fi
;;
# Some other compiler flag.
-* | +*)
- func_quote_for_eval "$arg"
- arg=$func_quote_for_eval_result
+ func_quote_arg pretty "$arg"
+ arg=$func_quote_arg_result
;;
*.$objext)
*)
# Unknown arguments in both finalize_command and compile_command need
# to be aesthetically quoted because they are evaled later.
- func_quote_for_eval "$arg"
- arg=$func_quote_for_eval_result
+ func_quote_arg pretty "$arg"
+ arg=$func_quote_arg_result
;;
esac # arg
case $pass in
dlopen) libs=$dlfiles ;;
dlpreopen) libs=$dlprefiles ;;
- link)
- libs="$deplibs %DEPLIBS%"
- test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
- ;;
+ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
esac
fi
if test lib,dlpreopen = "$linkmode,$pass"; then
# It is a libtool convenience library, so add in its objects.
func_append convenience " $ladir/$objdir/$old_library"
func_append old_convenience " $ladir/$objdir/$old_library"
- tmp_libs=
- for deplib in $dependency_libs; do
- deplibs="$deplib $deplibs"
- if $opt_preserve_dup_deps; then
- case "$tmp_libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append tmp_libs " $deplib"
- done
elif test prog != "$linkmode" && test lib != "$linkmode"; then
func_fatal_error "'$lib' is not a convenience library"
fi
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ deplibs="$deplib $deplibs"
+ if $opt_preserve_dup_deps; then
+ case "$tmp_libs " in
+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+ esac
+ fi
+ func_append tmp_libs " $deplib"
+ done
continue
fi # $pass = conv
revision=$number_minor
lt_irix_increment=no
;;
- *)
- func_fatal_configuration "$modename: unknown library version type '$version_type'"
- ;;
esac
;;
no)
for cmd in $concat_cmds; do
IFS=$save_ifs
$opt_quiet || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
+ func_quote_arg expand,pretty "$cmd"
+ eval "func_echo $func_quote_arg_result"
}
$opt_dry_run || eval "$cmd" || {
lt_exit=$?
eval cmd=\"$cmd\"
IFS=$save_ifs
$opt_quiet || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
+ func_quote_arg expand,pretty "$cmd"
+ eval "func_echo $func_quote_arg_result"
}
$opt_dry_run || eval "$cmd" || {
lt_exit=$?
elif eval var_value=\$$var; test -z "$var_value"; then
relink_command="$var=; export $var; $relink_command"
else
- func_quote_for_eval "$var_value"
- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+ func_quote_arg pretty "$var_value"
+ relink_command="$var=$func_quote_arg_result; export $var; $relink_command"
fi
done
- relink_command="(cd `pwd`; $relink_command)"
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
+ func_quote eval cd "`pwd`"
+ func_quote_arg pretty,unquoted "($func_quote_result; $relink_command)"
+ relink_command=$func_quote_arg_unquoted_result
fi
# Only actually do things if not in dry run mode.
elif eval var_value=\$$var; test -z "$var_value"; then
relink_command="$var=; export $var; $relink_command"
else
- func_quote_for_eval "$var_value"
- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+ func_quote_arg pretty,unquoted "$var_value"
+ relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command"
fi
done
# Quote the link command for shipping.
- relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
+ func_quote eval cd "`pwd`"
+ relink_command="($func_quote_result; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+ func_quote_arg pretty,unquoted "$relink_command"
+ relink_command=$func_quote_arg_unquoted_result
if test yes = "$hardcode_automatic"; then
relink_command=
fi
-dnl -*- mode: autoconf -*-
+# -*- mode: autoconf -*-
+#
+# gtk-doc.m4 - configure macro to check for gtk-doc
+# Copyright (C) 2003 James Henstridge
+# 2007-2017 Stefan Sauer
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception, the above copyright owner gives unlimited
+# permission to copy, distribute and modify the configure scripts that
+# are the output of Autoconf when processing the Macro. You need not
+# follow the terms of the GNU General Public License when using or
+# distributing such scripts, even though portions of the text of the
+# Macro appear in them. The GNU General Public License (GPL) does govern
+# all other use of the material that constitutes the Autoconf Macro.
# serial 2
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
#
-# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.
+# Copyright (C) 1996-2001, 2003-2018 Free Software Foundation, Inc.
# Written by Gordon Matzigkeit, 1996
#
# This file is free software; the Free Software Foundation gives
ofile=libtool
can_build_shared=yes
-# All known linkers require a '.a' archive for static linking (except MSVC,
-# which needs '.lib').
+# All known linkers require a '.a' archive for static linking (except MSVC and
+# ICC, which need '.lib').
libext=a
with_gnu_ld=$lt_cv_prog_gnu_ld
cat <<_LT_EOF >> "$cfgfile"
#! $SHELL
# Generated automatically by $as_me ($PACKAGE) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
# Provide generalized library-building support services.
_LT_EOF
echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
$LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
- echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
- $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+ echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+ $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
$RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
cat > conftest.c << _LT_EOF
m4_defun([_LT_PROG_AR],
[AC_CHECK_TOOLS(AR, [ar], false)
: ${AR=ar}
-: ${AR_FLAGS=cru}
_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+# Use ARFLAGS variable as AR's operation code to sync the variable naming with
+# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
+# higher priority because thats what people were doing historically (setting
+# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS
+# variable obsoleted/removed.
+
+test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
+lt_ar_flags=$AR_FLAGS
+_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)])
+
+# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override
+# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
+_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}],
+ [Flags to create an archive])
AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
[lt_cv_ar_at_file=no
striplib=
old_striplib=
AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- AC_MSG_RESULT([yes])
+if test -z "$STRIP"; then
+ AC_MSG_RESULT([no])
else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP"; then
+ if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ old_striplib="$STRIP --strip-debug"
+ striplib="$STRIP --strip-unneeded"
+ AC_MSG_RESULT([yes])
+ else
+ case $host_os in
+ darwin*)
+ # FIXME - insert some real tests, host_os isn't really good enough
striplib="$STRIP -x"
old_striplib="$STRIP -S"
AC_MSG_RESULT([yes])
- else
+ ;;
+ freebsd*)
+ if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
+ old_striplib="$STRIP --strip-debug"
+ striplib="$STRIP --strip-unneeded"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ ;;
+ *)
AC_MSG_RESULT([no])
- fi
- ;;
- *)
- AC_MSG_RESULT([no])
- ;;
- esac
+ ;;
+ esac
+ fi
fi
_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
_LT_DECL([], [striplib], [1])
dynamic_linker='Win32 ld.exe'
;;
- *,cl*)
- # Native MSVC
+ *,cl* | *,icl*)
+ # Native MSVC or ICC
libname_spec='$name'
soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
library_names_spec='$libname.dll.lib'
;;
*)
- # Assume MSVC wrapper
+ # Assume MSVC and ICC wrapper
library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
dynamic_linker='Win32 ld.exe'
;;
dynamic_linker='GNU/Linux ld.so'
;;
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
netbsd*)
version_type=sunos
need_lib_prefix=no
lt_cv_deplibs_check_method=pass_all
;;
-netbsd* | netbsdelf*-gnu)
+netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
else
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
# Fake it for dumpbin and say T for any non-static function,
# D for any global variable and I for any imported variable.
- # Also find C++ and __fastcall symbols from MSVC++,
+ # Also find C++ and __fastcall symbols from MSVC++ or ICC,
# which start with @ or ?.
lt_cv_sys_global_symbol_pipe="$AWK ['"\
" {last_section=section; section=\$ 3};"\
;;
esac
;;
- netbsd* | netbsdelf*-gnu)
+ netbsd*)
;;
*qnx* | *nto*)
# QNX uses GNU C++, but need to define -shared option too, otherwise
if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
_LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
else
- _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
fi
;;
pw32*)
;;
cygwin* | mingw* | cegcc*)
case $cc_basename in
- cl*)
+ cl* | icl*)
_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
;;
*)
;;
esac
;;
- linux* | k*bsd*-gnu | gnu*)
- _LT_TAGVAR(link_all_deplibs, $1)=no
- ;;
*)
_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
;;
case $host_os in
cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
# When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
+ # Microsoft Visual C++ or Intel C++ Compiler.
if test yes != "$GCC"; then
with_gnu_ld=no
fi
;;
interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
+ # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
with_gnu_ld=yes
;;
openbsd* | bitrig*)
with_gnu_ld=no
;;
- linux* | k*bsd*-gnu | gnu*)
- _LT_TAGVAR(link_all_deplibs, $1)=no
- ;;
esac
_LT_TAGVAR(ld_shlibs, $1)=yes
emximp -o $lib $output_objdir/$libname.def'
_LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='@'
;;
interix[[3-9]]*)
fi
;;
- netbsd* | netbsdelf*-gnu)
+ netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
_LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
else
- _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
fi
aix_use_runtimelinking=no
cygwin* | mingw* | pw32* | cegcc*)
# When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
+ # Microsoft Visual C++ or Intel C++ Compiler.
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
case $cc_basename in
- cl*)
- # Native MSVC
+ cl* | icl*)
+ # Native MSVC or ICC
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
_LT_TAGVAR(always_export_symbols, $1)=yes
fi'
;;
*)
- # Assume MSVC wrapper
+ # Assume MSVC and ICC wrapper
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
# Tell ltmain to make .lib files, not .a files.
if test yes = "$lt_cv_irix_exported_symbol"; then
_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
fi
- _LT_TAGVAR(link_all_deplibs, $1)=no
else
_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
esac
;;
- netbsd* | netbsdelf*-gnu)
+ netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
else
emximp -o $lib $output_objdir/$libname.def'
_LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='@'
;;
osf3*)
cygwin* | mingw* | pw32* | cegcc*)
case $GXX,$cc_basename in
- ,cl* | no,cl*)
- # Native MSVC
+ ,cl* | no,cl* | ,icl* | no,icl*)
+ # Native MSVC or ICC
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
emximp -o $lib $output_objdir/$libname.def'
_LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='@'
;;
dgux*)
# Helper functions for option handling. -*- Autoconf -*-
#
-# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
+# Copyright (C) 2004-2005, 2007-2009, 2011-2018 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
#
-# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
+# Copyright (C) 2004-2005, 2007-2008, 2011-2018 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#
# ltversion.m4 -- version numbers -*- Autoconf -*-
#
-# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2011-2018 Free Software Foundation, Inc.
# Written by Scott James Remnant, 2004
#
# This file is free software; the Free Software Foundation gives
# @configure_input@
-# serial 4179 ltversion.m4
+# serial 4221 ltversion.m4
# This file is part of GNU Libtool
-m4_define([LT_PACKAGE_VERSION], [2.4.6])
-m4_define([LT_PACKAGE_REVISION], [2.4.6])
+m4_define([LT_PACKAGE_VERSION], [2.4.6.42-b88ce])
+m4_define([LT_PACKAGE_REVISION], [2.4.6.42])
AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.6'
-macro_revision='2.4.6'
+[macro_version='2.4.6.42-b88ce'
+macro_revision='2.4.6.42'
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
_LT_DECL(, macro_revision, 0)
])
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
#
-# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
+# Copyright (C) 2004-2005, 2007, 2009, 2011-2018 Free Software
# Foundation, Inc.
# Written by Scott James Remnant, 2004.
#
#! /bin/sh
# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2013-10-28.13; # UTC
+scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
exit $st
fi
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
+perl_URL=https://www.perl.org/
+flex_URL=https://github.com/westes/flex
+gnu_software_URL=https://www.gnu.org/software
program_details ()
{
exit $st
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = harfbuzz-config.cmake
CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" \
+ "$(DESTDIR)$(cmakedir)" "$(DESTDIR)$(girdir)" \
+ "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(typelibdir)" \
+ "$(DESTDIR)$(pkgincludedir)" "$(DESTDIR)$(pkgincludedir)"
+am__EXEEXT_1 =
+am__EXEEXT_2 = test-iter$(EXEEXT) test-ot-tag$(EXEEXT) \
+ test-unicode-ranges$(EXEEXT)
+@HAVE_CAIRO_FT_TRUE@@HAVE_FREETYPE_TRUE@am__EXEEXT_3 = test-ot-color$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
- "$(DESTDIR)$(cmakedir)" "$(DESTDIR)$(girdir)" \
- "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(typelibdir)" \
- "$(DESTDIR)$(pkgincludedir)" "$(DESTDIR)$(pkgincludedir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
@HAVE_GOBJECT_TRUE@libharfbuzz_gobject_la_DEPENDENCIES = \
$(am__objects_33) $(am__objects_34)
am_libharfbuzz_la_OBJECTS = $(am__objects_27) $(am__objects_35)
libharfbuzz_la_OBJECTS = $(am_libharfbuzz_la_OBJECTS)
-am__EXEEXT_1 =
-am__EXEEXT_2 = test-iter$(EXEEXT) test-ot-tag$(EXEEXT) \
- test-unicode-ranges$(EXEEXT)
-@HAVE_CAIRO_FT_TRUE@@HAVE_FREETYPE_TRUE@am__EXEEXT_3 = test-ot-color$(EXEEXT)
-PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
am_dump_indic_data_OBJECTS = \
dump_indic_data-dump-indic-data.$(OBJEXT) \
dump_indic_data-hb-ot-shape-complex-indic-table.$(OBJEXT)
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/dump_indic_data-dump-indic-data.Po \
+ ./$(DEPDIR)/dump_indic_data-hb-ot-shape-complex-indic-table.Po \
+ ./$(DEPDIR)/dump_khmer_data-dump-khmer-data.Po \
+ ./$(DEPDIR)/dump_khmer_data-hb-ot-shape-complex-indic-table.Po \
+ ./$(DEPDIR)/dump_myanmar_data-dump-myanmar-data.Po \
+ ./$(DEPDIR)/dump_myanmar_data-hb-ot-shape-complex-indic-table.Po \
+ ./$(DEPDIR)/dump_use_data-dump-use-data.Po \
+ ./$(DEPDIR)/dump_use_data-hb-ot-shape-complex-use-table.Po \
+ ./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-enums.Plo \
+ ./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-structs.Plo \
+ ./$(DEPDIR)/libharfbuzz_icu_la-hb-icu.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-aat-layout.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-aat-map.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-blob.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-buffer-serialize.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-buffer.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-common.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-coretext.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-directwrite.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-face.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-fallback-shape.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-font.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ft.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-glib.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-graphite2.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-icu.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-map.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-cff1-table.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-cff2-table.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-color.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-face.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-font.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-layout.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-map.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-math.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-name-language.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-name.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-arabic.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-default.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hangul.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hebrew.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic-table.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-khmer.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-myanmar.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-thai.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use-table.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-vowel-constraints.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-fallback.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-normalize.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-tag.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ot-var.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-set.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-shape-plan.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-shape.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-shaper.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-static.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-ucdn.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-unicode.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-uniscribe.Plo \
+ ./$(DEPDIR)/libharfbuzz_la-hb-warning.Plo \
+ ./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff1-table.Plo \
+ ./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff2-table.Plo \
+ ./$(DEPDIR)/libharfbuzz_subset_la-hb-static.Plo \
+ ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff-common.Plo \
+ ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff1.Plo \
+ ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff2.Plo \
+ ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-glyf.Plo \
+ ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-input.Plo \
+ ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-plan.Plo \
+ ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset.Plo \
+ ./$(DEPDIR)/main-main.Po ./$(DEPDIR)/test-test.Po \
+ ./$(DEPDIR)/test_buffer_serialize-test-buffer-serialize.Po \
+ ./$(DEPDIR)/test_iter-hb-static.Po \
+ ./$(DEPDIR)/test_iter-test-iter.Po \
+ ./$(DEPDIR)/test_name_table-test-name-table.Po \
+ ./$(DEPDIR)/test_ot_color-test-ot-color.Po \
+ ./$(DEPDIR)/test_ot_tag-hb-ot-tag.Po \
+ ./$(DEPDIR)/test_size_params-test-size-params.Po \
+ ./$(DEPDIR)/test_unicode_ranges-test-unicode-ranges.Po \
+ ./$(DEPDIR)/test_would_substitute-test-would-substitute.Po
am__mv = mv -f
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- check recheck distdir
+ check recheck distdir distdir-am
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(srcdir)/Makefile.sources $(am__empty):
$(am__aclocal_m4_deps):
harfbuzz-config.cmake: $(top_builddir)/config.status $(srcdir)/harfbuzz-config.cmake.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- list2=; for p in $$list; do \
- if test -f $$p; then \
- list2="$$list2 $$p"; \
- else :; fi; \
- done; \
- test -z "$$list2" || { \
- echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
- }
-
-uninstall-libLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- for p in $$list; do \
- $(am__strip_dir) \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
- done
-
-clean-libLTLIBRARIES:
- -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
- @list='$(lib_LTLIBRARIES)'; \
- locs=`for p in $$list; do echo $$p; done | \
- sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
- sort -u`; \
- test -z "$$locs" || { \
- echo rm -f $${locs}; \
- rm -f $${locs}; \
- }
-
-libharfbuzz-gobject.la: $(libharfbuzz_gobject_la_OBJECTS) $(libharfbuzz_gobject_la_DEPENDENCIES) $(EXTRA_libharfbuzz_gobject_la_DEPENDENCIES)
- $(AM_V_GEN)$(libharfbuzz_gobject_la_LINK) $(am_libharfbuzz_gobject_la_rpath) $(libharfbuzz_gobject_la_OBJECTS) $(libharfbuzz_gobject_la_LIBADD) $(LIBS)
-
-libharfbuzz-icu.la: $(libharfbuzz_icu_la_OBJECTS) $(libharfbuzz_icu_la_DEPENDENCIES) $(EXTRA_libharfbuzz_icu_la_DEPENDENCIES)
- $(AM_V_CXXLD)$(libharfbuzz_icu_la_LINK) $(am_libharfbuzz_icu_la_rpath) $(libharfbuzz_icu_la_OBJECTS) $(libharfbuzz_icu_la_LIBADD) $(LIBS)
-
-libharfbuzz-subset.la: $(libharfbuzz_subset_la_OBJECTS) $(libharfbuzz_subset_la_DEPENDENCIES) $(EXTRA_libharfbuzz_subset_la_DEPENDENCIES)
- $(AM_V_CXXLD)$(libharfbuzz_subset_la_LINK) -rpath $(libdir) $(libharfbuzz_subset_la_OBJECTS) $(libharfbuzz_subset_la_LIBADD) $(LIBS)
-
-libharfbuzz.la: $(libharfbuzz_la_OBJECTS) $(libharfbuzz_la_DEPENDENCIES) $(EXTRA_libharfbuzz_la_DEPENDENCIES)
- $(AM_V_GEN)$(libharfbuzz_la_LINK) -rpath $(libdir) $(libharfbuzz_la_OBJECTS) $(libharfbuzz_la_LIBADD) $(LIBS)
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
echo " rm -f" $$list; \
rm -f $$list
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+ }
+
+uninstall-libLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+ done
+
+clean-libLTLIBRARIES:
+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+ @list='$(lib_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
+libharfbuzz-gobject.la: $(libharfbuzz_gobject_la_OBJECTS) $(libharfbuzz_gobject_la_DEPENDENCIES) $(EXTRA_libharfbuzz_gobject_la_DEPENDENCIES)
+ $(AM_V_GEN)$(libharfbuzz_gobject_la_LINK) $(am_libharfbuzz_gobject_la_rpath) $(libharfbuzz_gobject_la_OBJECTS) $(libharfbuzz_gobject_la_LIBADD) $(LIBS)
+
+libharfbuzz-icu.la: $(libharfbuzz_icu_la_OBJECTS) $(libharfbuzz_icu_la_DEPENDENCIES) $(EXTRA_libharfbuzz_icu_la_DEPENDENCIES)
+ $(AM_V_CXXLD)$(libharfbuzz_icu_la_LINK) $(am_libharfbuzz_icu_la_rpath) $(libharfbuzz_icu_la_OBJECTS) $(libharfbuzz_icu_la_LIBADD) $(LIBS)
+
+libharfbuzz-subset.la: $(libharfbuzz_subset_la_OBJECTS) $(libharfbuzz_subset_la_DEPENDENCIES) $(EXTRA_libharfbuzz_subset_la_DEPENDENCIES)
+ $(AM_V_CXXLD)$(libharfbuzz_subset_la_LINK) -rpath $(libdir) $(libharfbuzz_subset_la_OBJECTS) $(libharfbuzz_subset_la_LIBADD) $(LIBS)
+
+libharfbuzz.la: $(libharfbuzz_la_OBJECTS) $(libharfbuzz_la_DEPENDENCIES) $(EXTRA_libharfbuzz_la_DEPENDENCIES)
+ $(AM_V_GEN)$(libharfbuzz_la_LINK) -rpath $(libdir) $(libharfbuzz_la_OBJECTS) $(libharfbuzz_la_LIBADD) $(LIBS)
+
dump-indic-data$(EXEEXT): $(dump_indic_data_OBJECTS) $(dump_indic_data_DEPENDENCIES) $(EXTRA_dump_indic_data_DEPENDENCIES)
@rm -f dump-indic-data$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(dump_indic_data_OBJECTS) $(dump_indic_data_LDADD) $(LIBS)
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_indic_data-dump-indic-data.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_indic_data-hb-ot-shape-complex-indic-table.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_khmer_data-dump-khmer-data.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_khmer_data-hb-ot-shape-complex-indic-table.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_myanmar_data-dump-myanmar-data.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_myanmar_data-hb-ot-shape-complex-indic-table.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_use_data-dump-use-data.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_use_data-hb-ot-shape-complex-use-table.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-enums.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-structs.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_icu_la-hb-icu.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-aat-layout.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-aat-map.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-blob.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-buffer-serialize.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-buffer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-common.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-coretext.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-directwrite.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-face.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-fallback-shape.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-font.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ft.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-glib.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-graphite2.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-icu.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-map.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-cff1-table.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-cff2-table.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-color.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-face.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-font.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-layout.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-map.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-math.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-name-language.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-name.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-arabic.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-default.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hangul.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hebrew.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic-table.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-khmer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-myanmar.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-thai.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use-table.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-vowel-constraints.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-fallback.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-normalize.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-tag.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-var.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-set.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-shape-plan.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-shape.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-shaper.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-static.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ucdn.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-unicode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-uniscribe.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-warning.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff1-table.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff2-table.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-static.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff-common.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff1.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff2.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-glyf.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-input.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-plan.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main-main.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-test.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_buffer_serialize-test-buffer-serialize.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_iter-hb-static.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_iter-test-iter.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_name_table-test-name-table.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ot_color-test-ot-color.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ot_tag-hb-ot-tag.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_size_params-test-size-params.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_unicode_ranges-test-unicode-ranges.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_would_substitute-test-would-substitute.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_indic_data-dump-indic-data.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_indic_data-hb-ot-shape-complex-indic-table.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_khmer_data-dump-khmer-data.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_khmer_data-hb-ot-shape-complex-indic-table.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_myanmar_data-dump-myanmar-data.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_myanmar_data-hb-ot-shape-complex-indic-table.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_use_data-dump-use-data.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_use_data-hb-ot-shape-complex-use-table.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-enums.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-structs.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_icu_la-hb-icu.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-aat-layout.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-aat-map.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-blob.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-buffer-serialize.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-buffer.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-common.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-coretext.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-directwrite.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-face.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-fallback-shape.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-font.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ft.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-glib.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-graphite2.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-icu.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-map.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-cff1-table.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-cff2-table.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-color.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-face.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-font.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-layout.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-map.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-math.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-name-language.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-name.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-arabic.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-default.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hangul.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hebrew.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic-table.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-khmer.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-myanmar.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-thai.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use-table.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-vowel-constraints.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-fallback.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-normalize.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-tag.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-var.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-set.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-shape-plan.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-shape.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-shaper.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-static.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ucdn.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-unicode.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-uniscribe.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-warning.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff1-table.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff2-table.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-static.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff-common.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff1.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff2.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-glyf.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-input.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-plan.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main-main.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-test.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_buffer_serialize-test-buffer-serialize.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_iter-hb-static.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_iter-test-iter.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_name_table-test-name-table.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ot_color-test-ot-color.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ot_tag-hb-ot-tag.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_size_params-test-size-params.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_unicode_ranges-test-unicode-ranges.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_would_substitute-test-would-substitute.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
.cc.o:
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
fi; \
$$success || exit 1
-check-TESTS:
+check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS)
@list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
check: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) check-recursive
-all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
+all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(DATA) $(HEADERS)
install-binPROGRAMS: install-libLTLIBRARIES
installdirs: installdirs-recursive
installdirs-am:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(cmakedir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(typelibdir)" "$(DESTDIR)$(pkgincludedir)" "$(DESTDIR)$(pkgincludedir)"; do \
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(cmakedir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(typelibdir)" "$(DESTDIR)$(pkgincludedir)" "$(DESTDIR)$(pkgincludedir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: $(BUILT_SOURCES)
mostlyclean-am
distclean: distclean-recursive
- -rm -rf ./$(DEPDIR)
+ -rm -f ./$(DEPDIR)/dump_indic_data-dump-indic-data.Po
+ -rm -f ./$(DEPDIR)/dump_indic_data-hb-ot-shape-complex-indic-table.Po
+ -rm -f ./$(DEPDIR)/dump_khmer_data-dump-khmer-data.Po
+ -rm -f ./$(DEPDIR)/dump_khmer_data-hb-ot-shape-complex-indic-table.Po
+ -rm -f ./$(DEPDIR)/dump_myanmar_data-dump-myanmar-data.Po
+ -rm -f ./$(DEPDIR)/dump_myanmar_data-hb-ot-shape-complex-indic-table.Po
+ -rm -f ./$(DEPDIR)/dump_use_data-dump-use-data.Po
+ -rm -f ./$(DEPDIR)/dump_use_data-hb-ot-shape-complex-use-table.Po
+ -rm -f ./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-enums.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-structs.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_icu_la-hb-icu.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-aat-layout.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-aat-map.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-blob.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-buffer-serialize.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-buffer.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-common.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-coretext.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-directwrite.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-face.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-fallback-shape.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-font.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ft.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-glib.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-graphite2.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-icu.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-map.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-cff1-table.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-cff2-table.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-color.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-face.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-font.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-layout.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-map.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-math.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-name-language.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-name.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-arabic.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-default.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hangul.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hebrew.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic-table.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-khmer.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-myanmar.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-thai.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use-table.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-vowel-constraints.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-fallback.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-normalize.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-tag.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-var.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-set.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-shape-plan.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-shape.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-shaper.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-static.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ucdn.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-unicode.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-uniscribe.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-warning.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff1-table.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff2-table.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-static.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff-common.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff1.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff2.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-glyf.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-input.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-plan.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset.Plo
+ -rm -f ./$(DEPDIR)/main-main.Po
+ -rm -f ./$(DEPDIR)/test-test.Po
+ -rm -f ./$(DEPDIR)/test_buffer_serialize-test-buffer-serialize.Po
+ -rm -f ./$(DEPDIR)/test_iter-hb-static.Po
+ -rm -f ./$(DEPDIR)/test_iter-test-iter.Po
+ -rm -f ./$(DEPDIR)/test_name_table-test-name-table.Po
+ -rm -f ./$(DEPDIR)/test_ot_color-test-ot-color.Po
+ -rm -f ./$(DEPDIR)/test_ot_tag-hb-ot-tag.Po
+ -rm -f ./$(DEPDIR)/test_size_params-test-size-params.Po
+ -rm -f ./$(DEPDIR)/test_unicode_ranges-test-unicode-ranges.Po
+ -rm -f ./$(DEPDIR)/test_would_substitute-test-would-substitute.Po
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
installcheck-am: installcheck-binPROGRAMS
maintainer-clean: maintainer-clean-recursive
- -rm -rf ./$(DEPDIR)
+ -rm -f ./$(DEPDIR)/dump_indic_data-dump-indic-data.Po
+ -rm -f ./$(DEPDIR)/dump_indic_data-hb-ot-shape-complex-indic-table.Po
+ -rm -f ./$(DEPDIR)/dump_khmer_data-dump-khmer-data.Po
+ -rm -f ./$(DEPDIR)/dump_khmer_data-hb-ot-shape-complex-indic-table.Po
+ -rm -f ./$(DEPDIR)/dump_myanmar_data-dump-myanmar-data.Po
+ -rm -f ./$(DEPDIR)/dump_myanmar_data-hb-ot-shape-complex-indic-table.Po
+ -rm -f ./$(DEPDIR)/dump_use_data-dump-use-data.Po
+ -rm -f ./$(DEPDIR)/dump_use_data-hb-ot-shape-complex-use-table.Po
+ -rm -f ./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-enums.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-structs.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_icu_la-hb-icu.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-aat-layout.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-aat-map.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-blob.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-buffer-serialize.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-buffer.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-common.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-coretext.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-directwrite.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-face.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-fallback-shape.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-font.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ft.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-glib.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-graphite2.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-icu.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-map.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-cff1-table.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-cff2-table.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-color.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-face.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-font.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-layout.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-map.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-math.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-name-language.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-name.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-arabic.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-default.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hangul.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hebrew.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic-table.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-khmer.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-myanmar.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-thai.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use-table.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-vowel-constraints.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-fallback.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-normalize.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-tag.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-var.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-set.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-shape-plan.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-shape.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-shaper.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-static.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ucdn.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-unicode.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-uniscribe.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-warning.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff1-table.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff2-table.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-static.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff-common.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff1.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff2.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-glyf.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-input.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-plan.Plo
+ -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset.Plo
+ -rm -f ./$(DEPDIR)/main-main.Po
+ -rm -f ./$(DEPDIR)/test-test.Po
+ -rm -f ./$(DEPDIR)/test_buffer_serialize-test-buffer-serialize.Po
+ -rm -f ./$(DEPDIR)/test_iter-hb-static.Po
+ -rm -f ./$(DEPDIR)/test_iter-test-iter.Po
+ -rm -f ./$(DEPDIR)/test_name_table-test-name-table.Po
+ -rm -f ./$(DEPDIR)/test_ot_color-test-ot-color.Po
+ -rm -f ./$(DEPDIR)/test_ot_tag-hb-ot-tag.Po
+ -rm -f ./$(DEPDIR)/test_size_params-test-size-params.Po
+ -rm -f ./$(DEPDIR)/test_unicode_ranges-test-unicode-ranges.Po
+ -rm -f ./$(DEPDIR)/test_would_substitute-test-would-substitute.Po
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
.MAKE: $(am__recursive_targets) all check check-am install install-am \
install-strip
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
- check-TESTS check-am clean clean-binPROGRAMS \
- clean-checkPROGRAMS clean-generic clean-libLTLIBRARIES \
- clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
- ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-cmakeDATA install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-girDATA \
- install-html install-html-am install-info install-info-am \
- install-libLTLIBRARIES install-man \
- install-nodist_pkgincludeHEADERS install-pdf install-pdf-am \
- install-pkgconfigDATA install-pkgincludeHEADERS install-ps \
- install-ps-am install-strip install-typelibDATA installcheck \
- installcheck-am installcheck-binPROGRAMS installdirs \
- installdirs-am maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am recheck tags tags-am \
- uninstall uninstall-am uninstall-binPROGRAMS \
- uninstall-cmakeDATA uninstall-girDATA uninstall-libLTLIBRARIES \
- uninstall-nodist_pkgincludeHEADERS uninstall-pkgconfigDATA \
- uninstall-pkgincludeHEADERS uninstall-typelibDATA
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+ am--depfiles check check-TESTS check-am clean \
+ clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
+ clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS \
+ cscopelist-am ctags ctags-am distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-binPROGRAMS install-cmakeDATA install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-girDATA install-html install-html-am \
+ install-info install-info-am install-libLTLIBRARIES \
+ install-man install-nodist_pkgincludeHEADERS install-pdf \
+ install-pdf-am install-pkgconfigDATA install-pkgincludeHEADERS \
+ install-ps install-ps-am install-strip install-typelibDATA \
+ installcheck installcheck-am installcheck-binPROGRAMS \
+ installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ recheck tags tags-am uninstall uninstall-am \
+ uninstall-binPROGRAMS uninstall-cmakeDATA uninstall-girDATA \
+ uninstall-libLTLIBRARIES uninstall-nodist_pkgincludeHEADERS \
+ uninstall-pkgconfigDATA uninstall-pkgincludeHEADERS \
+ uninstall-typelibDATA
.PRECIOUS: Makefile
symprefix=
if test $suffix = dylib; then symprefix=_; fi
- EXPORTED_SYMBOLS="`nm "$so" | grep ' [BCDGINRST] .' | grep -v " $symprefix\\($IGNORED_SYMBOLS\\>\\)" | cut -d' ' -f3 | c++filt`"
+ EXPORTED_SYMBOLS=`nm "$so" | grep ' [BCDGINRST] .' | grep -v " $symprefix\\($IGNORED_SYMBOLS\\>\\)" | cut -d' ' -f3 | c++filt`
prefix=$symprefix`basename "$so" | sed 's/libharfbuzz/hb/; s/-/_/g; s/[.].*//'`
del combined
num = len (data)
-for u in [0x17CD, 0x17CE, 0x17CF, 0x17D0, 0x17D3]:
- if data[u][0] == 'Other':
- data[u][0] = "Vowel_Dependent"
-
# Move the outliers NO-BREAK SPACE and DOTTED CIRCLE out
singles = {}
for u in ALLOWED_SINGLES:
# TODO Characters that are not in Unicode Indic files, but used in USE
data[0][0x034F] = defaults[0]
data[0][0x2060] = defaults[0]
-data[0][0x20F0] = defaults[0]
# TODO https://github.com/roozbehp/unicode-data/issues/9
data[0][0x11C44] = 'Consonant_Placeholder'
data[0][0x11C45] = 'Consonant_Placeholder'
# Resolve Indic_Syllabic_Category
- # TODO: These don't have UISC assigned in Unicode 8.0, but have UIPC
- if U == 0x17DD: UISC = Vowel_Dependent
+ # TODO: These don't have UISC assigned in Unicode 12.0, but have UIPC
if 0x1CE2 <= U <= 0x1CE8: UISC = Cantillation_Mark
# Tibetan:
- # TODO: These don't have UISC assigned in Unicode 11.0, but have UIPC
+ # TODO: These don't have UISC assigned in Unicode 12.0, but have UIPC
if 0x0F18 <= U <= 0x0F19 or 0x0F3E <= U <= 0x0F3F: UISC = Vowel_Dependent
if 0x0F86 <= U <= 0x0F87: UISC = Tone_Mark
# Overrides to allow NFC order matching syllable
if U == 0x1CED: UISC = Tone_Mark
# TODO: https://github.com/harfbuzz/harfbuzz/issues/525
- if U == 0x1A7F: UISC = Consonant_Final; UIPC = Bottom
-
- # TODO: https://github.com/harfbuzz/harfbuzz/pull/609
- if U == 0x20F0: UISC = Cantillation_Mark; UIPC = Top
-
- # TODO: https://github.com/harfbuzz/harfbuzz/pull/626
- if U == 0xA8B4: UISC = Consonant_Medial
+ if U == 0x1A7F: UISC = Consonant_Final
# TODO: https://github.com/harfbuzz/harfbuzz/issues/1105
if U == 0x11134: UISC = Gemination_Mark
# Resolve Indic_Positional_Category
- # TODO: Not in Unicode 8.0 yet, but in spec.
- if U == 0x1B6C: UIPC = Bottom
-
- # TODO: These should die, but have UIPC in Unicode 8.0
+ # TODO: These should die, but have UIPC in Unicode 12.0
if U in [0x953, 0x954]: UIPC = Not_Applicable
- # TODO: In USE's override list but not in Unicode 11.0
+ # TODO: In USE's override list but not in Unicode 12.0
if U == 0x103C: UIPC = Left
- # TODO: These are not in USE's override list that we have, nor are they in Unicode 11.0
+ # TODO: These are not in USE's override list that we have, nor are they in Unicode 12.0
if 0xA926 <= U <= 0xA92A: UIPC = Top
- if U == 0x111CA: UIPC = Bottom
- if U == 0x11300: UIPC = Top
# TODO: https://github.com/harfbuzz/harfbuzz/pull/1037
- if U == 0x11302: UIPC = Top
- if U == 0x1133C: UIPC = Bottom
- if U == 0x1171E: UIPC = Left # Correct?!
- if 0x1CF2 <= U <= 0x1CF3: UIPC = Right
+ # and https://github.com/harfbuzz/harfbuzz/issues/1631
+ if U in [0x11302, 0x11303, 0x114C1]: UIPC = Top
+ if U == 0x1171E: UIPC = Left
if 0x1CF8 <= U <= 0x1CF9: UIPC = Top
- # https://github.com/roozbehp/unicode-data/issues/8
- if U == 0x0A51: UIPC = Bottom
assert (UIPC in [Not_Applicable, Visual_Order_Left] or
USE in use_positions), "%s %s %s %s %s" % (hex(U), UIPC, USE, UISC, UGC)
print ('\t\t\t\t hb_buffer_t *buffer,')
print ('\t\t\t\t hb_font_t *font HB_UNUSED)')
print ('{')
+print (' if (buffer->flags & HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE)')
+print (' return;')
+print ()
print (' /* UGLY UGLY UGLY business of adding dotted-circle in the middle of')
print (' * vowel-sequences that look like another vowel. Data for each script')
print (' * collected from the USE script development spec.')
print (' {')
print (' if (buffer->idx < count)')
print (' buffer->next_glyph ();')
+print (' buffer->swap_buffers ();')
print (' }')
print ('}')
TRACE_SANITIZE (this);
return_trace (likely (c->check_struct (this) &&
version == 0 &&
+ c->check_range (this, anchorData) &&
lookupTable.sanitize (c, this, &(this+anchorData))));
}
} /* Close namespace. */
/* Ugly hand-coded null objects for template Lookup<> :(. */
extern HB_INTERNAL const unsigned char _hb_Null_AAT_Lookup[2];
-template <>
-/*static*/ inline const AAT::Lookup<OT::HBUINT16>& Null<AAT::Lookup<OT::HBUINT16> > ()
-{ return *reinterpret_cast<const AAT::Lookup<OT::HBUINT16> *> (_hb_Null_AAT_Lookup); }
-template <>
-/*static*/ inline const AAT::Lookup<OT::HBUINT32>& Null<AAT::Lookup<OT::HBUINT32> > ()
-{ return *reinterpret_cast<const AAT::Lookup<OT::HBUINT32> *> (_hb_Null_AAT_Lookup); }
-template <>
-/*static*/ inline const AAT::Lookup<OT::Offset<OT::HBUINT16, false> >& Null<AAT::Lookup<OT::Offset<OT::HBUINT16, false> > > ()
-{ return *reinterpret_cast<const AAT::Lookup<OT::Offset<OT::HBUINT16, false> > *> (_hb_Null_AAT_Lookup); }
+template <typename T>
+struct Null<AAT::Lookup<T> > {
+ static AAT::Lookup<T> const & get_null ()
+ { return *reinterpret_cast<const AAT::Lookup<T> *> (_hb_Null_AAT_Lookup); }
+};
namespace AAT {
enum { DELETED_GLYPH = 0xFFFF };
#define hb_atomic_int_impl_add(AI, V) (reinterpret_cast<std::atomic<int> *> (AI)->fetch_add ((V), std::memory_order_acq_rel))
#define hb_atomic_int_impl_set_relaxed(AI, V) (reinterpret_cast<std::atomic<int> *> (AI)->store ((V), std::memory_order_relaxed))
#define hb_atomic_int_impl_set(AI, V) (reinterpret_cast<std::atomic<int> *> (AI)->store ((V), std::memory_order_release))
-#define hb_atomic_int_impl_get_relaxed(AI) (reinterpret_cast<std::atomic<int> *> (AI)->load (std::memory_order_relaxed))
-#define hb_atomic_int_impl_get(AI) (reinterpret_cast<std::atomic<int> *> (AI)->load (std::memory_order_acquire))
+#define hb_atomic_int_impl_get_relaxed(AI) (reinterpret_cast<std::atomic<int> const *> (AI)->load (std::memory_order_relaxed))
+#define hb_atomic_int_impl_get(AI) (reinterpret_cast<std::atomic<int> const *> (AI)->load (std::memory_order_acquire))
#define hb_atomic_ptr_impl_set_relaxed(P, V) (reinterpret_cast<std::atomic<void*> *> (P)->store ((V), std::memory_order_relaxed))
-#define hb_atomic_ptr_impl_get_relaxed(P) (reinterpret_cast<std::atomic<void*> *> (P)->load (std::memory_order_relaxed))
+#define hb_atomic_ptr_impl_get_relaxed(P) (reinterpret_cast<std::atomic<void*> const *> (P)->load (std::memory_order_relaxed))
#define hb_atomic_ptr_impl_get(P) (reinterpret_cast<std::atomic<void*> *> (P)->load (std::memory_order_acquire))
static inline bool
_hb_atomic_ptr_impl_cmplexch (const void **P, const void *O_, const void *N)
#endif
-#elif !defined(HB_NO_MT) && defined(_AIX) && defined(__IBMCPP__)
+#elif !defined(HB_NO_MT) && defined(_AIX) && (defined(__IBMCPP__) || defined(__ibmxl__))
#include <builtins.h>
* space glyph and zeroing the advance width.)
* @HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES takes
* precedence over this flag. Since: 1.8.0
+ * @HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE:
+ * flag indicating that a dotted circle should
+ * not be inserted in the rendering of incorrect
+ * character sequences (such at <0905 093E>). Since: 2.4
*
* Since: 0.9.20
*/
HB_BUFFER_FLAG_BOT = 0x00000001u, /* Beginning-of-text */
HB_BUFFER_FLAG_EOT = 0x00000002u, /* End-of-text */
HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES = 0x00000004u,
- HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES = 0x00000008u
+ HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES = 0x00000008u,
+ HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE = 0x00000010u
} hb_buffer_flags_t;
HB_EXTERN void
/* Intentionally use strtol instead of strtoul, such that
* -1 turns into "big number"... */
errno = 0;
- v = strtol (p, &pend, 0);
+ v = strtol (p, &pend, 10);
if (errno || p == pend)
return false;
/* Intentionally use strtol instead of strtoul, such that
* -1 turns into "big number"... */
errno = 0;
- v = strtol (p, &pend, 0);
+ v = strtol (p, &pend, 10);
if (errno || p == pend)
return false;
(*pp)++;
/* CSS allows on/off as aliases 1/0. */
- if (*pp - p == 2 && 0 == strncmp (p, "on", 2))
+ if (*pp - p == 2
+ && TOLOWER (p[0]) == 'o'
+ && TOLOWER (p[1]) == 'n')
*pv = 1;
- else if (*pp - p == 3 && 0 == strncmp (p, "off", 3))
+ else if (*pp - p == 3
+ && TOLOWER (p[0]) == 'o'
+ && TOLOWER (p[1]) == 'f'
+ && TOLOWER (p[2]) == 'f')
*pv = 0;
else
return false;
*
* Parses a string into a #hb_feature_t.
*
- * TODO: document the syntax here.
+ * The format for specifying feature strings follows. All valid CSS
+ * font-feature-settings values other than 'normal' and the global values are
+ * also accepted, though not documented below. CSS string escapes are not
+ * supported.
+ *
+ * The range indices refer to the positions between Unicode characters. The
+ * position before the first character is always 0.
+ *
+ * The format is Python-esque. Here is how it all works:
+ *
+ * <informaltable pgwide='1' align='left' frame='none'>
+ * <tgroup cols='5'>
+ * <thead>
+ * <row><entry>Syntax</entry> <entry>Value</entry> <entry>Start</entry> <entry>End</entry></row>
+ * </thead>
+ * <tbody>
+ * <row><entry>Setting value:</entry></row>
+ * <row><entry>kern</entry> <entry>1</entry> <entry>0</entry> <entry>∞</entry> <entry>Turn feature on</entry></row>
+ * <row><entry>+kern</entry> <entry>1</entry> <entry>0</entry> <entry>∞</entry> <entry>Turn feature on</entry></row>
+ * <row><entry>-kern</entry> <entry>0</entry> <entry>0</entry> <entry>∞</entry> <entry>Turn feature off</entry></row>
+ * <row><entry>kern=0</entry> <entry>0</entry> <entry>0</entry> <entry>∞</entry> <entry>Turn feature off</entry></row>
+ * <row><entry>kern=1</entry> <entry>1</entry> <entry>0</entry> <entry>∞</entry> <entry>Turn feature on</entry></row>
+ * <row><entry>aalt=2</entry> <entry>2</entry> <entry>0</entry> <entry>∞</entry> <entry>Choose 2nd alternate</entry></row>
+ * <row><entry>Setting index:</entry></row>
+ * <row><entry>kern[]</entry> <entry>1</entry> <entry>0</entry> <entry>∞</entry> <entry>Turn feature on</entry></row>
+ * <row><entry>kern[:]</entry> <entry>1</entry> <entry>0</entry> <entry>∞</entry> <entry>Turn feature on</entry></row>
+ * <row><entry>kern[5:]</entry> <entry>1</entry> <entry>5</entry> <entry>∞</entry> <entry>Turn feature on, partial</entry></row>
+ * <row><entry>kern[:5]</entry> <entry>1</entry> <entry>0</entry> <entry>5</entry> <entry>Turn feature on, partial</entry></row>
+ * <row><entry>kern[3:5]</entry> <entry>1</entry> <entry>3</entry> <entry>5</entry> <entry>Turn feature on, range</entry></row>
+ * <row><entry>kern[3]</entry> <entry>1</entry> <entry>3</entry> <entry>3+1</entry> <entry>Turn feature on, single char</entry></row>
+ * <row><entry>Mixing it all:</entry></row>
+ * <row><entry>aalt[3:5]=2</entry> <entry>2</entry> <entry>3</entry> <entry>5</entry> <entry>Turn 2nd alternate on for range</entry></row>
+ * </tbody>
+ * </tgroup>
+ * </informaltable>
*
* Return value:
* %true if @str is successfully parsed, %false otherwise.
/*11.0*/HB_SCRIPT_OLD_SOGDIAN = HB_TAG ('S','o','g','o'),
/*11.0*/HB_SCRIPT_SOGDIAN = HB_TAG ('S','o','g','d'),
+ /*
+ * Since REPLACEME
+ */
+ /*12.0*/HB_SCRIPT_ELYMAIC = HB_TAG ('E','l','y','m'),
+ /*12.0*/HB_SCRIPT_NANDINAGARI = HB_TAG ('N','a','n','d'),
+ /*12.0*/HB_SCRIPT_NYIAKENG_PUACHUE_HMONG = HB_TAG ('H','m','n','p'),
+ /*12.0*/HB_SCRIPT_WANCHO = HB_TAG ('W','c','h','o'),
+
/* No script set. */
HB_SCRIPT_INVALID = HB_TAG_NONE,
if (CFStringHasPrefix (cg_postscript_name, CFSTR (".SFNSText")) ||
CFStringHasPrefix (cg_postscript_name, CFSTR (".SFNSDisplay")))
{
-#if MAC_OS_X_VERSION_MIN_REQUIRED < 1080
+#if !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && MAC_OS_X_VERSION_MIN_REQUIRED < 1080
# define kCTFontUIFontSystem kCTFontSystemFontType
# define kCTFontUIFontEmphasizedSystem kCTFontEmphasizedSystemFontType
#endif
}
CFURLRef original_url = nullptr;
-#if TARGET_OS_OSX && MAC_OS_X_VERSION_MIN_REQUIRED < 1060
+#if !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && MAC_OS_X_VERSION_MIN_REQUIRED < 1060
ATSFontRef atsFont;
FSRef fsref;
OSStatus status;
* process in Blink. This can be detected by the new file URL location
* that the newly found font points to. */
CFURLRef new_url = nullptr;
-#if TARGET_OS_OSX && MAC_OS_X_VERSION_MIN_REQUIRED < 1060
+#if !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && MAC_OS_X_VERSION_MIN_REQUIRED < 1060
atsFont = CTFontGetPlatformFont (new_ct_font, NULL);
status = ATSFontGetFileReference (atsFont, &fsref);
if (status == noErr)
/* What's the iOS equivalent of this check?
* The symbols was introduced in iOS 7.0.
* At any rate, our fallback is safe and works fine. */
-#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
+#if !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && MAC_OS_X_VERSION_MIN_REQUIRED < 1090
# define kCTLanguageAttributeName CFSTR ("NSLanguage")
#endif
CFStringRef lang = CFStringCreateWithCStringNoCopy (kCFAllocatorDefault,
int level = HB_DIRECTION_IS_FORWARD (buffer->props.direction) ? 0 : 1;
CFNumberRef level_number = CFNumberCreate (kCFAllocatorDefault, kCFNumberIntType, &level);
-#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
+#if !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && MAC_OS_X_VERSION_MIN_REQUIRED < 1060
extern const CFStringRef kCTTypesetterOptionForcedEmbeddingLevel;
#endif
CFDictionaryRef options = CFDictionaryCreate (kCFAllocatorDefault,
/*
- * Copyright © 2015-2018 Ebrahim Byagowi
+ * Copyright © 2015-2019 Ebrahim Byagowi
*
* This is part of HarfBuzz, a text shaping library.
*
* alignment needed after the WORD array. sizeof (WORD) == 2. */
unsigned int glyphs_size = (scratch_size * sizeof (int) - 2)
/ (sizeof (WORD) +
- sizeof (DWRITE_SHAPING_GLYPH_PROPERTIES) +
- sizeof (int) +
- sizeof (DWRITE_GLYPH_OFFSET) +
- sizeof (uint32_t));
+ sizeof (DWRITE_SHAPING_GLYPH_PROPERTIES) +
+ sizeof (int) +
+ sizeof (DWRITE_GLYPH_OFFSET) +
+ sizeof (uint32_t));
ALLOCATE_ARRAY (uint32_t, vis_clusters, glyphs_size);
#undef ALLOCATE_ARRAY
return res;
}
+
+struct _hb_directwrite_font_table_context {
+ IDWriteFontFace *face;
+ void *table_context;
+};
+
+static void
+_hb_directwrite_table_data_release (void *data)
+{
+ _hb_directwrite_font_table_context *context = (_hb_directwrite_font_table_context *) data;
+ context->face->ReleaseFontTable (context->table_context);
+ delete context;
+}
+
+static hb_blob_t *
+reference_table (hb_face_t *face HB_UNUSED, hb_tag_t tag, void *user_data)
+{
+ IDWriteFontFace *dw_face = ((IDWriteFontFace *) user_data);
+ const void *data;
+ uint32_t length;
+ void *table_context;
+ BOOL exists;
+ if (!dw_face || FAILED (dw_face->TryGetFontTable (hb_uint32_swap (tag), &data,
+ &length, &table_context, &exists)))
+ return nullptr;
+
+ if (!data || !exists || !length)
+ {
+ dw_face->ReleaseFontTable (table_context);
+ return nullptr;
+ }
+
+ _hb_directwrite_font_table_context *context = new _hb_directwrite_font_table_context;
+ context->face = dw_face;
+ context->table_context = table_context;
+
+ return hb_blob_create ((const char *) data, length, HB_MEMORY_MODE_READONLY,
+ context, _hb_directwrite_table_data_release);
+}
+
+static void
+_hb_directwrite_font_release (void *data)
+{
+ if (data)
+ ((IDWriteFontFace *) data)->Release ();
+}
+
+/**
+ * hb_directwrite_face_create:
+ * @font_face:
+ * Since: REPLACEME
+ **/
+hb_face_t *
+hb_directwrite_face_create (IDWriteFontFace *font_face)
+{
+ if (font_face)
+ font_face->AddRef ();
+ return hb_face_create_for_tables (reference_table, font_face,
+ _hb_directwrite_font_release);
+}
/*
- * Copyright © 2015 Ebrahim Byagowi
+ * Copyright © 2015-2019 Ebrahim Byagowi
*
* This is part of HarfBuzz, a text shaping library.
*
const hb_feature_t *features,
unsigned int num_features, float width);
+HB_EXTERN hb_face_t *
+hb_directwrite_face_create (IDWriteFontFace *font_face);
+
HB_END_DECLS
#endif /* HB_DIRECTWRITE_H */
}
template <typename T> struct hb_is_signed;
-template <> struct hb_is_signed<signed char> { enum { value = true }; };
-template <> struct hb_is_signed<signed short> { enum { value = true }; };
-template <> struct hb_is_signed<signed int> { enum { value = true }; };
-template <> struct hb_is_signed<signed long> { enum { value = true }; };
-template <> struct hb_is_signed<unsigned char> { enum { value = false }; };
-template <> struct hb_is_signed<unsigned short> { enum { value = false }; };
-template <> struct hb_is_signed<unsigned int> { enum { value = false }; };
-template <> struct hb_is_signed<unsigned long> { enum { value = false }; };
-/* We need to define hb_is_signed for the typedefs we use on pre-Visual
- * Studio 2010 for the int8_t type, since __int8/__int64 is not considered
- * the same as char/long. The previous lines will suffice for the other
- * types, though. Note that somehow, unsigned __int8 is considered same
- * as unsigned char.
- * https://github.com/harfbuzz/harfbuzz/pull/1499
- */
-#if defined(_MSC_VER) && (_MSC_VER < 1600)
-template <> struct hb_is_signed<__int8> { enum { value = true }; };
-#endif
+/* https://github.com/harfbuzz/harfbuzz/issues/1535 */
+template <> struct hb_is_signed<int8_t> { enum { value = true }; };
+template <> struct hb_is_signed<int16_t> { enum { value = true }; };
+template <> struct hb_is_signed<int32_t> { enum { value = true }; };
+template <> struct hb_is_signed<int64_t> { enum { value = true }; };
+template <> struct hb_is_signed<uint8_t> { enum { value = false }; };
+template <> struct hb_is_signed<uint16_t> { enum { value = false }; };
+template <> struct hb_is_signed<uint32_t> { enum { value = false }; };
+template <> struct hb_is_signed<uint64_t> { enum { value = false }; };
template <typename T> static inline bool
hb_in_range (T u, T lo, T hi)
{
- /* The sizeof() is here to force template instantiation.
- * I'm sure there are better ways to do this but can't think of
- * one right now. Declaring a variable won't work as HB_UNUSED
- * is unusable on some platforms and unused types are less likely
- * to generate a warning than unused variables. */
static_assert (!hb_is_signed<T>::value, "");
/* The casts below are important as if T is smaller than int,
unsigned int base_glyph;
unsigned int num_glyphs;
unsigned int cluster;
- float advance;
+ unsigned int advance;
};
hb_bool_t
gr_segment *seg = nullptr;
const gr_slot *is;
unsigned int ci = 0, ic = 0;
- float curradvx = 0., curradvy = 0.;
+ unsigned int curradvx = 0, curradvy = 0;
unsigned int scratch_size;
hb_buffer_t::scratch_buffer_t *scratch = buffer->get_scratch_buffer (&scratch_size);
hb_codepoint_t *pg = gids;
clusters[0].cluster = buffer->info[0].cluster;
- float curradv = 0.;
+ unsigned int upem = hb_face_get_upem (face);
+ float xscale = (float) font->x_scale / upem;
+ float yscale = (float) font->y_scale / upem;
+ yscale *= yscale / xscale;
+ unsigned int curradv = 0;
if (HB_DIRECTION_IS_BACKWARD(buffer->props.direction))
{
- curradv = gr_slot_origin_X(gr_seg_first_slot(seg));
- clusters[0].advance = gr_seg_advance_X(seg) - curradv;
+ curradv = gr_slot_origin_X(gr_seg_first_slot(seg)) * xscale;
+ clusters[0].advance = gr_seg_advance_X(seg) * xscale - curradv;
}
else
clusters[0].advance = 0;
c->base_glyph = ic;
c->num_glyphs = 0;
if (HB_DIRECTION_IS_BACKWARD(buffer->props.direction))
- c->advance = curradv - gr_slot_origin_X(is);
+ {
+ c->advance = curradv - gr_slot_origin_X(is) * xscale;
+ curradv -= c->advance;
+ }
else
{
c->advance = 0;
- clusters[ci].advance += gr_slot_origin_X(is) - curradv;
+ clusters[ci].advance += gr_slot_origin_X(is) * xscale - curradv;
+ curradv += clusters[ci].advance;
}
ci++;
- curradv = gr_slot_origin_X(is);
}
clusters[ci].num_glyphs++;
if (HB_DIRECTION_IS_BACKWARD(buffer->props.direction))
clusters[ci].advance += curradv;
else
- clusters[ci].advance += gr_seg_advance_X(seg) - curradv;
+ clusters[ci].advance += gr_seg_advance_X(seg) * xscale - curradv;
ci++;
for (unsigned int i = 0; i < ci; ++i)
}
buffer->len = glyph_count;
- unsigned int upem = hb_face_get_upem (face);
- float xscale = (float) font->x_scale / upem;
- float yscale = (float) font->y_scale / upem;
- yscale *= yscale / xscale;
/* Positioning. */
unsigned int currclus = (unsigned int) -1;
const hb_glyph_info_t *info = buffer->info;
pPos->x_offset = gr_slot_origin_X (is) * xscale - curradvx;
pPos->y_offset = gr_slot_origin_Y (is) * yscale - curradvy;
if (info->cluster != currclus) {
- pPos->x_advance = info->var1.i32 * xscale;
+ pPos->x_advance = info->var1.i32;
curradvx += pPos->x_advance;
currclus = info->cluster;
} else
{
if (info->cluster != currclus)
{
- pPos->x_advance = info->var1.i32 * xscale;
+ pPos->x_advance = info->var1.i32;
curradvx -= pPos->x_advance;
currclus = info->cluster;
} else
pPos->y_advance = gr_slot_advance_Y (is, grface, nullptr) * yscale;
curradvy -= pPos->y_advance;
- pPos->x_offset = (gr_slot_origin_X (is) - info->var1.i32) * xscale - curradvx + pPos->x_advance;
+ pPos->x_offset = gr_slot_origin_X (is) * xscale - info->var1.i32 - curradvx + pPos->x_advance;
pPos->y_offset = gr_slot_origin_Y (is) * yscale - curradvy;
}
hb_buffer_reverse_clusters (buffer);
}
bool check_range (const void *base,
- unsigned int len) const
+ unsigned int len) const
{
const char *p = (const char *) base;
- bool ok = this->start <= p &&
- p <= this->end &&
- (unsigned int) (this->end - p) >= len &&
- this->max_ops-- > 0;
+ bool ok = !len ||
+ (this->start <= p &&
+ p <= this->end &&
+ (unsigned int) (this->end - p) >= len &&
+ this->max_ops-- > 0);
DEBUG_MSG_LEVEL (SANITIZE, p, this->debug_depth+1, 0,
- "check_range [%p..%p] (%d bytes) in [%p..%p] -> %s",
- p, p + len, len,
- this->start, this->end,
- ok ? "OK" : "OUT-OF-RANGE");
+ "check_range [%p..%p]"
+ " (%d bytes) in [%p..%p] -> %s",
+ p, p + len, len,
+ this->start, this->end,
+ ok ? "OK" : "OUT-OF-RANGE");
return likely (ok);
}
template <typename T>
bool check_range (const T *base,
- unsigned int a,
- unsigned int b) const
+ unsigned int a,
+ unsigned int b) const
{
return !hb_unsigned_mul_overflows (a, b) &&
this->check_range (base, a * b);
template <typename T>
bool check_range (const T *base,
- unsigned int a,
- unsigned int b,
- unsigned int c) const
+ unsigned int a,
+ unsigned int b,
+ unsigned int c) const
{
return !hb_unsigned_mul_overflows (a, b) &&
this->check_range (base, a * b, c);
void clear ()
{
- memset (items, 0xFF, ((size_t) mask + 1) * sizeof (item_t));
+ if (items) memset (items, 0xFF, ((size_t) mask + 1) * sizeof (item_t));
population = occupancy = 0;
}
/* Generic nul-content Null objects. */
template <typename Type>
-static inline Type const & Null () {
- static_assert (hb_null_size (Type) <= HB_NULL_POOL_SIZE, "Increase HB_NULL_POOL_SIZE.");
- return *reinterpret_cast<Type const *> (_hb_NullPool);
-}
+struct Null {
+ static Type const & get_null ()
+ {
+ static_assert (hb_null_size (Type) <= HB_NULL_POOL_SIZE, "Increase HB_NULL_POOL_SIZE.");
+ return *reinterpret_cast<Type const *> (_hb_NullPool);
+ }
+};
template <typename QType>
struct NullHelper
{
typedef typename hb_remove_const (typename hb_remove_reference (QType)) Type;
- static const Type & get_null () { return Null<Type> (); }
+ static const Type & get_null () { return Null<Type>::get_null (); }
};
#define Null(Type) NullHelper<Type>::get_null ()
} /* Close namespace. */ \
extern HB_INTERNAL const unsigned char _hb_Null_##Namespace##_##Type[Namespace::Type::null_size]; \
template <> \
- /*static*/ inline const Namespace::Type& Null<Namespace::Type> () { \
- return *reinterpret_cast<const Namespace::Type *> (_hb_Null_##Namespace##_##Type); \
- } \
+ struct Null<Namespace::Type> { \
+ static Namespace::Type const & get_null () { \
+ return *reinterpret_cast<const Namespace::Type *> (_hb_Null_##Namespace##_##Type); \
+ } \
+ }; \
namespace Namespace { \
static_assert (true, "Just so we take semicolon after.")
#define DEFINE_NULL_NAMESPACE_BYTES(Namespace, Type) \
#define DECLARE_NULL_INSTANCE(Type) \
extern HB_INTERNAL const Type _hb_Null_##Type; \
template <> \
- /*static*/ inline const Type& Null<Type> () { \
- return _hb_Null_##Type; \
- } \
-static_assert (true, "Just so we take semicolon after.")
+ struct Null<Type> { \
+ static Type const & get_null () { \
+ return _hb_Null_##Type; \
+ } \
+ }; \
+ static_assert (true, "Just so we take semicolon after.")
#define DEFINE_NULL_INSTANCE(Type) \
const Type _hb_Null_##Type
for (unsigned i = 0; i < fontDicts.length; i++)
if (fdmap.includes (i))
{
+ if (unlikely (fid >= fdCount)) return_trace (false);
CFFIndexOf<COUNT, FontDict>::set_offset_at (fid++, offset);
offset += FontDict::calculate_serialized_size (fontDicts[i], opszr);
}
bool sanitize (hb_sanitize_context_t *c) const
{
TRACE_SANITIZE (this);
- return_trace (c->check_struct (this) && codes[nCodes - 1].sanitize (c));
+ return_trace (codes.sanitize (c));
}
hb_codepoint_t get_code (hb_codepoint_t glyph) const
{
assert (glyph > 0);
glyph--;
- if (glyph < nCodes)
+ if (glyph < nCodes ())
{
return (hb_codepoint_t)codes[glyph];
}
return CFF_UNDEF_CODE;
}
- unsigned int get_size () const
- { return HBUINT8::static_size * (nCodes + 1); }
+ HBUINT8 &nCodes () { return codes.len; }
+ HBUINT8 nCodes () const { return codes.len; }
- HBUINT8 nCodes;
- HBUINT8 codes[VAR];
+ ArrayOf<HBUINT8, HBUINT8> codes;
- DEFINE_SIZE_ARRAY(1, codes);
+ DEFINE_SIZE_ARRAY_SIZED (1, codes);
};
struct Encoding1_Range {
};
struct Encoding1 {
- unsigned int get_size () const
- { return HBUINT8::static_size + Encoding1_Range::static_size * nRanges; }
-
bool sanitize (hb_sanitize_context_t *c) const
{
TRACE_SANITIZE (this);
- return_trace (c->check_struct (this) && ((nRanges == 0) || (ranges[nRanges - 1]).sanitize (c)));
+ return_trace (ranges.sanitize (c));
}
hb_codepoint_t get_code (hb_codepoint_t glyph) const
{
assert (glyph > 0);
glyph--;
- for (unsigned int i = 0; i < nRanges; i++)
+ for (unsigned int i = 0; i < nRanges (); i++)
{
if (glyph <= ranges[i].nLeft)
{
return CFF_UNDEF_CODE;
}
- HBUINT8 nRanges;
- Encoding1_Range ranges[VAR];
+ HBUINT8 &nRanges () { return ranges.len; }
+ HBUINT8 nRanges () const { return ranges.len; }
- DEFINE_SIZE_ARRAY (1, ranges);
+ ArrayOf<Encoding1_Range, HBUINT8> ranges;
+
+ DEFINE_SIZE_ARRAY_SIZED (1, ranges);
};
struct SuppEncoding {
bool sanitize (hb_sanitize_context_t *c) const
{
TRACE_SANITIZE (this);
- return_trace (c->check_struct (this) && ((nSups == 0) || (supps[nSups - 1]).sanitize (c)));
+ return_trace (supps.sanitize (c));
}
void get_codes (hb_codepoint_t sid, hb_vector_t<hb_codepoint_t> &codes) const
{
- for (unsigned int i = 0; i < nSups; i++)
+ for (unsigned int i = 0; i < nSups (); i++)
if (sid == supps[i].glyph)
codes.push (supps[i].code);
}
- unsigned int get_size () const
- { return HBUINT8::static_size + SuppEncoding::static_size * nSups; }
+ HBUINT8 &nSups () { return supps.len; }
+ HBUINT8 nSups () const { return supps.len; }
- HBUINT8 nSups;
- SuppEncoding supps[VAR];
+ ArrayOf<SuppEncoding, HBUINT8> supps;
- DEFINE_SIZE_ARRAY (1, supps);
+ DEFINE_SIZE_ARRAY_SIZED (1, supps);
};
struct Encoding {
{
Encoding0 *fmt0 = c->allocate_size<Encoding0> (Encoding0::min_size + HBUINT8::static_size * enc_count);
if (unlikely (fmt0 == nullptr)) return_trace (false);
- fmt0->nCodes.set (enc_count);
+ fmt0->nCodes ().set (enc_count);
unsigned int glyph = 0;
for (unsigned int i = 0; i < code_ranges.length; i++)
{
{
Encoding1 *fmt1 = c->allocate_size<Encoding1> (Encoding1::min_size + Encoding1_Range::static_size * code_ranges.length);
if (unlikely (fmt1 == nullptr)) return_trace (false);
- fmt1->nRanges.set (code_ranges.length);
+ fmt1->nRanges ().set (code_ranges.length);
for (unsigned int i = 0; i < code_ranges.length; i++)
{
if (unlikely (!((code_ranges[i].code <= 0xFF) && (code_ranges[i].glyph <= 0xFF))))
{
CFF1SuppEncData *suppData = c->allocate_size<CFF1SuppEncData> (CFF1SuppEncData::min_size + SuppEncoding::static_size * supp_codes.length);
if (unlikely (suppData == nullptr)) return_trace (false);
- suppData->nSups.set (supp_codes.length);
+ suppData->nSups ().set (supp_codes.length);
for (unsigned int i = 0; i < supp_codes.length; i++)
{
suppData->supps[i].code.set (supp_codes[i].code);
const CFF1SuppEncData &suppEncData () const
{
if ((format & 0x7F) == 0)
- return StructAfter<CFF1SuppEncData> (u.format0.codes[u.format0.nCodes-1]);
+ return StructAfter<CFF1SuppEncData> (u.format0.codes[u.format0.nCodes ()-1]);
else
- return StructAfter<CFF1SuppEncData> (u.format1.ranges[u.format1.nRanges-1]);
+ return StructAfter<CFF1SuppEncData> (u.format1.ranges[u.format1.nRanges ()-1]);
}
public:
* @short_description: OpenType font implementation
* @include: hb-ot.h
*
- * Functions for using OpenType fonts with hb_shape(). Not that fonts returned
+ * Functions for using OpenType fonts with hb_shape(). Note that fonts returned
* by hb_font_create() default to using these functions, so most clients would
* never need to call these functions directly.
**/
}
unsigned int len () const
- { return this->subset_plan->glyphs.length; }
+ { return this->subset_plan->num_output_glyphs (); }
- const HBUINT8* operator [] (unsigned int i) const
+ const HBUINT8* operator [] (unsigned int new_gid) const
{
- if (unlikely (i >= len ())) return nullptr;
- hb_codepoint_t gid = this->subset_plan->glyphs [i];
+ if (unlikely (new_gid >= len ())) return nullptr;
- if (gid >= sizeDeviceRecord - DeviceRecord::min_size)
+ hb_codepoint_t old_gid;
+ if (!this->subset_plan->old_gid_for_new_gid (new_gid, &old_gid))
+ return &Null(HBUINT8);
+
+ if (old_gid >= sizeDeviceRecord - DeviceRecord::min_size)
return nullptr;
- return &(this->source_device_record->widthsZ[gid]);
+ return &(this->source_device_record->widthsZ[old_gid]);
}
};
this->version.set (source_hdmx->version);
this->numRecords.set (source_hdmx->numRecords);
- this->sizeDeviceRecord.set (DeviceRecord::get_size (plan->glyphs.length));
+ this->sizeDeviceRecord.set (DeviceRecord::get_size (plan->num_output_glyphs ()));
for (unsigned int i = 0; i < source_hdmx->numRecords; i++)
{
static size_t get_subsetted_size (const hdmx *source_hdmx, hb_subset_plan_t *plan)
{
- return min_size + source_hdmx->numRecords * DeviceRecord::get_size (plan->glyphs.length);
+ return min_size + source_hdmx->numRecords * DeviceRecord::get_size (plan->num_output_glyphs ());
}
bool subset (hb_subset_plan_t *plan) const
bool subset_update_header (hb_subset_plan_t *plan,
- unsigned int num_hmetrics) const
+ unsigned int num_hmetrics) const
{
hb_blob_t *src_blob = hb_sanitize_context_t ().reference_table<H> (plan->source, H::tableTag);
hb_blob_t *dest_blob = hb_blob_copy_writable_or_fail (src_blob);
/* All the trailing glyphs with the same advance can use one LongMetric
* and just keep LSB */
- hb_vector_t<hb_codepoint_t> &gids = plan->glyphs;
- unsigned int num_advances = gids.length;
- unsigned int last_advance = _mtx.get_advance (gids[num_advances - 1]);
- while (num_advances > 1 &&
- last_advance == _mtx.get_advance (gids[num_advances - 2]))
- {
- num_advances--;
- }
+ unsigned int num_output_glyphs = plan->num_output_glyphs ();
+ unsigned int num_advances = _mtx.num_advances_for_subset (plan);
/* alloc the new table */
size_t dest_sz = num_advances * 4
- + (gids.length - num_advances) * 2;
+ + (num_output_glyphs - num_advances) * 2;
void *dest = (void *) malloc (dest_sz);
if (unlikely (!dest))
{
return false;
}
DEBUG_MSG(SUBSET, nullptr, "%c%c%c%c in src has %d advances, %d lsbs", HB_UNTAG(T::tableTag), _mtx.num_advances, _mtx.num_metrics - _mtx.num_advances);
- DEBUG_MSG(SUBSET, nullptr, "%c%c%c%c in dest has %d advances, %d lsbs, %u bytes", HB_UNTAG(T::tableTag), num_advances, gids.length - num_advances, (unsigned int) dest_sz);
+ DEBUG_MSG(SUBSET, nullptr, "%c%c%c%c in dest has %d advances, %d lsbs, %u bytes",
+ HB_UNTAG(T::tableTag), num_advances, num_output_glyphs - num_advances, (unsigned int) dest_sz);
- const char *source_table = hb_blob_get_data (_mtx.table.get_blob (), nullptr);
// Copy everything over
- LongMetric * old_metrics = (LongMetric *) source_table;
- FWORD *lsbs = (FWORD *) (old_metrics + _mtx.num_advances);
char * dest_pos = (char *) dest;
bool failed = false;
- for (unsigned int i = 0; i < gids.length; i++)
+ for (unsigned int i = 0; i < num_output_glyphs; i++)
{
- /* the last metric or the one for gids[i] */
- LongMetric *src_metric = old_metrics + MIN ((hb_codepoint_t) _mtx.num_advances - 1, gids[i]);
- if (gids[i] < _mtx.num_advances)
+ unsigned int side_bearing = 0;
+ unsigned int advance = 0;
+ hb_codepoint_t old_gid;
+ if (plan->old_gid_for_new_gid (i, &old_gid))
+ {
+ // Glyph is not an empty glyph so copy advance and side bearing
+ // from the input font.
+ side_bearing = _mtx.get_side_bearing (old_gid);
+ advance = _mtx.get_advance (old_gid);
+ }
+
+ bool has_advance = i < num_advances;
+ if (has_advance)
{
- /* src is a LongMetric */
- if (i < num_advances)
- {
- /* dest is a LongMetric, copy it */
- *((LongMetric *) dest_pos) = *src_metric;
- }
- else
- {
- /* dest just sb */
- *((FWORD *) dest_pos) = src_metric->sb;
- }
+ ((LongMetric *) dest_pos)->advance.set (advance);
+ ((LongMetric *) dest_pos)->sb.set (side_bearing);
}
else
{
- if (gids[i] >= _mtx.num_metrics)
- {
- DEBUG_MSG(SUBSET, nullptr, "gid %d is >= number of source metrics %d",
- gids[i], _mtx.num_metrics);
- failed = true;
- break;
- }
- FWORD src_sb = *(lsbs + gids[i] - _mtx.num_advances);
- if (i < num_advances)
- {
- /* dest needs a full LongMetric */
- LongMetric *metric = (LongMetric *)dest_pos;
- metric->advance = src_metric->advance;
- metric->sb = src_sb;
- }
- else
- {
- /* dest just needs an sb */
- *((FWORD *) dest_pos) = src_sb;
- }
+ ((FWORD *) dest_pos)->set (side_bearing);
}
- dest_pos += (i < num_advances ? 4 : 2);
+ dest_pos += (has_advance ? 4 : 2);
}
_mtx.fini ();
friend struct hmtxvmtx;
void init (hb_face_t *face,
- unsigned int default_advance_ = 0)
+ unsigned int default_advance_ = 0)
{
default_advance = default_advance_ ? default_advance_ : hb_face_get_upem (face);
return advance;
}
+ unsigned int num_advances_for_subset (const hb_subset_plan_t *plan) const
+ {
+ unsigned int num_advances = plan->num_output_glyphs ();
+ unsigned int last_advance = _advance_for_new_gid (plan,
+ num_advances - 1);
+ while (num_advances > 1 &&
+ last_advance == _advance_for_new_gid (plan,
+ num_advances - 2))
+ {
+ num_advances--;
+ }
+
+ return num_advances;
+ }
+
+ private:
+ unsigned int _advance_for_new_gid (const hb_subset_plan_t *plan,
+ hb_codepoint_t new_gid) const
+ {
+ hb_codepoint_t old_gid;
+ if (!plan->old_gid_for_new_gid (new_gid, &old_gid))
+ return 0;
+
+ return get_advance (old_gid);
+ }
+
public:
bool has_font_extents;
int ascender;
bool subset (hb_subset_context_t *c) const
{
TRACE_SUBSET (this);
- const hb_set_t &glyphset = *c->plan->glyphset;
+ const hb_set_t &glyphset = *c->plan->glyphset ();
const hb_map_t &glyph_map = *c->plan->glyph_map;
hb_vector_t<GlyphID> glyphs;
hb_vector_t<HBUINT16> klasses;
bool subset (hb_subset_context_t *c) const
{
TRACE_SUBSET (this);
- const hb_set_t &glyphset = *c->plan->glyphset;
+ const hb_set_t &glyphset = *c->plan->glyphset ();
const hb_map_t &glyph_map = *c->plan->glyph_map;
hb_vector_t<GlyphID> glyphs;
hb_vector_t<HBUINT16> klasses;
bool subset (hb_subset_context_t *c) const
{
TRACE_SUBSET (this);
- const hb_set_t &glyphset = *c->plan->glyphset;
+ const hb_set_t &glyphset = *c->plan->glyphset ();
const hb_map_t &glyph_map = *c->plan->glyph_map;
hb_vector_t<GlyphID> from;
hb_vector_t<GlyphID> to;
bool subset (hb_subset_context_t *c) const
{
TRACE_SUBSET (this);
- const hb_set_t &glyphset = *c->plan->glyphset;
+ const hb_set_t &glyphset = *c->plan->glyphset ();
const hb_map_t &glyph_map = *c->plan->glyph_map;
hb_vector_t<GlyphID> from;
hb_vector_t<GlyphID> to;
unsigned int glyphs_length,
hb_bool_t zero_context)
{
- return hb_ot_layout_lookup_would_substitute_fast (face,
- lookup_index,
- glyphs, glyphs_length,
- zero_context);
-}
-
-bool
-hb_ot_layout_lookup_would_substitute_fast (hb_face_t *face,
- unsigned int lookup_index,
- const hb_codepoint_t *glyphs,
- unsigned int glyphs_length,
- bool zero_context)
-{
if (unlikely (lookup_index >= face->table.GSUB->lookup_count)) return false;
OT::hb_would_apply_context_t c (face, glyphs, glyphs_length, (bool) zero_context);
* GSUB/GPOS
*/
-HB_INTERNAL bool
-hb_ot_layout_lookup_would_substitute_fast (hb_face_t *face,
- unsigned int lookup_index,
- const hb_codepoint_t *glyphs,
- unsigned int glyphs_length,
- bool zero_context);
-
/* Should be called before all the substitute_lookup's are done. */
HB_INTERNAL void
unsigned int gen_cat = (unsigned int) unicode->general_category (u);
unsigned int props = gen_cat;
- if (u >= 0x80)
+ if (u >= 0x80u)
{
buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_NON_ASCII;
* FVSes are GC=Mn, we have use a separate bit to remember them.
* Fixes:
* https://github.com/harfbuzz/harfbuzz/issues/234 */
- else if (unlikely (hb_in_range (u, 0x180Bu, 0x180Du))) props |= UPROPS_MASK_HIDDEN;
+ else if (unlikely (hb_in_range<hb_codepoint_t> (u, 0x180Bu, 0x180Du))) props |= UPROPS_MASK_HIDDEN;
/* TAG characters need similar treatment. Fixes:
* https://github.com/harfbuzz/harfbuzz/issues/463 */
- else if (unlikely (hb_in_range (u, 0xE0020u, 0xE007Fu))) props |= UPROPS_MASK_HIDDEN;
+ else if (unlikely (hb_in_range<hb_codepoint_t> (u, 0xE0020u, 0xE007Fu))) props |= UPROPS_MASK_HIDDEN;
/* COMBINING GRAPHEME JOINER should not be skipped; at least some times.
* https://github.com/harfbuzz/harfbuzz/issues/554 */
else if (unlikely (u == 0x034Fu))
}
maxp *maxp_prime = (maxp *) hb_blob_get_data (maxp_prime_blob, nullptr);
- maxp_prime->set_num_glyphs (plan->glyphs.length);
+ maxp_prime->set_num_glyphs (plan->num_output_glyphs ());
if (plan->drop_hints)
drop_hint_fields (plan, maxp_prime);
*
* on files with these headers:
*
- * # ArabicShaping-11.0.0.txt
- * # Date: 2018-02-21, 14:50:00 GMT [KW, RP]
- * # Blocks-11.0.0.txt
- * # Date: 2017-10-16, 24:39:00 GMT [KW]
+ * # ArabicShaping-12.0.0.txt
+ * # Date: 2018-09-22, 23:54:00 GMT [KW, RP]
+ * # Blocks-12.0.0.txt
+ * # Date: 2018-07-30, 19:40:00 GMT [KW]
* UnicodeData.txt does not have a header.
*/
/* 1E900 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
/* 1E920 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
- /* 1E940 */ D,D,D,D,
+ /* 1E940 */ D,D,D,D,X,X,X,X,X,X,X,T,
-}; /* Table items: 1304; occupancy: 56% */
+}; /* Table items: 1312; occupancy: 56% */
static unsigned int
break;
case 0x1Eu:
- if (hb_in_range<hb_codepoint_t> (u, 0x1E900u, 0x1E943u)) return joining_table[u - 0x1E900u + joining_offset_0x1e900u];
+ if (hb_in_range<hb_codepoint_t> (u, 0x1E900u, 0x1E94Bu)) return joining_table[u - 0x1E900u + joining_offset_0x1e900u];
break;
default:
unsigned int j = new_len;
for (unsigned int i = count; i; i--)
{
- if (!hb_in_range<unsigned> (info[i - 1].arabic_shaping_action(), STCH_FIXED, STCH_REPEATING))
+ if (!hb_in_range<uint8_t> (info[i - 1].arabic_shaping_action(), STCH_FIXED, STCH_REPEATING))
{
if (step == CUT)
{
unsigned int end = i;
while (i &&
- hb_in_range<unsigned> (info[i - 1].arabic_shaping_action(), STCH_FIXED, STCH_REPEATING))
+ hb_in_range<uint8_t> (info[i - 1].arabic_shaping_action(), STCH_FIXED, STCH_REPEATING))
{
i--;
hb_position_t width = font->get_glyph_h_advance (info[i].codepoint);
unsigned int start = i;
unsigned int context = i;
while (context &&
- !hb_in_range<unsigned> (info[context - 1].arabic_shaping_action(), STCH_FIXED, STCH_REPEATING) &&
+ !hb_in_range<uint8_t> (info[context - 1].arabic_shaping_action(), STCH_FIXED, STCH_REPEATING) &&
(_hb_glyph_info_is_default_ignorable (&info[context - 1]) ||
HB_ARABIC_GENERAL_CATEGORY_IS_WORD (_hb_glyph_info_get_general_category (&info[context - 1]))))
{
else
{
/* No valid syllable as base for tone mark; try to insert dotted circle. */
- if (font->has_glyph (0x25CCu))
+ if (!(buffer->flags & HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE) &&
+ font->has_glyph (0x25CCu))
{
hb_codepoint_t chars[2];
if (!is_zero_width_char (font, u)) {
5u, 7u, 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u,
4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 13u, 4u, 8u,
4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 13u,
- 5u, 8u, 8u, 8u, 1u, 19u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u,
- 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u,
- 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 5u, 10u, 5u, 10u,
+ 5u, 8u, 8u, 8u, 1u, 19u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u,
+ 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u,
+ 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 5u, 10u, 5u, 10u,
5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u, 5u, 10u, 3u, 10u,
4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u,
- 3u, 10u, 4u, 10u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u,
- 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u,
- 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u,
- 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u,
- 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u,
- 3u, 13u, 3u, 10u, 4u, 10u, 5u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u,
- 10u, 10u, 5u, 10u, 3u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u,
- 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 3u, 10u,
- 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u,
- 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u,
- 1u, 16u, 1u, 16u, 1u, 16u, 4u, 8u, 3u, 10u, 3u, 10u, 4u, 10u, 1u, 16u,
- 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u,
- 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 5u, 10u,
- 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u, 5u, 10u,
+ 3u, 10u, 4u, 10u, 4u, 10u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u,
+ 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u,
+ 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u,
+ 3u, 17u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u,
+ 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u,
+ 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 5u, 10u, 5u, 10u, 5u, 10u, 10u, 10u,
+ 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u,
3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u,
- 5u, 10u, 3u, 10u, 4u, 10u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u,
- 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u,
- 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 13u,
- 3u, 10u, 4u, 8u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u,
- 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u,
- 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 5u, 10u, 5u, 10u, 5u, 10u,
- 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u, 5u, 10u, 3u, 10u, 4u, 10u,
+ 4u, 10u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u,
+ 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u,
+ 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 8u, 3u, 17u, 3u, 17u,
+ 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u,
+ 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u,
+ 4u, 17u, 5u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u,
+ 3u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u,
+ 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 4u, 10u, 3u, 17u, 3u, 17u,
+ 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u,
+ 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u,
+ 1u, 16u, 1u, 16u, 4u, 13u, 3u, 17u, 4u, 8u, 3u, 17u, 3u, 17u, 4u, 17u,
+ 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u,
+ 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u,
+ 5u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u,
5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u,
- 4u, 10u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u,
- 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u,
- 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 1u, 16u, 3u, 13u,
- 1u, 16u, 4u, 13u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 1u, 16u,
- 3u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 1u, 16u,
- 0
+ 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 4u, 10u, 3u, 17u, 3u, 17u, 1u, 16u,
+ 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u,
+ 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u,
+ 1u, 16u, 3u, 17u, 1u, 17u, 3u, 17u, 1u, 17u, 4u, 13u, 5u, 10u, 10u, 10u,
+ 10u, 10u, 10u, 10u, 5u, 10u, 1u, 16u, 3u, 10u, 5u, 10u, 5u, 10u, 10u, 10u,
+ 10u, 10u, 10u, 10u, 5u, 10u, 1u, 16u, 0
};
static const char _indic_syllable_machine_key_spans[] = {
3, 1, 5, 1, 1, 5, 1, 1,
5, 1, 1, 5, 1, 1, 10, 5,
10, 5, 10, 5, 10, 5, 10, 10,
- 4, 1, 19, 11, 8, 7, 16, 11,
- 8, 7, 16, 11, 8, 7, 16, 11,
- 8, 7, 16, 11, 8, 7, 6, 6,
+ 4, 1, 19, 15, 15, 14, 16, 15,
+ 15, 14, 16, 15, 15, 14, 16, 15,
+ 15, 14, 16, 15, 15, 14, 6, 6,
6, 1, 1, 1, 6, 8, 6, 8,
7, 6, 8, 7, 6, 8, 7, 6,
- 8, 7, 8, 11, 16, 16, 16, 8,
- 11, 16, 16, 16, 8, 11, 16, 16,
- 16, 8, 11, 16, 16, 16, 8, 11,
- 11, 8, 7, 16, 11, 8, 7, 16,
- 11, 8, 7, 16, 11, 8, 7, 16,
- 11, 8, 7, 6, 6, 6, 1, 1,
- 1, 6, 8, 6, 8, 7, 6, 8,
- 7, 6, 8, 7, 6, 8, 7, 8,
- 11, 16, 16, 16, 8, 11, 16, 16,
- 16, 8, 11, 16, 16, 16, 8, 11,
- 16, 16, 16, 5, 8, 8, 7, 16,
- 11, 8, 7, 16, 11, 8, 7, 16,
- 11, 8, 7, 16, 11, 8, 7, 6,
- 6, 6, 1, 1, 1, 6, 8, 6,
+ 8, 7, 7, 15, 15, 16, 16, 16,
+ 15, 15, 16, 16, 16, 15, 15, 16,
+ 16, 16, 15, 15, 16, 16, 16, 15,
+ 15, 15, 15, 14, 16, 15, 15, 14,
+ 16, 15, 15, 14, 16, 15, 15, 14,
+ 16, 15, 15, 14, 6, 6, 6, 1,
+ 1, 1, 6, 8, 6, 8, 7, 6,
8, 7, 6, 8, 7, 6, 8, 7,
- 6, 8, 7, 8, 11, 16, 16, 16,
- 8, 11, 16, 16, 16, 8, 11, 16,
- 16, 16, 8, 11, 16, 16, 16, 10,
- 8, 5, 11, 8, 7, 16, 11, 8,
- 7, 16, 11, 8, 7, 16, 11, 8,
- 7, 16, 11, 8, 7, 6, 6, 6,
- 1, 1, 1, 6, 8, 6, 8, 7,
+ 7, 15, 15, 16, 16, 16, 15, 15,
+ 16, 16, 16, 15, 15, 16, 16, 16,
+ 15, 15, 16, 16, 16, 5, 15, 15,
+ 14, 16, 15, 15, 14, 16, 15, 15,
+ 14, 16, 15, 15, 14, 16, 15, 15,
+ 14, 6, 6, 6, 1, 1, 1, 6,
+ 8, 6, 8, 7, 6, 8, 7, 6,
+ 8, 7, 6, 8, 7, 7, 15, 15,
+ 16, 16, 16, 15, 15, 16, 16, 16,
+ 15, 15, 16, 16, 16, 15, 15, 16,
+ 16, 16, 10, 15, 5, 15, 15, 14,
+ 16, 15, 15, 14, 16, 15, 15, 14,
+ 16, 15, 15, 14, 16, 15, 15, 14,
+ 6, 6, 6, 1, 1, 1, 6, 8,
6, 8, 7, 6, 8, 7, 6, 8,
- 7, 8, 11, 16, 16, 16, 8, 11,
- 16, 16, 16, 8, 11, 16, 16, 16,
- 8, 11, 16, 16, 16, 8, 16, 11,
- 16, 10, 6, 1, 1, 1, 6, 16,
- 8, 6, 6, 1, 1, 1, 6, 16
+ 7, 6, 8, 7, 7, 15, 15, 16,
+ 16, 16, 15, 15, 16, 16, 16, 15,
+ 15, 16, 16, 16, 15, 15, 16, 16,
+ 16, 15, 17, 15, 17, 10, 6, 1,
+ 1, 1, 6, 16, 8, 6, 6, 1,
+ 1, 1, 6, 16
};
static const short _indic_syllable_machine_index_offsets[] = {
528, 532, 534, 540, 542, 544, 550, 552,
554, 560, 562, 564, 570, 572, 574, 585,
591, 602, 608, 619, 625, 636, 642, 653,
- 664, 669, 671, 691, 703, 712, 720, 737,
- 749, 758, 766, 783, 795, 804, 812, 829,
- 841, 850, 858, 875, 887, 896, 904, 911,
- 918, 925, 927, 929, 931, 938, 947, 954,
- 963, 971, 978, 987, 995, 1002, 1011, 1019,
- 1026, 1035, 1043, 1052, 1064, 1081, 1098, 1115,
- 1124, 1136, 1153, 1170, 1187, 1196, 1208, 1225,
- 1242, 1259, 1268, 1280, 1297, 1314, 1331, 1340,
- 1352, 1364, 1373, 1381, 1398, 1410, 1419, 1427,
- 1444, 1456, 1465, 1473, 1490, 1502, 1511, 1519,
- 1536, 1548, 1557, 1565, 1572, 1579, 1586, 1588,
- 1590, 1592, 1599, 1608, 1615, 1624, 1632, 1639,
- 1648, 1656, 1663, 1672, 1680, 1687, 1696, 1704,
- 1713, 1725, 1742, 1759, 1776, 1785, 1797, 1814,
- 1831, 1848, 1857, 1869, 1886, 1903, 1920, 1929,
- 1941, 1958, 1975, 1992, 1998, 2007, 2016, 2024,
- 2041, 2053, 2062, 2070, 2087, 2099, 2108, 2116,
- 2133, 2145, 2154, 2162, 2179, 2191, 2200, 2208,
- 2215, 2222, 2229, 2231, 2233, 2235, 2242, 2251,
- 2258, 2267, 2275, 2282, 2291, 2299, 2306, 2315,
- 2323, 2330, 2339, 2347, 2356, 2368, 2385, 2402,
- 2419, 2428, 2440, 2457, 2474, 2491, 2500, 2512,
- 2529, 2546, 2563, 2572, 2584, 2601, 2618, 2635,
- 2646, 2655, 2661, 2673, 2682, 2690, 2707, 2719,
- 2728, 2736, 2753, 2765, 2774, 2782, 2799, 2811,
- 2820, 2828, 2845, 2857, 2866, 2874, 2881, 2888,
- 2895, 2897, 2899, 2901, 2908, 2917, 2924, 2933,
- 2941, 2948, 2957, 2965, 2972, 2981, 2989, 2996,
- 3005, 3013, 3022, 3034, 3051, 3068, 3085, 3094,
- 3106, 3123, 3140, 3157, 3166, 3178, 3195, 3212,
- 3229, 3238, 3250, 3267, 3284, 3301, 3310, 3327,
- 3339, 3356, 3367, 3374, 3376, 3378, 3380, 3387,
- 3404, 3413, 3420, 3427, 3429, 3431, 3433, 3440
+ 664, 669, 671, 691, 707, 723, 738, 755,
+ 771, 787, 802, 819, 835, 851, 866, 883,
+ 899, 915, 930, 947, 963, 979, 994, 1001,
+ 1008, 1015, 1017, 1019, 1021, 1028, 1037, 1044,
+ 1053, 1061, 1068, 1077, 1085, 1092, 1101, 1109,
+ 1116, 1125, 1133, 1141, 1157, 1173, 1190, 1207,
+ 1224, 1240, 1256, 1273, 1290, 1307, 1323, 1339,
+ 1356, 1373, 1390, 1406, 1422, 1439, 1456, 1473,
+ 1489, 1505, 1521, 1537, 1552, 1569, 1585, 1601,
+ 1616, 1633, 1649, 1665, 1680, 1697, 1713, 1729,
+ 1744, 1761, 1777, 1793, 1808, 1815, 1822, 1829,
+ 1831, 1833, 1835, 1842, 1851, 1858, 1867, 1875,
+ 1882, 1891, 1899, 1906, 1915, 1923, 1930, 1939,
+ 1947, 1955, 1971, 1987, 2004, 2021, 2038, 2054,
+ 2070, 2087, 2104, 2121, 2137, 2153, 2170, 2187,
+ 2204, 2220, 2236, 2253, 2270, 2287, 2293, 2309,
+ 2325, 2340, 2357, 2373, 2389, 2404, 2421, 2437,
+ 2453, 2468, 2485, 2501, 2517, 2532, 2549, 2565,
+ 2581, 2596, 2603, 2610, 2617, 2619, 2621, 2623,
+ 2630, 2639, 2646, 2655, 2663, 2670, 2679, 2687,
+ 2694, 2703, 2711, 2718, 2727, 2735, 2743, 2759,
+ 2775, 2792, 2809, 2826, 2842, 2858, 2875, 2892,
+ 2909, 2925, 2941, 2958, 2975, 2992, 3008, 3024,
+ 3041, 3058, 3075, 3086, 3102, 3108, 3124, 3140,
+ 3155, 3172, 3188, 3204, 3219, 3236, 3252, 3268,
+ 3283, 3300, 3316, 3332, 3347, 3364, 3380, 3396,
+ 3411, 3418, 3425, 3432, 3434, 3436, 3438, 3445,
+ 3454, 3461, 3470, 3478, 3485, 3494, 3502, 3509,
+ 3518, 3526, 3533, 3542, 3550, 3558, 3574, 3590,
+ 3607, 3624, 3641, 3657, 3673, 3690, 3707, 3724,
+ 3740, 3756, 3773, 3790, 3807, 3823, 3839, 3856,
+ 3873, 3890, 3906, 3924, 3940, 3958, 3969, 3976,
+ 3978, 3980, 3982, 3989, 4006, 4015, 4022, 4029,
+ 4031, 4033, 4035, 4042
};
static const short _indic_syllable_machine_indicies[] = {
76, 73, 72, 72, 72, 72, 144, 72,
78, 78, 76, 1, 0, 146, 145, 148,
149, 150, 151, 152, 153, 76, 73, 147,
- 154, 155, 155, 144, 147, 156, 157, 147,
- 158, 159, 147, 161, 162, 163, 164, 4,
- 1, 160, 165, 160, 160, 35, 160, 166,
- 162, 167, 167, 4, 1, 160, 165, 160,
- 162, 167, 167, 4, 1, 160, 165, 160,
- 168, 160, 160, 160, 17, 169, 160, 1,
- 160, 165, 160, 160, 160, 160, 160, 168,
- 160, 170, 171, 172, 173, 4, 1, 160,
- 165, 160, 160, 33, 160, 174, 171, 175,
- 175, 4, 1, 160, 165, 160, 171, 175,
- 175, 4, 1, 160, 165, 160, 176, 160,
- 160, 160, 17, 177, 160, 1, 160, 165,
- 160, 160, 160, 160, 160, 176, 160, 178,
- 179, 180, 181, 4, 1, 160, 165, 160,
- 160, 31, 160, 182, 179, 183, 183, 4,
- 1, 160, 165, 160, 179, 183, 183, 4,
- 1, 160, 165, 160, 184, 160, 160, 160,
- 17, 185, 160, 1, 160, 165, 160, 160,
- 160, 160, 160, 184, 160, 186, 187, 188,
- 189, 4, 1, 160, 165, 160, 160, 29,
- 160, 190, 187, 191, 191, 4, 1, 160,
- 165, 160, 187, 191, 191, 4, 1, 160,
- 165, 160, 192, 160, 160, 160, 17, 193,
- 160, 1, 160, 165, 160, 160, 160, 160,
- 160, 192, 160, 194, 195, 196, 197, 4,
- 1, 160, 165, 160, 160, 27, 160, 198,
- 195, 199, 199, 4, 1, 160, 165, 160,
- 195, 199, 199, 4, 1, 160, 165, 160,
- 17, 200, 160, 1, 160, 165, 160, 201,
- 201, 160, 1, 160, 165, 160, 202, 160,
- 160, 203, 160, 165, 160, 165, 160, 204,
- 160, 205, 160, 202, 160, 160, 160, 160,
- 165, 160, 17, 160, 201, 201, 160, 1,
- 160, 165, 160, 201, 200, 160, 1, 160,
- 165, 160, 206, 26, 207, 208, 7, 1,
- 160, 165, 160, 26, 207, 208, 7, 1,
- 160, 165, 160, 207, 207, 7, 1, 160,
- 165, 160, 209, 23, 210, 211, 10, 1,
- 160, 165, 160, 23, 210, 211, 10, 1,
- 160, 165, 160, 210, 210, 10, 1, 160,
- 165, 160, 212, 20, 213, 214, 13, 1,
- 160, 165, 160, 20, 213, 214, 13, 1,
- 160, 165, 160, 213, 213, 13, 1, 160,
- 165, 160, 215, 17, 201, 216, 160, 1,
- 160, 165, 160, 17, 201, 216, 160, 1,
- 160, 165, 160, 194, 195, 199, 199, 4,
- 1, 160, 165, 160, 194, 195, 196, 199,
- 4, 1, 160, 165, 160, 160, 27, 160,
- 192, 160, 217, 160, 201, 201, 160, 1,
- 160, 165, 160, 160, 160, 160, 160, 192,
- 160, 192, 160, 160, 160, 201, 201, 160,
- 1, 160, 165, 160, 160, 160, 160, 160,
- 192, 160, 192, 160, 160, 160, 201, 193,
- 160, 1, 160, 165, 160, 160, 160, 160,
- 160, 192, 160, 186, 187, 191, 191, 4,
- 1, 160, 165, 160, 186, 187, 188, 191,
- 4, 1, 160, 165, 160, 160, 29, 160,
- 184, 160, 218, 160, 201, 201, 160, 1,
- 160, 165, 160, 160, 160, 160, 160, 184,
- 160, 184, 160, 160, 160, 201, 201, 160,
- 1, 160, 165, 160, 160, 160, 160, 160,
- 184, 160, 184, 160, 160, 160, 201, 185,
- 160, 1, 160, 165, 160, 160, 160, 160,
- 160, 184, 160, 178, 179, 183, 183, 4,
- 1, 160, 165, 160, 178, 179, 180, 183,
- 4, 1, 160, 165, 160, 160, 31, 160,
- 176, 160, 219, 160, 201, 201, 160, 1,
- 160, 165, 160, 160, 160, 160, 160, 176,
- 160, 176, 160, 160, 160, 201, 201, 160,
- 1, 160, 165, 160, 160, 160, 160, 160,
- 176, 160, 176, 160, 160, 160, 201, 177,
- 160, 1, 160, 165, 160, 160, 160, 160,
- 160, 176, 160, 170, 171, 175, 175, 4,
- 1, 160, 165, 160, 170, 171, 172, 175,
- 4, 1, 160, 165, 160, 160, 33, 160,
- 168, 160, 220, 160, 201, 201, 160, 1,
- 160, 165, 160, 160, 160, 160, 160, 168,
- 160, 168, 160, 160, 160, 201, 201, 160,
- 1, 160, 165, 160, 160, 160, 160, 160,
- 168, 160, 168, 160, 160, 160, 201, 169,
- 160, 1, 160, 165, 160, 160, 160, 160,
- 160, 168, 160, 161, 162, 167, 167, 4,
- 1, 160, 165, 160, 161, 162, 163, 167,
- 4, 1, 160, 165, 160, 160, 35, 160,
- 222, 223, 224, 225, 40, 37, 221, 226,
- 221, 221, 71, 221, 227, 223, 228, 225,
- 40, 37, 221, 226, 221, 223, 228, 225,
- 40, 37, 221, 226, 221, 229, 221, 221,
- 221, 53, 230, 221, 37, 221, 226, 221,
- 221, 221, 221, 221, 229, 221, 231, 232,
- 233, 234, 40, 37, 221, 226, 221, 221,
- 69, 221, 235, 232, 236, 236, 40, 37,
- 221, 226, 221, 232, 236, 236, 40, 37,
- 221, 226, 221, 237, 221, 221, 221, 53,
- 238, 221, 37, 221, 226, 221, 221, 221,
- 221, 221, 237, 221, 239, 240, 241, 242,
- 40, 37, 221, 226, 221, 221, 67, 221,
- 243, 240, 244, 244, 40, 37, 221, 226,
- 221, 240, 244, 244, 40, 37, 221, 226,
- 221, 245, 221, 221, 221, 53, 246, 221,
- 37, 221, 226, 221, 221, 221, 221, 221,
- 245, 221, 247, 248, 249, 250, 40, 37,
- 221, 226, 221, 221, 65, 221, 251, 248,
- 252, 252, 40, 37, 221, 226, 221, 248,
- 252, 252, 40, 37, 221, 226, 221, 253,
- 221, 221, 221, 53, 254, 221, 37, 221,
- 226, 221, 221, 221, 221, 221, 253, 221,
- 255, 256, 257, 258, 40, 37, 221, 226,
- 221, 221, 63, 221, 259, 256, 260, 260,
- 40, 37, 221, 226, 221, 256, 260, 260,
- 40, 37, 221, 226, 221, 53, 261, 221,
- 37, 221, 226, 221, 262, 262, 221, 37,
- 221, 226, 221, 263, 221, 221, 264, 221,
- 226, 221, 226, 221, 265, 221, 266, 221,
- 263, 221, 221, 221, 221, 226, 221, 53,
- 221, 262, 262, 221, 37, 221, 226, 221,
- 262, 261, 221, 37, 221, 226, 221, 267,
- 62, 268, 269, 43, 37, 221, 226, 221,
- 62, 268, 269, 43, 37, 221, 226, 221,
- 268, 268, 43, 37, 221, 226, 221, 270,
- 59, 271, 272, 46, 37, 221, 226, 221,
- 59, 271, 272, 46, 37, 221, 226, 221,
- 271, 271, 46, 37, 221, 226, 221, 273,
- 56, 274, 275, 49, 37, 221, 226, 221,
- 56, 274, 275, 49, 37, 221, 226, 221,
- 274, 274, 49, 37, 221, 226, 221, 276,
- 53, 262, 277, 221, 37, 221, 226, 221,
- 53, 262, 277, 221, 37, 221, 226, 221,
- 255, 256, 260, 260, 40, 37, 221, 226,
- 221, 255, 256, 257, 260, 40, 37, 221,
- 226, 221, 221, 63, 221, 253, 221, 278,
- 221, 262, 262, 221, 37, 221, 226, 221,
- 221, 221, 221, 221, 253, 221, 253, 221,
- 221, 221, 262, 262, 221, 37, 221, 226,
- 221, 221, 221, 221, 221, 253, 221, 253,
- 221, 221, 221, 262, 254, 221, 37, 221,
- 226, 221, 221, 221, 221, 221, 253, 221,
- 247, 248, 252, 252, 40, 37, 221, 226,
- 221, 247, 248, 249, 252, 40, 37, 221,
- 226, 221, 221, 65, 221, 245, 221, 279,
- 221, 262, 262, 221, 37, 221, 226, 221,
- 221, 221, 221, 221, 245, 221, 245, 221,
- 221, 221, 262, 262, 221, 37, 221, 226,
- 221, 221, 221, 221, 221, 245, 221, 245,
- 221, 221, 221, 262, 246, 221, 37, 221,
- 226, 221, 221, 221, 221, 221, 245, 221,
- 239, 240, 244, 244, 40, 37, 221, 226,
- 221, 239, 240, 241, 244, 40, 37, 221,
- 226, 221, 221, 67, 221, 237, 221, 280,
- 221, 262, 262, 221, 37, 221, 226, 221,
- 221, 221, 221, 221, 237, 221, 237, 221,
- 221, 221, 262, 262, 221, 37, 221, 226,
- 221, 221, 221, 221, 221, 237, 221, 237,
- 221, 221, 221, 262, 238, 221, 37, 221,
- 226, 221, 221, 221, 221, 221, 237, 221,
- 231, 232, 236, 236, 40, 37, 221, 226,
- 221, 231, 232, 233, 236, 40, 37, 221,
- 226, 221, 221, 69, 221, 229, 221, 281,
- 221, 262, 262, 221, 37, 221, 226, 221,
- 221, 221, 221, 221, 229, 221, 229, 221,
- 221, 221, 262, 262, 221, 37, 221, 226,
- 221, 221, 221, 221, 221, 229, 221, 229,
- 221, 221, 221, 262, 230, 221, 37, 221,
- 226, 221, 221, 221, 221, 221, 229, 221,
- 70, 39, 39, 40, 37, 221, 222, 223,
- 228, 225, 40, 37, 221, 226, 221, 283,
- 151, 284, 284, 76, 73, 282, 154, 282,
- 151, 284, 284, 76, 73, 282, 154, 282,
- 285, 282, 282, 282, 90, 286, 282, 73,
- 282, 154, 282, 282, 282, 282, 282, 285,
- 282, 287, 288, 289, 290, 76, 73, 282,
- 154, 282, 282, 106, 282, 291, 288, 292,
- 292, 76, 73, 282, 154, 282, 288, 292,
- 292, 76, 73, 282, 154, 282, 293, 282,
- 282, 282, 90, 294, 282, 73, 282, 154,
- 282, 282, 282, 282, 282, 293, 282, 295,
- 296, 297, 298, 76, 73, 282, 154, 282,
- 282, 104, 282, 299, 296, 300, 300, 76,
- 73, 282, 154, 282, 296, 300, 300, 76,
- 73, 282, 154, 282, 301, 282, 282, 282,
- 90, 302, 282, 73, 282, 154, 282, 282,
- 282, 282, 282, 301, 282, 303, 304, 305,
- 306, 76, 73, 282, 154, 282, 282, 102,
- 282, 307, 304, 308, 308, 76, 73, 282,
- 154, 282, 304, 308, 308, 76, 73, 282,
- 154, 282, 309, 282, 282, 282, 90, 310,
- 282, 73, 282, 154, 282, 282, 282, 282,
- 282, 309, 282, 311, 312, 313, 314, 76,
- 73, 282, 154, 282, 282, 100, 282, 315,
- 312, 316, 316, 76, 73, 282, 154, 282,
- 312, 316, 316, 76, 73, 282, 154, 282,
- 90, 317, 282, 73, 282, 154, 282, 318,
- 318, 282, 73, 282, 154, 282, 319, 282,
- 282, 320, 282, 154, 282, 154, 282, 321,
- 282, 322, 282, 319, 282, 282, 282, 282,
- 154, 282, 90, 282, 318, 318, 282, 73,
- 282, 154, 282, 318, 317, 282, 73, 282,
- 154, 282, 323, 99, 324, 325, 80, 73,
- 282, 154, 282, 99, 324, 325, 80, 73,
- 282, 154, 282, 324, 324, 80, 73, 282,
- 154, 282, 326, 96, 327, 328, 83, 73,
- 282, 154, 282, 96, 327, 328, 83, 73,
- 282, 154, 282, 327, 327, 83, 73, 282,
- 154, 282, 329, 93, 330, 331, 86, 73,
- 282, 154, 282, 93, 330, 331, 86, 73,
- 282, 154, 282, 330, 330, 86, 73, 282,
- 154, 282, 332, 90, 318, 333, 282, 73,
- 282, 154, 282, 90, 318, 333, 282, 73,
- 282, 154, 282, 311, 312, 316, 316, 76,
- 73, 282, 154, 282, 311, 312, 313, 316,
- 76, 73, 282, 154, 282, 282, 100, 282,
- 309, 282, 334, 282, 318, 318, 282, 73,
- 282, 154, 282, 282, 282, 282, 282, 309,
- 282, 309, 282, 282, 282, 318, 318, 282,
- 73, 282, 154, 282, 282, 282, 282, 282,
- 309, 282, 309, 282, 282, 282, 318, 310,
- 282, 73, 282, 154, 282, 282, 282, 282,
- 282, 309, 282, 303, 304, 308, 308, 76,
- 73, 282, 154, 282, 303, 304, 305, 308,
- 76, 73, 282, 154, 282, 282, 102, 282,
- 301, 282, 335, 282, 318, 318, 282, 73,
- 282, 154, 282, 282, 282, 282, 282, 301,
- 282, 301, 282, 282, 282, 318, 318, 282,
- 73, 282, 154, 282, 282, 282, 282, 282,
- 301, 282, 301, 282, 282, 282, 318, 302,
- 282, 73, 282, 154, 282, 282, 282, 282,
- 282, 301, 282, 295, 296, 300, 300, 76,
- 73, 282, 154, 282, 295, 296, 297, 300,
- 76, 73, 282, 154, 282, 282, 104, 282,
- 293, 282, 336, 282, 318, 318, 282, 73,
- 282, 154, 282, 282, 282, 282, 282, 293,
- 282, 293, 282, 282, 282, 318, 318, 282,
- 73, 282, 154, 282, 282, 282, 282, 282,
- 293, 282, 293, 282, 282, 282, 318, 294,
- 282, 73, 282, 154, 282, 282, 282, 282,
- 282, 293, 282, 287, 288, 292, 292, 76,
- 73, 282, 154, 282, 287, 288, 289, 292,
- 76, 73, 282, 154, 282, 282, 106, 282,
- 285, 282, 337, 282, 318, 318, 282, 73,
- 282, 154, 282, 282, 282, 282, 282, 285,
- 282, 285, 282, 282, 282, 318, 318, 282,
- 73, 282, 154, 282, 282, 282, 282, 282,
- 285, 282, 285, 282, 282, 282, 318, 286,
- 282, 73, 282, 154, 282, 282, 282, 282,
- 282, 285, 282, 107, 75, 75, 76, 73,
- 338, 338, 338, 338, 144, 338, 150, 151,
- 284, 284, 76, 73, 282, 154, 282, 107,
- 75, 75, 76, 73, 338, 340, 341, 342,
- 343, 112, 109, 339, 344, 339, 339, 143,
- 339, 345, 341, 343, 343, 112, 109, 339,
- 344, 339, 341, 343, 343, 112, 109, 339,
- 344, 339, 346, 339, 339, 339, 125, 347,
- 339, 109, 339, 344, 339, 339, 339, 339,
- 339, 346, 339, 348, 349, 350, 351, 112,
- 109, 339, 344, 339, 339, 141, 339, 352,
- 349, 353, 353, 112, 109, 339, 344, 339,
- 349, 353, 353, 112, 109, 339, 344, 339,
- 354, 339, 339, 339, 125, 355, 339, 109,
- 339, 344, 339, 339, 339, 339, 339, 354,
- 339, 356, 357, 358, 359, 112, 109, 339,
- 344, 339, 339, 139, 339, 360, 357, 361,
- 361, 112, 109, 339, 344, 339, 357, 361,
- 361, 112, 109, 339, 344, 339, 362, 339,
- 339, 339, 125, 363, 339, 109, 339, 344,
- 339, 339, 339, 339, 339, 362, 339, 364,
- 365, 366, 367, 112, 109, 339, 344, 339,
- 339, 137, 339, 368, 365, 369, 369, 112,
- 109, 339, 344, 339, 365, 369, 369, 112,
- 109, 339, 344, 339, 370, 339, 339, 339,
- 125, 371, 339, 109, 339, 344, 339, 339,
- 339, 339, 339, 370, 339, 372, 373, 374,
- 375, 112, 109, 339, 344, 339, 339, 135,
- 339, 376, 373, 377, 377, 112, 109, 339,
- 344, 339, 373, 377, 377, 112, 109, 339,
- 344, 339, 125, 378, 339, 109, 339, 344,
- 339, 379, 379, 339, 109, 339, 344, 339,
- 380, 339, 339, 381, 339, 344, 339, 344,
- 339, 382, 339, 383, 339, 380, 339, 339,
- 339, 339, 344, 339, 125, 339, 379, 379,
- 339, 109, 339, 344, 339, 379, 378, 339,
- 109, 339, 344, 339, 384, 134, 385, 386,
- 115, 109, 339, 344, 339, 134, 385, 386,
- 115, 109, 339, 344, 339, 385, 385, 115,
- 109, 339, 344, 339, 387, 131, 388, 389,
- 118, 109, 339, 344, 339, 131, 388, 389,
- 118, 109, 339, 344, 339, 388, 388, 118,
- 109, 339, 344, 339, 390, 128, 391, 392,
- 121, 109, 339, 344, 339, 128, 391, 392,
- 121, 109, 339, 344, 339, 391, 391, 121,
- 109, 339, 344, 339, 393, 125, 379, 394,
- 339, 109, 339, 344, 339, 125, 379, 394,
- 339, 109, 339, 344, 339, 372, 373, 377,
- 377, 112, 109, 339, 344, 339, 372, 373,
- 374, 377, 112, 109, 339, 344, 339, 339,
- 135, 339, 370, 339, 395, 339, 379, 379,
- 339, 109, 339, 344, 339, 339, 339, 339,
- 339, 370, 339, 370, 339, 339, 339, 379,
- 379, 339, 109, 339, 344, 339, 339, 339,
- 339, 339, 370, 339, 370, 339, 339, 339,
- 379, 371, 339, 109, 339, 344, 339, 339,
- 339, 339, 339, 370, 339, 364, 365, 369,
- 369, 112, 109, 339, 344, 339, 364, 365,
- 366, 369, 112, 109, 339, 344, 339, 339,
- 137, 339, 362, 339, 396, 339, 379, 379,
- 339, 109, 339, 344, 339, 339, 339, 339,
- 339, 362, 339, 362, 339, 339, 339, 379,
- 379, 339, 109, 339, 344, 339, 339, 339,
- 339, 339, 362, 339, 362, 339, 339, 339,
- 379, 363, 339, 109, 339, 344, 339, 339,
- 339, 339, 339, 362, 339, 356, 357, 361,
- 361, 112, 109, 339, 344, 339, 356, 357,
- 358, 361, 112, 109, 339, 344, 339, 339,
- 139, 339, 354, 339, 397, 339, 379, 379,
- 339, 109, 339, 344, 339, 339, 339, 339,
- 339, 354, 339, 354, 339, 339, 339, 379,
- 379, 339, 109, 339, 344, 339, 339, 339,
- 339, 339, 354, 339, 354, 339, 339, 339,
- 379, 355, 339, 109, 339, 344, 339, 339,
- 339, 339, 339, 354, 339, 348, 349, 353,
- 353, 112, 109, 339, 344, 339, 348, 349,
- 350, 353, 112, 109, 339, 344, 339, 339,
- 141, 339, 346, 339, 398, 339, 379, 379,
- 339, 109, 339, 344, 339, 339, 339, 339,
- 339, 346, 339, 346, 339, 339, 339, 379,
- 379, 339, 109, 339, 344, 339, 339, 339,
- 339, 339, 346, 339, 346, 339, 339, 339,
- 379, 347, 339, 109, 339, 344, 339, 339,
- 339, 339, 339, 346, 339, 340, 341, 343,
- 343, 112, 109, 339, 344, 339, 148, 149,
- 150, 151, 399, 284, 76, 73, 282, 154,
- 155, 155, 144, 282, 282, 148, 282, 161,
- 400, 163, 164, 4, 1, 160, 165, 160,
- 160, 35, 160, 168, 149, 150, 151, 401,
- 402, 76, 403, 160, 404, 160, 155, 144,
- 160, 160, 168, 160, 107, 405, 405, 76,
- 403, 160, 165, 160, 160, 144, 160, 406,
- 160, 160, 407, 160, 404, 160, 404, 160,
- 408, 160, 205, 160, 406, 160, 160, 160,
- 160, 404, 160, 168, 160, 220, 107, 405,
- 405, 76, 403, 160, 165, 160, 160, 160,
- 160, 160, 168, 160, 410, 409, 411, 411,
- 409, 146, 409, 412, 409, 411, 411, 409,
- 146, 409, 412, 409, 413, 409, 409, 414,
- 409, 412, 409, 412, 409, 415, 409, 416,
- 409, 413, 409, 409, 409, 409, 412, 409,
- 148, 338, 338, 338, 338, 338, 338, 338,
- 338, 338, 155, 338, 338, 338, 338, 148,
- 338, 0
+ 154, 155, 155, 144, 147, 156, 157, 158,
+ 159, 160, 147, 162, 163, 164, 165, 4,
+ 1, 161, 166, 161, 161, 35, 161, 161,
+ 161, 167, 161, 168, 163, 169, 169, 4,
+ 1, 161, 166, 161, 161, 161, 161, 161,
+ 161, 167, 161, 163, 169, 169, 4, 1,
+ 161, 166, 161, 161, 161, 161, 161, 161,
+ 167, 161, 170, 161, 161, 161, 17, 171,
+ 161, 1, 161, 166, 161, 161, 161, 161,
+ 161, 170, 161, 172, 173, 174, 175, 4,
+ 1, 161, 166, 161, 161, 33, 161, 161,
+ 161, 167, 161, 176, 173, 177, 177, 4,
+ 1, 161, 166, 161, 161, 161, 161, 161,
+ 161, 167, 161, 173, 177, 177, 4, 1,
+ 161, 166, 161, 161, 161, 161, 161, 161,
+ 167, 161, 178, 161, 161, 161, 17, 179,
+ 161, 1, 161, 166, 161, 161, 161, 161,
+ 161, 178, 161, 180, 181, 182, 183, 4,
+ 1, 161, 166, 161, 161, 31, 161, 161,
+ 161, 167, 161, 184, 181, 185, 185, 4,
+ 1, 161, 166, 161, 161, 161, 161, 161,
+ 161, 167, 161, 181, 185, 185, 4, 1,
+ 161, 166, 161, 161, 161, 161, 161, 161,
+ 167, 161, 186, 161, 161, 161, 17, 187,
+ 161, 1, 161, 166, 161, 161, 161, 161,
+ 161, 186, 161, 188, 189, 190, 191, 4,
+ 1, 161, 166, 161, 161, 29, 161, 161,
+ 161, 167, 161, 192, 189, 193, 193, 4,
+ 1, 161, 166, 161, 161, 161, 161, 161,
+ 161, 167, 161, 189, 193, 193, 4, 1,
+ 161, 166, 161, 161, 161, 161, 161, 161,
+ 167, 161, 194, 161, 161, 161, 17, 195,
+ 161, 1, 161, 166, 161, 161, 161, 161,
+ 161, 194, 161, 196, 197, 198, 199, 4,
+ 1, 161, 166, 161, 161, 27, 161, 161,
+ 161, 167, 161, 200, 197, 201, 201, 4,
+ 1, 161, 166, 161, 161, 161, 161, 161,
+ 161, 167, 161, 197, 201, 201, 4, 1,
+ 161, 166, 161, 161, 161, 161, 161, 161,
+ 167, 161, 17, 202, 161, 1, 161, 166,
+ 161, 203, 203, 161, 1, 161, 166, 161,
+ 204, 161, 161, 205, 161, 166, 161, 166,
+ 161, 206, 161, 207, 161, 204, 161, 161,
+ 161, 161, 166, 161, 17, 161, 203, 203,
+ 161, 1, 161, 166, 161, 203, 202, 161,
+ 1, 161, 166, 161, 208, 26, 209, 210,
+ 7, 1, 161, 166, 161, 26, 209, 210,
+ 7, 1, 161, 166, 161, 209, 209, 7,
+ 1, 161, 166, 161, 211, 23, 212, 213,
+ 10, 1, 161, 166, 161, 23, 212, 213,
+ 10, 1, 161, 166, 161, 212, 212, 10,
+ 1, 161, 166, 161, 214, 20, 215, 216,
+ 13, 1, 161, 166, 161, 20, 215, 216,
+ 13, 1, 161, 166, 161, 215, 215, 13,
+ 1, 161, 166, 161, 217, 17, 203, 218,
+ 161, 1, 161, 166, 161, 17, 203, 218,
+ 161, 1, 161, 166, 161, 197, 201, 201,
+ 4, 1, 161, 166, 161, 196, 197, 201,
+ 201, 4, 1, 161, 166, 161, 161, 161,
+ 161, 161, 161, 167, 161, 196, 197, 198,
+ 201, 4, 1, 161, 166, 161, 161, 27,
+ 161, 161, 161, 167, 161, 194, 161, 219,
+ 161, 203, 203, 161, 1, 161, 166, 161,
+ 161, 161, 161, 161, 194, 161, 194, 161,
+ 161, 161, 203, 203, 161, 1, 161, 166,
+ 161, 161, 161, 161, 161, 194, 161, 194,
+ 161, 161, 161, 203, 195, 161, 1, 161,
+ 166, 161, 161, 161, 161, 161, 194, 161,
+ 188, 189, 193, 193, 4, 1, 161, 166,
+ 161, 161, 161, 161, 161, 161, 167, 161,
+ 188, 189, 190, 193, 4, 1, 161, 166,
+ 161, 161, 29, 161, 161, 161, 167, 161,
+ 186, 161, 220, 161, 203, 203, 161, 1,
+ 161, 166, 161, 161, 161, 161, 161, 186,
+ 161, 186, 161, 161, 161, 203, 203, 161,
+ 1, 161, 166, 161, 161, 161, 161, 161,
+ 186, 161, 186, 161, 161, 161, 203, 187,
+ 161, 1, 161, 166, 161, 161, 161, 161,
+ 161, 186, 161, 180, 181, 185, 185, 4,
+ 1, 161, 166, 161, 161, 161, 161, 161,
+ 161, 167, 161, 180, 181, 182, 185, 4,
+ 1, 161, 166, 161, 161, 31, 161, 161,
+ 161, 167, 161, 178, 161, 221, 161, 203,
+ 203, 161, 1, 161, 166, 161, 161, 161,
+ 161, 161, 178, 161, 178, 161, 161, 161,
+ 203, 203, 161, 1, 161, 166, 161, 161,
+ 161, 161, 161, 178, 161, 178, 161, 161,
+ 161, 203, 179, 161, 1, 161, 166, 161,
+ 161, 161, 161, 161, 178, 161, 172, 173,
+ 177, 177, 4, 1, 161, 166, 161, 161,
+ 161, 161, 161, 161, 167, 161, 172, 173,
+ 174, 177, 4, 1, 161, 166, 161, 161,
+ 33, 161, 161, 161, 167, 161, 170, 161,
+ 222, 161, 203, 203, 161, 1, 161, 166,
+ 161, 161, 161, 161, 161, 170, 161, 170,
+ 161, 161, 161, 203, 203, 161, 1, 161,
+ 166, 161, 161, 161, 161, 161, 170, 161,
+ 170, 161, 161, 161, 203, 171, 161, 1,
+ 161, 166, 161, 161, 161, 161, 161, 170,
+ 161, 162, 163, 169, 169, 4, 1, 161,
+ 166, 161, 161, 161, 161, 161, 161, 167,
+ 161, 162, 163, 164, 169, 4, 1, 161,
+ 166, 161, 161, 35, 161, 161, 161, 167,
+ 161, 224, 225, 226, 227, 40, 37, 223,
+ 228, 223, 223, 71, 223, 223, 223, 229,
+ 223, 230, 225, 231, 227, 40, 37, 223,
+ 228, 223, 223, 223, 223, 223, 223, 229,
+ 223, 225, 231, 227, 40, 37, 223, 228,
+ 223, 223, 223, 223, 223, 223, 229, 223,
+ 232, 223, 223, 223, 53, 233, 223, 37,
+ 223, 228, 223, 223, 223, 223, 223, 232,
+ 223, 234, 235, 236, 237, 40, 37, 223,
+ 228, 223, 223, 69, 223, 223, 223, 229,
+ 223, 238, 235, 239, 239, 40, 37, 223,
+ 228, 223, 223, 223, 223, 223, 223, 229,
+ 223, 235, 239, 239, 40, 37, 223, 228,
+ 223, 223, 223, 223, 223, 223, 229, 223,
+ 240, 223, 223, 223, 53, 241, 223, 37,
+ 223, 228, 223, 223, 223, 223, 223, 240,
+ 223, 242, 243, 244, 245, 40, 37, 223,
+ 228, 223, 223, 67, 223, 223, 223, 229,
+ 223, 246, 243, 247, 247, 40, 37, 223,
+ 228, 223, 223, 223, 223, 223, 223, 229,
+ 223, 243, 247, 247, 40, 37, 223, 228,
+ 223, 223, 223, 223, 223, 223, 229, 223,
+ 248, 223, 223, 223, 53, 249, 223, 37,
+ 223, 228, 223, 223, 223, 223, 223, 248,
+ 223, 250, 251, 252, 253, 40, 37, 223,
+ 228, 223, 223, 65, 223, 223, 223, 229,
+ 223, 254, 251, 255, 255, 40, 37, 223,
+ 228, 223, 223, 223, 223, 223, 223, 229,
+ 223, 251, 255, 255, 40, 37, 223, 228,
+ 223, 223, 223, 223, 223, 223, 229, 223,
+ 256, 223, 223, 223, 53, 257, 223, 37,
+ 223, 228, 223, 223, 223, 223, 223, 256,
+ 223, 258, 259, 260, 261, 40, 37, 223,
+ 228, 223, 223, 63, 223, 223, 223, 229,
+ 223, 262, 259, 263, 263, 40, 37, 223,
+ 228, 223, 223, 223, 223, 223, 223, 229,
+ 223, 259, 263, 263, 40, 37, 223, 228,
+ 223, 223, 223, 223, 223, 223, 229, 223,
+ 53, 264, 223, 37, 223, 228, 223, 265,
+ 265, 223, 37, 223, 228, 223, 266, 223,
+ 223, 267, 223, 228, 223, 228, 223, 268,
+ 223, 269, 223, 266, 223, 223, 223, 223,
+ 228, 223, 53, 223, 265, 265, 223, 37,
+ 223, 228, 223, 265, 264, 223, 37, 223,
+ 228, 223, 270, 62, 271, 272, 43, 37,
+ 223, 228, 223, 62, 271, 272, 43, 37,
+ 223, 228, 223, 271, 271, 43, 37, 223,
+ 228, 223, 273, 59, 274, 275, 46, 37,
+ 223, 228, 223, 59, 274, 275, 46, 37,
+ 223, 228, 223, 274, 274, 46, 37, 223,
+ 228, 223, 276, 56, 277, 278, 49, 37,
+ 223, 228, 223, 56, 277, 278, 49, 37,
+ 223, 228, 223, 277, 277, 49, 37, 223,
+ 228, 223, 279, 53, 265, 280, 223, 37,
+ 223, 228, 223, 53, 265, 280, 223, 37,
+ 223, 228, 223, 259, 263, 263, 40, 37,
+ 223, 228, 223, 258, 259, 263, 263, 40,
+ 37, 223, 228, 223, 223, 223, 223, 223,
+ 223, 229, 223, 258, 259, 260, 263, 40,
+ 37, 223, 228, 223, 223, 63, 223, 223,
+ 223, 229, 223, 256, 223, 281, 223, 265,
+ 265, 223, 37, 223, 228, 223, 223, 223,
+ 223, 223, 256, 223, 256, 223, 223, 223,
+ 265, 265, 223, 37, 223, 228, 223, 223,
+ 223, 223, 223, 256, 223, 256, 223, 223,
+ 223, 265, 257, 223, 37, 223, 228, 223,
+ 223, 223, 223, 223, 256, 223, 250, 251,
+ 255, 255, 40, 37, 223, 228, 223, 223,
+ 223, 223, 223, 223, 229, 223, 250, 251,
+ 252, 255, 40, 37, 223, 228, 223, 223,
+ 65, 223, 223, 223, 229, 223, 248, 223,
+ 282, 223, 265, 265, 223, 37, 223, 228,
+ 223, 223, 223, 223, 223, 248, 223, 248,
+ 223, 223, 223, 265, 265, 223, 37, 223,
+ 228, 223, 223, 223, 223, 223, 248, 223,
+ 248, 223, 223, 223, 265, 249, 223, 37,
+ 223, 228, 223, 223, 223, 223, 223, 248,
+ 223, 242, 243, 247, 247, 40, 37, 223,
+ 228, 223, 223, 223, 223, 223, 223, 229,
+ 223, 242, 243, 244, 247, 40, 37, 223,
+ 228, 223, 223, 67, 223, 223, 223, 229,
+ 223, 240, 223, 283, 223, 265, 265, 223,
+ 37, 223, 228, 223, 223, 223, 223, 223,
+ 240, 223, 240, 223, 223, 223, 265, 265,
+ 223, 37, 223, 228, 223, 223, 223, 223,
+ 223, 240, 223, 240, 223, 223, 223, 265,
+ 241, 223, 37, 223, 228, 223, 223, 223,
+ 223, 223, 240, 223, 234, 235, 239, 239,
+ 40, 37, 223, 228, 223, 223, 223, 223,
+ 223, 223, 229, 223, 234, 235, 236, 239,
+ 40, 37, 223, 228, 223, 223, 69, 223,
+ 223, 223, 229, 223, 232, 223, 284, 223,
+ 265, 265, 223, 37, 223, 228, 223, 223,
+ 223, 223, 223, 232, 223, 232, 223, 223,
+ 223, 265, 265, 223, 37, 223, 228, 223,
+ 223, 223, 223, 223, 232, 223, 232, 223,
+ 223, 223, 265, 233, 223, 37, 223, 228,
+ 223, 223, 223, 223, 223, 232, 223, 70,
+ 39, 39, 40, 37, 223, 224, 225, 231,
+ 227, 40, 37, 223, 228, 223, 223, 223,
+ 223, 223, 223, 229, 223, 286, 151, 287,
+ 287, 76, 73, 285, 154, 285, 285, 285,
+ 285, 285, 285, 158, 285, 151, 287, 287,
+ 76, 73, 285, 154, 285, 285, 285, 285,
+ 285, 285, 158, 285, 288, 285, 285, 285,
+ 90, 289, 285, 73, 285, 154, 285, 285,
+ 285, 285, 285, 288, 285, 290, 291, 292,
+ 293, 76, 73, 285, 154, 285, 285, 106,
+ 285, 285, 285, 158, 285, 294, 291, 295,
+ 295, 76, 73, 285, 154, 285, 285, 285,
+ 285, 285, 285, 158, 285, 291, 295, 295,
+ 76, 73, 285, 154, 285, 285, 285, 285,
+ 285, 285, 158, 285, 296, 285, 285, 285,
+ 90, 297, 285, 73, 285, 154, 285, 285,
+ 285, 285, 285, 296, 285, 298, 299, 300,
+ 301, 76, 73, 285, 154, 285, 285, 104,
+ 285, 285, 285, 158, 285, 302, 299, 303,
+ 303, 76, 73, 285, 154, 285, 285, 285,
+ 285, 285, 285, 158, 285, 299, 303, 303,
+ 76, 73, 285, 154, 285, 285, 285, 285,
+ 285, 285, 158, 285, 304, 285, 285, 285,
+ 90, 305, 285, 73, 285, 154, 285, 285,
+ 285, 285, 285, 304, 285, 306, 307, 308,
+ 309, 76, 73, 285, 154, 285, 285, 102,
+ 285, 285, 285, 158, 285, 310, 307, 311,
+ 311, 76, 73, 285, 154, 285, 285, 285,
+ 285, 285, 285, 158, 285, 307, 311, 311,
+ 76, 73, 285, 154, 285, 285, 285, 285,
+ 285, 285, 158, 285, 312, 285, 285, 285,
+ 90, 313, 285, 73, 285, 154, 285, 285,
+ 285, 285, 285, 312, 285, 314, 315, 316,
+ 317, 76, 73, 285, 154, 285, 285, 100,
+ 285, 285, 285, 158, 285, 318, 315, 319,
+ 319, 76, 73, 285, 154, 285, 285, 285,
+ 285, 285, 285, 158, 285, 315, 319, 319,
+ 76, 73, 285, 154, 285, 285, 285, 285,
+ 285, 285, 158, 285, 90, 320, 285, 73,
+ 285, 154, 285, 321, 321, 285, 73, 285,
+ 154, 285, 322, 285, 285, 323, 285, 154,
+ 285, 154, 285, 324, 285, 325, 285, 322,
+ 285, 285, 285, 285, 154, 285, 90, 285,
+ 321, 321, 285, 73, 285, 154, 285, 321,
+ 320, 285, 73, 285, 154, 285, 326, 99,
+ 327, 328, 80, 73, 285, 154, 285, 99,
+ 327, 328, 80, 73, 285, 154, 285, 327,
+ 327, 80, 73, 285, 154, 285, 329, 96,
+ 330, 331, 83, 73, 285, 154, 285, 96,
+ 330, 331, 83, 73, 285, 154, 285, 330,
+ 330, 83, 73, 285, 154, 285, 332, 93,
+ 333, 334, 86, 73, 285, 154, 285, 93,
+ 333, 334, 86, 73, 285, 154, 285, 333,
+ 333, 86, 73, 285, 154, 285, 335, 90,
+ 321, 336, 285, 73, 285, 154, 285, 90,
+ 321, 336, 285, 73, 285, 154, 285, 315,
+ 319, 319, 76, 73, 285, 154, 285, 314,
+ 315, 319, 319, 76, 73, 285, 154, 285,
+ 285, 285, 285, 285, 285, 158, 285, 314,
+ 315, 316, 319, 76, 73, 285, 154, 285,
+ 285, 100, 285, 285, 285, 158, 285, 312,
+ 285, 337, 285, 321, 321, 285, 73, 285,
+ 154, 285, 285, 285, 285, 285, 312, 285,
+ 312, 285, 285, 285, 321, 321, 285, 73,
+ 285, 154, 285, 285, 285, 285, 285, 312,
+ 285, 312, 285, 285, 285, 321, 313, 285,
+ 73, 285, 154, 285, 285, 285, 285, 285,
+ 312, 285, 306, 307, 311, 311, 76, 73,
+ 285, 154, 285, 285, 285, 285, 285, 285,
+ 158, 285, 306, 307, 308, 311, 76, 73,
+ 285, 154, 285, 285, 102, 285, 285, 285,
+ 158, 285, 304, 285, 338, 285, 321, 321,
+ 285, 73, 285, 154, 285, 285, 285, 285,
+ 285, 304, 285, 304, 285, 285, 285, 321,
+ 321, 285, 73, 285, 154, 285, 285, 285,
+ 285, 285, 304, 285, 304, 285, 285, 285,
+ 321, 305, 285, 73, 285, 154, 285, 285,
+ 285, 285, 285, 304, 285, 298, 299, 303,
+ 303, 76, 73, 285, 154, 285, 285, 285,
+ 285, 285, 285, 158, 285, 298, 299, 300,
+ 303, 76, 73, 285, 154, 285, 285, 104,
+ 285, 285, 285, 158, 285, 296, 285, 339,
+ 285, 321, 321, 285, 73, 285, 154, 285,
+ 285, 285, 285, 285, 296, 285, 296, 285,
+ 285, 285, 321, 321, 285, 73, 285, 154,
+ 285, 285, 285, 285, 285, 296, 285, 296,
+ 285, 285, 285, 321, 297, 285, 73, 285,
+ 154, 285, 285, 285, 285, 285, 296, 285,
+ 290, 291, 295, 295, 76, 73, 285, 154,
+ 285, 285, 285, 285, 285, 285, 158, 285,
+ 290, 291, 292, 295, 76, 73, 285, 154,
+ 285, 285, 106, 285, 285, 285, 158, 285,
+ 288, 285, 340, 285, 321, 321, 285, 73,
+ 285, 154, 285, 285, 285, 285, 285, 288,
+ 285, 288, 285, 285, 285, 321, 321, 285,
+ 73, 285, 154, 285, 285, 285, 285, 285,
+ 288, 285, 288, 285, 285, 285, 321, 289,
+ 285, 73, 285, 154, 285, 285, 285, 285,
+ 285, 288, 285, 107, 75, 75, 76, 73,
+ 341, 341, 341, 341, 144, 341, 150, 151,
+ 287, 287, 76, 73, 285, 154, 285, 285,
+ 285, 285, 285, 285, 158, 285, 107, 75,
+ 75, 76, 73, 341, 343, 344, 345, 346,
+ 112, 109, 342, 347, 342, 342, 143, 342,
+ 342, 342, 348, 342, 349, 344, 346, 346,
+ 112, 109, 342, 347, 342, 342, 342, 342,
+ 342, 342, 348, 342, 344, 346, 346, 112,
+ 109, 342, 347, 342, 342, 342, 342, 342,
+ 342, 348, 342, 350, 342, 342, 342, 125,
+ 351, 342, 109, 342, 347, 342, 342, 342,
+ 342, 342, 350, 342, 352, 353, 354, 355,
+ 112, 109, 342, 347, 342, 342, 141, 342,
+ 342, 342, 348, 342, 356, 353, 357, 357,
+ 112, 109, 342, 347, 342, 342, 342, 342,
+ 342, 342, 348, 342, 353, 357, 357, 112,
+ 109, 342, 347, 342, 342, 342, 342, 342,
+ 342, 348, 342, 358, 342, 342, 342, 125,
+ 359, 342, 109, 342, 347, 342, 342, 342,
+ 342, 342, 358, 342, 360, 361, 362, 363,
+ 112, 109, 342, 347, 342, 342, 139, 342,
+ 342, 342, 348, 342, 364, 361, 365, 365,
+ 112, 109, 342, 347, 342, 342, 342, 342,
+ 342, 342, 348, 342, 361, 365, 365, 112,
+ 109, 342, 347, 342, 342, 342, 342, 342,
+ 342, 348, 342, 366, 342, 342, 342, 125,
+ 367, 342, 109, 342, 347, 342, 342, 342,
+ 342, 342, 366, 342, 368, 369, 370, 371,
+ 112, 109, 342, 347, 342, 342, 137, 342,
+ 342, 342, 348, 342, 372, 369, 373, 373,
+ 112, 109, 342, 347, 342, 342, 342, 342,
+ 342, 342, 348, 342, 369, 373, 373, 112,
+ 109, 342, 347, 342, 342, 342, 342, 342,
+ 342, 348, 342, 374, 342, 342, 342, 125,
+ 375, 342, 109, 342, 347, 342, 342, 342,
+ 342, 342, 374, 342, 376, 377, 378, 379,
+ 112, 109, 342, 347, 342, 342, 135, 342,
+ 342, 342, 348, 342, 380, 377, 381, 381,
+ 112, 109, 342, 347, 342, 342, 342, 342,
+ 342, 342, 348, 342, 377, 381, 381, 112,
+ 109, 342, 347, 342, 342, 342, 342, 342,
+ 342, 348, 342, 125, 382, 342, 109, 342,
+ 347, 342, 383, 383, 342, 109, 342, 347,
+ 342, 384, 342, 342, 385, 342, 347, 342,
+ 347, 342, 386, 342, 387, 342, 384, 342,
+ 342, 342, 342, 347, 342, 125, 342, 383,
+ 383, 342, 109, 342, 347, 342, 383, 382,
+ 342, 109, 342, 347, 342, 388, 134, 389,
+ 390, 115, 109, 342, 347, 342, 134, 389,
+ 390, 115, 109, 342, 347, 342, 389, 389,
+ 115, 109, 342, 347, 342, 391, 131, 392,
+ 393, 118, 109, 342, 347, 342, 131, 392,
+ 393, 118, 109, 342, 347, 342, 392, 392,
+ 118, 109, 342, 347, 342, 394, 128, 395,
+ 396, 121, 109, 342, 347, 342, 128, 395,
+ 396, 121, 109, 342, 347, 342, 395, 395,
+ 121, 109, 342, 347, 342, 397, 125, 383,
+ 398, 342, 109, 342, 347, 342, 125, 383,
+ 398, 342, 109, 342, 347, 342, 377, 381,
+ 381, 112, 109, 342, 347, 342, 376, 377,
+ 381, 381, 112, 109, 342, 347, 342, 342,
+ 342, 342, 342, 342, 348, 342, 376, 377,
+ 378, 381, 112, 109, 342, 347, 342, 342,
+ 135, 342, 342, 342, 348, 342, 374, 342,
+ 399, 342, 383, 383, 342, 109, 342, 347,
+ 342, 342, 342, 342, 342, 374, 342, 374,
+ 342, 342, 342, 383, 383, 342, 109, 342,
+ 347, 342, 342, 342, 342, 342, 374, 342,
+ 374, 342, 342, 342, 383, 375, 342, 109,
+ 342, 347, 342, 342, 342, 342, 342, 374,
+ 342, 368, 369, 373, 373, 112, 109, 342,
+ 347, 342, 342, 342, 342, 342, 342, 348,
+ 342, 368, 369, 370, 373, 112, 109, 342,
+ 347, 342, 342, 137, 342, 342, 342, 348,
+ 342, 366, 342, 400, 342, 383, 383, 342,
+ 109, 342, 347, 342, 342, 342, 342, 342,
+ 366, 342, 366, 342, 342, 342, 383, 383,
+ 342, 109, 342, 347, 342, 342, 342, 342,
+ 342, 366, 342, 366, 342, 342, 342, 383,
+ 367, 342, 109, 342, 347, 342, 342, 342,
+ 342, 342, 366, 342, 360, 361, 365, 365,
+ 112, 109, 342, 347, 342, 342, 342, 342,
+ 342, 342, 348, 342, 360, 361, 362, 365,
+ 112, 109, 342, 347, 342, 342, 139, 342,
+ 342, 342, 348, 342, 358, 342, 401, 342,
+ 383, 383, 342, 109, 342, 347, 342, 342,
+ 342, 342, 342, 358, 342, 358, 342, 342,
+ 342, 383, 383, 342, 109, 342, 347, 342,
+ 342, 342, 342, 342, 358, 342, 358, 342,
+ 342, 342, 383, 359, 342, 109, 342, 347,
+ 342, 342, 342, 342, 342, 358, 342, 352,
+ 353, 357, 357, 112, 109, 342, 347, 342,
+ 342, 342, 342, 342, 342, 348, 342, 352,
+ 353, 354, 357, 112, 109, 342, 347, 342,
+ 342, 141, 342, 342, 342, 348, 342, 350,
+ 342, 402, 342, 383, 383, 342, 109, 342,
+ 347, 342, 342, 342, 342, 342, 350, 342,
+ 350, 342, 342, 342, 383, 383, 342, 109,
+ 342, 347, 342, 342, 342, 342, 342, 350,
+ 342, 350, 342, 342, 342, 383, 351, 342,
+ 109, 342, 347, 342, 342, 342, 342, 342,
+ 350, 342, 343, 344, 346, 346, 112, 109,
+ 342, 347, 342, 342, 342, 342, 342, 342,
+ 348, 342, 148, 149, 150, 151, 403, 287,
+ 76, 73, 285, 154, 155, 155, 144, 285,
+ 285, 148, 158, 285, 162, 404, 164, 165,
+ 4, 1, 161, 166, 161, 161, 35, 161,
+ 161, 161, 167, 161, 170, 149, 150, 151,
+ 405, 406, 76, 407, 161, 408, 161, 155,
+ 144, 161, 161, 170, 158, 161, 107, 409,
+ 409, 76, 407, 161, 166, 161, 161, 144,
+ 161, 410, 161, 161, 411, 161, 408, 161,
+ 408, 161, 412, 161, 207, 161, 410, 161,
+ 161, 161, 161, 408, 161, 170, 161, 222,
+ 107, 409, 409, 76, 407, 161, 166, 161,
+ 161, 161, 161, 161, 170, 161, 414, 413,
+ 415, 415, 413, 146, 413, 416, 413, 415,
+ 415, 413, 146, 413, 416, 413, 417, 413,
+ 413, 418, 413, 416, 413, 416, 413, 419,
+ 413, 420, 413, 417, 413, 413, 413, 413,
+ 416, 413, 148, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 155, 341, 341, 341,
+ 341, 148, 341, 0
};
static const short _indic_syllable_machine_trans_targs[] = {
138, 160, 166, 2, 167, 3, 5, 170,
6, 8, 173, 9, 11, 176, 12, 14,
15, 159, 17, 18, 175, 20, 21, 172,
- 23, 24, 169, 178, 182, 183, 187, 188,
- 192, 193, 197, 198, 138, 221, 227, 36,
- 228, 37, 39, 231, 40, 42, 234, 43,
- 45, 237, 46, 48, 49, 220, 51, 52,
- 236, 54, 55, 233, 57, 58, 230, 239,
- 243, 244, 248, 249, 253, 254, 258, 260,
- 138, 281, 287, 70, 288, 138, 71, 73,
- 291, 74, 76, 294, 77, 79, 297, 80,
- 82, 83, 280, 85, 86, 296, 88, 89,
- 293, 91, 92, 290, 299, 303, 304, 308,
- 309, 313, 314, 318, 138, 343, 349, 103,
- 350, 104, 106, 353, 107, 109, 356, 110,
- 112, 359, 113, 115, 116, 342, 118, 119,
- 358, 121, 122, 355, 124, 125, 352, 361,
- 365, 366, 370, 371, 375, 376, 380, 381,
- 320, 138, 394, 138, 139, 200, 261, 263,
- 319, 321, 283, 322, 382, 383, 392, 399,
- 138, 140, 142, 33, 199, 162, 141, 32,
- 143, 195, 144, 146, 31, 194, 145, 30,
- 147, 190, 148, 150, 29, 189, 149, 28,
- 151, 185, 152, 154, 27, 184, 153, 26,
- 155, 180, 156, 158, 25, 179, 157, 1,
- 165, 0, 161, 164, 163, 138, 168, 4,
- 22, 171, 7, 19, 174, 10, 16, 177,
- 13, 181, 186, 191, 196, 138, 201, 203,
- 67, 259, 223, 202, 66, 204, 256, 205,
- 207, 65, 255, 206, 64, 208, 251, 209,
- 211, 63, 250, 210, 62, 212, 246, 213,
- 215, 61, 245, 214, 60, 216, 241, 217,
- 219, 59, 240, 218, 35, 226, 34, 222,
- 225, 224, 138, 229, 38, 56, 232, 41,
- 53, 235, 44, 50, 238, 47, 242, 247,
- 252, 257, 138, 262, 100, 264, 316, 265,
- 267, 99, 315, 266, 98, 268, 311, 269,
- 271, 97, 310, 270, 96, 272, 306, 273,
- 275, 95, 305, 274, 94, 276, 301, 277,
- 279, 93, 300, 278, 69, 286, 68, 282,
- 285, 284, 138, 289, 72, 90, 292, 75,
- 87, 295, 78, 84, 298, 81, 302, 307,
- 312, 317, 138, 138, 323, 325, 134, 133,
- 345, 324, 326, 378, 327, 329, 132, 377,
- 328, 131, 330, 373, 331, 333, 130, 372,
- 332, 129, 334, 368, 335, 337, 128, 367,
- 336, 127, 338, 363, 339, 341, 126, 362,
- 340, 102, 348, 101, 344, 347, 346, 138,
- 351, 105, 123, 354, 108, 120, 357, 111,
- 117, 360, 114, 364, 369, 374, 379, 135,
- 384, 385, 391, 386, 388, 136, 387, 390,
- 389, 138, 393, 137, 396, 395, 398, 397,
- 138
+ 23, 24, 169, 179, 183, 184, 188, 189,
+ 193, 194, 198, 199, 138, 222, 228, 36,
+ 229, 37, 39, 232, 40, 42, 235, 43,
+ 45, 238, 46, 48, 49, 221, 51, 52,
+ 237, 54, 55, 234, 57, 58, 231, 241,
+ 245, 246, 250, 251, 255, 256, 260, 262,
+ 138, 283, 289, 70, 290, 138, 71, 73,
+ 293, 74, 76, 296, 77, 79, 299, 80,
+ 82, 83, 282, 85, 86, 298, 88, 89,
+ 295, 91, 92, 292, 302, 306, 307, 311,
+ 312, 316, 317, 321, 138, 346, 352, 103,
+ 353, 104, 106, 356, 107, 109, 359, 110,
+ 112, 362, 113, 115, 116, 345, 118, 119,
+ 361, 121, 122, 358, 124, 125, 355, 365,
+ 369, 370, 374, 375, 379, 380, 384, 385,
+ 323, 138, 398, 138, 139, 201, 263, 265,
+ 322, 324, 285, 325, 386, 387, 301, 396,
+ 403, 138, 140, 142, 33, 200, 162, 178,
+ 141, 32, 143, 196, 144, 146, 31, 195,
+ 145, 30, 147, 191, 148, 150, 29, 190,
+ 149, 28, 151, 186, 152, 154, 27, 185,
+ 153, 26, 155, 181, 156, 158, 25, 180,
+ 157, 1, 165, 0, 161, 164, 163, 138,
+ 168, 4, 22, 171, 7, 19, 174, 10,
+ 16, 177, 13, 182, 187, 192, 197, 138,
+ 202, 204, 67, 261, 224, 240, 203, 66,
+ 205, 258, 206, 208, 65, 257, 207, 64,
+ 209, 253, 210, 212, 63, 252, 211, 62,
+ 213, 248, 214, 216, 61, 247, 215, 60,
+ 217, 243, 218, 220, 59, 242, 219, 35,
+ 227, 34, 223, 226, 225, 138, 230, 38,
+ 56, 233, 41, 53, 236, 44, 50, 239,
+ 47, 244, 249, 254, 259, 138, 264, 100,
+ 266, 319, 267, 269, 99, 318, 268, 98,
+ 270, 314, 271, 273, 97, 313, 272, 96,
+ 274, 309, 275, 277, 95, 308, 276, 94,
+ 278, 304, 279, 281, 93, 303, 280, 69,
+ 288, 68, 284, 287, 286, 138, 291, 72,
+ 90, 294, 75, 87, 297, 78, 84, 300,
+ 81, 305, 310, 315, 320, 138, 138, 326,
+ 328, 134, 133, 348, 364, 327, 329, 382,
+ 330, 332, 132, 381, 331, 131, 333, 377,
+ 334, 336, 130, 376, 335, 129, 337, 372,
+ 338, 340, 128, 371, 339, 127, 341, 367,
+ 342, 344, 126, 366, 343, 102, 351, 101,
+ 347, 350, 349, 138, 354, 105, 123, 357,
+ 108, 120, 360, 111, 117, 363, 114, 368,
+ 373, 378, 383, 135, 388, 389, 395, 390,
+ 392, 136, 391, 394, 393, 138, 397, 137,
+ 400, 399, 402, 401, 138
};
static const char _indic_syllable_machine_trans_actions[] = {
2, 0, 0, 2, 0, 0, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
6, 8, 0, 11, 2, 2, 6, 0,
- 12, 12, 0, 2, 6, 2, 2, 0,
- 13, 2, 0, 0, 2, 0, 2, 0,
+ 12, 12, 0, 2, 6, 2, 6, 2,
+ 0, 13, 2, 0, 0, 2, 0, 2,
+ 2, 0, 2, 2, 2, 0, 0, 2,
+ 2, 0, 2, 2, 2, 0, 0, 2,
+ 2, 0, 2, 2, 2, 0, 0, 2,
+ 2, 0, 2, 2, 2, 0, 0, 2,
+ 2, 0, 2, 0, 0, 0, 0, 14,
+ 2, 0, 0, 2, 0, 0, 2, 0,
+ 0, 2, 0, 2, 2, 2, 2, 15,
+ 2, 0, 0, 2, 0, 2, 2, 0,
2, 2, 2, 0, 0, 2, 2, 0,
2, 2, 2, 0, 0, 2, 2, 0,
2, 2, 2, 0, 0, 2, 2, 0,
2, 2, 2, 0, 0, 2, 2, 0,
- 2, 0, 0, 0, 0, 14, 2, 0,
+ 2, 0, 0, 0, 0, 16, 2, 0,
0, 2, 0, 0, 2, 0, 0, 2,
- 0, 2, 2, 2, 2, 15, 2, 0,
- 0, 2, 0, 2, 0, 2, 2, 2,
- 0, 0, 2, 2, 0, 2, 2, 2,
- 0, 0, 2, 2, 0, 2, 2, 2,
- 0, 0, 2, 2, 0, 2, 2, 2,
- 0, 0, 2, 2, 0, 2, 0, 0,
- 0, 0, 16, 2, 0, 0, 2, 0,
- 0, 2, 0, 0, 2, 0, 2, 2,
- 2, 2, 17, 6, 0, 6, 2, 6,
- 0, 0, 6, 6, 0, 6, 2, 6,
- 0, 0, 6, 6, 0, 6, 2, 6,
- 0, 0, 6, 6, 0, 6, 2, 6,
- 0, 0, 6, 6, 0, 2, 0, 0,
- 0, 0, 18, 2, 0, 0, 2, 0,
- 0, 2, 0, 0, 2, 0, 2, 2,
- 2, 2, 19, 20, 2, 0, 0, 0,
- 0, 2, 2, 2, 2, 0, 0, 2,
- 2, 0, 2, 2, 2, 0, 0, 2,
- 2, 0, 2, 2, 2, 0, 0, 2,
- 2, 0, 2, 2, 2, 0, 0, 2,
- 2, 0, 2, 0, 0, 0, 0, 21,
- 2, 0, 0, 2, 0, 0, 2, 0,
- 0, 2, 0, 2, 2, 2, 2, 0,
- 0, 22, 22, 0, 0, 0, 0, 0,
- 0, 23, 2, 0, 0, 0, 0, 0,
- 24
+ 0, 2, 2, 2, 2, 17, 6, 0,
+ 6, 2, 6, 0, 0, 6, 6, 0,
+ 6, 2, 6, 0, 0, 6, 6, 0,
+ 6, 2, 6, 0, 0, 6, 6, 0,
+ 6, 2, 6, 0, 0, 6, 6, 0,
+ 2, 0, 0, 0, 0, 18, 2, 0,
+ 0, 2, 0, 0, 2, 0, 0, 2,
+ 0, 2, 2, 2, 2, 19, 20, 2,
+ 0, 0, 0, 0, 2, 2, 2, 2,
+ 2, 0, 0, 2, 2, 0, 2, 2,
+ 2, 0, 0, 2, 2, 0, 2, 2,
+ 2, 0, 0, 2, 2, 0, 2, 2,
+ 2, 0, 0, 2, 2, 0, 2, 0,
+ 0, 0, 0, 21, 2, 0, 0, 2,
+ 0, 0, 2, 0, 0, 2, 0, 2,
+ 2, 2, 2, 0, 0, 22, 22, 0,
+ 0, 0, 0, 0, 0, 23, 2, 0,
+ 0, 0, 0, 0, 24
};
static const char _indic_syllable_machine_to_state_actions[] = {
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0
};
static const char _indic_syllable_machine_from_state_actions[] = {
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0
};
static const short _indic_syllable_machine_eof_trans[] = {
109, 109, 109, 109, 109, 109, 109, 109,
109, 109, 109, 109, 109, 109, 109, 109,
109, 109, 109, 109, 109, 109, 109, 73,
- 1, 146, 0, 161, 161, 161, 161, 161,
- 161, 161, 161, 161, 161, 161, 161, 161,
- 161, 161, 161, 161, 161, 161, 161, 161,
- 161, 161, 161, 161, 161, 161, 161, 161,
- 161, 161, 161, 161, 161, 161, 161, 161,
- 161, 161, 161, 161, 161, 161, 161, 161,
- 161, 161, 161, 161, 161, 161, 161, 161,
- 161, 161, 161, 161, 161, 161, 161, 161,
- 222, 222, 222, 222, 222, 222, 222, 222,
- 222, 222, 222, 222, 222, 222, 222, 222,
- 222, 222, 222, 222, 222, 222, 222, 222,
- 222, 222, 222, 222, 222, 222, 222, 222,
- 222, 222, 222, 222, 222, 222, 222, 222,
- 222, 222, 222, 222, 222, 222, 222, 222,
- 222, 222, 222, 222, 222, 222, 222, 222,
- 222, 222, 222, 222, 222, 283, 283, 283,
- 283, 283, 283, 283, 283, 283, 283, 283,
- 283, 283, 283, 283, 283, 283, 283, 283,
- 283, 283, 283, 283, 283, 283, 283, 283,
- 283, 283, 283, 283, 283, 283, 283, 283,
- 283, 283, 283, 283, 283, 283, 283, 283,
- 283, 283, 283, 283, 283, 283, 283, 283,
- 283, 283, 283, 283, 283, 283, 283, 339,
- 283, 339, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 283, 161,
- 161, 161, 161, 161, 161, 161, 161, 161,
- 410, 410, 410, 410, 410, 410, 410, 339
+ 1, 146, 0, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 224, 224, 224, 224, 224, 224, 224,
+ 224, 224, 224, 224, 224, 224, 224, 224,
+ 224, 224, 224, 224, 224, 224, 224, 224,
+ 224, 224, 224, 224, 224, 224, 224, 224,
+ 224, 224, 224, 224, 224, 224, 224, 224,
+ 224, 224, 224, 224, 224, 224, 224, 224,
+ 224, 224, 224, 224, 224, 224, 224, 224,
+ 224, 224, 224, 224, 224, 224, 224, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286,
+ 286, 286, 342, 286, 342, 343, 343, 343,
+ 343, 343, 343, 343, 343, 343, 343, 343,
+ 343, 343, 343, 343, 343, 343, 343, 343,
+ 343, 343, 343, 343, 343, 343, 343, 343,
+ 343, 343, 343, 343, 343, 343, 343, 343,
+ 343, 343, 343, 343, 343, 343, 343, 343,
+ 343, 343, 343, 343, 343, 343, 343, 343,
+ 343, 343, 343, 343, 343, 343, 343, 343,
+ 343, 343, 286, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 414, 414, 414, 414,
+ 414, 414, 414, 342
};
static const int indic_syllable_machine_start = 138;
-#line 92 "hb-ot-shape-complex-indic-machine.rl"
+#line 93 "hb-ot-shape-complex-indic-machine.rl"
#define found_syllable(syllable_type) \
int cs;
hb_glyph_info_t *info = buffer->info;
-#line 934 "hb-ot-shape-complex-indic-machine.hh"
+#line 1014 "hb-ot-shape-complex-indic-machine.hh"
{
cs = indic_syllable_machine_start;
ts = 0;
act = 0;
}
-#line 112 "hb-ot-shape-complex-indic-machine.rl"
+#line 113 "hb-ot-shape-complex-indic-machine.rl"
p = 0;
unsigned int syllable_serial = 1;
-#line 950 "hb-ot-shape-complex-indic-machine.hh"
+#line 1030 "hb-ot-shape-complex-indic-machine.hh"
{
int _slen;
int _trans;
#line 1 "NONE"
{ts = p;}
break;
-#line 964 "hb-ot-shape-complex-indic-machine.hh"
+#line 1044 "hb-ot-shape-complex-indic-machine.hh"
}
_keys = _indic_syllable_machine_trans_keys + (cs<<1);
{te = p+1;}
break;
case 14:
-#line 83 "hb-ot-shape-complex-indic-machine.rl"
+#line 84 "hb-ot-shape-complex-indic-machine.rl"
{te = p+1;{ found_syllable (consonant_syllable); }}
break;
case 16:
-#line 84 "hb-ot-shape-complex-indic-machine.rl"
+#line 85 "hb-ot-shape-complex-indic-machine.rl"
{te = p+1;{ found_syllable (vowel_syllable); }}
break;
case 21:
-#line 85 "hb-ot-shape-complex-indic-machine.rl"
+#line 86 "hb-ot-shape-complex-indic-machine.rl"
{te = p+1;{ found_syllable (standalone_cluster); }}
break;
case 24:
-#line 86 "hb-ot-shape-complex-indic-machine.rl"
+#line 87 "hb-ot-shape-complex-indic-machine.rl"
{te = p+1;{ found_syllable (symbol_cluster); }}
break;
case 18:
-#line 87 "hb-ot-shape-complex-indic-machine.rl"
+#line 88 "hb-ot-shape-complex-indic-machine.rl"
{te = p+1;{ found_syllable (broken_cluster); }}
break;
case 11:
-#line 88 "hb-ot-shape-complex-indic-machine.rl"
+#line 89 "hb-ot-shape-complex-indic-machine.rl"
{te = p+1;{ found_syllable (non_indic_cluster); }}
break;
case 13:
-#line 83 "hb-ot-shape-complex-indic-machine.rl"
+#line 84 "hb-ot-shape-complex-indic-machine.rl"
{te = p;p--;{ found_syllable (consonant_syllable); }}
break;
case 15:
-#line 84 "hb-ot-shape-complex-indic-machine.rl"
+#line 85 "hb-ot-shape-complex-indic-machine.rl"
{te = p;p--;{ found_syllable (vowel_syllable); }}
break;
case 20:
-#line 85 "hb-ot-shape-complex-indic-machine.rl"
+#line 86 "hb-ot-shape-complex-indic-machine.rl"
{te = p;p--;{ found_syllable (standalone_cluster); }}
break;
case 23:
-#line 86 "hb-ot-shape-complex-indic-machine.rl"
+#line 87 "hb-ot-shape-complex-indic-machine.rl"
{te = p;p--;{ found_syllable (symbol_cluster); }}
break;
case 17:
-#line 87 "hb-ot-shape-complex-indic-machine.rl"
+#line 88 "hb-ot-shape-complex-indic-machine.rl"
{te = p;p--;{ found_syllable (broken_cluster); }}
break;
case 19:
-#line 88 "hb-ot-shape-complex-indic-machine.rl"
+#line 89 "hb-ot-shape-complex-indic-machine.rl"
{te = p;p--;{ found_syllable (non_indic_cluster); }}
break;
case 1:
-#line 83 "hb-ot-shape-complex-indic-machine.rl"
+#line 84 "hb-ot-shape-complex-indic-machine.rl"
{{p = ((te))-1;}{ found_syllable (consonant_syllable); }}
break;
case 3:
-#line 84 "hb-ot-shape-complex-indic-machine.rl"
+#line 85 "hb-ot-shape-complex-indic-machine.rl"
{{p = ((te))-1;}{ found_syllable (vowel_syllable); }}
break;
case 7:
-#line 85 "hb-ot-shape-complex-indic-machine.rl"
+#line 86 "hb-ot-shape-complex-indic-machine.rl"
{{p = ((te))-1;}{ found_syllable (standalone_cluster); }}
break;
case 8:
-#line 86 "hb-ot-shape-complex-indic-machine.rl"
+#line 87 "hb-ot-shape-complex-indic-machine.rl"
{{p = ((te))-1;}{ found_syllable (symbol_cluster); }}
break;
case 4:
-#line 87 "hb-ot-shape-complex-indic-machine.rl"
+#line 88 "hb-ot-shape-complex-indic-machine.rl"
{{p = ((te))-1;}{ found_syllable (broken_cluster); }}
break;
case 5:
case 22:
#line 1 "NONE"
{te = p+1;}
-#line 83 "hb-ot-shape-complex-indic-machine.rl"
+#line 84 "hb-ot-shape-complex-indic-machine.rl"
{act = 1;}
break;
case 6:
#line 1 "NONE"
{te = p+1;}
-#line 87 "hb-ot-shape-complex-indic-machine.rl"
+#line 88 "hb-ot-shape-complex-indic-machine.rl"
{act = 5;}
break;
case 12:
#line 1 "NONE"
{te = p+1;}
-#line 88 "hb-ot-shape-complex-indic-machine.rl"
+#line 89 "hb-ot-shape-complex-indic-machine.rl"
{act = 6;}
break;
-#line 1087 "hb-ot-shape-complex-indic-machine.hh"
+#line 1167 "hb-ot-shape-complex-indic-machine.hh"
}
_again:
#line 1 "NONE"
{ts = 0;}
break;
-#line 1096 "hb-ot-shape-complex-indic-machine.hh"
+#line 1176 "hb-ot-shape-complex-indic-machine.hh"
}
if ( ++p != pe )
}
-#line 120 "hb-ot-shape-complex-indic-machine.rl"
+#line 121 "hb-ot-shape-complex-indic-machine.rl"
}
RS = 13;
Repha = 15;
Ra = 16;
+CM = 17;
Symbol= 18;
CS = 19;
syllable_tail = (z?.SM.SM?.ZWNJ?)? A{0,3}?;
halant_group = (z?.H.(ZWJ.N?)?);
final_halant_group = halant_group | H.ZWNJ;
+medial_group = CM?;
halant_or_matra_group = (final_halant_group | matra_group{0,4});
-complex_syllable_tail = (halant_group.cn){0,4} halant_or_matra_group syllable_tail;
-
+complex_syllable_tail = (halant_group.cn){0,4} medial_group halant_or_matra_group syllable_tail;
consonant_syllable = (Repha|CS)? cn complex_syllable_tail;
vowel_syllable = reph? V.n? (ZWJ | complex_syllable_tail);
*
* on files with these headers:
*
- * # IndicSyllabicCategory-11.0.0.txt
- * # Date: 2018-05-21, 18:33:00 GMT [KW, RP]
- * # IndicPositionalCategory-11.0.0.txt
- * # Date: 2018-02-05, 16:21:00 GMT [KW, RP]
- * # Blocks-11.0.0.txt
- * # Date: 2017-10-16, 24:39:00 GMT [KW]
+ * # IndicSyllabicCategory-12.0.0.txt
+ * # Date: 2019-01-31, 02:26:00 GMT [KW, RP]
+ * # IndicPositionalCategory-12.0.0.txt
+ * # Date: 2019-01-31, 02:26:00 GMT [KW, RP]
+ * # Blocks-12.0.0.txt
+ * # Date: 2018-07-30, 19:40:00 GMT [KW]
*/
#include "hb-ot-shape-complex-indic.hh"
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-macros"
-#define ISC_A INDIC_SYLLABIC_CATEGORY_AVAGRAHA /* 16 chars; Avagraha */
-#define ISC_Bi INDIC_SYLLABIC_CATEGORY_BINDU /* 83 chars; Bindu */
+#define ISC_A INDIC_SYLLABIC_CATEGORY_AVAGRAHA /* 17 chars; Avagraha */
+#define ISC_Bi INDIC_SYLLABIC_CATEGORY_BINDU /* 86 chars; Bindu */
#define ISC_BJN INDIC_SYLLABIC_CATEGORY_BRAHMI_JOINING_NUMBER /* 20 chars; Brahmi_Joining_Number */
-#define ISC_Ca INDIC_SYLLABIC_CATEGORY_CANTILLATION_MARK /* 58 chars; Cantillation_Mark */
-#define ISC_C INDIC_SYLLABIC_CATEGORY_CONSONANT /* 2110 chars; Consonant */
-#define ISC_CD INDIC_SYLLABIC_CATEGORY_CONSONANT_DEAD /* 10 chars; Consonant_Dead */
+#define ISC_Ca INDIC_SYLLABIC_CATEGORY_CANTILLATION_MARK /* 59 chars; Cantillation_Mark */
+#define ISC_C INDIC_SYLLABIC_CATEGORY_CONSONANT /* 2160 chars; Consonant */
+#define ISC_CD INDIC_SYLLABIC_CATEGORY_CONSONANT_DEAD /* 12 chars; Consonant_Dead */
#define ISC_CF INDIC_SYLLABIC_CATEGORY_CONSONANT_FINAL /* 67 chars; Consonant_Final */
#define ISC_CHL INDIC_SYLLABIC_CATEGORY_CONSONANT_HEAD_LETTER /* 5 chars; Consonant_Head_Letter */
#define ISC_CIP INDIC_SYLLABIC_CATEGORY_CONSONANT_INITIAL_POSTFIXED /* 1 chars; Consonant_Initial_Postfixed */
#define ISC_CK INDIC_SYLLABIC_CATEGORY_CONSONANT_KILLER /* 2 chars; Consonant_Killer */
-#define ISC_CM INDIC_SYLLABIC_CATEGORY_CONSONANT_MEDIAL /* 28 chars; Consonant_Medial */
-#define ISC_CP INDIC_SYLLABIC_CATEGORY_CONSONANT_PLACEHOLDER /* 21 chars; Consonant_Placeholder */
+#define ISC_CM INDIC_SYLLABIC_CATEGORY_CONSONANT_MEDIAL /* 29 chars; Consonant_Medial */
+#define ISC_CP INDIC_SYLLABIC_CATEGORY_CONSONANT_PLACEHOLDER /* 22 chars; Consonant_Placeholder */
#define ISC_CPR INDIC_SYLLABIC_CATEGORY_CONSONANT_PRECEDING_REPHA /* 2 chars; Consonant_Preceding_Repha */
-#define ISC_CPrf INDIC_SYLLABIC_CATEGORY_CONSONANT_PREFIXED /* 7 chars; Consonant_Prefixed */
-#define ISC_CS INDIC_SYLLABIC_CATEGORY_CONSONANT_SUBJOINED /* 95 chars; Consonant_Subjoined */
+#define ISC_CPrf INDIC_SYLLABIC_CATEGORY_CONSONANT_PREFIXED /* 9 chars; Consonant_Prefixed */
+#define ISC_CS INDIC_SYLLABIC_CATEGORY_CONSONANT_SUBJOINED /* 94 chars; Consonant_Subjoined */
#define ISC_CSR INDIC_SYLLABIC_CATEGORY_CONSONANT_SUCCEEDING_REPHA /* 4 chars; Consonant_Succeeding_Repha */
#define ISC_CWS INDIC_SYLLABIC_CATEGORY_CONSONANT_WITH_STACKER /* 6 chars; Consonant_With_Stacker */
#define ISC_GM INDIC_SYLLABIC_CATEGORY_GEMINATION_MARK /* 3 chars; Gemination_Mark */
#define ISC_ML INDIC_SYLLABIC_CATEGORY_MODIFYING_LETTER /* 1 chars; Modifying_Letter */
#define ISC_ZWNJ INDIC_SYLLABIC_CATEGORY_NON_JOINER /* 1 chars; Non_Joiner */
#define ISC_N INDIC_SYLLABIC_CATEGORY_NUKTA /* 30 chars; Nukta */
-#define ISC_Nd INDIC_SYLLABIC_CATEGORY_NUMBER /* 480 chars; Number */
+#define ISC_Nd INDIC_SYLLABIC_CATEGORY_NUMBER /* 481 chars; Number */
#define ISC_NJ INDIC_SYLLABIC_CATEGORY_NUMBER_JOINER /* 1 chars; Number_Joiner */
#define ISC_x INDIC_SYLLABIC_CATEGORY_OTHER /* 1 chars; Other */
#define ISC_PK INDIC_SYLLABIC_CATEGORY_PURE_KILLER /* 21 chars; Pure_Killer */
#define ISC_SM INDIC_SYLLABIC_CATEGORY_SYLLABLE_MODIFIER /* 25 chars; Syllable_Modifier */
#define ISC_TL INDIC_SYLLABIC_CATEGORY_TONE_LETTER /* 7 chars; Tone_Letter */
#define ISC_TM INDIC_SYLLABIC_CATEGORY_TONE_MARK /* 42 chars; Tone_Mark */
-#define ISC_V INDIC_SYLLABIC_CATEGORY_VIRAMA /* 25 chars; Virama */
-#define ISC_Vs INDIC_SYLLABIC_CATEGORY_VISARGA /* 36 chars; Visarga */
+#define ISC_V INDIC_SYLLABIC_CATEGORY_VIRAMA /* 27 chars; Virama */
+#define ISC_Vs INDIC_SYLLABIC_CATEGORY_VISARGA /* 35 chars; Visarga */
#define ISC_Vo INDIC_SYLLABIC_CATEGORY_VOWEL /* 30 chars; Vowel */
-#define ISC_M INDIC_SYLLABIC_CATEGORY_VOWEL_DEPENDENT /* 660 chars; Vowel_Dependent */
-#define ISC_VI INDIC_SYLLABIC_CATEGORY_VOWEL_INDEPENDENT /* 464 chars; Vowel_Independent */
+#define ISC_M INDIC_SYLLABIC_CATEGORY_VOWEL_DEPENDENT /* 673 chars; Vowel_Dependent */
+#define ISC_VI INDIC_SYLLABIC_CATEGORY_VOWEL_INDEPENDENT /* 476 chars; Vowel_Independent */
-#define IMC_B INDIC_MATRA_CATEGORY_BOTTOM /* 340 chars; Bottom */
+#define IMC_B INDIC_MATRA_CATEGORY_BOTTOM /* 349 chars; Bottom */
#define IMC_BL INDIC_MATRA_CATEGORY_BOTTOM_AND_LEFT /* 1 chars; Bottom_And_Left */
#define IMC_BR INDIC_MATRA_CATEGORY_BOTTOM_AND_RIGHT /* 2 chars; Bottom_And_Right */
-#define IMC_L INDIC_MATRA_CATEGORY_LEFT /* 59 chars; Left */
+#define IMC_L INDIC_MATRA_CATEGORY_LEFT /* 61 chars; Left */
#define IMC_LR INDIC_MATRA_CATEGORY_LEFT_AND_RIGHT /* 21 chars; Left_And_Right */
#define IMC_x INDIC_MATRA_CATEGORY_NOT_APPLICABLE /* 1 chars; Not_Applicable */
#define IMC_O INDIC_MATRA_CATEGORY_OVERSTRUCK /* 10 chars; Overstruck */
-#define IMC_R INDIC_MATRA_CATEGORY_RIGHT /* 276 chars; Right */
-#define IMC_T INDIC_MATRA_CATEGORY_TOP /* 393 chars; Top */
+#define IMC_R INDIC_MATRA_CATEGORY_RIGHT /* 281 chars; Right */
+#define IMC_T INDIC_MATRA_CATEGORY_TOP /* 398 chars; Top */
#define IMC_TB INDIC_MATRA_CATEGORY_TOP_AND_BOTTOM /* 10 chars; Top_And_Bottom */
#define IMC_TBR INDIC_MATRA_CATEGORY_TOP_AND_BOTTOM_AND_RIGHT /* 1 chars; Top_And_Bottom_And_Right */
#define IMC_TL INDIC_MATRA_CATEGORY_TOP_AND_LEFT /* 6 chars; Top_And_Left */
/* 0A38 */ _(C,x), _(C,x), _(x,x), _(x,x), _(N,B), _(x,x), _(M,R), _(M,L),
/* 0A40 */ _(M,R), _(M,B), _(M,B), _(x,x), _(x,x), _(x,x), _(x,x), _(M,T),
/* 0A48 */ _(M,T), _(x,x), _(x,x), _(M,T), _(M,T), _(V,B), _(x,x), _(x,x),
- /* 0A50 */ _(x,x), _(Ca,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
+ /* 0A50 */ _(x,x), _(Ca,B), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
/* 0A58 */ _(x,x), _(C,x), _(C,x), _(C,x), _(C,x), _(x,x), _(C,x), _(x,x),
/* 0A60 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(Nd,x), _(Nd,x),
/* 0A68 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
/* Kannada */
- /* 0C80 */ _(x,x), _(Bi,T), _(Bi,R), _(Vs,R), _(x,x), _(VI,x), _(VI,x), _(VI,x),
+ /* 0C80 */ _(Bi,x), _(Bi,T), _(Bi,R), _(Vs,R), _(x,x), _(VI,x), _(VI,x), _(VI,x),
/* 0C88 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(x,x), _(VI,x), _(VI,x),
/* 0C90 */ _(VI,x), _(x,x), _(VI,x), _(VI,x), _(VI,x), _(C,x), _(C,x), _(C,x),
/* 0C98 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
/* 1CD8 */ _(Ca,B), _(Ca,B), _(Ca,T), _(Ca,T), _(Ca,B), _(Ca,B), _(Ca,B), _(Ca,B),
/* 1CE0 */ _(Ca,T), _(Ca,R), _(x,O), _(x,O), _(x,O), _(x,O), _(x,O), _(x,O),
/* 1CE8 */ _(x,O), _(x,x), _(x,x), _(x,x), _(x,x), _(x,B), _(x,x), _(x,x),
- /* 1CF0 */ _(x,x), _(x,x), _(Vs,x), _(Vs,x), _(Ca,T),_(CWS,x),_(CWS,x), _(Ca,R),
- /* 1CF8 */ _(Ca,x), _(Ca,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
+ /* 1CF0 */ _(x,x), _(x,x), _(CD,x), _(CD,x), _(Ca,T),_(CWS,x),_(CWS,x), _(Ca,R),
+ /* 1CF8 */ _(Ca,x), _(Ca,x), _(CP,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
#define indic_offset_0x2008u 1656
hb_face_t *face) const
{
for (unsigned int i = 0; i < count; i++)
- if (hb_ot_layout_lookup_would_substitute_fast (face, lookups[i].index, glyphs, glyphs_count, zero_context))
+ if (hb_ot_layout_lookup_would_substitute (face, lookups[i].index, glyphs, glyphs_count, zero_context))
return true;
return false;
}
indic_position_t last_pos = POS_START;
for (unsigned int i = start; i < end; i++)
{
- if ((FLAG_UNSAFE (info[i].indic_category()) & (JOINER_FLAGS | FLAG (OT_N) | FLAG (OT_RS) | FLAG (OT_H))))
+ if ((FLAG_UNSAFE (info[i].indic_category()) & (JOINER_FLAGS | FLAG (OT_N) | FLAG (OT_RS) | MEDIAL_FLAGS | FLAG (OT_H))))
{
info[i].indic_position() = last_pos;
if (unlikely (info[i].indic_category() == OT_H &&
hb_font_t *font,
hb_buffer_t *buffer)
{
+ if (unlikely (buffer->flags & HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE))
+ return;
+
/* Note: This loop is extra overhead, but should not be measurable.
* TODO Use a buffer scratch flag to remove the loop. */
bool has_broken_syllables = false;
goto search;
}
}
- /* -> If ZWNJ follows this halant, position is moved after it. */
- if (info[new_pos + 1].indic_category() == OT_ZWNJ)
- new_pos++;
+ /* -> If ZWNJ follows this halant, position is moved after it.
+ *
+ * IMPLEMENTATION NOTES:
+ *
+ * This is taken care of by the state-machine. A Halant,ZWNJ is a terminating
+ * sequence for a consonant syllable; any pre-base matras occurring after it
+ * will belong to the subsequent syllable.
+ */
}
}
else
OT_Coeng = 14, /* Khmer-style Virama. */
OT_Repha = 15, /* Atomically-encoded logical or visual repha. */
OT_Ra = 16,
- OT_CM = 17, /* Consonant-Medial; Unused by Indic shaper. */
+ OT_CM = 17, /* Consonant-Medial. */
OT_Symbol = 18, /* Avagraha, etc that take marks (SM,A,VD). */
OT_CS = 19
};
+#define MEDIAL_FLAGS (FLAG (OT_CM))
+
/* Note:
*
* We treat Vowels and placeholders as if they were consonants. This is safe because Vowels
* cannot happen in a consonant syllable. The plus side however is, we can call the
* consonant syllable logic from the vowel syllable function and get it all right! */
-#define CONSONANT_FLAGS (FLAG (OT_C) | FLAG (OT_CS) | FLAG (OT_Ra) | FLAG (OT_V) | FLAG (OT_PLACEHOLDER) | FLAG (OT_DOTTEDCIRCLE))
+#define CONSONANT_FLAGS (FLAG (OT_C) | FLAG (OT_CS) | FLAG (OT_Ra) | MEDIAL_FLAGS | FLAG (OT_V) | FLAG (OT_PLACEHOLDER) | FLAG (OT_DOTTEDCIRCLE))
#define JOINER_FLAGS (FLAG (OT_ZWJ) | FLAG (OT_ZWNJ))
else if (unlikely (u == 0x0AFBu)) cat = OT_N; /* https://github.com/harfbuzz/harfbuzz/issues/552 */
else if (unlikely (u == 0x0980u)) cat = OT_PLACEHOLDER; /* https://github.com/harfbuzz/harfbuzz/issues/538 */
+ else if (unlikely (u == 0x09FCu)) cat = OT_PLACEHOLDER; /* https://github.com/harfbuzz/harfbuzz/pull/1613 */
else if (unlikely (u == 0x0C80u)) cat = OT_PLACEHOLDER; /* https://github.com/harfbuzz/harfbuzz/pull/623 */
else if (unlikely (hb_in_range<hb_codepoint_t> (u, 0x2010u, 0x2011u)))
cat = OT_PLACEHOLDER;
#line 36 "hb-ot-shape-complex-khmer-machine.hh"
static const unsigned char _khmer_syllable_machine_trans_keys[] = {
5u, 26u, 5u, 21u, 5u, 26u, 5u, 21u, 1u, 16u, 5u, 21u, 5u, 26u, 5u, 21u,
- 5u, 26u, 5u, 21u, 1u, 16u, 5u, 21u, 5u, 26u, 5u, 21u, 1u, 16u, 5u, 21u,
- 5u, 26u, 5u, 21u, 5u, 26u, 5u, 21u, 5u, 26u, 1u, 16u, 1u, 29u, 5u, 29u,
- 5u, 29u, 5u, 29u, 22u, 22u, 5u, 22u, 5u, 29u, 5u, 29u, 5u, 29u, 5u, 26u,
- 5u, 29u, 5u, 29u, 22u, 22u, 5u, 22u, 5u, 29u, 5u, 29u, 1u, 16u, 5u, 29u,
- 5u, 29u, 0
+ 5u, 26u, 5u, 21u, 5u, 21u, 5u, 26u, 5u, 21u, 1u, 16u, 5u, 21u, 5u, 26u,
+ 5u, 21u, 5u, 26u, 5u, 21u, 5u, 26u, 1u, 29u, 5u, 29u, 5u, 29u, 5u, 29u,
+ 22u, 22u, 5u, 22u, 5u, 29u, 5u, 29u, 5u, 29u, 1u, 16u, 5u, 26u, 5u, 29u,
+ 5u, 29u, 22u, 22u, 5u, 22u, 5u, 29u, 5u, 29u, 1u, 16u, 5u, 29u, 5u, 29u,
+ 0
};
static const char _khmer_syllable_machine_key_spans[] = {
22, 17, 22, 17, 16, 17, 22, 17,
- 22, 17, 16, 17, 22, 17, 16, 17,
- 22, 17, 22, 17, 22, 16, 29, 25,
- 25, 25, 1, 18, 25, 25, 25, 22,
- 25, 25, 1, 18, 25, 25, 16, 25,
- 25
+ 22, 17, 17, 22, 17, 16, 17, 22,
+ 17, 22, 17, 22, 29, 25, 25, 25,
+ 1, 18, 25, 25, 25, 16, 22, 25,
+ 25, 1, 18, 25, 25, 16, 25, 25
};
static const short _khmer_syllable_machine_index_offsets[] = {
0, 23, 41, 64, 82, 99, 117, 140,
- 158, 181, 199, 216, 234, 257, 275, 292,
- 310, 333, 351, 374, 392, 415, 432, 462,
- 488, 514, 540, 542, 561, 587, 613, 639,
- 662, 688, 714, 716, 735, 761, 787, 804,
- 830
+ 158, 181, 199, 217, 240, 258, 275, 293,
+ 316, 334, 357, 375, 398, 428, 454, 480,
+ 506, 508, 527, 553, 579, 605, 622, 645,
+ 671, 697, 699, 718, 744, 770, 787, 813
};
static const char _khmer_syllable_machine_indicies[] = {
0, 0, 0, 0, 0, 0, 12, 0,
0, 0, 0, 4, 0, 11, 11, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 12, 0, 13,
- 13, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 13, 0,
- 15, 15, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14,
- 16, 14, 15, 15, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 16, 17, 17, 17, 17, 18,
- 17, 19, 19, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 18, 17, 20, 20, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 20, 17, 21, 21, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 22, 17, 23, 23,
- 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 24, 17,
- 17, 17, 17, 18, 17, 23, 23, 17,
- 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 24, 17, 25,
- 25, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 26,
- 17, 17, 17, 17, 18, 17, 25, 25,
- 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 26, 17,
- 15, 15, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 27,
- 16, 17, 17, 17, 17, 18, 17, 28,
- 28, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 28, 17,
- 13, 13, 29, 29, 30, 30, 29, 29,
- 29, 29, 2, 2, 29, 31, 29, 13,
- 29, 29, 29, 29, 16, 20, 29, 29,
- 29, 18, 24, 26, 22, 29, 33, 33,
- 32, 32, 32, 32, 32, 32, 32, 34,
- 32, 32, 32, 32, 32, 2, 3, 6,
- 32, 32, 32, 4, 10, 12, 8, 32,
- 35, 35, 32, 32, 32, 32, 32, 32,
- 32, 36, 32, 32, 32, 32, 32, 32,
- 3, 6, 32, 32, 32, 4, 10, 12,
- 8, 32, 5, 5, 32, 32, 32, 32,
- 32, 32, 32, 36, 32, 32, 32, 32,
- 32, 32, 4, 6, 32, 32, 32, 32,
- 32, 32, 8, 32, 6, 32, 7, 7,
- 32, 32, 32, 32, 32, 32, 32, 36,
- 32, 32, 32, 32, 32, 32, 8, 6,
- 32, 37, 37, 32, 32, 32, 32, 32,
- 32, 32, 36, 32, 32, 32, 32, 32,
- 32, 10, 6, 32, 32, 32, 4, 32,
- 32, 8, 32, 38, 38, 32, 32, 32,
- 32, 32, 32, 32, 36, 32, 32, 32,
- 32, 32, 32, 12, 6, 32, 32, 32,
- 4, 10, 32, 8, 32, 35, 35, 32,
- 32, 32, 32, 32, 32, 32, 34, 32,
- 32, 32, 32, 32, 32, 3, 6, 32,
- 32, 32, 4, 10, 12, 8, 32, 15,
- 15, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 16,
- 39, 39, 39, 39, 18, 39, 41, 41,
- 40, 40, 40, 40, 40, 40, 40, 42,
- 40, 40, 40, 40, 40, 40, 16, 20,
- 40, 40, 40, 18, 24, 26, 22, 40,
- 19, 19, 40, 40, 40, 40, 40, 40,
- 40, 42, 40, 40, 40, 40, 40, 40,
- 18, 20, 40, 40, 40, 40, 40, 40,
- 22, 40, 20, 40, 21, 21, 40, 40,
- 40, 40, 40, 40, 40, 42, 40, 40,
- 40, 40, 40, 40, 22, 20, 40, 43,
- 43, 40, 40, 40, 40, 40, 40, 40,
- 42, 40, 40, 40, 40, 40, 40, 24,
- 20, 40, 40, 40, 18, 40, 40, 22,
- 40, 44, 44, 40, 40, 40, 40, 40,
- 40, 40, 42, 40, 40, 40, 40, 40,
- 40, 26, 20, 40, 40, 40, 18, 24,
- 40, 22, 40, 28, 28, 39, 39, 39,
+ 0, 0, 0, 0, 0, 12, 0, 14,
+ 14, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 15,
+ 13, 14, 14, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 15, 16, 16, 16, 16, 17, 16,
+ 18, 18, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 17, 16, 19, 19, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 19, 16, 20, 20, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 21, 16, 22, 22, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 23, 16, 16,
+ 16, 16, 17, 16, 22, 22, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 23, 16, 24, 24,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 25, 16,
+ 16, 16, 16, 17, 16, 24, 24, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 25, 16, 14,
+ 14, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 26, 15,
+ 16, 16, 16, 16, 17, 16, 28, 28,
+ 27, 27, 29, 29, 27, 27, 27, 27,
+ 2, 2, 27, 30, 27, 28, 27, 27,
+ 27, 27, 15, 19, 27, 27, 27, 17,
+ 23, 25, 21, 27, 32, 32, 31, 31,
+ 31, 31, 31, 31, 31, 33, 31, 31,
+ 31, 31, 31, 2, 3, 6, 31, 31,
+ 31, 4, 10, 12, 8, 31, 34, 34,
+ 31, 31, 31, 31, 31, 31, 31, 35,
+ 31, 31, 31, 31, 31, 31, 3, 6,
+ 31, 31, 31, 4, 10, 12, 8, 31,
+ 5, 5, 31, 31, 31, 31, 31, 31,
+ 31, 35, 31, 31, 31, 31, 31, 31,
+ 4, 6, 31, 31, 31, 31, 31, 31,
+ 8, 31, 6, 31, 7, 7, 31, 31,
+ 31, 31, 31, 31, 31, 35, 31, 31,
+ 31, 31, 31, 31, 8, 6, 31, 36,
+ 36, 31, 31, 31, 31, 31, 31, 31,
+ 35, 31, 31, 31, 31, 31, 31, 10,
+ 6, 31, 31, 31, 4, 31, 31, 8,
+ 31, 37, 37, 31, 31, 31, 31, 31,
+ 31, 31, 35, 31, 31, 31, 31, 31,
+ 31, 12, 6, 31, 31, 31, 4, 10,
+ 31, 8, 31, 34, 34, 31, 31, 31,
+ 31, 31, 31, 31, 33, 31, 31, 31,
+ 31, 31, 31, 3, 6, 31, 31, 31,
+ 4, 10, 12, 8, 31, 28, 28, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 28, 31, 14, 14,
+ 38, 38, 38, 38, 38, 38, 38, 38,
+ 38, 38, 38, 38, 38, 38, 15, 38,
+ 38, 38, 38, 17, 38, 40, 40, 39,
+ 39, 39, 39, 39, 39, 39, 41, 39,
+ 39, 39, 39, 39, 39, 15, 19, 39,
+ 39, 39, 17, 23, 25, 21, 39, 18,
+ 18, 39, 39, 39, 39, 39, 39, 39,
+ 41, 39, 39, 39, 39, 39, 39, 17,
+ 19, 39, 39, 39, 39, 39, 39, 21,
+ 39, 19, 39, 20, 20, 39, 39, 39,
+ 39, 39, 39, 39, 41, 39, 39, 39,
+ 39, 39, 39, 21, 19, 39, 42, 42,
+ 39, 39, 39, 39, 39, 39, 39, 41,
+ 39, 39, 39, 39, 39, 39, 23, 19,
+ 39, 39, 39, 17, 39, 39, 21, 39,
+ 43, 43, 39, 39, 39, 39, 39, 39,
+ 39, 41, 39, 39, 39, 39, 39, 39,
+ 25, 19, 39, 39, 39, 17, 23, 39,
+ 21, 39, 44, 44, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 28, 39, 45, 45, 40, 40,
- 40, 40, 40, 40, 40, 46, 40, 40,
- 40, 40, 40, 27, 16, 20, 40, 40,
- 40, 18, 24, 26, 22, 40, 41, 41,
- 40, 40, 40, 40, 40, 40, 40, 46,
- 40, 40, 40, 40, 40, 40, 16, 20,
- 40, 40, 40, 18, 24, 26, 22, 40,
- 0
+ 39, 44, 39, 45, 45, 39, 39, 39,
+ 39, 39, 39, 39, 30, 39, 39, 39,
+ 39, 39, 26, 15, 19, 39, 39, 39,
+ 17, 23, 25, 21, 39, 40, 40, 39,
+ 39, 39, 39, 39, 39, 39, 30, 39,
+ 39, 39, 39, 39, 39, 15, 19, 39,
+ 39, 39, 17, 23, 25, 21, 39, 0
};
static const char _khmer_syllable_machine_trans_targs[] = {
- 22, 1, 30, 24, 25, 3, 26, 5,
- 27, 7, 28, 9, 29, 23, 22, 11,
- 32, 22, 33, 13, 34, 15, 35, 17,
- 36, 19, 37, 40, 39, 22, 31, 38,
- 22, 0, 10, 2, 4, 6, 8, 22,
- 22, 12, 14, 16, 18, 20, 21
+ 20, 1, 28, 22, 23, 3, 24, 5,
+ 25, 7, 26, 9, 27, 20, 10, 31,
+ 20, 32, 12, 33, 14, 34, 16, 35,
+ 18, 36, 39, 20, 21, 30, 37, 20,
+ 0, 29, 2, 4, 6, 8, 20, 20,
+ 11, 13, 15, 17, 38, 19
};
static const char _khmer_syllable_machine_trans_actions[] = {
1, 0, 2, 2, 2, 0, 0, 0,
- 2, 0, 2, 0, 2, 2, 3, 0,
- 4, 5, 2, 0, 0, 0, 2, 0,
- 2, 0, 2, 4, 4, 8, 9, 0,
- 10, 0, 0, 0, 0, 0, 0, 11,
- 12, 0, 0, 0, 0, 0, 0
+ 2, 0, 2, 0, 2, 3, 0, 4,
+ 5, 2, 0, 0, 0, 2, 0, 2,
+ 0, 2, 4, 8, 2, 9, 0, 10,
+ 0, 0, 0, 0, 0, 0, 11, 12,
+ 0, 0, 0, 0, 4, 0
};
static const char _khmer_syllable_machine_to_state_actions[] = {
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 6, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0
+ 0, 0, 0, 0, 0, 0, 0, 0
};
static const char _khmer_syllable_machine_from_state_actions[] = {
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 7, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0
+ 0, 0, 0, 0, 0, 0, 0, 0
};
static const unsigned char _khmer_syllable_machine_eof_trans[] = {
1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 15, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 0, 33,
- 33, 33, 33, 33, 33, 33, 33, 40,
- 41, 41, 41, 41, 41, 41, 40, 41,
- 41
+ 1, 1, 14, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 0, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 39, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40
};
-static const int khmer_syllable_machine_start = 22;
-static const int khmer_syllable_machine_first_final = 22;
+static const int khmer_syllable_machine_start = 20;
+static const int khmer_syllable_machine_first_final = 20;
static const int khmer_syllable_machine_error = -1;
-static const int khmer_syllable_machine_en_main = 22;
+static const int khmer_syllable_machine_en_main = 20;
#line 36 "hb-ot-shape-complex-khmer-machine.rl"
int cs;
hb_glyph_info_t *info = buffer->info;
-#line 250 "hb-ot-shape-complex-khmer-machine.hh"
+#line 242 "hb-ot-shape-complex-khmer-machine.hh"
{
cs = khmer_syllable_machine_start;
ts = 0;
unsigned int syllable_serial = 1;
-#line 266 "hb-ot-shape-complex-khmer-machine.hh"
+#line 258 "hb-ot-shape-complex-khmer-machine.hh"
{
int _slen;
int _trans;
#line 1 "NONE"
{ts = p;}
break;
-#line 280 "hb-ot-shape-complex-khmer-machine.hh"
+#line 272 "hb-ot-shape-complex-khmer-machine.hh"
}
_keys = _khmer_syllable_machine_trans_keys + (cs<<1);
#line 76 "hb-ot-shape-complex-khmer-machine.rl"
{act = 3;}
break;
-#line 350 "hb-ot-shape-complex-khmer-machine.hh"
+#line 342 "hb-ot-shape-complex-khmer-machine.hh"
}
_again:
#line 1 "NONE"
{ts = 0;}
break;
-#line 359 "hb-ot-shape-complex-khmer-machine.hh"
+#line 351 "hb-ot-shape-complex-khmer-machine.hh"
}
if ( ++p != pe )
syllable_tail = xgroup matra_group xgroup (Coeng.c)? ygroup;
-broken_cluster = (Coeng.cn)* syllable_tail;
+broken_cluster = (Coeng.cn)* (Coeng | syllable_tail);
consonant_syllable = (cn|PLACEHOLDER|DOTTEDCIRCLE) broken_cluster;
other = any;
hb_face_t *face) const
{
for (unsigned int i = 0; i < count; i++)
- if (hb_ot_layout_lookup_would_substitute_fast (face, lookups[i].index, glyphs, glyphs_count, zero_context))
+ if (hb_ot_layout_lookup_would_substitute (face, lookups[i].index, glyphs, glyphs_count, zero_context))
return true;
return false;
}
hb_font_t *font,
hb_buffer_t *buffer)
{
+ if (unlikely (buffer->flags & HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE))
+ return;
+
/* Note: This loop is extra overhead, but should not be measurable. */
bool has_broken_syllables = false;
unsigned int count = buffer->len;
hb_font_t *font,
hb_buffer_t *buffer)
{
+ if (unlikely (buffer->flags & HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE))
+ return;
+
/* Note: This loop is extra overhead, but should not be measurable. */
bool has_broken_syllables = false;
unsigned int count = buffer->len;
*
* on files with these headers:
*
- * # IndicSyllabicCategory-11.0.0.txt
- * # Date: 2018-05-21, 18:33:00 GMT [KW, RP]
- * # IndicPositionalCategory-11.0.0.txt
- * # Date: 2018-02-05, 16:21:00 GMT [KW, RP]
- * # Blocks-11.0.0.txt
- * # Date: 2017-10-16, 24:39:00 GMT [KW]
+ * # IndicSyllabicCategory-12.0.0.txt
+ * # Date: 2019-01-31, 02:26:00 GMT [KW, RP]
+ * # IndicPositionalCategory-12.0.0.txt
+ * # Date: 2019-01-31, 02:26:00 GMT [KW, RP]
+ * # Blocks-12.0.0.txt
+ * # Date: 2018-07-30, 19:40:00 GMT [KW]
* UnicodeData.txt does not have a header.
*/
/* Kannada */
- /* 0C80 */ O, VMAbv, VMPst, VMPst, O, B, B, B, B, B, B, B, B, O, B, B,
+ /* 0C80 */ B, VMAbv, VMPst, VMPst, O, B, B, B, B, B, B, B, B, O, B, B,
/* 0C90 */ B, O, B, B, B, B, B, B, B, B, B, B, B, B, B, B,
/* 0CA0 */ B, B, B, B, B, B, B, B, B, O, B, B, B, B, B, B,
/* 0CB0 */ B, B, B, B, O, B, B, B, B, B, O, O, CMBlw, B, VPst, VAbv,
/* 17A0 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B,
/* 17B0 */ B, B, B, B, O, O, VPst, VAbv, VAbv, VAbv, VAbv, VBlw, VBlw, VBlw, VPst, VPst,
/* 17C0 */ VPst, VPre, VPre, VPre, VPst, VPst, VMAbv, VMPst, VPst, VMAbv, VMAbv, FM, FAbv, CMAbv, FM, FM,
- /* 17D0 */ FM, VAbv, H, FM, O, O, O, O, O, O, O, O, B, VAbv, O, O,
+ /* 17D0 */ FM, VAbv, H, FM, O, O, O, O, O, O, O, O, B, FM, O, O,
/* 17E0 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, O, O,
#define use_offset_0x1900u 1936
/* 19A0 */ B, B, B, B, B, B, B, B, B, B, B, B, O, O, O, O,
/* 19B0 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B,
/* 19C0 */ B, B, B, B, B, B, B, B, VMPst, VMPst, O, O, O, O, O, O,
- /* 19D0 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, O, O,
+ /* 19D0 */ B, B, B, B, B, B, B, B, B, B, B, O, O, O, O, O,
/* 19E0 */ O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O,
/* 19F0 */ O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O,
/* 1CD0 */ VMAbv, VMAbv, VMAbv, O, VMBlw, VMBlw, VMBlw, VMBlw, VMBlw, VMBlw, VMAbv, VMAbv, VMBlw, VMBlw, VMBlw, VMBlw,
/* 1CE0 */ VMAbv, VMPst, VMBlw, VMBlw, VMBlw, VMBlw, VMBlw, VMBlw, VMBlw, O, O, O, O, VMBlw, O, O,
- /* 1CF0 */ O, O, VMPst, VMPst, VMAbv, CS, CS, VMPst, VMAbv, VMAbv, O, O, O, O, O, O,
+ /* 1CF0 */ O, O, IND, IND, VMAbv, CS, CS, VMPst, VMAbv, VMAbv, GB, O, O, O, O, O,
#define use_offset_0x1df8u 2736
/* Syloti Nagri */
- /* A800 */ B, B, O, B, B, B, VAbv, B, B, B, B, VMAbv, B, B, B, B,
+ /* A800 */ B, B, VAbv, B, B, B, H, B, B, B, B, VMAbv, B, B, B, B,
/* A810 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B,
/* A820 */ B, B, B, VPst, VPst, VBlw, VAbv, VPst, O, O, O, O, O, O, O, O,
/* A830 */ O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O,
/* A980 */ VMAbv, VMAbv, FAbv, VMPst, B, B, B, B, B, B, B, B, B, B, B, B,
/* A990 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B,
/* A9A0 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B,
- /* A9B0 */ B, B, B, CMAbv, VPst, VPst, VAbv, VAbv, VBlw, VBlw, VPre, VPre, VAbv, SUB, MPst, MBlw,
+ /* A9B0 */ B, B, B, CMAbv, VPst, VPst, VAbv, VAbv, VBlw, VBlw, VPre, VPre, VAbv, MBlw, MPst, MBlw,
/* A9C0 */ H, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O,
/* A9D0 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, O, O,
/* Grantha */
- /* 11300 */ VMAbv, VMAbv, VMAbv, VMPst, O, B, B, B, B, B, B, B, B, O, O, B,
+ /* 11300 */ VMAbv, VMAbv, VMAbv, VMAbv, O, B, B, B, B, B, B, B, B, O, O, B,
/* 11310 */ B, O, O, B, B, B, B, B, B, B, B, B, B, B, B, B,
/* 11320 */ B, B, B, B, B, B, B, B, B, O, B, B, B, B, B, B,
/* 11330 */ B, O, B, B, O, B, B, B, B, B, O, CMBlw, CMBlw, B, VPst, VPst,
/* 11420 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B,
/* 11430 */ B, B, B, B, B, VPst, VPre, VPst, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VAbv, VAbv,
/* 11440 */ VPst, VPst, H, VMAbv, VMAbv, VMPst, CMBlw, B, O, O, O, O, O, O, O, O,
- /* 11450 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, FM, O,
+ /* 11450 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, FM, B,
/* 11460 */ O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O,
/* 11470 */ O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O,
/* 11490 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B,
/* 114A0 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B,
/* 114B0 */ VPst, VPre, VPst, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VPre, VAbv, VPst, VPst, VPst, VPst, VMAbv,
- /* 114C0 */ VMAbv, VMPst, H, CMBlw, B, O, O, O, O, O, O, O, O, O, O, O,
+ /* 114C0 */ VMAbv, VMAbv, H, CMBlw, B, O, O, O, O, O, O, O, O, O, O, O,
/* 114D0 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, O, O,
#define use_offset_0x11580u 4720
/* 11680 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B,
/* 11690 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B,
/* 116A0 */ B, B, B, B, B, B, B, B, B, B, B, VMAbv, VMPst, VAbv, VPre, VPst,
- /* 116B0 */ VBlw, VBlw, VAbv, VAbv, VAbv, VAbv, H, CMBlw, O, O, O, O, O, O, O, O,
+ /* 116B0 */ VBlw, VBlw, VAbv, VAbv, VAbv, VAbv, H, CMBlw, B, O, O, O, O, O, O, O,
/* 116C0 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, O, O,
/* 116D0 */ O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O,
/* 116E0 */ O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O,
/* 11820 */ B, B, B, B, B, B, B, B, B, B, B, B, VPst, VPre, VPst, VBlw,
/* 11830 */ VBlw, VBlw, VBlw, VAbv, VAbv, VAbv, VAbv, VMAbv, VMPst, H, CMBlw, O, O, O, O, O,
-#define use_offset_0x11a00u 5232
+#define use_offset_0x119a0u 5232
+ /* Nandinagari */
+
+ /* 119A0 */ B, B, B, B, B, B, B, B, O, O, B, B, B, B, B, B,
+ /* 119B0 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B,
+ /* 119C0 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B,
+ /* 119D0 */ B, VPst, VPre, VPst, VBlw, VBlw, VBlw, VBlw, O, O, VAbv, VAbv, VPst, VPst, VMPst, VMPst,
+ /* 119E0 */ H, B, O, O, VPre, O, O, O, O, O, O, O, O, O, O, O,
+ /* 119F0 */ O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O,
+
/* Zanabazar Square */
/* 11A00 */ B, VAbv, VBlw, VBlw, VAbv, VAbv, VAbv, VAbv, VAbv, VAbv, VBlw, B, B, B, B, B,
/* 11A50 */ B, VAbv, VBlw, VBlw, VAbv, VAbv, VAbv, VPst, VPst, VBlw, VBlw, VBlw, B, B, B, B,
/* 11A60 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B,
/* 11A70 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B,
- /* 11A80 */ B, B, B, B, O, O, R, R, R, R, FBlw, FBlw, FBlw, FBlw, FBlw, FBlw,
+ /* 11A80 */ B, B, B, B, R, R, R, R, R, R, FBlw, FBlw, FBlw, FBlw, FBlw, FBlw,
/* 11A90 */ FBlw, FBlw, FBlw, FBlw, FBlw, FBlw, VMAbv, VMPst, CMAbv, H, O, O, O, B, O, O,
-#define use_offset_0x11c00u 5392
+#define use_offset_0x11c00u 5488
/* Bhaiksuki */
/* 11CA0 */ SUB, SUB, SUB, SUB, SUB, SUB, SUB, SUB, O, SUB, SUB, SUB, SUB, SUB, SUB, SUB,
/* 11CB0 */ VBlw, VPre, VBlw, VAbv, VPst, VMAbv, VMAbv, O,
-#define use_offset_0x11d00u 5576
+#define use_offset_0x11d00u 5672
/* Masaram Gondi */
/* 11D90 */ VAbv, VAbv, O, VPst, VPst, VMAbv, VMPst, H, O, O, O, O, O, O, O, O,
/* 11DA0 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, O, O,
-#define use_offset_0x11ee0u 5752
+#define use_offset_0x11ee0u 5848
/* Makasar */
/* 11EE0 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B,
/* 11EF0 */ B, B, GB, VAbv, VBlw, VPre, VPst, O,
-}; /* Table items: 5776; occupancy: 74% */
+}; /* Table items: 5872; occupancy: 74% */
USE_TABLE_ELEMENT_TYPE
hb_use_get_category (hb_codepoint_t u)
if (hb_in_range<hb_codepoint_t> (u, 0x11400u, 0x114DFu)) return use_table[u - 0x11400u + use_offset_0x11400u];
if (hb_in_range<hb_codepoint_t> (u, 0x11580u, 0x1173Fu)) return use_table[u - 0x11580u + use_offset_0x11580u];
if (hb_in_range<hb_codepoint_t> (u, 0x11800u, 0x1183Fu)) return use_table[u - 0x11800u + use_offset_0x11800u];
- if (hb_in_range<hb_codepoint_t> (u, 0x11A00u, 0x11A9Fu)) return use_table[u - 0x11A00u + use_offset_0x11a00u];
+ if (hb_in_range<hb_codepoint_t> (u, 0x119A0u, 0x11A9Fu)) return use_table[u - 0x119A0u + use_offset_0x119a0u];
if (hb_in_range<hb_codepoint_t> (u, 0x11C00u, 0x11CB7u)) return use_table[u - 0x11C00u + use_offset_0x11c00u];
if (hb_in_range<hb_codepoint_t> (u, 0x11D00u, 0x11DAFu)) return use_table[u - 0x11D00u + use_offset_0x11d00u];
if (hb_in_range<hb_codepoint_t> (u, 0x11EE0u, 0x11EF7u)) return use_table[u - 0x11EE0u + use_offset_0x11ee0u];
hb_font_t *font,
hb_buffer_t *buffer)
{
+ if (unlikely (buffer->flags & HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE))
+ return;
+
/* Note: This loop is extra overhead, but should not be measurable. */
bool has_broken_syllables = false;
unsigned int count = buffer->len;
* # Copied from https://docs.microsoft.com/en-us/typography/script-development/use
* # On October 23, 2018; with documentd dated 02/07/2018.
*
- * # Scripts-11.0.0.txt
- * # Date: 2018-02-21, 05:34:31 GMT
+ * # Scripts-12.0.0.txt
+ * # Date: 2019-01-28, 22:16:47 GMT
*/
#include "hb-ot-shape-complex-vowel-constraints.hh"
hb_buffer_t *buffer,
hb_font_t *font HB_UNUSED)
{
+ if (buffer->flags & HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE)
+ return;
+
/* UGLY UGLY UGLY business of adding dotted-circle in the middle of
* vowel-sequences that look like another vowel. Data for each script
* collected from the USE script development spec.
case HB_SCRIPT_MAKASAR:
//case HB_SCRIPT_SOGDIAN:
+ /* Unicode-12.0 additions */
+ case HB_SCRIPT_NANDINAGARI:
+
/* If the designer designed the font for the 'DFLT' script,
* (or we ended up arbitrarily pick 'latn'), use the default shaper.
* Otherwise, use the specific shaper.
static void
hb_insert_dotted_circle (hb_buffer_t *buffer, hb_font_t *font)
{
+ if (unlikely (buffer->flags & HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE))
+ return;
+
if (!(buffer->flags & HB_BUFFER_FLAG_BOT) ||
buffer->context_len[0] ||
!_hb_glyph_info_is_unicode_mark (&buffer->info[0]))
*
* on files with these headers:
*
- * <meta name="updated_at" content="2018-09-07 07:45 PM" />
- * File-Date: 2018-08-08
+ * <meta name="updated_at" content="2018-11-18 05:25 AM" />
+ * File-Date: 2019-02-20
*/
#ifndef HB_OT_TAG_TABLE_HH
{"bjt", {HB_TAG('B','L','N',' ')}}, /* Balanta-Ganja -> Balante */
{"bla", {HB_TAG('B','K','F',' ')}}, /* Siksika -> Blackfoot */
{"ble", {HB_TAG('B','L','N',' ')}}, /* Balanta-Kentohe -> Balante */
- {"blk", {HB_TAG('B','L','K',' ')}}, /* Pa'o Karen */
+ {"blk", {HB_TAG('B','L','K',' ')}}, /* Pa’o Karen */
{"bln", {HB_TAG('B','I','K',' ')}}, /* Southern Catanduanes Bikol -> Bikol */
{"bm", {HB_TAG('B','M','B',' ')}}, /* Bambara (Bamanankan) */
{"bmm", {HB_TAG('M','L','G',' ')}}, /* Northern Betsimisaraka Malagasy -> Malagasy */
{"fj", {HB_TAG('F','J','I',' ')}}, /* Fijian */
{"flm", {HB_TAG('H','A','L',' '), /* Halam (Falam Chin) (retired code) */
HB_TAG('Q','I','N',' ')}}, /* Falam Chin (retired code) -> Chin */
- {"fmp", {HB_TAG('F','M','P',' ')}}, /* Fe'fe' */
+ {"fmp", {HB_TAG('F','M','P',' ')}}, /* Fe’fe’ */
{"fo", {HB_TAG('F','O','S',' ')}}, /* Faroese */
{"fon", {HB_TAG('F','O','N',' ')}}, /* Fon */
{"fr", {HB_TAG('F','R','A',' ')}}, /* French */
{"mwr", {HB_TAG('M','A','W',' ')}}, /* Marwari [macrolanguage] */
{"mww", {HB_TAG('M','W','W',' ')}}, /* Hmong Daw */
{"my", {HB_TAG('B','R','M',' ')}}, /* Burmese */
- {"mym", {HB_TAG('M','E','N',' ')}}, /* Me'en */
+ {"mym", {HB_TAG('M','E','N',' ')}}, /* Me’en */
{"myn", {HB_TAG('M','Y','N',' ')}}, /* Mayan [family] */
{"myq", {HB_TAG('M','N','K',' ')}}, /* Forest Maninka (retired code) -> Maninka */
{"myv", {HB_TAG('E','R','Z',' ')}}, /* Erzya */
{"nog", {HB_TAG('N','O','G',' ')}}, /* Nogai */
{"nov", {HB_TAG('N','O','V',' ')}}, /* Novial */
{"npi", {HB_TAG('N','E','P',' ')}}, /* Nepali */
- {"nqo", {HB_TAG('N','K','O',' ')}}, /* N'Ko */
+ {"nqo", {HB_TAG('N','K','O',' ')}}, /* N’Ko */
{"nr", {HB_TAG('N','D','B',' ')}}, /* South Ndebele -> Ndebele */
{"nsk", {HB_TAG('N','A','S',' ')}}, /* Naskapi */
{"nso", {HB_TAG('N','S','O',' ')}}, /* Pedi -> Sotho, Northern */
/* hb_language_t */
-static int
-lang_compare_first_component (const void *pa,
- const void *pb)
-{
- const char *a = (const char *) pa;
- const char *b = (const char *) pb;
- unsigned int da, db;
- const char *p;
-
- p = strchr (a, '-');
- da = p ? (unsigned int) (p - a) : strlen (a);
-
- p = strchr (b, '-');
- db = p ? (unsigned int) (p - b) : strlen (b);
-
- return strncmp (a, b, MAX (da, db));
-}
-
static bool
subtag_matches (const char *lang_str,
const char *limit,
(lang_str[len] == '\0' || lang_str[len] == '-');
}
-typedef struct {
+struct LangTag
+{
char language[4];
hb_tag_t tags[HB_OT_MAX_TAGS_PER_LANGUAGE];
-} LangTag;
+
+ int cmp (const char *a) const
+ {
+ const char *b = this->language;
+ unsigned int da, db;
+ const char *p;
+
+ p = strchr (a, '-');
+ da = p ? (unsigned int) (p - a) : strlen (a);
+
+ p = strchr (b, '-');
+ db = p ? (unsigned int) (p - b) : strlen (b);
+
+ return strncmp (a, b, MAX (da, db));
+ }
+ int cmp (const LangTag *that) const
+ { return cmp (that->language); }
+};
#include "hb-ot-tag-table.hh"
ISALPHA (s[1]))
lang_str = s + 1;
}
- lang_tag = (LangTag *) bsearch (lang_str, ot_languages,
- ARRAY_LENGTH (ot_languages), sizeof (LangTag),
- lang_compare_first_component);
+ lang_tag = hb_sorted_array (ot_languages).bsearch (lang_str);
if (lang_tag)
{
unsigned int i;
{
for (unsigned int i = 1; i < ARRAY_LENGTH (ot_languages); i++)
{
- int c = lang_compare_first_component (ot_languages[i-1].language, ot_languages[i].language);
+ int c = ot_languages[i].cmp (&ot_languages[i - 1]);
if (c >= 0)
{
fprintf (stderr, "ot_languages not sorted at index %d: %s %d %s\n",
/* count the number of glyphs to be included in the subset table */
hb_vector_t<VertOriginMetric> subset_metrics;
subset_metrics.init ();
- unsigned int glyph = 0;
+
+
+ hb_codepoint_t old_glyph = HB_SET_VALUE_INVALID;
unsigned int i = 0;
- while ((glyph < plan->glyphs.length) && (i < vertYOrigins.len))
+ while (i < vertYOrigins.len
+ && plan->glyphset ()->next (&old_glyph))
{
- if (plan->glyphs[glyph] > vertYOrigins[i].glyph)
- i++;
- else if (plan->glyphs[glyph] < vertYOrigins[i].glyph)
- glyph++;
- else
+ while (old_glyph > vertYOrigins[i].glyph)
{
- VertOriginMetric *metrics = subset_metrics.push ();
- metrics->glyph.set (glyph);
- metrics->vertOriginY.set (vertYOrigins[i].vertOriginY);
- glyph++;
i++;
+ if (i >= vertYOrigins.len)
+ break;
+ }
+
+ if (old_glyph == vertYOrigins[i].glyph)
+ {
+ hb_codepoint_t new_glyph;
+ if (plan->new_gid_for_old_gid (old_glyph, &new_glyph))
+ {
+ VertOriginMetric *metrics = subset_metrics.push ();
+ metrics->glyph.set (new_glyph);
+ metrics->vertOriginY.set (vertYOrigins[i].vertOriginY);
+ }
}
}
**/
bool
-hb_plan_subset_cff_fdselect (const hb_vector_t<hb_codepoint_t> &glyphs,
+hb_plan_subset_cff_fdselect (const hb_subset_plan_t *plan,
unsigned int fdCount,
const FDSelect &src, /* IN */
unsigned int &subset_fd_count /* OUT */,
subset_fdselect_format = 0;
unsigned int num_ranges = 0;
- unsigned int subset_num_glyphs = glyphs.length;
+ unsigned int subset_num_glyphs = plan->num_output_glyphs ();
if (subset_num_glyphs == 0)
return true;
hb_codepoint_t prev_fd = CFF_UNDEF_CODE;
for (hb_codepoint_t i = 0; i < subset_num_glyphs; i++)
{
- hb_codepoint_t fd = src.get_fd (glyphs[i]);
+ hb_codepoint_t glyph;
+ hb_codepoint_t fd;
+ if (!plan->old_gid_for_new_gid (i, &glyph))
+ {
+ /* fonttools retains FDSelect & font dicts for missing glyphs. do the same */
+ glyph = i;
+ }
+ fd = src.get_fd (glyph);
set->add (fd);
if (fd != prev_fd)
bool drop_hints;
};
-template <typename ACC, typename ENV, typename OPSET>
+template <typename ACC, typename ENV, typename OPSET, op_code_t endchar_op=OpCode_Invalid>
struct subr_flattener_t
{
subr_flattener_t (const ACC &acc_,
- const hb_vector_t<hb_codepoint_t> &glyphs_,
- bool drop_hints_) : acc (acc_), glyphs (glyphs_),
- drop_hints (drop_hints_) {}
+ const hb_subset_plan_t *plan_)
+ : acc (acc_), plan (plan_) {}
bool flatten (str_buff_vec_t &flat_charstrings)
{
- if (!flat_charstrings.resize (glyphs.length))
+ if (!flat_charstrings.resize (plan->num_output_glyphs ()))
return false;
- for (unsigned int i = 0; i < glyphs.length; i++)
+ for (unsigned int i = 0; i < plan->num_output_glyphs (); i++)
flat_charstrings[i].init ();
- for (unsigned int i = 0; i < glyphs.length; i++)
+ for (unsigned int i = 0; i < plan->num_output_glyphs (); i++)
{
- hb_codepoint_t glyph = glyphs[i];
+ hb_codepoint_t glyph;
+ if (!plan->old_gid_for_new_gid (i, &glyph))
+ {
+ /* add an endchar only charstring for a missing glyph if CFF1 */
+ if (endchar_op != OpCode_Invalid) flat_charstrings[i].push (endchar_op);
+ continue;
+ }
const byte_str_t str = (*acc.charStrings)[glyph];
unsigned int fd = acc.fdSelect->get_fd (glyph);
if (unlikely (fd >= acc.fdCount))
return false;
cs_interpreter_t<ENV, OPSET, flatten_param_t> interp;
interp.env.init (str, acc, fd);
- flatten_param_t param = { flat_charstrings[i], drop_hints };
+ flatten_param_t param = { flat_charstrings[i], plan->drop_hints };
if (unlikely (!interp.interpret (param)))
return false;
}
}
const ACC &acc;
- const hb_vector_t<hb_codepoint_t> &glyphs;
- bool drop_hints;
+ const hb_subset_plan_t *plan;
};
struct subr_closures_t
hb_vector_t<subr_remap_t> local_remaps;
};
-template <typename SUBSETTER, typename SUBRS, typename ACC, typename ENV, typename OPSET>
+template <typename SUBSETTER, typename SUBRS, typename ACC, typename ENV, typename OPSET, op_code_t endchar_op=OpCode_Invalid>
struct subr_subsetter_t
{
- subr_subsetter_t ()
+ subr_subsetter_t (ACC &acc_, const hb_subset_plan_t *plan_)
+ : acc (acc_), plan (plan_)
{
parsed_charstrings.init ();
parsed_global_subrs.init ();
* Assumption: a callsubr/callgsubr operator must immediately follow a (biased) subroutine number
* within the same charstring/subroutine, e.g., not split across a charstring and a subroutine.
*/
- bool subset (ACC &acc, const hb_vector_t<hb_codepoint_t> &glyphs, bool drop_hints)
+ bool subset (void)
{
closures.init (acc.fdCount);
remaps.init (acc.fdCount);
- parsed_charstrings.init (glyphs.length);
+ parsed_charstrings.init (plan->num_output_glyphs ());
parsed_global_subrs.init (acc.globalSubrs->count);
parsed_local_subrs.resize (acc.fdCount);
for (unsigned int i = 0; i < acc.fdCount; i++)
return false;
/* phase 1 & 2 */
- for (unsigned int i = 0; i < glyphs.length; i++)
+ for (unsigned int i = 0; i < plan->num_output_glyphs (); i++)
{
- hb_codepoint_t glyph = glyphs[i];
+ hb_codepoint_t glyph;
+ if (!plan->old_gid_for_new_gid (i, &glyph))
+ continue;
const byte_str_t str = (*acc.charStrings)[glyph];
unsigned int fd = acc.fdSelect->get_fd (glyph);
if (unlikely (fd >= acc.fdCount))
param.init (&parsed_charstrings[i],
&parsed_global_subrs, &parsed_local_subrs[fd],
closures.global_closure, closures.local_closures[fd],
- drop_hints);
+ plan->drop_hints);
if (unlikely (!interp.interpret (param)))
return false;
SUBSETTER::finalize_parsed_str (interp.env, param, parsed_charstrings[i]);
}
- if (drop_hints)
+ if (plan->drop_hints)
{
/* mark hint ops and arguments for drop */
- for (unsigned int i = 0; i < glyphs.length; i++)
+ for (unsigned int i = 0; i < plan->num_output_glyphs (); i++)
{
- unsigned int fd = acc.fdSelect->get_fd (glyphs[i]);
+ hb_codepoint_t glyph;
+ if (!plan->old_gid_for_new_gid (i, &glyph))
+ continue;
+ unsigned int fd = acc.fdSelect->get_fd (glyph);
if (unlikely (fd >= acc.fdCount))
return false;
subr_subset_param_t param;
param.init (&parsed_charstrings[i],
&parsed_global_subrs, &parsed_local_subrs[fd],
closures.global_closure, closures.local_closures[fd],
- drop_hints);
+ plan->drop_hints);
drop_hints_param_t drop;
if (drop_hints_in_str (parsed_charstrings[i], param, drop))
/* after dropping hints recreate closures of actually used subrs */
closures.reset ();
- for (unsigned int i = 0; i < glyphs.length; i++)
+ for (unsigned int i = 0; i < plan->num_output_glyphs (); i++)
{
- unsigned int fd = acc.fdSelect->get_fd (glyphs[i]);
+ hb_codepoint_t glyph;
+ if (!plan->old_gid_for_new_gid (i, &glyph))
+ continue;
+ unsigned int fd = acc.fdSelect->get_fd (glyph);
if (unlikely (fd >= acc.fdCount))
return false;
subr_subset_param_t param;
param.init (&parsed_charstrings[i],
&parsed_global_subrs, &parsed_local_subrs[fd],
closures.global_closure, closures.local_closures[fd],
- drop_hints);
+ plan->drop_hints);
collect_subr_refs_in_str (parsed_charstrings[i], param);
}
}
return true;
}
- bool encode_charstrings (ACC &acc, const hb_vector_t<hb_codepoint_t> &glyphs, str_buff_vec_t &buffArray) const
+ bool encode_charstrings (str_buff_vec_t &buffArray) const
{
- if (unlikely (!buffArray.resize (glyphs.length)))
+ if (unlikely (!buffArray.resize (plan->num_output_glyphs ())))
return false;
- for (unsigned int i = 0; i < glyphs.length; i++)
+ for (unsigned int i = 0; i < plan->num_output_glyphs (); i++)
{
- unsigned int fd = acc.fdSelect->get_fd (glyphs[i]);
+ hb_codepoint_t glyph;
+ if (!plan->old_gid_for_new_gid (i, &glyph))
+ {
+ /* add an endchar only charstring for a missing glyph if CFF1 */
+ if (endchar_op != OpCode_Invalid) buffArray[i].push (endchar_op);
+ continue;
+ }
+ unsigned int fd = acc.fdSelect->get_fd (glyph);
if (unlikely (fd >= acc.fdCount))
return false;
if (unlikely (!encode_str (parsed_charstrings[i], fd, buffArray[i])))
drop_hints_param_t ()
: seen_moveto (false),
ends_in_hint (false),
+ all_dropped (false),
vsindex_dropped (false) {}
bool seen_moveto;
bool ends_in_hint;
+ bool all_dropped;
bool vsindex_dropped;
};
drop.ends_in_hint = false;
bool has_hint = drop_hints_in_str (subrs[subr_num], param, drop);
- /* if this subr ends with a stem hint (i.e., not a number a potential argument for moveto),
+ /* if this subr ends with a stem hint (i.e., not a number; potential argument for moveto),
* then this entire subroutine must be a hint. drop its call. */
if (drop.ends_in_hint)
{
if (!str.at_end (pos))
drop.ends_in_hint = false;
}
+ else if (drop.all_dropped)
+ {
+ str.values[pos].set_drop ();
+ }
return has_hint;
}
has_hint = drop_hints_in_subr (str, pos,
*param.parsed_local_subrs, str.values[pos].subr_num,
param, drop);
-
break;
case OpCode_callgsubr:
}
}
+ /* Raise all_dropped flag if all operators except return are dropped from a subr.
+ * It may happen even after seeing the first moveto if a subr contains
+ * only (usually one) hintmask operator, then calls to this subr can be dropped.
+ */
+ drop.all_dropped = true;
+ for (unsigned int pos = 0; pos < str.values.length; pos++)
+ {
+ parsed_cs_op_t &csop = str.values[pos];
+ if (csop.op == OpCode_return)
+ break;
+ if (!csop.for_drop ())
+ {
+ drop.all_dropped = false;
+ break;
+ }
+ }
+
return seen_hint;
}
}
protected:
- subr_closures_t closures;
+ const ACC &acc;
+ const hb_subset_plan_t *plan;
+
+ subr_closures_t closures;
- parsed_cs_str_vec_t parsed_charstrings;
- parsed_cs_str_vec_t parsed_global_subrs;
+ parsed_cs_str_vec_t parsed_charstrings;
+ parsed_cs_str_vec_t parsed_global_subrs;
hb_vector_t<parsed_cs_str_vec_t> parsed_local_subrs;
- subr_remap_ts remaps;
+ subr_remap_ts remaps;
private:
typedef typename SUBRS::count_type subr_count_type;
} /* namespace CFF */
HB_INTERNAL bool
-hb_plan_subset_cff_fdselect (const hb_vector_t<hb_codepoint_t> &glyphs,
+hb_plan_subset_cff_fdselect (const hb_subset_plan_t *plan,
unsigned int fdCount,
const CFF::FDSelect &src, /* IN */
unsigned int &subset_fd_count /* OUT */,
typedef cff1_cs_opset_t<cff1_cs_opset_subr_subset_t, subr_subset_param_t> SUPER;
};
-struct cff1_subr_subsetter_t : subr_subsetter_t<cff1_subr_subsetter_t, CFF1Subrs, const OT::cff1::accelerator_subset_t, cff1_cs_interp_env_t, cff1_cs_opset_subr_subset_t>
+struct cff1_subr_subsetter_t : subr_subsetter_t<cff1_subr_subsetter_t, CFF1Subrs, const OT::cff1::accelerator_subset_t, cff1_cs_interp_env_t, cff1_cs_opset_subr_subset_t, OpCode_endchar>
{
+ cff1_subr_subsetter_t (const OT::cff1::accelerator_subset_t &acc, const hb_subset_plan_t *plan)
+ : subr_subsetter_t (acc, plan) {}
+
static void finalize_parsed_str (cff1_cs_interp_env_t &env, subr_subset_param_t& param, parsed_cs_str_t &charstring)
{
/* insert width at the beginning of the charstring as necessary */
supp_size = 0;
supp_codes.init ();
- subset_enc_num_codes = plan->glyphs.length - 1;
+ subset_enc_num_codes = plan->num_output_glyphs () - 1;
unsigned int glyph;
- for (glyph = 1; glyph < plan->glyphs.length; glyph++)
+ for (glyph = 1; glyph < plan->num_output_glyphs (); glyph++)
{
- hb_codepoint_t orig_glyph = plan->glyphs[glyph];
- code = acc.glyph_to_code (orig_glyph);
+ hb_codepoint_t old_glyph;
+ if (!plan->old_gid_for_new_gid (glyph, &old_glyph))
+ {
+ /* Retain the code for the old missing glyph ID */
+ old_glyph = glyph;
+ }
+ code = acc.glyph_to_code (old_glyph);
if (code == CFF_UNDEF_CODE)
{
subset_enc_num_codes = glyph - 1;
break;
}
- if (code != last_code + 1)
+ if ((last_code == CFF_UNDEF_CODE) || (code != last_code + 1))
{
code_pair_t pair = { code, glyph };
subset_enc_code_ranges.push (pair);
if (encoding != &Null(Encoding))
{
- hb_codepoint_t sid = acc.glyph_to_sid (orig_glyph);
+ hb_codepoint_t sid = acc.glyph_to_sid (old_glyph);
encoding->get_supplement_codes (sid, supp_codes);
for (unsigned int i = 0; i < supp_codes.length; i++)
{
subset_charset_ranges.resize (0);
unsigned int glyph;
- for (glyph = 1; glyph < plan->glyphs.length; glyph++)
+ for (glyph = 1; glyph < plan->num_output_glyphs (); glyph++)
{
- hb_codepoint_t orig_glyph = plan->glyphs[glyph];
- sid = acc.glyph_to_sid (orig_glyph);
+ hb_codepoint_t old_glyph;
+ if (!plan->old_gid_for_new_gid (glyph, &old_glyph))
+ {
+ /* Retain the SID for the old missing glyph ID */
+ old_glyph = glyph;
+ }
+ sid = acc.glyph_to_sid (old_glyph);
if (!acc.is_CID ())
sid = sidmap.add (sid);
- if (sid != last_sid + 1)
+ if ((last_sid == CFF_UNDEF_CODE) || (sid != last_sid + 1))
{
code_pair_t pair = { sid, glyph };
subset_charset_ranges.push (pair);
bool two_byte = subset_charset_ranges.finalize (glyph);
- size0 = Charset0::min_size + HBUINT16::static_size * (plan->glyphs.length - 1);
+ size0 = Charset0::min_size + HBUINT16::static_size * (plan->num_output_glyphs () - 1);
if (!two_byte)
size_ranges = Charset1::min_size + Charset1_Range::static_size * subset_charset_ranges.length;
else
return Charset::calculate_serialized_size (
subset_charset_format,
- subset_charset_format? subset_charset_ranges.length: plan->glyphs.length);
+ subset_charset_format? subset_charset_ranges.length: plan->num_output_glyphs ());
}
bool collect_sids_in_dicts (const OT::cff1::accelerator_subset_t &acc)
}
bool create (const OT::cff1::accelerator_subset_t &acc,
- hb_subset_plan_t *plan)
+ hb_subset_plan_t *plan)
{
- /* make sure notdef is first */
- if ((plan->glyphs.length == 0) || (plan->glyphs[0] != 0)) return false;
+ /* make sure notdef is first */
+ hb_codepoint_t old_glyph;
+ if (!plan->old_gid_for_new_gid (0, &old_glyph) || (old_glyph != 0)) return false;
final_size = 0;
- num_glyphs = plan->glyphs.length;
+ num_glyphs = plan->num_output_glyphs ();
orig_fdcount = acc.fdCount;
drop_hints = plan->drop_hints;
desubroutinize = plan->desubroutinize;
/* check whether the subset renumbers any glyph IDs */
gid_renum = false;
- for (unsigned int glyph = 0; glyph < plan->glyphs.length; glyph++)
+ for (hb_codepoint_t new_glyph = 0; new_glyph < plan->num_output_glyphs (); new_glyph++)
{
- if (plan->glyphs[glyph] != glyph) {
+ if (!plan->old_gid_for_new_gid(new_glyph, &old_glyph))
+ continue;
+ if (new_glyph != old_glyph) {
gid_renum = true;
break;
}
/* Determine re-mapping of font index as fdmap among other info */
if (acc.fdSelect != &Null(CFF1FDSelect))
{
- if (unlikely (!hb_plan_subset_cff_fdselect (plan->glyphs,
+ if (unlikely (!hb_plan_subset_cff_fdselect (plan,
orig_fdcount,
*acc.fdSelect,
subset_fdcount,
if (desubroutinize)
{
/* Flatten global & local subrs */
- subr_flattener_t<const OT::cff1::accelerator_subset_t, cff1_cs_interp_env_t, cff1_cs_opset_flatten_t>
- flattener(acc, plan->glyphs, plan->drop_hints);
+ subr_flattener_t<const OT::cff1::accelerator_subset_t, cff1_cs_interp_env_t, cff1_cs_opset_flatten_t, OpCode_endchar>
+ flattener(acc, plan);
if (!flattener.flatten (subset_charstrings))
return false;
}
else
{
+ cff1_subr_subsetter_t subr_subsetter (acc, plan);
+
/* Subset subrs: collect used subroutines, leaving all unused ones behind */
- if (!subr_subsetter.subset (acc, plan->glyphs, plan->drop_hints))
+ if (!subr_subsetter.subset ())
return false;
/* encode charstrings, global subrs, local subrs with new subroutine numbers */
- if (!subr_subsetter.encode_charstrings (acc, plan->glyphs, subset_charstrings))
+ if (!subr_subsetter.encode_charstrings (subset_charstrings))
return false;
if (!subr_subsetter.encode_globalsubrs (subset_globalsubrs))
offsets.charStringsInfo.offSize = calcOffSize (dataSize);
if (unlikely (offsets.charStringsInfo.offSize > 4))
return false;
- final_size += CFF1CharStrings::calculate_serialized_size (offsets.charStringsInfo.offSize, plan->glyphs.length, dataSize);
+ final_size += CFF1CharStrings::calculate_serialized_size (offsets.charStringsInfo.offSize, plan->num_output_glyphs (), dataSize);
}
/* private dicts & local subrs */
if (!acc.is_CID ())
offsets.privateDictInfo = fontdicts_mod[0].privateDictInfo;
- return ((subset_charstrings.length == plan->glyphs.length)
+ return ((subset_charstrings.length == plan->num_output_glyphs ())
&& (fontdicts_mod.length == subset_fdcount));
}
unsigned int topDictModSIDs[name_dict_values_t::ValCount];
bool desubroutinize;
- cff1_subr_subsetter_t subr_subsetter;
};
static inline bool _write_cff1 (const cff_subset_plan &plan,
const OT::cff1::accelerator_subset_t &acc,
- const hb_vector_t<hb_codepoint_t>& glyphs,
+ unsigned int num_glyphs,
unsigned int dest_sz,
void *dest)
{
{
assert (plan.offsets.FDSelectInfo.offset == (unsigned) (c.head - c.start));
- if (unlikely (!hb_serialize_cff_fdselect (&c, glyphs.length, *acc.fdSelect, acc.fdCount,
+ if (unlikely (!hb_serialize_cff_fdselect (&c, num_glyphs, *acc.fdSelect, acc.fdCount,
plan.subset_fdselect_format, plan.offsets.FDSelectInfo.size,
plan.subset_fdselect_ranges)))
{
unsigned int cff_prime_size = cff_plan.get_final_size ();
char *cff_prime_data = (char *) calloc (1, cff_prime_size);
- if (unlikely (!_write_cff1 (cff_plan, acc, plan->glyphs,
+ if (unlikely (!_write_cff1 (cff_plan, acc, plan->num_output_glyphs (),
cff_prime_size, cff_prime_data))) {
DEBUG_MSG(SUBSET, nullptr, "Failed to write a subset cff.");
free (cff_prime_data);
struct cff2_subr_subsetter_t : subr_subsetter_t<cff2_subr_subsetter_t, CFF2Subrs, const OT::cff2::accelerator_subset_t, cff2_cs_interp_env_t, cff2_cs_opset_subr_subset_t>
{
+ cff2_subr_subsetter_t (const OT::cff2::accelerator_subset_t &acc, const hb_subset_plan_t *plan)
+ : subr_subsetter_t (acc, plan) {}
+
static void finalize_parsed_str (cff2_cs_interp_env_t &env, subr_subset_param_t& param, parsed_cs_str_t &charstring)
{
/* vsindex is inserted at the beginning of the charstring as necessary */
{
/* Flatten global & local subrs */
subr_flattener_t<const OT::cff2::accelerator_subset_t, cff2_cs_interp_env_t, cff2_cs_opset_flatten_t>
- flattener(acc, plan->glyphs, plan->drop_hints);
+ flattener(acc, plan);
if (!flattener.flatten (subset_charstrings))
return false;
}
else
{
+ cff2_subr_subsetter_t subr_subsetter (acc, plan);
+
/* Subset subrs: collect used subroutines, leaving all unused ones behind */
- if (!subr_subsetter.subset (acc, plan->glyphs, plan->drop_hints))
+ if (!subr_subsetter.subset ())
return false;
/* encode charstrings, global subrs, local subrs with new subroutine numbers */
- if (!subr_subsetter.encode_charstrings (acc, plan->glyphs, subset_charstrings))
+ if (!subr_subsetter.encode_charstrings (subset_charstrings))
return false;
if (!subr_subsetter.encode_globalsubrs (subset_globalsubrs))
if (acc.fdSelect != &Null(CFF2FDSelect))
{
offsets.FDSelectInfo.offset = final_size;
- if (unlikely (!hb_plan_subset_cff_fdselect (plan->glyphs,
+ if (unlikely (!hb_plan_subset_cff_fdselect (plan,
orig_fdcount,
*(const FDSelect *)acc.fdSelect,
subset_fdcount,
offsets.charStringsInfo.offset = final_size;
unsigned int dataSize = subset_charstrings.total_size ();
offsets.charStringsInfo.offSize = calcOffSize (dataSize);
- final_size += CFF2CharStrings::calculate_serialized_size (offsets.charStringsInfo.offSize, plan->glyphs.length, dataSize);
+ final_size += CFF2CharStrings::calculate_serialized_size (offsets.charStringsInfo.offSize, plan->num_output_glyphs (), dataSize);
}
/* private dicts & local subrs */
bool drop_hints;
bool desubroutinize;
- cff2_subr_subsetter_t subr_subsetter;
};
static inline bool _write_cff2 (const cff2_subset_plan &plan,
const OT::cff2::accelerator_subset_t &acc,
- const hb_vector_t<hb_codepoint_t>& glyphs,
+ unsigned int num_glyphs,
unsigned int dest_sz,
void *dest)
{
{
assert (plan.offsets.FDSelectInfo.offset == (unsigned) (c.head - c.start));
- if (unlikely (!hb_serialize_cff_fdselect (&c, glyphs.length, *(const FDSelect *)acc.fdSelect, acc.fdArray->count,
+ if (unlikely (!hb_serialize_cff_fdselect (&c, num_glyphs, *(const FDSelect *)acc.fdSelect, acc.fdArray->count,
plan.subset_fdselect_format, plan.offsets.FDSelectInfo.size,
plan.subset_fdselect_ranges)))
{
unsigned int cff2_prime_size = cff2_plan.get_final_size ();
char *cff2_prime_data = (char *) calloc (1, cff2_prime_size);
- if (unlikely (!_write_cff2 (cff2_plan, acc, plan->glyphs,
+ if (unlikely (!_write_cff2 (cff2_plan, acc, plan->num_output_glyphs (),
cff2_prime_size, cff2_prime_data))) {
DEBUG_MSG(SUBSET, nullptr, "Failed to write a subset cff2.");
free (cff2_prime_data);
}
*prime = hb_blob_create (cff2_prime_data,
- cff2_prime_size,
- HB_MEMORY_MODE_READONLY,
- cff2_prime_data,
- free);
+ cff2_prime_size,
+ HB_MEMORY_MODE_READONLY,
+ cff2_prime_data,
+ free);
return true;
}
#include "hb-set.h"
#include "hb-subset-glyf.hh"
+struct loca_data_t
+{
+ bool is_short;
+ void *data;
+ unsigned int size;
+
+ inline bool
+ _write_loca_entry (unsigned int id,
+ unsigned int offset)
+ {
+ unsigned int entry_size = is_short ? sizeof (OT::HBUINT16) : sizeof (OT::HBUINT32);
+ if ((id + 1) * entry_size <= size)
+ {
+ if (is_short) {
+ ((OT::HBUINT16*) data) [id].set (offset / 2);
+ } else {
+ ((OT::HBUINT32*) data) [id].set (offset);
+ }
+ return true;
+ }
+
+ // Offset was not written because the write is out of bounds.
+ DEBUG_MSG(SUBSET,
+ nullptr,
+ "WARNING: Attempted to write an out of bounds loca entry at index %d. Loca size is %d.",
+ id,
+ size);
+ return false;
+ }
+};
+
+/**
+ * If hints are being dropped find the range which in glyf at which
+ * the hinting instructions are located. Add them to the instruction_ranges
+ * vector.
+ */
static bool
-_calculate_glyf_and_loca_prime_size (const OT::glyf::accelerator_t &glyf,
- hb_vector_t<hb_codepoint_t> &glyph_ids,
- hb_bool_t drop_hints,
- bool *use_short_loca /* OUT */,
- unsigned int *glyf_size /* OUT */,
- unsigned int *loca_size /* OUT */,
- hb_vector_t<unsigned int> *instruction_ranges /* OUT */)
+_add_instructions_range (const OT::glyf::accelerator_t &glyf,
+ hb_codepoint_t glyph_id,
+ unsigned int glyph_start_offset,
+ unsigned int glyph_end_offset,
+ bool drop_hints,
+ hb_vector_t<unsigned int> *instruction_ranges /* OUT */)
{
- unsigned int total = 0;
- for (unsigned int i = 0; i < glyph_ids.length; i++)
+ if (!instruction_ranges->resize (instruction_ranges->length + 2))
{
- hb_codepoint_t next_glyph = glyph_ids[i];
- if (!instruction_ranges->resize (instruction_ranges->length + 2))
+ DEBUG_MSG(SUBSET, nullptr, "Failed to resize instruction_ranges.");
+ return false;
+ }
+ unsigned int *instruction_start = &(*instruction_ranges)[instruction_ranges->length - 2];
+ *instruction_start = 0;
+ unsigned int *instruction_end = &(*instruction_ranges)[instruction_ranges->length - 1];
+ *instruction_end = 0;
+
+ if (drop_hints)
+ {
+ if (unlikely (!glyf.get_instruction_offsets (glyph_start_offset, glyph_end_offset,
+ instruction_start, instruction_end)))
{
- DEBUG_MSG(SUBSET, nullptr, "Failed to resize instruction_ranges.");
+ DEBUG_MSG(SUBSET, nullptr, "Unable to get instruction offsets for %d", glyph_id);
return false;
}
- unsigned int *instruction_start = &(*instruction_ranges)[instruction_ranges->length - 2];
- *instruction_start = 0;
- unsigned int *instruction_end = &(*instruction_ranges)[instruction_ranges->length - 1];
- *instruction_end = 0;
+ }
+
+ return true;
+}
+static bool
+_calculate_glyf_and_loca_prime_size (const OT::glyf::accelerator_t &glyf,
+ const hb_subset_plan_t *plan,
+ loca_data_t *loca_data, /* OUT */
+ unsigned int *glyf_size /* OUT */,
+ hb_vector_t<unsigned int> *instruction_ranges /* OUT */)
+{
+ unsigned int total = 0;
+
+ hb_codepoint_t next_glyph = HB_SET_VALUE_INVALID;
+ while (plan->glyphset ()->next (&next_glyph))
+ {
unsigned int start_offset, end_offset;
if (unlikely (!(glyf.get_offsets (next_glyph, &start_offset, &end_offset) &&
glyf.remove_padding (start_offset, &end_offset))))
{
DEBUG_MSG(SUBSET, nullptr, "Invalid gid %d", next_glyph);
- continue;
+ start_offset = end_offset = 0;
}
- if (end_offset - start_offset < OT::glyf::GlyphHeader::static_size)
- continue; /* 0-length glyph */
- if (drop_hints)
- {
- if (unlikely (!glyf.get_instruction_offsets (start_offset, end_offset,
- instruction_start, instruction_end)))
- {
- DEBUG_MSG(SUBSET, nullptr, "Unable to get instruction offsets for %d", next_glyph);
- return false;
- }
- }
+ bool is_zero_length = end_offset - start_offset < OT::glyf::GlyphHeader::static_size;
+ if (!_add_instructions_range (glyf,
+ next_glyph,
+ start_offset,
+ end_offset,
+ plan->drop_hints && !is_zero_length,
+ instruction_ranges))
+ return false;
- total += end_offset - start_offset - (*instruction_end - *instruction_start);
+ if (is_zero_length)
+ continue; /* 0-length glyph */
+
+ total += end_offset - start_offset
+ - ((*instruction_ranges)[instruction_ranges->length - 1]
+ - (*instruction_ranges)[instruction_ranges->length - 2]);
/* round2 so short loca will work */
total += total % 2;
}
*glyf_size = total;
- *use_short_loca = (total <= 131070);
- *loca_size = (glyph_ids.length + 1)
- * (*use_short_loca ? sizeof (OT::HBUINT16) : sizeof (OT::HBUINT32));
+ loca_data->is_short = (total <= 131070);
+ loca_data->size = (plan->num_output_glyphs () + 1)
+ * (loca_data->is_short ? sizeof (OT::HBUINT16) : sizeof (OT::HBUINT32));
DEBUG_MSG(SUBSET, nullptr, "preparing to subset glyf: final size %d, loca size %d, using %s loca",
total,
- *loca_size,
- *use_short_loca ? "short" : "long");
+ loca_data->size,
+ loca_data->is_short ? "short" : "long");
return true;
}
-static bool
-_write_loca_entry (unsigned int id,
- unsigned int offset,
- bool is_short,
- void *loca_prime,
- unsigned int loca_size)
-{
- unsigned int entry_size = is_short ? sizeof (OT::HBUINT16) : sizeof (OT::HBUINT32);
- if ((id + 1) * entry_size <= loca_size)
- {
- if (is_short) {
- ((OT::HBUINT16*) loca_prime) [id].set (offset / 2);
- } else {
- ((OT::HBUINT32*) loca_prime) [id].set (offset);
- }
- return true;
- }
-
- // Offset was not written because the write is out of bounds.
- DEBUG_MSG(SUBSET,
- nullptr,
- "WARNING: Attempted to write an out of bounds loca entry at index %d. Loca size is %d.",
- id,
- loca_size);
- return false;
-}
-
static void
-_update_components (hb_subset_plan_t * plan,
- char * glyph_start,
- unsigned int length)
+_update_components (const hb_subset_plan_t *plan,
+ char *glyph_start,
+ unsigned int length)
{
OT::glyf::CompositeGlyphHeader::Iterator iterator;
if (OT::glyf::CompositeGlyphHeader::get_iterator (glyph_start,
}
static bool
-_write_glyf_and_loca_prime (hb_subset_plan_t *plan,
+_write_glyf_and_loca_prime (const hb_subset_plan_t *plan,
const OT::glyf::accelerator_t &glyf,
const char *glyf_data,
- bool use_short_loca,
- hb_vector_t<unsigned int> &instruction_ranges,
+ hb_vector_t<unsigned int> &instruction_ranges,
unsigned int glyf_prime_size,
char *glyf_prime_data /* OUT */,
- unsigned int loca_prime_size,
- char *loca_prime_data /* OUT */)
+ loca_data_t *loca_prime /* OUT */)
{
- hb_vector_t<hb_codepoint_t> &glyph_ids = plan->glyphs;
char *glyf_prime_data_next = glyf_prime_data;
bool success = true;
- for (unsigned int i = 0; i < glyph_ids.length; i++)
+
+
+ unsigned int i = 0;
+ hb_codepoint_t new_gid;
+ for (new_gid = 0; new_gid < plan->num_output_glyphs (); new_gid++)
{
+ hb_codepoint_t old_gid;
+ if (!plan->old_gid_for_new_gid (new_gid, &old_gid))
+ {
+ // Empty glyph, add a loca entry and carry on.
+ loca_prime->_write_loca_entry (new_gid,
+ glyf_prime_data_next - glyf_prime_data);
+ continue;
+ }
+
+
unsigned int start_offset, end_offset;
- if (unlikely (!(glyf.get_offsets (glyph_ids[i], &start_offset, &end_offset) &&
+ if (unlikely (!(glyf.get_offsets (old_gid, &start_offset, &end_offset) &&
glyf.remove_padding (start_offset, &end_offset))))
end_offset = start_offset = 0;
if (glyf_prime_data_next + length > glyf_prime_data + glyf_prime_size)
{
DEBUG_MSG(SUBSET,
- nullptr,
- "WARNING: Attempted to write an out of bounds glyph entry for gid %d (length %d)",
- i, length);
+ nullptr,
+ "WARNING: Attempted to write an out of bounds glyph entry for gid %d (length %d)",
+ i, length);
return false;
}
memset (glyf_prime_data_next + instruction_start - start_offset - 2, 0, 2);
}
- success = success && _write_loca_entry (i,
- glyf_prime_data_next - glyf_prime_data,
- use_short_loca,
- loca_prime_data,
- loca_prime_size);
+ success = success && loca_prime->_write_loca_entry (new_gid,
+ glyf_prime_data_next - glyf_prime_data);
_update_components (plan, glyf_prime_data_next, length);
// TODO: don't align to two bytes if using long loca.
glyf_prime_data_next += length + (length % 2); // Align to 2 bytes for short loca.
+
+ i++;
}
- success = success && _write_loca_entry (glyph_ids.length,
- glyf_prime_data_next - glyf_prime_data,
- use_short_loca,
- loca_prime_data,
- loca_prime_size);
+ // loca table has n+1 entries where the last entry signifies the end location of the last
+ // glyph.
+ success = success && loca_prime->_write_loca_entry (new_gid,
+ glyf_prime_data_next - glyf_prime_data);
return success;
}
const char *glyf_data,
hb_subset_plan_t *plan,
bool *use_short_loca,
- hb_blob_t **glyf_prime /* OUT */,
- hb_blob_t **loca_prime /* OUT */)
+ hb_blob_t **glyf_prime_blob /* OUT */,
+ hb_blob_t **loca_prime_blob /* OUT */)
{
// TODO(grieger): Sanity check allocation size for the new table.
- hb_vector_t<hb_codepoint_t> &glyphs_to_retain = plan->glyphs;
-
+ loca_data_t loca_prime;
unsigned int glyf_prime_size;
- unsigned int loca_prime_size;
hb_vector_t<unsigned int> instruction_ranges;
instruction_ranges.init ();
if (unlikely (!_calculate_glyf_and_loca_prime_size (glyf,
- glyphs_to_retain,
- plan->drop_hints,
- use_short_loca,
+ plan,
+ &loca_prime,
&glyf_prime_size,
- &loca_prime_size,
&instruction_ranges))) {
instruction_ranges.fini ();
return false;
}
+ *use_short_loca = loca_prime.is_short;
char *glyf_prime_data = (char *) calloc (1, glyf_prime_size);
- char *loca_prime_data = (char *) calloc (1, loca_prime_size);
+ loca_prime.data = (void *) calloc (1, loca_prime.size);
if (unlikely (!_write_glyf_and_loca_prime (plan, glyf, glyf_data,
- *use_short_loca,
instruction_ranges,
glyf_prime_size, glyf_prime_data,
- loca_prime_size, loca_prime_data))) {
+ &loca_prime))) {
free (glyf_prime_data);
- free (loca_prime_data);
+ free (loca_prime.data);
instruction_ranges.fini ();
return false;
}
instruction_ranges.fini ();
- *glyf_prime = hb_blob_create (glyf_prime_data,
- glyf_prime_size,
- HB_MEMORY_MODE_READONLY,
- glyf_prime_data,
- free);
- *loca_prime = hb_blob_create (loca_prime_data,
- loca_prime_size,
- HB_MEMORY_MODE_READONLY,
- loca_prime_data,
- free);
+ *glyf_prime_blob = hb_blob_create (glyf_prime_data,
+ glyf_prime_size,
+ HB_MEMORY_MODE_READONLY,
+ glyf_prime_data,
+ free);
+ *loca_prime_blob = hb_blob_create ((char *) loca_prime.data,
+ loca_prime.size,
+ HB_MEMORY_MODE_READONLY,
+ loca_prime.data,
+ free);
return true;
}
input->unicodes = hb_set_create ();
input->glyphs = hb_set_create ();
+ input->drop_hints = false;
input->drop_layout = true;
+ input->desubroutinize = false;
+ input->retain_gids = false;
return input;
}
{
return subset_input->desubroutinize;
}
+
+/**
+ * hb_subset_input_set_retain_gids:
+ * @subset_input: a subset_input.
+ * @retain_gids: If true the subsetter will not renumber glyph ids.
+ * Since: REPLACEME
+ **/
+HB_EXTERN void
+hb_subset_input_set_retain_gids (hb_subset_input_t *subset_input,
+ hb_bool_t retain_gids)
+{
+ subset_input->retain_gids = retain_gids;
+}
+
+/**
+ * hb_subset_input_get_retain_gids:
+ * Returns: value of retain_gids.
+ * Since: REPLACEME
+ **/
+HB_EXTERN hb_bool_t
+hb_subset_input_get_retain_gids (hb_subset_input_t *subset_input)
+{
+ return subset_input->retain_gids;
+}
bool drop_hints : 1;
bool drop_layout : 1;
bool desubroutinize : 1;
+ bool retain_gids : 1;
/* TODO
*
* features
static hb_set_t *
_populate_gids_to_retain (hb_face_t *face,
const hb_set_t *unicodes,
+ const hb_set_t *input_glyphs_to_retain,
bool close_over_gsub,
hb_set_t *unicodes_to_retain,
- hb_map_t *codepoint_to_glyph,
- hb_vector_t<hb_codepoint_t> *glyphs)
+ hb_map_t *codepoint_to_glyph)
{
OT::cmap::accelerator_t cmap;
OT::glyf::accelerator_t glyf;
hb_set_t *initial_gids_to_retain = hb_set_create ();
initial_gids_to_retain->add (0); // Not-def
+ hb_set_union (initial_gids_to_retain, input_glyphs_to_retain);
hb_codepoint_t cp = HB_SET_VALUE_INVALID;
while (unicodes->next (&cp))
_remove_invalid_gids (all_gids_to_retain, face->get_num_glyphs ());
- glyphs->alloc (all_gids_to_retain->get_population ());
- gid = HB_SET_VALUE_INVALID;
- while (all_gids_to_retain->next (&gid))
- glyphs->push (gid);
cff.fini ();
glyf.fini ();
}
static void
-_create_old_gid_to_new_gid_map (const hb_vector_t<hb_codepoint_t> &glyphs,
- hb_map_t *glyph_map)
+_create_old_gid_to_new_gid_map (const hb_face_t *face,
+ bool retain_gids,
+ hb_set_t *all_gids_to_retain,
+ hb_map_t *glyph_map, /* OUT */
+ hb_map_t *reverse_glyph_map, /* OUT */
+ unsigned int *num_glyphs /* OUT */)
{
- for (unsigned int i = 0; i < glyphs.length; i++) {
- glyph_map->set (glyphs[i], i);
+ hb_codepoint_t gid = HB_SET_VALUE_INVALID;
+ unsigned int length = 0;
+ for (unsigned int i = 0; all_gids_to_retain->next (&gid); i++) {
+ if (!retain_gids)
+ {
+ glyph_map->set (gid, i);
+ reverse_glyph_map->set (i, gid);
+ }
+ else
+ {
+ glyph_map->set (gid, gid);
+ reverse_glyph_map->set (gid, gid);
+ }
+ ++length;
+ }
+ if (!retain_gids || length == 0)
+ {
+ *num_glyphs = length;
+ }
+ else
+ {
+ *num_glyphs = face->get_num_glyphs ();
}
}
plan->drop_layout = input->drop_layout;
plan->desubroutinize = input->desubroutinize;
plan->unicodes = hb_set_create();
- plan->glyphs.init();
plan->source = hb_face_reference (face);
plan->dest = hb_face_builder_create ();
plan->codepoint_to_glyph = hb_map_create();
plan->glyph_map = hb_map_create();
- plan->glyphset = _populate_gids_to_retain (face,
- input->unicodes,
- !plan->drop_layout,
- plan->unicodes,
- plan->codepoint_to_glyph,
- &plan->glyphs);
- _create_old_gid_to_new_gid_map (plan->glyphs,
- plan->glyph_map);
+ plan->reverse_glyph_map = hb_map_create();
+ plan->_glyphset = _populate_gids_to_retain (face,
+ input->unicodes,
+ input->glyphs,
+ !plan->drop_layout,
+ plan->unicodes,
+ plan->codepoint_to_glyph);
+
+ _create_old_gid_to_new_gid_map (face,
+ input->retain_gids,
+ plan->_glyphset,
+ plan->glyph_map,
+ plan->reverse_glyph_map,
+ &plan->_num_output_glyphs);
return plan;
}
if (!hb_object_destroy (plan)) return;
hb_set_destroy (plan->unicodes);
- plan->glyphs.fini ();
hb_face_destroy (plan->source);
hb_face_destroy (plan->dest);
hb_map_destroy (plan->codepoint_to_glyph);
hb_map_destroy (plan->glyph_map);
- hb_set_destroy (plan->glyphset);
+ hb_map_destroy (plan->reverse_glyph_map);
+ hb_set_destroy (plan->_glyphset);
free (plan);
}
#include "hb-subset-input.hh"
#include "hb-map.hh"
+#include "hb-set.hh"
struct hb_subset_plan_t
{
// For each cp that we'd like to retain maps to the corresponding gid.
hb_set_t *unicodes;
- hb_vector_t<hb_codepoint_t> glyphs;
- hb_set_t *glyphset;
-
+ // The glyph subset
hb_map_t *codepoint_to_glyph;
+
+ // Old -> New glyph id mapping
hb_map_t *glyph_map;
+ hb_map_t *reverse_glyph_map;
// Plan is only good for a specific source/dest so keep them with it
hb_face_t *source;
hb_face_t *dest;
- bool new_gid_for_codepoint (hb_codepoint_t codepoint,
- hb_codepoint_t *new_gid) const
+ unsigned int _num_output_glyphs;
+ hb_set_t *_glyphset;
+
+ public:
+
+ /*
+ * The set of input glyph ids which will be retained in the subset.
+ */
+ inline const hb_set_t *
+ glyphset () const
+ {
+ return _glyphset;
+ }
+
+ /*
+ * The total number of output glyphs in the final subset.
+ */
+ inline unsigned int
+ num_output_glyphs () const
+ {
+ return _num_output_glyphs;
+ }
+
+ /*
+ * Given an output gid , returns true if that glyph id is an empty
+ * glyph (ie. it's a gid that we are dropping all data for).
+ */
+ inline bool is_empty_glyph (hb_codepoint_t gid) const
+ {
+ return !_glyphset->has (gid);
+ }
+
+ inline bool new_gid_for_codepoint (hb_codepoint_t codepoint,
+ hb_codepoint_t *new_gid) const
{
hb_codepoint_t old_gid = codepoint_to_glyph->get (codepoint);
if (old_gid == HB_MAP_VALUE_INVALID)
return new_gid_for_old_gid (old_gid, new_gid);
}
- bool new_gid_for_old_gid (hb_codepoint_t old_gid,
- hb_codepoint_t *new_gid) const
+ inline bool new_gid_for_old_gid (hb_codepoint_t old_gid,
+ hb_codepoint_t *new_gid) const
{
hb_codepoint_t gid = glyph_map->get (old_gid);
if (gid == HB_MAP_VALUE_INVALID)
return true;
}
- bool
+ inline bool old_gid_for_new_gid (hb_codepoint_t new_gid,
+ hb_codepoint_t *old_gid) const
+ {
+ hb_codepoint_t gid = reverse_glyph_map->get (new_gid);
+ if (gid == HB_MAP_VALUE_INVALID)
+ return false;
+
+ *old_gid = gid;
+ return true;
+ }
+
+ inline bool
add_table (hb_tag_t tag,
hb_blob_t *contents)
{
unsigned int table_len)
{
unsigned int src_glyphs = plan->source->get_num_glyphs ();
- unsigned int dst_glyphs = plan->glyphset->get_population ();
+ unsigned int dst_glyphs = plan->glyphset ()->get_population ();
if (unlikely (!src_glyphs))
return 512 + table_len;
HB_EXTERN hb_bool_t
hb_subset_input_get_desubroutinize (hb_subset_input_t *subset_input);
+HB_EXTERN void
+hb_subset_input_set_retain_gids (hb_subset_input_t *subset_input,
+ hb_bool_t retain_gids);
+HB_EXTERN hb_bool_t
+hb_subset_input_get_retain_gids (hb_subset_input_t *subset_input);
+
/* hb_subset () */
HB_EXTERN hb_face_t *
hb_subset (hb_face_t *source, hb_subset_input_t *input);
HB_SCRIPT_MEDEFAIDRIN,
HB_SCRIPT_OLD_SOGDIAN,
HB_SCRIPT_SOGDIAN,
+ HB_SCRIPT_ELYMAIC,
+ HB_SCRIPT_NANDINAGARI,
+ HB_SCRIPT_NYIAKENG_PUACHUE_HMONG,
+ HB_SCRIPT_WANCHO,
};
static hb_unicode_combining_class_t
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/libhb_ucdn_la-ucdn.Plo
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(srcdir)/Makefile.sources $(am__empty):
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhb_ucdn_la-ucdn.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhb_ucdn_la-ucdn.Plo@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
mostlyclean-am
distclean: distclean-am
- -rm -rf ./$(DEPDIR)
+ -rm -f ./$(DEPDIR)/libhb_ucdn_la-ucdn.Plo
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
installcheck-am:
maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
+ -rm -f ./$(DEPDIR)/libhb_ucdn_la-ucdn.Plo
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
- ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+ clean-generic clean-libtool clean-noinstLTLIBRARIES \
+ cscopelist-am ctags ctags-am distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am
#define UCDN_SCRIPT_NUSHU 139
#define UCDN_SCRIPT_SOYOMBO 140
#define UCDN_SCRIPT_ZANABAZAR_SQUARE 141
+#define UCDN_SCRIPT_DOGRA 142
+#define UCDN_SCRIPT_GUNJALA_GONDI 143
+#define UCDN_SCRIPT_HANIFI_ROHINGYA 144
+#define UCDN_SCRIPT_MAKASAR 145
+#define UCDN_SCRIPT_MEDEFAIDRIN 146
+#define UCDN_SCRIPT_OLD_SOGDIAN 147
+#define UCDN_SCRIPT_SOGDIAN 148
+#define UCDN_SCRIPT_ELYMAIC 149
+#define UCDN_SCRIPT_NANDINAGARI 150
+#define UCDN_SCRIPT_NYIAKENG_PUACHUE_HMONG 151
+#define UCDN_SCRIPT_WANCHO 152
#define UCDN_LINEBREAK_CLASS_OP 0
#define UCDN_LINEBREAK_CLASS_CL 1
/* this file was generated by makeunicodedata.py 3.2 */
-#define UNIDATA_VERSION "11.0.0"
+#define UNIDATA_VERSION "12.0.0"
/* a list of unique database records */
static const UCDRecord ucd_records[] = {
{2, 0, 18, 5, 102, 39},
{7, 0, 0, 5, 9, 12},
{12, 7, 13, 5, 9, 21},
{12, 9, 13, 5, 9, 21},
- {12, 230, 13, 5, 9, 21},
{21, 0, 0, 5, 0, 17},
{13, 0, 0, 5, 9, 11},
{21, 0, 0, 5, 9, 12},
{12, 84, 13, 5, 15, 21},
{12, 91, 13, 5, 15, 21},
{13, 0, 0, 5, 15, 11},
+ {21, 0, 0, 5, 15, 18},
{15, 0, 18, 5, 15, 12},
{26, 0, 0, 5, 15, 12},
{7, 0, 0, 5, 16, 12},
{7, 0, 0, 5, 20, 36},
{12, 0, 13, 5, 20, 36},
{12, 118, 13, 5, 20, 36},
+ {12, 9, 13, 5, 20, 36},
{6, 0, 0, 5, 20, 36},
{12, 122, 13, 5, 20, 36},
{13, 0, 0, 5, 20, 11},
{5, 0, 0, 5, 26, 12},
{17, 0, 18, 5, 27, 17},
{7, 0, 0, 5, 27, 12},
+ {26, 0, 0, 5, 27, 12},
{21, 0, 0, 5, 27, 12},
{29, 0, 17, 5, 28, 17},
{7, 0, 0, 5, 28, 12},
{12, 0, 13, 5, 70, 21},
{21, 0, 0, 5, 70, 17},
{13, 0, 0, 5, 70, 11},
+ {12, 230, 13, 5, 9, 21},
{21, 0, 0, 5, 9, 18},
{13, 0, 0, 5, 71, 11},
{7, 0, 0, 5, 71, 12},
{12, 230, 13, 5, 148, 21},
{15, 0, 4, 5, 148, 12},
{21, 0, 4, 5, 148, 12},
+ {7, 0, 3, 5, 149, 12},
{10, 0, 0, 5, 93, 21},
{12, 0, 13, 5, 93, 21},
{7, 0, 0, 5, 93, 12},
{13, 0, 0, 5, 125, 11},
{15, 0, 0, 5, 125, 12},
{7, 0, 0, 5, 125, 12},
+ {7, 0, 0, 5, 150, 12},
+ {10, 0, 0, 5, 150, 21},
+ {12, 0, 13, 5, 150, 21},
+ {12, 9, 13, 5, 150, 21},
+ {21, 0, 0, 5, 150, 18},
{7, 0, 0, 5, 141, 12},
{12, 0, 13, 5, 141, 21},
{12, 0, 0, 5, 141, 21},
{12, 0, 13, 5, 145, 21},
{10, 0, 0, 5, 145, 21},
{21, 0, 0, 5, 145, 12},
+ {23, 0, 10, 5, 14, 10},
+ {21, 0, 0, 5, 14, 17},
{7, 0, 0, 5, 62, 12},
{14, 0, 0, 5, 62, 12},
{21, 0, 0, 5, 62, 17},
{7, 0, 0, 5, 80, 12},
{7, 0, 0, 5, 80, 0},
{7, 0, 0, 5, 80, 1},
+ {1, 0, 0, 5, 80, 4},
+ {1, 0, 0, 5, 80, 0},
+ {1, 0, 0, 5, 80, 1},
{7, 0, 0, 5, 127, 12},
{7, 0, 0, 5, 127, 0},
{7, 0, 0, 5, 127, 1},
{21, 0, 0, 5, 146, 17},
{21, 0, 0, 5, 146, 12},
{7, 0, 0, 5, 98, 12},
- {10, 0, 0, 5, 98, 21},
{12, 0, 13, 5, 98, 21},
+ {10, 0, 0, 5, 98, 21},
{6, 0, 0, 5, 98, 12},
{6, 0, 0, 2, 137, 5},
{6, 0, 0, 2, 139, 5},
+ {6, 0, 0, 2, 0, 5},
{7, 0, 0, 2, 137, 14},
{7, 0, 0, 2, 139, 14},
{7, 0, 0, 5, 105, 12},
{21, 0, 0, 5, 131, 17},
{21, 0, 0, 5, 131, 12},
{12, 230, 13, 5, 56, 21},
+ {7, 0, 0, 5, 151, 12},
+ {12, 230, 13, 5, 151, 21},
+ {6, 0, 0, 5, 151, 12},
+ {13, 0, 0, 5, 151, 11},
+ {26, 0, 0, 5, 151, 12},
+ {7, 0, 0, 5, 152, 12},
+ {12, 230, 13, 5, 152, 21},
+ {13, 0, 0, 5, 152, 11},
+ {23, 0, 10, 5, 152, 9},
{7, 0, 3, 5, 113, 12},
{15, 0, 3, 5, 113, 12},
{12, 220, 13, 5, 113, 21},
{5, 0, 3, 5, 132, 12},
{12, 230, 13, 5, 132, 21},
{12, 7, 13, 5, 132, 21},
+ {6, 0, 3, 5, 132, 12},
{13, 0, 3, 5, 132, 11},
{21, 0, 3, 5, 132, 0},
{15, 0, 4, 5, 0, 12},
{26, 0, 4, 5, 0, 10},
{23, 0, 4, 5, 0, 10},
+ {26, 0, 4, 5, 0, 12},
{2, 0, 18, 5, 102, 14},
{26, 0, 0, 2, 0, 29},
{26, 0, 0, 5, 0, 28},
#define UCDN_SCRIPT_MEDEFAIDRIN 146
#define UCDN_SCRIPT_OLD_SOGDIAN 147
#define UCDN_SCRIPT_SOGDIAN 148
+#define UCDN_SCRIPT_ELYMAIC 149
+#define UCDN_SCRIPT_NANDINAGARI 150
+#define UCDN_SCRIPT_NYIAKENG_PUACHUE_HMONG 151
+#define UCDN_SCRIPT_WANCHO 152
#define UCDN_GENERAL_CATEGORY_CC 0
#define UCDN_GENERAL_CATEGORY_CF 1
73, 73, 73, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 52, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
- 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 106, 108, 109, 110, 106,
- 111, 111, 111, 112, 113, 114, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 115, 115, 116, 117, 118, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 119, 120, 121, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 122, 122, 123, 124, 106, 106, 125, 126, 127, 127, 127, 127,
- 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
- 127, 127, 127, 127, 127, 128, 127, 127, 129, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 130, 131, 132, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 133, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 134, 135, 136, 137, 138, 139,
- 140, 141, 142, 142, 143, 106, 106, 106, 106, 106, 144, 106, 106, 106,
- 106, 106, 106, 106, 145, 146, 106, 106, 147, 106, 148, 106, 149, 150,
- 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 160, 160, 160, 161, 52,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 113, 113, 113, 114, 115, 116, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 117, 117, 118, 119, 120, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 121, 122, 123, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 124, 124, 125, 126, 108, 108, 127, 128, 129, 129, 129, 129,
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
+ 129, 129, 129, 129, 129, 130, 129, 129, 131, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 132, 133, 134, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 135, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 144, 145, 108, 108, 108, 108, 108, 146, 147, 148, 108,
+ 108, 108, 108, 108, 149, 150, 108, 108, 151, 152, 153, 108, 154, 155,
+ 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 165, 165, 165, 166, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 162, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 163, 164, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 165, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 167, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 168, 169, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 170, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 166, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 52, 52,
- 168, 167, 167, 167, 167, 169, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 169, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 170, 171, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 74, 74, 74,
+ 171, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 52, 52,
+ 173, 172, 172, 172, 172, 174, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 174, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 175, 176, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
- 172, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 177, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
- 74, 74, 74, 74, 172,
+ 74, 74, 74, 74, 177,
};
static const unsigned short index1[] = {
231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 119, 242, 243,
244, 245, 246, 243, 247, 248, 249, 250, 251, 119, 252, 253, 254, 255,
256, 257, 258, 259, 259, 258, 259, 260, 261, 262, 263, 264, 265, 266,
- 119, 267, 268, 269, 270, 271, 271, 270, 272, 273, 274, 275, 276, 277,
- 278, 279, 280, 119, 281, 282, 283, 284, 284, 284, 284, 285, 286, 287,
- 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 295, 295, 298, 299,
- 296, 300, 301, 302, 303, 304, 305, 119, 306, 307, 307, 307, 307, 307,
- 308, 309, 310, 311, 312, 313, 119, 119, 119, 119, 314, 315, 316, 317,
- 318, 319, 320, 321, 322, 323, 324, 325, 119, 119, 119, 119, 326, 327,
- 328, 329, 330, 331, 332, 333, 334, 335, 334, 334, 334, 336, 337, 338,
- 339, 340, 341, 342, 341, 341, 341, 343, 344, 345, 346, 347, 119, 119,
- 119, 119, 348, 348, 348, 348, 348, 349, 350, 351, 352, 353, 354, 355,
- 356, 357, 358, 348, 359, 360, 352, 361, 362, 362, 362, 362, 363, 364,
- 365, 365, 365, 365, 365, 366, 367, 367, 367, 367, 367, 367, 367, 367,
- 367, 367, 367, 367, 368, 368, 368, 368, 368, 368, 368, 368, 368, 369,
- 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 370, 370, 370, 370,
- 370, 370, 370, 370, 370, 371, 372, 371, 370, 370, 370, 370, 370, 371,
- 370, 370, 370, 370, 371, 372, 371, 370, 372, 370, 370, 370, 370, 370,
- 370, 370, 371, 370, 370, 370, 370, 370, 370, 370, 370, 373, 374, 375,
- 376, 377, 370, 370, 378, 379, 380, 380, 380, 380, 380, 380, 380, 380,
- 380, 380, 381, 382, 383, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 385, 384, 384,
- 386, 387, 387, 388, 389, 389, 389, 389, 389, 389, 389, 389, 389, 390,
- 391, 392, 393, 394, 395, 119, 396, 396, 397, 119, 398, 398, 399, 119,
- 400, 401, 402, 119, 403, 403, 403, 403, 403, 403, 404, 405, 406, 407,
- 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 418, 418, 418,
- 419, 418, 418, 418, 418, 418, 418, 420, 421, 418, 418, 418, 418, 422,
- 384, 384, 384, 384, 384, 384, 384, 384, 423, 119, 424, 424, 424, 425,
- 426, 427, 428, 429, 430, 431, 432, 432, 432, 433, 434, 119, 435, 435,
- 435, 435, 435, 436, 435, 435, 435, 437, 438, 439, 440, 440, 440, 440,
- 441, 441, 442, 443, 444, 444, 444, 444, 444, 444, 445, 446, 447, 448,
- 449, 450, 451, 452, 451, 452, 453, 454, 455, 456, 119, 119, 119, 119,
- 119, 119, 119, 119, 457, 458, 458, 458, 458, 458, 459, 460, 461, 462,
- 463, 464, 465, 466, 467, 468, 469, 470, 470, 470, 471, 472, 473, 474,
- 475, 475, 475, 475, 476, 477, 478, 479, 480, 480, 480, 480, 481, 482,
- 483, 484, 485, 486, 487, 488, 489, 489, 489, 490, 100, 491, 362, 362,
- 362, 362, 362, 492, 493, 119, 494, 495, 496, 497, 498, 499, 54, 54, 54,
- 54, 500, 501, 56, 56, 56, 56, 56, 502, 503, 504, 54, 505, 54, 54, 54,
- 506, 56, 56, 56, 507, 508, 509, 510, 511, 511, 511, 512, 513, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 514, 515, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 516, 517, 518, 519, 516, 517,
- 516, 517, 518, 519, 516, 520, 516, 517, 516, 518, 516, 521, 516, 521,
- 516, 521, 522, 523, 524, 525, 526, 527, 516, 528, 529, 530, 531, 532,
- 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
- 547, 548, 56, 549, 550, 551, 552, 553, 554, 554, 555, 556, 557, 558, 559,
- 119, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572,
- 573, 572, 574, 575, 576, 577, 578, 579, 580, 581, 582, 581, 583, 584,
- 581, 585, 581, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 587,
- 596, 597, 587, 598, 599, 587, 587, 599, 587, 600, 601, 600, 587, 587,
- 602, 587, 587, 587, 587, 587, 603, 587, 587, 581, 604, 605, 606, 607,
- 608, 609, 610, 610, 610, 610, 610, 610, 610, 610, 611, 581, 581, 612,
- 613, 587, 587, 614, 581, 581, 581, 581, 586, 607, 615, 616, 581, 581,
- 581, 581, 581, 617, 119, 119, 119, 581, 618, 119, 119, 619, 619, 619,
- 619, 619, 620, 620, 621, 622, 622, 622, 622, 622, 622, 622, 622, 622,
- 623, 619, 624, 625, 625, 625, 625, 625, 625, 625, 625, 625, 626, 625,
- 625, 625, 625, 627, 581, 625, 625, 628, 581, 629, 630, 631, 632, 633,
- 634, 630, 581, 628, 635, 581, 636, 637, 638, 639, 640, 581, 581, 581,
- 641, 642, 643, 644, 581, 645, 646, 581, 647, 581, 581, 648, 649, 650,
- 651, 581, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 581,
- 581, 581, 663, 581, 664, 581, 665, 666, 667, 668, 669, 670, 619, 671,
- 671, 672, 581, 581, 581, 663, 673, 674, 587, 587, 587, 675, 676, 587,
- 587, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677,
- 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677,
- 677, 677, 677, 677, 677, 587, 587, 587, 587, 587, 587, 587, 587, 587,
- 587, 587, 587, 587, 587, 587, 587, 678, 679, 679, 680, 587, 587, 587,
- 587, 587, 587, 587, 681, 587, 587, 587, 682, 587, 587, 587, 587, 587,
- 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587,
- 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 581,
- 581, 581, 683, 581, 581, 587, 587, 684, 685, 686, 630, 581, 581, 687,
- 581, 581, 581, 688, 581, 581, 581, 581, 581, 581, 689, 581, 581, 581,
- 581, 581, 617, 690, 690, 690, 690, 690, 691, 692, 692, 692, 692, 692,
- 693, 694, 695, 696, 697, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
- 698, 699, 700, 701, 365, 365, 365, 365, 702, 703, 704, 704, 704, 704,
- 704, 704, 704, 705, 706, 707, 370, 370, 372, 119, 372, 372, 372, 372,
- 372, 372, 372, 372, 708, 708, 708, 708, 709, 710, 711, 712, 713, 714,
- 715, 716, 717, 718, 119, 119, 119, 119, 119, 119, 719, 719, 719, 720,
- 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 721, 119, 719, 719,
- 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
- 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 722, 119, 119, 119,
- 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 735,
- 736, 735, 735, 735, 737, 738, 739, 740, 741, 742, 743, 743, 744, 743,
- 743, 743, 745, 746, 747, 748, 749, 750, 750, 750, 750, 750, 751, 752,
- 752, 752, 752, 752, 752, 752, 752, 752, 752, 753, 754, 755, 750, 750,
- 750, 756, 723, 723, 723, 723, 724, 119, 757, 757, 758, 758, 758, 759,
- 760, 761, 755, 755, 755, 762, 763, 764, 758, 758, 758, 765, 760, 761,
- 755, 755, 755, 755, 766, 764, 755, 767, 768, 768, 768, 768, 768, 769,
- 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 755, 755, 755,
- 770, 771, 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, 772,
- 755, 755, 755, 770, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
- 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
- 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
- 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
- 773, 773, 774, 775, 581, 581, 581, 581, 581, 581, 581, 581, 773, 773,
- 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
- 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
- 775, 775, 776, 776, 777, 776, 776, 776, 776, 776, 776, 776, 776, 776,
- 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776,
- 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776,
- 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776,
- 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776,
- 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 778,
- 779, 779, 779, 779, 779, 779, 780, 119, 781, 781, 781, 781, 781, 782,
- 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783,
- 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783,
- 783, 783, 783, 783, 783, 784, 783, 783, 785, 786, 119, 119, 101, 101,
- 101, 101, 101, 787, 788, 789, 101, 101, 101, 790, 791, 791, 791, 791,
- 791, 791, 791, 791, 792, 793, 794, 119, 64, 64, 795, 796, 797, 27, 798,
- 27, 27, 27, 27, 27, 27, 27, 799, 800, 27, 801, 802, 27, 27, 803, 804,
- 805, 119, 119, 119, 119, 119, 119, 806, 807, 808, 809, 810, 810, 811,
- 812, 813, 814, 815, 815, 815, 815, 815, 815, 816, 119, 817, 818, 818,
- 818, 818, 818, 819, 820, 821, 822, 823, 824, 825, 825, 826, 827, 828,
- 829, 830, 830, 831, 832, 833, 833, 834, 835, 836, 837, 367, 367, 367,
- 838, 839, 840, 840, 840, 840, 840, 841, 842, 843, 844, 845, 846, 847,
- 348, 352, 848, 849, 849, 849, 849, 849, 850, 851, 119, 852, 853, 854,
- 855, 348, 348, 856, 857, 858, 858, 858, 858, 858, 858, 859, 860, 861,
- 119, 119, 862, 863, 864, 865, 119, 866, 866, 866, 119, 372, 372, 54, 54,
- 54, 54, 54, 867, 868, 119, 869, 869, 869, 869, 869, 869, 869, 869, 869,
- 869, 863, 863, 863, 863, 870, 871, 872, 873, 874, 875, 875, 876, 875,
- 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875,
- 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875,
- 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875,
- 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875,
- 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875,
- 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875,
- 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875,
- 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875,
- 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875,
- 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875,
- 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875,
- 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875,
- 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875,
- 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875,
- 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875,
- 875, 875, 874, 875, 875, 876, 875, 875, 875, 875, 875, 875, 874, 875,
- 875, 876, 875, 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875,
- 875, 877, 119, 368, 368, 878, 879, 369, 369, 369, 369, 369, 880, 881,
- 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881,
- 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881,
- 881, 881, 881, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882,
- 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882,
- 882, 882, 882, 882, 882, 882, 882, 773, 773, 773, 773, 773, 773, 773,
- 773, 773, 773, 773, 773, 773, 774, 773, 773, 773, 773, 773, 773, 773,
- 773, 773, 773, 773, 773, 773, 883, 775, 775, 775, 775, 884, 119, 885,
- 886, 120, 887, 888, 889, 890, 120, 127, 127, 127, 127, 127, 127, 127,
- 127, 127, 127, 127, 127, 891, 892, 893, 119, 894, 127, 127, 127, 127,
+ 267, 268, 269, 270, 271, 272, 272, 271, 273, 274, 275, 276, 277, 278,
+ 279, 280, 281, 119, 282, 283, 284, 285, 285, 285, 285, 286, 287, 288,
+ 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 296, 296, 299, 300,
+ 297, 301, 302, 303, 304, 305, 306, 119, 307, 308, 308, 308, 308, 308,
+ 309, 310, 311, 312, 313, 314, 119, 119, 119, 119, 315, 316, 317, 317,
+ 318, 317, 319, 320, 321, 322, 323, 324, 119, 119, 119, 119, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, 333, 333, 333, 335, 336, 337,
+ 338, 339, 340, 341, 340, 340, 340, 342, 343, 344, 345, 346, 119, 119,
+ 119, 119, 347, 347, 347, 347, 347, 348, 349, 350, 351, 352, 353, 354,
+ 355, 356, 357, 347, 358, 359, 351, 360, 361, 361, 361, 361, 362, 363,
+ 364, 364, 364, 364, 364, 365, 366, 366, 366, 366, 366, 366, 366, 366,
+ 366, 366, 366, 366, 367, 367, 367, 367, 367, 367, 367, 367, 367, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 370, 371, 370, 369, 369, 369, 369, 369, 370,
+ 369, 369, 369, 369, 370, 371, 370, 369, 371, 369, 369, 369, 369, 369,
+ 369, 369, 370, 369, 369, 369, 369, 369, 369, 369, 369, 372, 373, 374,
+ 375, 376, 369, 369, 377, 378, 379, 379, 379, 379, 379, 379, 379, 379,
+ 379, 379, 380, 381, 382, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 384, 383, 383,
+ 385, 386, 386, 387, 388, 388, 388, 388, 388, 388, 388, 388, 388, 389,
+ 390, 391, 392, 393, 394, 119, 395, 395, 396, 119, 397, 397, 398, 119,
+ 399, 400, 401, 119, 402, 402, 402, 402, 402, 402, 403, 404, 405, 406,
+ 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 417, 417, 417,
+ 418, 417, 417, 417, 417, 417, 417, 419, 420, 417, 417, 417, 417, 421,
+ 383, 383, 383, 383, 383, 383, 383, 383, 422, 119, 423, 423, 423, 424,
+ 425, 426, 427, 428, 429, 430, 431, 431, 431, 432, 433, 119, 434, 434,
+ 434, 434, 434, 435, 434, 434, 434, 436, 437, 438, 439, 439, 439, 439,
+ 440, 440, 441, 442, 443, 443, 443, 443, 443, 443, 444, 445, 446, 447,
+ 448, 449, 450, 451, 450, 451, 452, 453, 454, 455, 119, 119, 119, 119,
+ 119, 119, 119, 119, 456, 457, 457, 457, 457, 457, 458, 459, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 469, 469, 470, 471, 472, 473,
+ 474, 474, 474, 474, 475, 476, 477, 478, 479, 479, 479, 479, 480, 481,
+ 482, 483, 484, 485, 486, 487, 488, 488, 488, 489, 100, 490, 361, 361,
+ 361, 361, 361, 491, 492, 119, 493, 494, 495, 496, 497, 498, 54, 54, 54,
+ 54, 499, 500, 56, 56, 56, 56, 56, 501, 502, 503, 54, 504, 54, 54, 54,
+ 505, 56, 56, 56, 506, 507, 508, 509, 510, 510, 510, 511, 512, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 513, 514, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 515, 516, 517, 518, 515, 516,
+ 515, 516, 517, 518, 515, 519, 515, 516, 515, 517, 515, 520, 515, 520,
+ 515, 520, 521, 522, 523, 524, 525, 526, 515, 527, 528, 529, 530, 531,
+ 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
+ 546, 547, 56, 548, 549, 550, 551, 552, 553, 553, 554, 555, 556, 557, 558,
+ 119, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571,
+ 572, 571, 573, 574, 575, 576, 577, 578, 579, 580, 581, 580, 582, 583,
+ 580, 584, 580, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 586,
+ 595, 596, 586, 597, 598, 586, 586, 598, 586, 599, 600, 599, 586, 586,
+ 601, 586, 586, 586, 586, 586, 602, 586, 586, 580, 603, 604, 605, 606,
+ 607, 608, 609, 609, 609, 609, 609, 609, 609, 609, 610, 580, 580, 611,
+ 612, 586, 586, 613, 580, 580, 580, 580, 585, 606, 614, 615, 580, 580,
+ 580, 580, 580, 616, 119, 119, 119, 580, 617, 119, 119, 618, 618, 618,
+ 618, 618, 619, 619, 620, 621, 621, 621, 621, 621, 621, 621, 621, 621,
+ 622, 618, 623, 624, 624, 624, 624, 624, 624, 624, 624, 624, 625, 624,
+ 624, 624, 624, 626, 580, 624, 624, 627, 580, 628, 629, 630, 631, 632,
+ 633, 629, 580, 627, 634, 580, 635, 636, 637, 638, 639, 580, 580, 580,
+ 640, 641, 642, 643, 580, 644, 645, 580, 646, 580, 580, 647, 648, 649,
+ 650, 580, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 580,
+ 580, 580, 662, 580, 663, 580, 664, 665, 666, 667, 668, 669, 618, 670,
+ 670, 671, 580, 580, 580, 662, 672, 673, 586, 586, 586, 674, 675, 586,
+ 586, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676,
+ 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676,
+ 676, 676, 676, 676, 676, 586, 586, 586, 586, 586, 586, 586, 586, 586,
+ 586, 586, 586, 586, 586, 586, 586, 677, 678, 678, 679, 586, 586, 586,
+ 586, 586, 586, 586, 680, 586, 586, 586, 681, 586, 586, 586, 586, 586,
+ 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586,
+ 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 580,
+ 580, 580, 682, 580, 580, 586, 586, 683, 684, 685, 629, 580, 580, 686,
+ 580, 580, 580, 687, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
+ 580, 580, 580, 688, 688, 688, 688, 688, 689, 690, 690, 690, 690, 690,
+ 691, 692, 693, 694, 695, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
+ 696, 697, 698, 699, 364, 364, 364, 364, 700, 701, 702, 702, 702, 702,
+ 702, 702, 702, 703, 704, 705, 369, 369, 371, 119, 371, 371, 371, 371,
+ 371, 371, 371, 371, 706, 706, 706, 706, 707, 708, 709, 710, 711, 712,
+ 713, 714, 715, 716, 119, 119, 119, 119, 119, 119, 717, 717, 717, 718,
+ 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, 719, 119, 717, 717,
+ 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, 717,
+ 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, 720, 119, 119, 119,
+ 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 733,
+ 734, 733, 733, 733, 735, 736, 737, 738, 739, 740, 741, 741, 742, 741,
+ 741, 741, 743, 744, 745, 746, 747, 748, 748, 748, 748, 748, 749, 750,
+ 750, 750, 750, 750, 750, 750, 750, 750, 750, 751, 752, 753, 748, 748,
+ 748, 754, 721, 721, 721, 721, 722, 119, 755, 755, 756, 756, 756, 757,
+ 758, 759, 753, 753, 753, 760, 761, 762, 756, 756, 756, 763, 758, 759,
+ 753, 753, 753, 753, 764, 762, 753, 765, 766, 766, 766, 766, 766, 767,
+ 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 753, 753, 753,
+ 768, 769, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 770,
+ 753, 753, 753, 768, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
+ 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
+ 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
+ 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
+ 771, 771, 772, 773, 580, 580, 580, 580, 580, 580, 580, 580, 771, 771,
+ 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
+ 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
+ 773, 773, 774, 774, 775, 774, 774, 774, 774, 774, 774, 774, 774, 774,
+ 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
+ 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
+ 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
+ 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
+ 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 776,
+ 777, 777, 777, 777, 777, 777, 778, 119, 779, 779, 779, 779, 779, 780,
+ 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
+ 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
+ 781, 781, 781, 781, 781, 782, 781, 781, 783, 784, 119, 119, 101, 101,
+ 101, 101, 101, 785, 786, 787, 101, 101, 101, 788, 789, 789, 789, 789,
+ 789, 789, 789, 789, 790, 791, 792, 119, 64, 64, 793, 794, 795, 27, 796,
+ 27, 27, 27, 27, 27, 27, 27, 797, 798, 27, 799, 800, 27, 27, 801, 802, 27,
+ 803, 119, 119, 119, 119, 119, 804, 805, 806, 807, 808, 808, 809, 810,
+ 811, 812, 813, 813, 813, 813, 813, 813, 814, 119, 815, 816, 816, 816,
+ 816, 816, 817, 818, 819, 820, 821, 822, 823, 823, 824, 825, 826, 827,
+ 828, 828, 829, 830, 831, 831, 832, 833, 834, 835, 366, 366, 366, 836,
+ 837, 838, 838, 838, 838, 838, 839, 840, 841, 842, 843, 844, 845, 347,
+ 351, 846, 847, 847, 847, 847, 847, 848, 849, 119, 850, 851, 852, 853,
+ 347, 347, 854, 855, 856, 856, 856, 856, 856, 856, 857, 858, 859, 119,
+ 119, 860, 861, 862, 863, 119, 864, 864, 864, 119, 371, 371, 54, 54, 54,
+ 54, 54, 865, 866, 119, 867, 867, 867, 867, 867, 867, 867, 867, 867, 867,
+ 861, 861, 861, 861, 868, 869, 870, 871, 872, 873, 873, 874, 873, 873,
+ 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873,
+ 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873,
+ 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873,
+ 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873,
+ 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873,
+ 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873,
+ 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873,
+ 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873,
+ 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873,
+ 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873,
+ 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873,
+ 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873,
+ 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873,
+ 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873,
+ 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873,
+ 873, 872, 873, 873, 874, 873, 873, 873, 873, 873, 873, 872, 873, 873,
+ 874, 873, 873, 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873,
+ 875, 119, 367, 367, 876, 877, 368, 368, 368, 368, 368, 878, 879, 879,
+ 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879,
+ 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879,
+ 879, 879, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880,
+ 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880,
+ 880, 880, 880, 880, 880, 880, 771, 771, 771, 771, 771, 771, 771, 771,
+ 771, 771, 771, 771, 771, 772, 771, 771, 771, 771, 771, 771, 771, 771,
+ 771, 771, 771, 771, 771, 881, 773, 773, 773, 773, 882, 119, 883, 884,
+ 120, 885, 886, 887, 888, 120, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 889, 890, 891, 119, 892, 127, 127, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
- 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 895, 119,
- 119, 127, 127, 127, 127, 127, 127, 127, 127, 896, 127, 127, 127, 127,
- 127, 127, 119, 119, 119, 119, 119, 127, 897, 898, 898, 899, 900, 901,
- 902, 903, 904, 905, 906, 907, 908, 909, 910, 169, 127, 127, 127, 127,
- 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 911, 912,
- 913, 914, 915, 916, 917, 917, 918, 919, 920, 920, 921, 922, 923, 924,
- 925, 925, 925, 925, 926, 927, 927, 927, 928, 929, 929, 929, 930, 931,
- 932, 119, 933, 934, 935, 934, 934, 936, 934, 934, 937, 934, 938, 934,
- 938, 119, 119, 119, 119, 934, 934, 934, 934, 934, 934, 934, 934, 934,
- 934, 934, 934, 934, 934, 934, 939, 940, 941, 941, 941, 941, 941, 942,
- 610, 943, 943, 943, 943, 943, 943, 944, 945, 946, 947, 581, 948, 949,
- 119, 119, 119, 119, 119, 610, 610, 610, 610, 610, 950, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 951,
- 951, 951, 952, 953, 953, 953, 953, 953, 953, 954, 119, 955, 956, 956,
- 957, 958, 958, 958, 958, 959, 960, 961, 961, 962, 963, 964, 964, 964,
- 964, 965, 966, 967, 967, 967, 968, 969, 969, 969, 969, 970, 969, 971,
- 119, 119, 119, 119, 119, 972, 972, 972, 972, 972, 973, 973, 973, 973,
- 973, 974, 974, 974, 974, 974, 974, 975, 975, 975, 976, 977, 978, 979,
- 979, 979, 979, 980, 981, 981, 981, 981, 982, 983, 983, 983, 983, 983,
- 119, 984, 984, 984, 984, 984, 984, 985, 986, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 987,
- 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
- 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
- 987, 987, 987, 987, 987, 987, 987, 987, 987, 988, 119, 987, 987, 989,
- 119, 987, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 990, 991, 992, 992, 992, 992, 993,
- 994, 995, 995, 996, 997, 998, 998, 999, 1000, 1001, 1001, 1001, 1002,
- 1003, 1004, 119, 119, 119, 119, 119, 119, 1005, 1005, 1006, 1007, 1008,
- 1008, 1009, 1010, 1011, 1011, 1011, 1012, 119, 119, 119, 119, 119, 119,
- 119, 119, 1013, 1013, 1013, 1013, 1014, 1014, 1014, 1015, 1016, 1016,
- 1017, 1016, 1016, 1016, 1016, 1016, 1018, 1019, 1020, 1021, 1022, 1022,
- 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1029, 1029, 1030, 1031, 1031,
- 1031, 1032, 119, 119, 119, 119, 1033, 1034, 1033, 1033, 1035, 1036, 1037,
- 119, 1038, 1038, 1038, 1038, 1038, 1038, 1039, 1040, 1041, 1041, 1042,
- 1043, 1044, 1044, 1045, 1046, 1047, 1047, 1048, 1049, 119, 1050, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 1051, 1051, 1051, 1051,
- 1051, 1051, 1051, 1051, 1051, 1052, 119, 119, 119, 119, 119, 119, 1053,
- 1053, 1053, 1053, 1053, 1053, 1054, 119, 1055, 1055, 1055, 1055, 1055,
- 1055, 1056, 1057, 1058, 1058, 1058, 1058, 1059, 119, 1060, 1061, 119,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 893, 119, 119,
+ 127, 127, 127, 127, 127, 127, 127, 127, 894, 127, 127, 127, 127, 127,
+ 127, 119, 119, 119, 119, 119, 127, 895, 896, 896, 897, 898, 899, 900,
+ 901, 902, 903, 904, 905, 906, 907, 908, 169, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 909, 910, 911,
+ 912, 913, 914, 915, 915, 916, 917, 918, 918, 919, 920, 921, 922, 923,
+ 923, 923, 923, 924, 925, 925, 925, 926, 927, 927, 927, 928, 929, 930,
+ 119, 931, 932, 933, 932, 932, 934, 932, 932, 935, 932, 936, 932, 936,
+ 119, 119, 119, 119, 932, 932, 932, 932, 932, 932, 932, 932, 932, 932,
+ 932, 932, 932, 932, 932, 937, 938, 939, 939, 939, 939, 939, 940, 609,
+ 941, 941, 941, 941, 941, 941, 942, 943, 944, 945, 580, 946, 947, 119,
+ 119, 119, 119, 119, 609, 609, 609, 609, 609, 948, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 949, 949,
+ 949, 950, 951, 951, 951, 951, 951, 951, 952, 119, 953, 954, 954, 955,
+ 956, 956, 956, 956, 957, 958, 959, 959, 960, 961, 962, 962, 962, 962,
+ 963, 964, 965, 965, 965, 966, 967, 967, 967, 967, 968, 967, 969, 119,
+ 119, 119, 119, 119, 970, 970, 970, 970, 970, 971, 971, 971, 971, 971,
+ 972, 972, 972, 972, 972, 972, 973, 973, 973, 974, 975, 976, 977, 977,
+ 977, 977, 978, 979, 979, 979, 979, 980, 981, 981, 981, 981, 981, 119,
+ 982, 982, 982, 982, 982, 982, 983, 984, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 985, 985,
+ 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
+ 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
+ 985, 985, 985, 985, 985, 985, 985, 985, 986, 119, 985, 985, 987, 119,
+ 985, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 988, 989, 990, 990, 990, 990, 991, 992,
+ 993, 993, 994, 995, 996, 996, 997, 998, 999, 999, 999, 1000, 1001, 1002,
+ 119, 119, 119, 119, 119, 119, 1003, 1003, 1004, 1005, 1006, 1006, 1007,
+ 1008, 1009, 1009, 1009, 1010, 119, 119, 119, 119, 119, 119, 119, 119,
+ 1011, 1011, 1011, 1011, 1012, 1012, 1012, 1013, 1014, 1014, 1015, 1014,
+ 1014, 1014, 1014, 1014, 1016, 1017, 1018, 1019, 1020, 1020, 1021, 1022,
+ 1023, 1024, 1025, 1026, 1027, 1027, 1027, 1028, 1029, 1029, 1029, 1030,
+ 119, 119, 119, 119, 1031, 1032, 1031, 1031, 1033, 1034, 1035, 119, 1036,
+ 1036, 1036, 1036, 1036, 1036, 1037, 1038, 1039, 1039, 1040, 1041, 1042,
+ 1042, 1043, 1044, 1045, 1045, 1046, 1047, 119, 1048, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 1049, 1049, 1049, 1049, 1049, 1049, 1049,
+ 1049, 1049, 1050, 119, 119, 119, 119, 119, 119, 1051, 1051, 1051, 1051,
+ 1051, 1051, 1052, 119, 1053, 1053, 1053, 1053, 1053, 1053, 1054, 1055,
+ 1056, 1056, 1056, 1056, 1057, 119, 1058, 1059, 119, 119, 119, 119, 119,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 1062, 1062, 1062, 1063, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1064,
- 1064, 1064, 1065, 1066, 119, 1067, 1067, 1068, 1069, 1070, 1071, 119,
+ 119, 119, 119, 1060, 1060, 1060, 1061, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 1062, 1062, 1062, 1063,
+ 1064, 119, 1065, 1065, 1066, 1067, 1068, 1069, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1070, 1070, 1071,
+ 119, 1072, 1073, 1073, 1073, 1073, 1073, 1073, 1074, 1075, 1076, 1077,
+ 1078, 1079, 1080, 119, 1081, 1082, 1083, 1083, 1083, 1083, 1083, 1084,
+ 1085, 1086, 1087, 1088, 1088, 1088, 1089, 1090, 1091, 1092, 1093, 1093,
+ 1093, 1094, 1095, 1096, 1097, 1098, 119, 1099, 1099, 1099, 1099, 1100,
+ 119, 1101, 1102, 1102, 1102, 1102, 1102, 1103, 1104, 1105, 1106, 1107,
+ 1108, 1109, 1110, 1111, 119, 1112, 1112, 1113, 1112, 1112, 1114, 1115,
+ 1116, 119, 119, 119, 119, 119, 119, 119, 119, 1117, 1118, 1119, 1120,
+ 1119, 1121, 1122, 1122, 1122, 1122, 1122, 1123, 1124, 1125, 1126, 1127,
+ 1128, 1129, 1130, 1131, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138,
+ 1139, 1140, 1140, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 1141, 1141, 1141, 1141, 1141, 1141, 1142,
+ 1143, 1144, 1145, 1146, 1147, 119, 119, 119, 119, 1148, 1148, 1148, 1148,
+ 1148, 1148, 1149, 1150, 1151, 119, 1152, 1153, 119, 119, 119, 119, 119,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 1072, 1073, 1073, 1073, 1073, 1073, 1073, 1074,
- 1075, 1076, 1077, 1078, 1079, 1080, 119, 1081, 1082, 1083, 1083, 1083,
- 1083, 1083, 1084, 1085, 1086, 1087, 1088, 1088, 1088, 1089, 1090, 1091,
- 1092, 1093, 1093, 1093, 1094, 1095, 1096, 1097, 1098, 119, 1099, 1099,
- 1099, 1099, 1100, 119, 1101, 1102, 1102, 1102, 1102, 1102, 1103, 1104,
- 1105, 1106, 1107, 1108, 1109, 1110, 1111, 119, 1112, 1112, 1113, 1112,
- 1112, 1114, 1115, 1116, 119, 119, 119, 119, 119, 119, 119, 119, 1117,
- 1118, 1119, 1120, 1119, 1121, 1122, 1122, 1122, 1122, 1122, 1123, 1124,
- 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1131, 1132, 1133, 1134, 1135,
- 1136, 1137, 1138, 1139, 1140, 1140, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1141, 1141, 1141, 1141,
- 1141, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 119, 119, 119, 119, 1148,
- 1148, 1148, 1148, 1148, 1148, 1149, 1150, 1151, 119, 1152, 1153, 119,
+ 119, 1154, 1154, 1154, 1154, 1154, 1155, 1156, 1157, 1158, 1159, 1160,
+ 1161, 119, 119, 119, 119, 1162, 1162, 1162, 1162, 1162, 1162, 1163, 1164,
+ 1165, 119, 1166, 1167, 1168, 1169, 119, 119, 1170, 1170, 1170, 1170,
+ 1170, 1171, 1172, 1173, 1174, 1175, 119, 119, 119, 119, 119, 119, 1176,
+ 1176, 1176, 1177, 1178, 1179, 1180, 1181, 119, 119, 119, 119, 119, 119,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 1154, 1154, 1154, 1154, 1154, 1155, 1156, 1157,
- 1158, 1159, 1160, 1161, 119, 119, 119, 119, 1162, 1162, 1162, 1162, 1162,
- 1162, 1163, 1164, 1165, 119, 1166, 1167, 1168, 1169, 119, 119, 1170,
- 1170, 1170, 1170, 1170, 1171, 1172, 119, 1173, 1174, 119, 119, 119, 119,
- 119, 119, 1175, 1175, 1175, 1176, 1177, 1178, 1179, 1180, 119, 119, 119,
+ 119, 119, 119, 119, 1182, 1182, 1182, 1182, 1182, 1183, 1184, 1185, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1186, 1186, 1186,
+ 1186, 1187, 1187, 1187, 1187, 1188, 1189, 1190, 1191, 119, 119, 119, 119,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 1181, 1181, 1181, 1181, 1181, 1182,
- 1183, 1184, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 1185, 1185, 1185, 1185, 1186, 1186, 1186, 1186, 1187, 1188, 1189, 1190,
+ 119, 119, 1192, 1193, 1192, 1192, 1192, 1192, 1194, 1195, 1196, 119, 119,
+ 119, 1197, 1198, 1199, 1199, 1199, 1199, 1200, 1201, 1202, 119, 1203,
+ 1204, 1205, 1205, 1205, 1205, 1205, 1206, 1207, 1208, 1209, 119, 119,
+ 119, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1211, 119, 119, 119, 119,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 1191, 1192, 1193, 1193, 1193, 1193, 1194, 1195, 1196,
- 119, 1197, 1198, 1199, 1199, 1199, 1199, 1200, 1201, 1202, 1203, 1204,
- 119, 119, 119, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1206, 1207,
- 1208, 1207, 1207, 1207, 1209, 1210, 1211, 1212, 119, 1213, 1214, 1215,
- 1216, 1217, 1218, 1218, 1218, 1219, 1220, 1220, 1221, 1222, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 1223, 1224, 1225, 1225, 1225, 1225,
- 1226, 1227, 1228, 119, 1229, 1230, 1231, 1232, 1233, 1233, 1233, 1234,
- 1235, 1236, 1237, 1238, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
+ 1212, 1213, 1212, 1212, 1212, 1214, 1215, 1216, 1217, 119, 1218, 1219,
+ 1220, 1221, 1222, 1223, 1223, 1223, 1224, 1225, 1225, 1226, 1227, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 1228, 1229, 1230, 1230, 1230,
+ 1230, 1231, 1232, 1233, 119, 1234, 1235, 1236, 1237, 1238, 1238, 1238,
+ 1239, 1240, 1241, 1242, 1243, 119, 119, 119, 119, 119, 119, 119, 119,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 1239, 1239, 1240, 1241, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
- 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
- 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
- 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
- 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1243, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 1244, 1244, 1244, 1244, 1244, 1244,
- 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1245, 1246, 119, 1242, 1242,
- 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
- 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1247, 119,
+ 119, 119, 1244, 1244, 1245, 1246, 119, 119, 119, 119, 119, 119, 119, 119,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 1248, 1248, 1248, 1248, 1248,
- 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248,
- 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248,
- 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248,
- 1248, 1248, 1249, 1248, 1248, 1248, 1248, 1250, 1251, 1248, 1248, 1248,
- 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248,
- 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248,
- 1248, 1248, 1252, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248,
- 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248,
- 1253, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1254,
+ 119, 119, 1247, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1254,
1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
- 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1255, 1254, 1254, 1254,
- 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1256,
+ 1254, 1255, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
+ 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256,
+ 1256, 1257, 1258, 119, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
+ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
+ 1254, 1254, 1254, 1254, 1259, 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
+ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
+ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
+ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1261, 1260, 1260, 1260,
+ 1260, 1262, 1263, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
+ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
+ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1264, 1260, 1260, 1260,
+ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
+ 1260, 1260, 1260, 1260, 1260, 1260, 1265, 1266, 1267, 119, 119, 119, 119,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 791, 791, 791, 791, 791,
- 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791,
- 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791,
- 791, 791, 791, 791, 791, 791, 1257, 1258, 1258, 1258, 1259, 1260, 1261,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1262, 1262,
- 1262, 1263, 1264, 119, 1265, 1265, 1265, 1265, 1265, 1265, 1266, 1267,
- 1268, 119, 1269, 1270, 1271, 1265, 1265, 1272, 1265, 1265, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 1268, 1268, 1268, 1268, 1268, 1268, 1268,
+ 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268,
+ 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268,
+ 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268,
+ 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268,
+ 1268, 1268, 1269, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268,
+ 1268, 1268, 1268, 1268, 1268, 1270, 119, 119, 119, 119, 119, 119, 119,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 1273, 1273, 1273, 1273, 1274, 1274, 1274, 1274,
- 1275, 1275, 1276, 1277, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1279, 119,
- 1280, 1281, 1281, 1281, 1281, 1282, 119, 1283, 1284, 1285, 119, 119, 119,
- 119, 119, 119, 119, 119, 1286, 119, 119, 119, 1287, 1287, 1287, 1287,
- 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
- 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
- 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
- 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
- 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1288, 119,
- 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
- 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
- 1287, 1287, 1287, 1287, 1287, 1287, 1289, 119, 1290, 735, 735, 735, 735,
- 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735,
- 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735,
- 735, 735, 1291, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1292,
- 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292,
- 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292,
- 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292,
- 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292,
- 1293, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
- 1294, 1294, 1295, 1294, 1296, 1294, 1297, 1294, 1298, 1299, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 610, 610, 610, 610, 610,
- 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610,
- 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 1300, 119, 610,
- 610, 610, 610, 1301, 1302, 610, 610, 610, 610, 610, 610, 1303, 1304,
- 1305, 1306, 1307, 1308, 610, 610, 610, 1309, 610, 610, 610, 610, 610,
- 610, 610, 1310, 119, 119, 946, 946, 946, 946, 946, 946, 946, 946, 1311,
+ 119, 119, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789,
+ 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789,
+ 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 1271,
+ 1272, 1272, 1272, 1273, 1274, 1275, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 1276, 1276, 1276, 1277, 1278, 119, 1279, 1279,
+ 1279, 1279, 1279, 1279, 1280, 1281, 1282, 119, 1283, 1284, 1285, 1279,
+ 1279, 1286, 1279, 1279, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1287, 1287,
+ 1287, 1287, 1288, 1288, 1288, 1288, 1289, 1289, 1290, 1291, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1292, 1292, 1292, 1292,
+ 1292, 1292, 1292, 1292, 1292, 1293, 1294, 1295, 1295, 1295, 1295, 1295,
+ 1295, 1296, 1297, 1298, 119, 119, 119, 119, 119, 119, 119, 119, 1299,
+ 119, 119, 119, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
+ 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
+ 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
+ 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
+ 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
+ 1300, 1300, 1300, 1300, 1300, 1300, 119, 1300, 1300, 1300, 1300, 1300,
+ 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
+ 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
+ 1300, 1301, 119, 1302, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733,
+ 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733,
+ 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 1303, 119, 119, 119,
+ 119, 119, 119, 1304, 119, 1305, 119, 1306, 1306, 1306, 1306, 1306, 1306,
+ 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306,
+ 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306,
+ 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306,
+ 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1307, 1308, 1308, 1308, 1308,
+ 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1309, 1308, 1310,
+ 1308, 1311, 1308, 1312, 1313, 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
+ 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
+ 609, 609, 609, 609, 609, 1314, 119, 609, 609, 609, 609, 1315, 1316, 609,
+ 609, 609, 609, 609, 609, 1317, 1318, 1319, 1320, 1321, 1322, 609, 609,
+ 609, 1323, 609, 609, 609, 609, 609, 609, 609, 1324, 119, 119, 944, 944,
+ 944, 944, 944, 944, 944, 944, 1325, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 939, 939,
+ 1326, 119, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 616, 119,
+ 939, 939, 939, 1327, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 1328, 1328, 1328, 1329, 1330, 1330, 1331,
+ 1328, 1328, 1332, 1333, 1330, 1330, 1328, 1328, 1328, 1329, 1330, 1330,
+ 1334, 1335, 1336, 1332, 1337, 1338, 1330, 1328, 1328, 1328, 1329, 1330,
+ 1330, 1339, 1340, 1341, 1342, 1330, 1330, 1330, 1343, 1344, 1345, 1346,
+ 1330, 1330, 1331, 1328, 1328, 1332, 1330, 1330, 1330, 1328, 1328, 1328,
+ 1329, 1330, 1330, 1331, 1328, 1328, 1332, 1330, 1330, 1330, 1328, 1328,
+ 1328, 1329, 1330, 1330, 1331, 1328, 1328, 1332, 1330, 1330, 1330, 1328,
+ 1328, 1328, 1329, 1330, 1330, 1347, 1328, 1328, 1328, 1348, 1330, 1330,
+ 1349, 1350, 1328, 1328, 1351, 1330, 1330, 1352, 1331, 1328, 1328, 1353,
+ 1330, 1330, 1354, 1355, 1328, 1328, 1356, 1330, 1330, 1330, 1357, 1328,
+ 1328, 1328, 1348, 1330, 1330, 1349, 1358, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1362, 1363, 1361, 1361, 1361, 1361, 1361, 1364, 1365,
+ 1360, 1366, 1367, 119, 1368, 1369, 1361, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 1370, 1371, 1371, 1372, 1373, 1374, 119, 119, 119,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 941, 941, 1312, 119, 581, 581, 581, 581, 581,
- 581, 581, 581, 581, 581, 617, 119, 941, 941, 941, 1313, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1314,
- 1314, 1314, 1315, 1316, 1316, 1317, 1314, 1314, 1318, 1319, 1316, 1316,
- 1314, 1314, 1314, 1315, 1316, 1316, 1320, 1321, 1322, 1318, 1323, 1324,
- 1316, 1314, 1314, 1314, 1315, 1316, 1316, 1325, 1326, 1327, 1328, 1316,
- 1316, 1316, 1329, 1330, 1331, 1332, 1316, 1316, 1317, 1314, 1314, 1318,
- 1316, 1316, 1316, 1314, 1314, 1314, 1315, 1316, 1316, 1317, 1314, 1314,
- 1318, 1316, 1316, 1316, 1314, 1314, 1314, 1315, 1316, 1316, 1317, 1314,
- 1314, 1318, 1316, 1316, 1316, 1314, 1314, 1314, 1315, 1316, 1316, 1333,
- 1314, 1314, 1314, 1334, 1316, 1316, 1335, 1336, 1314, 1314, 1337, 1316,
- 1316, 1338, 1317, 1314, 1314, 1339, 1316, 1316, 1340, 1341, 1314, 1314,
- 1342, 1316, 1316, 1316, 1343, 1314, 1314, 1314, 1334, 1316, 1316, 1335,
- 1344, 1345, 1345, 1345, 1345, 1345, 1345, 1346, 1346, 1346, 1346, 1346,
- 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346,
- 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346,
- 1346, 1346, 1346, 1347, 1347, 1347, 1347, 1347, 1347, 1348, 1349, 1347,
- 1347, 1347, 1347, 1347, 1350, 1351, 1346, 1352, 1353, 119, 1354, 1355,
- 1347, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1356, 1357, 1357,
- 1358, 1359, 1360, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 1375, 1375, 1375, 1375,
+ 1375, 1376, 1377, 1378, 1379, 1380, 119, 119, 119, 119, 119, 119, 119,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
- 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
- 1361, 1362, 1363, 1364, 119, 119, 119, 119, 119, 1365, 1365, 1365, 1365,
- 1366, 1367, 1367, 1367, 1368, 1369, 1370, 1371, 119, 119, 119, 119, 119,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1381, 1381, 1381,
+ 1381, 1381, 1382, 1383, 1384, 1385, 1385, 1385, 1385, 1385, 1385, 1385,
+ 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385,
+ 1385, 1385, 1385, 1385, 1385, 1386, 1387, 1388, 119, 119, 119, 119, 119,
+ 1389, 1389, 1389, 1389, 1390, 1391, 1391, 1391, 1392, 1393, 1394, 1395,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 1372, 1373, 1373, 1373, 1373, 1373, 1373, 1374, 1375, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 1376, 127, 127, 127, 1377, 1378, 1379,
- 1380, 1381, 1382, 1377, 1383, 1377, 1379, 1379, 1384, 127, 1385, 127,
- 1386, 1387, 1385, 127, 1386, 119, 119, 119, 119, 119, 119, 1388, 119,
- 1389, 1390, 1390, 1390, 1390, 1391, 1390, 1390, 1390, 1390, 1390, 1390,
- 1390, 1390, 1390, 1390, 1390, 1390, 1391, 1392, 1390, 1393, 1394, 1390,
- 1394, 1395, 1394, 1390, 1390, 1390, 1396, 1392, 620, 1397, 622, 622, 622,
- 1398, 622, 622, 622, 622, 622, 622, 622, 1399, 622, 622, 622, 1400, 1401,
- 1402, 622, 1403, 1392, 1392, 1392, 1392, 1392, 1392, 1404, 1405, 1405,
- 1405, 1406, 1392, 755, 755, 755, 755, 755, 1407, 755, 1408, 1409, 1392,
- 1410, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
- 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 723, 723, 723, 723, 1411,
- 1412, 1413, 723, 723, 723, 723, 723, 723, 723, 723, 1414, 1415, 723,
- 1416, 1417, 723, 723, 1418, 1419, 1420, 1421, 1416, 1390, 723, 723, 1422,
- 1423, 723, 723, 723, 723, 723, 723, 723, 1424, 1425, 1426, 1427, 723,
- 1428, 1429, 1426, 1430, 1431, 723, 723, 723, 1432, 1433, 1434, 723, 723,
- 723, 723, 723, 723, 723, 723, 1435, 1436, 723, 1437, 643, 1438, 723,
- 1439, 1440, 581, 1441, 723, 723, 723, 1390, 1442, 1443, 1390, 1390, 1444,
- 1390, 1389, 1390, 1390, 1390, 1390, 1390, 1445, 1446, 1390, 1390, 1445,
- 1447, 723, 723, 723, 723, 723, 723, 723, 723, 1448, 1449, 581, 581, 581,
- 581, 1450, 1451, 723, 723, 723, 723, 1452, 723, 1453, 723, 1454, 1455,
- 1456, 1392, 1390, 1457, 1458, 1459, 581, 581, 581, 581, 581, 581, 581,
- 581, 581, 581, 581, 581, 581, 581, 1460, 1392, 581, 581, 581, 581, 581,
- 581, 581, 581, 581, 581, 1461, 1462, 1392, 1392, 1392, 1392, 581, 1460,
- 581, 581, 581, 581, 581, 581, 581, 1392, 581, 1463, 581, 581, 581, 581,
- 581, 1392, 581, 581, 581, 1464, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
- 1392, 1392, 1392, 581, 1460, 723, 1465, 1466, 723, 1426, 1467, 723, 723,
- 723, 723, 723, 723, 1468, 1469, 723, 723, 723, 723, 1470, 1392, 1471,
- 1472, 1470, 1392, 1473, 1474, 723, 723, 723, 723, 1392, 1392, 1392, 1392,
- 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1390, 1396, 1392, 1392,
- 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
- 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
- 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
- 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
- 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
- 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
- 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1475, 773, 773, 773, 773, 773,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 1396, 1397, 1397, 1397, 1397, 1397, 1397,
+ 1398, 1399, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1396, 1397,
+ 1397, 1397, 1397, 1400, 1397, 1401, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 1402, 127, 127, 127, 1403, 1404, 1405, 1406, 1407, 1408,
+ 1403, 1409, 1403, 1405, 1405, 1410, 127, 1411, 127, 1412, 1413, 1411,
+ 127, 1412, 119, 119, 119, 119, 119, 119, 1414, 119, 1415, 1416, 1416,
+ 1416, 1416, 1417, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416,
+ 1416, 1416, 1416, 1417, 1418, 1416, 1419, 1420, 1416, 1420, 1421, 1420,
+ 1416, 1416, 1416, 1422, 1418, 619, 1423, 621, 621, 621, 1424, 621, 621,
+ 621, 621, 621, 621, 621, 1425, 621, 621, 621, 1426, 1427, 1428, 621,
+ 1429, 1418, 1418, 1418, 1418, 1418, 1418, 1430, 1431, 1431, 1431, 1432,
+ 1418, 753, 753, 753, 753, 753, 1433, 753, 1434, 1435, 1418, 1436, 1418,
+ 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418,
+ 1418, 1418, 1418, 1418, 1418, 1418, 721, 721, 721, 721, 1437, 1438, 1439,
+ 721, 721, 721, 721, 721, 721, 721, 721, 1440, 1441, 721, 1442, 1443, 721,
+ 721, 1444, 1445, 1446, 1447, 1442, 1416, 721, 721, 1448, 1449, 721, 721,
+ 721, 721, 721, 721, 721, 1450, 1451, 1452, 1453, 721, 1454, 1452, 1452,
+ 1455, 1456, 1457, 1458, 721, 1459, 1460, 1461, 721, 721, 721, 721, 721,
+ 721, 721, 721, 1462, 1463, 721, 1464, 642, 1465, 721, 1466, 1467, 580,
+ 1468, 721, 721, 721, 1416, 1469, 1470, 1416, 1416, 1471, 1416, 1415,
+ 1416, 1416, 1416, 1416, 1416, 1472, 1473, 1416, 1416, 1472, 1474, 721,
+ 721, 721, 721, 721, 721, 721, 721, 1475, 1476, 580, 580, 580, 580, 1477,
+ 1478, 721, 721, 721, 721, 1479, 721, 1480, 721, 1481, 1482, 1483, 1418,
+ 1416, 1484, 1485, 1486, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
+ 580, 580, 580, 580, 1487, 1418, 580, 580, 580, 580, 580, 580, 580, 580,
+ 580, 580, 1488, 1489, 721, 1490, 1418, 1418, 580, 1487, 580, 580, 580,
+ 580, 580, 580, 580, 1418, 580, 1491, 580, 580, 580, 580, 580, 1418, 580,
+ 580, 580, 1492, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418,
+ 1418, 580, 1493, 721, 1452, 1494, 721, 1452, 1495, 721, 721, 721, 721,
+ 721, 721, 1496, 1497, 721, 721, 721, 721, 1498, 1499, 1500, 1501, 721,
+ 1502, 1503, 1504, 721, 721, 721, 721, 580, 580, 580, 580, 580, 580, 580,
+ 580, 580, 580, 1487, 1418, 1416, 1422, 1490, 1486, 1486, 1418, 1436,
+ 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418,
+ 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418,
+ 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418,
+ 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418,
+ 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418,
+ 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418,
+ 1418, 1418, 1418, 1418, 1505, 771, 771, 771, 771, 771, 771, 771, 771,
+ 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
+ 771, 771, 771, 771, 1506, 773, 773, 773, 773, 773, 771, 771, 771, 771,
+ 771, 771, 1507, 773, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
+ 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
+ 771, 771, 771, 772, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
+ 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
+ 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
+ 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 881, 773, 771, 771,
+ 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
+ 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
+ 771, 771, 771, 771, 771, 771, 771, 771, 1508, 773, 773, 773, 773, 773,
773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
- 773, 773, 773, 773, 773, 773, 773, 1476, 775, 775, 775, 775, 775, 773,
- 773, 773, 773, 773, 773, 1477, 775, 773, 773, 773, 773, 773, 773, 773,
773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
- 773, 773, 773, 773, 773, 773, 774, 773, 773, 773, 773, 773, 773, 773,
+ 773, 773, 771, 771, 771, 772, 773, 773, 773, 773, 773, 773, 773, 773,
773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
- 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 883,
- 775, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
- 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 1478, 775, 775,
- 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775,
- 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775,
- 775, 775, 775, 775, 775, 773, 773, 773, 774, 775, 775, 775, 775, 775,
- 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775,
- 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775,
- 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775,
- 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 1479, 1480,
- 119, 119, 119, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481,
- 1481, 1481, 1481, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 898, 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 119, 119, 882, 882, 882, 882, 882,
- 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882,
- 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 1482,
+ 773, 773, 773, 773, 773, 773, 773, 773, 773, 1509, 1510, 119, 119, 119,
+ 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896,
+ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896,
+ 896, 896, 896, 896, 119, 119, 880, 880, 880, 880, 880, 880, 880, 880,
+ 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880,
+ 880, 880, 880, 880, 880, 880, 880, 880, 880, 1512,
};
static const unsigned short index2[] = {
139, 139, 139, 157, 139, 139, 157, 157, 139, 139, 139, 139, 139, 193,
193, 193, 194, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
195, 195, 195, 193, 194, 196, 195, 194, 194, 194, 193, 193, 193, 193,
- 193, 193, 193, 193, 194, 194, 194, 194, 197, 194, 194, 195, 96, 156, 198,
- 198, 193, 193, 193, 195, 195, 193, 193, 199, 199, 200, 200, 200, 200,
- 200, 200, 200, 200, 200, 200, 201, 202, 195, 195, 195, 195, 195, 195,
- 203, 204, 205, 205, 81, 203, 203, 203, 203, 203, 203, 203, 203, 81, 81,
- 203, 203, 81, 81, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
- 203, 203, 203, 81, 203, 203, 203, 203, 203, 203, 203, 81, 203, 81, 81,
- 81, 203, 203, 203, 203, 81, 81, 206, 203, 205, 205, 205, 204, 204, 204,
- 204, 81, 81, 205, 205, 81, 81, 205, 205, 207, 203, 81, 81, 81, 81, 81,
- 81, 81, 81, 205, 81, 81, 81, 81, 203, 203, 81, 203, 203, 203, 204, 204,
- 81, 81, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 203, 203, 209,
- 209, 210, 210, 210, 210, 210, 211, 212, 213, 203, 214, 215, 81, 81, 216,
- 216, 217, 81, 218, 218, 218, 218, 218, 218, 81, 81, 81, 81, 218, 218, 81,
- 81, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218,
- 81, 218, 218, 218, 218, 218, 218, 218, 81, 218, 218, 81, 218, 218, 81,
- 218, 218, 81, 81, 219, 81, 217, 217, 217, 216, 216, 81, 81, 81, 81, 216,
- 216, 81, 81, 216, 216, 220, 81, 81, 81, 216, 81, 81, 81, 81, 81, 81, 81,
- 218, 218, 218, 218, 81, 218, 81, 81, 81, 81, 81, 81, 81, 221, 221, 221,
- 221, 221, 221, 221, 221, 221, 221, 216, 216, 218, 218, 218, 216, 222, 81,
- 81, 223, 223, 224, 81, 225, 225, 225, 225, 225, 225, 225, 225, 225, 81,
- 225, 225, 225, 81, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
- 225, 225, 225, 81, 225, 225, 225, 225, 225, 225, 225, 81, 225, 225, 81,
- 225, 225, 225, 225, 225, 81, 81, 226, 225, 224, 224, 224, 223, 223, 223,
- 223, 223, 81, 223, 223, 224, 81, 224, 224, 227, 81, 81, 225, 81, 81, 81,
- 81, 81, 81, 81, 225, 225, 223, 223, 81, 81, 228, 228, 228, 228, 228, 228,
- 228, 228, 228, 228, 229, 230, 81, 81, 81, 81, 81, 81, 81, 225, 223, 223,
- 223, 223, 223, 223, 81, 231, 232, 232, 81, 233, 233, 233, 233, 233, 233,
- 233, 233, 81, 81, 233, 233, 81, 81, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 81, 233, 233, 233, 233, 233, 233, 233,
- 81, 233, 233, 81, 233, 233, 233, 233, 233, 81, 81, 234, 233, 232, 231,
- 232, 231, 231, 231, 231, 81, 81, 232, 232, 81, 81, 232, 232, 235, 81, 81,
- 81, 81, 81, 81, 81, 81, 231, 232, 81, 81, 81, 81, 233, 233, 81, 233, 233,
- 233, 231, 231, 81, 81, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
- 237, 233, 238, 238, 238, 238, 238, 238, 81, 81, 239, 240, 81, 240, 240,
- 240, 240, 240, 240, 81, 81, 81, 240, 240, 240, 81, 240, 240, 240, 240,
- 81, 81, 81, 240, 240, 81, 240, 81, 240, 240, 81, 81, 81, 240, 240, 81,
- 81, 81, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 81, 81, 81, 81,
- 241, 241, 239, 241, 241, 81, 81, 81, 241, 241, 241, 81, 241, 241, 241,
- 242, 81, 81, 240, 81, 81, 81, 81, 81, 81, 241, 81, 81, 81, 81, 81, 81,
- 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 245,
- 245, 245, 245, 245, 245, 246, 245, 81, 81, 81, 81, 81, 247, 248, 248,
- 248, 247, 249, 249, 249, 249, 249, 249, 249, 249, 81, 249, 249, 249, 81,
- 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
- 249, 249, 81, 81, 81, 249, 247, 247, 247, 248, 248, 248, 248, 81, 247,
- 247, 247, 81, 247, 247, 247, 250, 81, 81, 81, 81, 81, 81, 81, 251, 252,
- 81, 249, 249, 249, 81, 81, 81, 81, 81, 249, 249, 247, 247, 81, 81, 253,
- 253, 253, 253, 253, 253, 253, 253, 253, 253, 254, 254, 254, 254, 254,
- 254, 254, 255, 256, 257, 258, 258, 259, 256, 256, 256, 256, 256, 256,
- 256, 256, 81, 256, 256, 256, 81, 256, 256, 256, 256, 256, 256, 256, 256,
- 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 81, 256, 256, 256, 256,
- 256, 81, 81, 260, 256, 258, 261, 258, 258, 258, 258, 258, 81, 261, 258,
- 258, 81, 258, 258, 257, 262, 81, 81, 81, 81, 81, 81, 81, 258, 258, 81,
- 81, 81, 81, 81, 81, 81, 256, 81, 256, 256, 257, 257, 81, 81, 263, 263,
- 263, 263, 263, 263, 263, 263, 263, 263, 81, 256, 256, 81, 81, 81, 81, 81,
- 264, 264, 265, 265, 81, 266, 266, 266, 266, 266, 266, 266, 266, 81, 266,
- 266, 266, 81, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266,
- 266, 266, 266, 266, 266, 267, 267, 266, 265, 265, 265, 264, 264, 264,
- 264, 81, 265, 265, 265, 81, 265, 265, 265, 267, 266, 268, 81, 81, 81, 81,
- 266, 266, 266, 265, 269, 269, 269, 269, 269, 269, 269, 266, 266, 266,
- 264, 264, 81, 81, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 269,
- 269, 269, 269, 269, 269, 269, 269, 269, 271, 266, 266, 266, 266, 266,
- 266, 81, 81, 272, 272, 81, 273, 273, 273, 273, 273, 273, 273, 273, 273,
- 273, 273, 273, 273, 273, 273, 273, 273, 273, 81, 81, 81, 273, 273, 273,
- 273, 273, 273, 273, 273, 81, 273, 273, 273, 273, 273, 273, 273, 273, 273,
- 81, 273, 81, 81, 81, 81, 274, 81, 81, 81, 81, 272, 272, 272, 275, 275,
- 275, 81, 275, 81, 272, 272, 272, 272, 272, 272, 272, 272, 81, 81, 81, 81,
- 81, 81, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 81, 81, 272,
- 272, 277, 81, 81, 81, 81, 278, 278, 278, 278, 278, 278, 278, 278, 278,
- 278, 278, 278, 278, 278, 278, 278, 279, 278, 278, 279, 279, 279, 279,
- 280, 280, 281, 81, 81, 81, 81, 282, 278, 278, 278, 278, 278, 278, 283,
- 279, 284, 284, 284, 284, 279, 279, 279, 285, 286, 286, 286, 286, 286,
- 286, 286, 286, 286, 286, 287, 287, 81, 81, 81, 81, 81, 288, 288, 81, 288,
- 81, 81, 288, 288, 81, 288, 81, 81, 288, 81, 81, 81, 81, 81, 81, 288, 288,
- 288, 288, 81, 288, 288, 288, 288, 288, 288, 288, 81, 288, 288, 288, 81,
- 288, 81, 288, 81, 81, 288, 288, 81, 288, 288, 288, 288, 289, 288, 288,
- 289, 289, 289, 289, 290, 290, 81, 289, 289, 288, 81, 81, 288, 288, 288,
- 288, 288, 81, 291, 81, 292, 292, 292, 292, 289, 289, 81, 81, 293, 293,
- 293, 293, 293, 293, 293, 293, 293, 293, 81, 81, 288, 288, 288, 288, 294,
- 295, 295, 295, 296, 297, 296, 296, 298, 296, 296, 299, 298, 300, 300,
- 300, 300, 300, 298, 301, 300, 301, 301, 301, 302, 302, 301, 301, 301,
- 301, 301, 301, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 304,
- 304, 304, 304, 304, 304, 304, 304, 304, 304, 305, 302, 301, 302, 301,
- 306, 307, 308, 307, 308, 309, 309, 294, 294, 294, 294, 294, 294, 294,
- 294, 81, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 81,
- 81, 81, 81, 310, 311, 312, 313, 312, 312, 312, 312, 312, 311, 311, 311,
- 311, 312, 314, 311, 312, 315, 315, 316, 299, 315, 315, 294, 294, 294,
- 294, 294, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 81, 312,
- 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 81, 305, 305, 301,
- 301, 301, 301, 301, 301, 302, 301, 301, 301, 301, 301, 301, 81, 301, 301,
- 296, 296, 299, 296, 297, 317, 317, 317, 317, 298, 298, 81, 81, 81, 81,
- 81, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 319, 319, 320,
- 320, 320, 320, 319, 320, 320, 320, 320, 320, 321, 319, 322, 322, 319,
- 319, 320, 320, 318, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
- 324, 324, 325, 325, 325, 325, 318, 318, 318, 318, 318, 318, 319, 319,
- 320, 320, 318, 318, 318, 318, 320, 320, 320, 318, 319, 319, 319, 318,
- 318, 319, 319, 319, 319, 319, 319, 319, 318, 318, 318, 320, 320, 320,
- 320, 318, 318, 318, 318, 318, 320, 319, 319, 320, 320, 319, 319, 319,
- 319, 319, 319, 326, 318, 319, 323, 323, 319, 319, 319, 320, 327, 327,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 81,
- 328, 81, 81, 81, 81, 81, 328, 81, 81, 329, 329, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 330, 331, 329, 329, 329, 332, 332, 332, 332, 332,
- 332, 332, 332, 333, 333, 333, 333, 333, 333, 333, 333, 334, 334, 334,
- 334, 334, 334, 334, 334, 335, 335, 335, 335, 335, 335, 335, 335, 335, 81,
- 335, 335, 335, 335, 81, 81, 335, 335, 335, 335, 335, 335, 335, 81, 335,
- 335, 335, 81, 81, 336, 336, 336, 337, 338, 337, 337, 337, 337, 337, 337,
- 337, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
- 339, 339, 339, 339, 339, 339, 339, 81, 81, 81, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 81, 81, 81, 81, 81, 81, 341, 341, 341, 341, 341,
- 341, 341, 341, 341, 341, 341, 341, 341, 341, 81, 81, 342, 342, 342, 342,
- 342, 342, 81, 81, 343, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
- 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 345, 345, 344, 346,
- 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
- 347, 347, 347, 347, 348, 349, 81, 81, 81, 350, 350, 350, 350, 350, 350,
- 350, 350, 350, 350, 350, 199, 199, 199, 351, 351, 351, 350, 350, 350,
- 350, 350, 350, 350, 350, 81, 81, 81, 81, 81, 81, 81, 352, 352, 352, 352,
- 352, 352, 352, 352, 352, 352, 352, 352, 352, 81, 352, 352, 352, 352, 353,
- 353, 354, 81, 81, 81, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 356, 356, 357, 199, 199, 81, 358, 358, 358, 358, 358, 358, 358, 358, 358,
- 358, 359, 359, 81, 81, 81, 81, 360, 360, 360, 360, 360, 360, 360, 360,
- 360, 360, 360, 360, 360, 81, 360, 360, 360, 81, 361, 361, 81, 81, 81, 81,
- 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 363, 363,
- 364, 363, 363, 363, 363, 363, 363, 363, 364, 364, 364, 364, 364, 364,
- 364, 364, 363, 364, 364, 363, 363, 363, 363, 363, 363, 363, 363, 363,
- 365, 363, 366, 366, 367, 368, 366, 369, 366, 370, 362, 371, 81, 81, 372,
- 372, 372, 372, 372, 372, 372, 372, 372, 372, 81, 81, 81, 81, 81, 81, 373,
- 373, 373, 373, 373, 373, 373, 373, 373, 373, 81, 81, 81, 81, 81, 81, 374,
- 374, 375, 375, 376, 377, 378, 374, 379, 379, 374, 380, 380, 380, 381, 81,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 81, 81, 81, 81, 81, 81,
- 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 384, 383, 383,
- 383, 383, 383, 81, 81, 81, 81, 81, 81, 81, 383, 383, 383, 383, 383, 380,
- 380, 383, 383, 385, 383, 81, 81, 81, 81, 81, 344, 344, 344, 344, 344,
- 344, 81, 81, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386,
- 386, 386, 386, 81, 387, 387, 387, 388, 388, 388, 388, 387, 387, 388, 388,
- 388, 81, 81, 81, 81, 388, 388, 387, 388, 388, 388, 388, 388, 388, 389,
- 390, 391, 81, 81, 81, 81, 392, 81, 81, 81, 393, 393, 394, 394, 394, 394,
- 394, 394, 394, 394, 394, 394, 395, 395, 395, 395, 395, 395, 395, 395,
- 395, 395, 395, 395, 395, 395, 81, 81, 395, 395, 395, 395, 395, 81, 81,
- 81, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 81, 81,
- 81, 81, 396, 396, 81, 81, 81, 81, 81, 81, 397, 397, 397, 397, 397, 397,
- 397, 397, 397, 397, 398, 81, 81, 81, 399, 399, 400, 400, 400, 400, 400,
- 400, 400, 400, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 402, 403, 404, 404, 405, 81, 81, 406, 406, 407, 407,
- 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 408, 409, 408,
- 409, 409, 409, 409, 409, 409, 409, 81, 410, 408, 409, 408, 408, 409, 409,
- 409, 409, 409, 409, 409, 409, 408, 408, 408, 408, 408, 408, 409, 409,
- 411, 411, 411, 411, 411, 411, 411, 411, 81, 81, 412, 413, 413, 413, 413,
- 413, 413, 413, 413, 413, 413, 81, 81, 81, 81, 81, 81, 414, 414, 414, 414,
- 414, 414, 414, 415, 414, 414, 414, 414, 414, 414, 81, 81, 96, 96, 96, 96,
- 96, 156, 156, 156, 156, 156, 156, 96, 96, 156, 416, 81, 417, 417, 417,
- 417, 418, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
- 419, 419, 419, 420, 418, 417, 417, 417, 417, 417, 418, 417, 418, 418,
- 418, 418, 418, 417, 418, 421, 419, 419, 419, 419, 419, 419, 419, 81, 81,
- 81, 81, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 423, 423, 424,
- 423, 423, 423, 423, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425,
- 426, 427, 426, 426, 426, 426, 426, 426, 426, 425, 425, 425, 425, 425,
- 425, 425, 425, 425, 81, 81, 81, 428, 428, 429, 430, 430, 430, 430, 430,
- 430, 430, 430, 430, 430, 430, 430, 430, 430, 429, 428, 428, 428, 428,
- 429, 429, 428, 428, 431, 432, 428, 428, 430, 430, 433, 433, 433, 433,
- 433, 433, 433, 433, 433, 433, 430, 430, 430, 430, 430, 430, 434, 434,
- 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 435, 436,
- 437, 437, 436, 436, 436, 437, 436, 437, 437, 437, 438, 438, 81, 81, 81,
- 81, 81, 81, 81, 81, 439, 439, 439, 439, 440, 440, 440, 440, 440, 440,
- 440, 440, 440, 440, 440, 440, 441, 441, 441, 441, 441, 441, 441, 441,
- 442, 442, 442, 442, 442, 442, 442, 442, 441, 441, 442, 443, 81, 81, 81,
- 444, 444, 444, 444, 444, 445, 445, 445, 445, 445, 445, 445, 445, 445,
- 445, 81, 81, 81, 440, 440, 440, 446, 446, 446, 446, 446, 446, 446, 446,
- 446, 446, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447,
- 447, 447, 448, 448, 448, 448, 448, 448, 449, 449, 93, 81, 81, 81, 81, 81,
- 81, 81, 328, 328, 328, 81, 81, 328, 328, 328, 450, 450, 450, 450, 450,
- 450, 450, 450, 96, 96, 96, 330, 451, 156, 156, 156, 156, 156, 96, 96,
- 156, 156, 156, 156, 96, 452, 451, 451, 451, 451, 451, 451, 451, 453, 453,
- 453, 453, 156, 453, 453, 453, 453, 452, 452, 96, 453, 453, 452, 96, 96,
- 81, 81, 81, 81, 81, 81, 56, 56, 56, 56, 56, 56, 79, 79, 79, 79, 79, 93,
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 82, 82, 82, 82, 82, 59, 59, 59, 59,
- 82, 82, 82, 82, 82, 56, 56, 56, 56, 56, 454, 56, 56, 56, 56, 56, 56, 56,
- 56, 56, 56, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 82, 96, 96,
- 156, 96, 96, 96, 96, 96, 96, 96, 156, 96, 96, 455, 456, 156, 457, 96, 96,
- 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
- 96, 458, 459, 459, 156, 81, 96, 460, 156, 96, 156, 52, 56, 52, 56, 52,
- 56, 56, 56, 56, 56, 56, 56, 56, 56, 52, 56, 79, 79, 79, 79, 79, 79, 79,
- 79, 78, 78, 78, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 81, 81, 78,
- 78, 78, 78, 78, 78, 81, 81, 81, 78, 81, 78, 81, 78, 81, 78, 461, 461,
- 461, 461, 461, 461, 461, 461, 79, 79, 79, 79, 79, 81, 79, 79, 78, 78, 78,
- 78, 461, 80, 79, 80, 80, 80, 79, 79, 79, 81, 79, 79, 78, 78, 78, 78, 461,
- 80, 80, 80, 79, 79, 79, 79, 81, 81, 79, 79, 78, 78, 78, 78, 81, 80, 80,
- 80, 78, 78, 78, 78, 78, 80, 80, 80, 81, 81, 79, 79, 79, 81, 79, 79, 78,
- 78, 78, 78, 461, 462, 80, 81, 463, 463, 463, 463, 463, 463, 463, 464,
- 463, 463, 463, 465, 466, 467, 468, 469, 470, 471, 472, 470, 473, 474, 38,
- 84, 475, 476, 477, 42, 475, 476, 477, 42, 38, 38, 478, 84, 479, 479, 479,
- 480, 481, 482, 483, 484, 485, 486, 487, 33, 488, 489, 488, 488, 489, 490,
- 491, 491, 84, 42, 50, 38, 492, 492, 478, 493, 493, 84, 84, 84, 494, 477,
- 495, 492, 492, 492, 84, 84, 84, 84, 84, 84, 84, 84, 496, 84, 493, 84,
- 377, 84, 377, 377, 377, 377, 84, 377, 377, 463, 497, 498, 498, 498, 498,
- 81, 499, 500, 501, 502, 503, 503, 503, 503, 503, 503, 504, 59, 81, 81,
- 47, 504, 504, 504, 504, 504, 505, 505, 496, 477, 495, 506, 504, 47, 47,
- 47, 47, 504, 504, 504, 504, 504, 505, 505, 496, 477, 495, 81, 59, 59, 59,
- 59, 59, 81, 81, 81, 282, 282, 282, 282, 282, 282, 282, 507, 282, 508,
- 282, 282, 36, 282, 282, 282, 282, 282, 282, 282, 282, 282, 507, 282, 282,
- 282, 282, 507, 282, 282, 507, 282, 509, 509, 509, 509, 509, 509, 509,
- 509, 96, 96, 451, 451, 96, 96, 96, 96, 451, 451, 451, 96, 96, 416, 416,
- 416, 416, 96, 416, 416, 416, 451, 451, 96, 156, 96, 451, 451, 156, 156,
- 156, 156, 96, 81, 81, 81, 81, 81, 81, 81, 40, 40, 510, 511, 40, 512, 40,
- 510, 40, 511, 49, 510, 510, 510, 49, 49, 510, 510, 510, 513, 40, 510,
- 514, 40, 496, 510, 510, 510, 510, 510, 40, 40, 40, 512, 512, 40, 510, 40,
- 85, 40, 510, 40, 52, 515, 510, 510, 516, 49, 510, 510, 52, 510, 49, 453,
- 453, 453, 453, 49, 40, 40, 49, 49, 510, 510, 496, 496, 496, 496, 496,
- 510, 49, 49, 49, 49, 40, 496, 40, 40, 56, 317, 517, 517, 517, 518, 51,
- 519, 517, 517, 517, 517, 517, 51, 518, 518, 51, 517, 520, 520, 520, 520,
- 520, 520, 520, 520, 520, 520, 520, 520, 521, 521, 521, 521, 520, 520,
- 521, 521, 521, 521, 521, 521, 521, 521, 521, 52, 56, 521, 521, 521, 521,
- 51, 40, 40, 81, 81, 81, 81, 54, 54, 54, 54, 54, 512, 512, 512, 512, 512,
- 496, 496, 40, 40, 40, 40, 496, 40, 40, 496, 40, 40, 496, 40, 40, 40, 40,
- 40, 40, 40, 496, 40, 40, 40, 40, 40, 40, 40, 40, 40, 44, 44, 40, 40, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 40, 496, 496, 40, 40, 54, 40, 54, 40, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 44, 40, 40, 40, 40, 496, 496, 496, 496,
- 496, 496, 496, 496, 496, 496, 496, 496, 54, 496, 54, 54, 496, 496, 496,
- 54, 54, 496, 496, 54, 496, 496, 496, 54, 496, 54, 522, 523, 496, 54, 496,
- 496, 496, 496, 54, 496, 496, 54, 54, 54, 54, 496, 496, 54, 496, 54, 496,
- 54, 54, 54, 54, 54, 54, 496, 54, 496, 496, 496, 496, 496, 54, 54, 54, 54,
- 496, 496, 496, 496, 54, 54, 496, 496, 54, 496, 496, 496, 54, 496, 496,
- 496, 496, 496, 54, 496, 496, 496, 496, 496, 54, 54, 496, 496, 54, 54, 54,
- 54, 496, 496, 54, 54, 496, 496, 54, 54, 496, 496, 496, 496, 496, 54, 496,
- 496, 496, 54, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496,
- 496, 54, 496, 496, 496, 496, 496, 496, 496, 524, 477, 495, 477, 495, 40,
- 40, 40, 40, 40, 40, 512, 40, 40, 40, 40, 40, 40, 40, 525, 525, 40, 40,
- 40, 40, 496, 496, 40, 40, 40, 40, 40, 40, 40, 526, 527, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 40, 40, 317, 317, 317, 317, 317, 317, 317, 317, 317,
- 317, 317, 317, 317, 40, 496, 40, 40, 40, 40, 40, 40, 40, 40, 317, 40, 40,
- 40, 40, 40, 496, 496, 496, 496, 496, 496, 496, 496, 496, 40, 40, 40, 40,
- 40, 528, 528, 528, 528, 40, 40, 40, 525, 529, 529, 525, 40, 40, 40, 40,
+ 193, 193, 193, 193, 194, 194, 194, 194, 197, 194, 194, 195, 96, 156, 96,
+ 96, 193, 193, 193, 195, 195, 193, 193, 198, 198, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 200, 201, 195, 195, 195, 195, 195, 195, 202,
+ 203, 204, 204, 81, 202, 202, 202, 202, 202, 202, 202, 202, 81, 81, 202,
+ 202, 81, 81, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
+ 202, 202, 81, 202, 202, 202, 202, 202, 202, 202, 81, 202, 81, 81, 81,
+ 202, 202, 202, 202, 81, 81, 205, 202, 204, 204, 204, 203, 203, 203, 203,
+ 81, 81, 204, 204, 81, 81, 204, 204, 206, 202, 81, 81, 81, 81, 81, 81, 81,
+ 81, 204, 81, 81, 81, 81, 202, 202, 81, 202, 202, 202, 203, 203, 81, 81,
+ 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 202, 202, 208, 208,
+ 209, 209, 209, 209, 209, 210, 211, 212, 202, 213, 214, 81, 81, 215, 215,
+ 216, 81, 217, 217, 217, 217, 217, 217, 81, 81, 81, 81, 217, 217, 81, 81,
+ 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 81,
+ 217, 217, 217, 217, 217, 217, 217, 81, 217, 217, 81, 217, 217, 81, 217,
+ 217, 81, 81, 218, 81, 216, 216, 216, 215, 215, 81, 81, 81, 81, 215, 215,
+ 81, 81, 215, 215, 219, 81, 81, 81, 215, 81, 81, 81, 81, 81, 81, 81, 217,
+ 217, 217, 217, 81, 217, 81, 81, 81, 81, 81, 81, 81, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 215, 215, 217, 217, 217, 215, 221, 81, 81,
+ 222, 222, 223, 81, 224, 224, 224, 224, 224, 224, 224, 224, 224, 81, 224,
+ 224, 224, 81, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
+ 224, 224, 81, 224, 224, 224, 224, 224, 224, 224, 81, 224, 224, 81, 224,
+ 224, 224, 224, 224, 81, 81, 225, 224, 223, 223, 223, 222, 222, 222, 222,
+ 222, 81, 222, 222, 223, 81, 223, 223, 226, 81, 81, 224, 81, 81, 81, 81,
+ 81, 81, 81, 224, 224, 222, 222, 81, 81, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 228, 229, 81, 81, 81, 81, 81, 81, 81, 224, 222, 222,
+ 222, 222, 222, 222, 81, 230, 231, 231, 81, 232, 232, 232, 232, 232, 232,
+ 232, 232, 81, 81, 232, 232, 81, 81, 232, 232, 232, 232, 232, 232, 232,
+ 232, 232, 232, 232, 232, 232, 232, 81, 232, 232, 232, 232, 232, 232, 232,
+ 81, 232, 232, 81, 232, 232, 232, 232, 232, 81, 81, 233, 232, 231, 230,
+ 231, 230, 230, 230, 230, 81, 81, 231, 231, 81, 81, 231, 231, 234, 81, 81,
+ 81, 81, 81, 81, 81, 81, 230, 231, 81, 81, 81, 81, 232, 232, 81, 232, 232,
+ 232, 230, 230, 81, 81, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
+ 236, 232, 237, 237, 237, 237, 237, 237, 81, 81, 238, 239, 81, 239, 239,
+ 239, 239, 239, 239, 81, 81, 81, 239, 239, 239, 81, 239, 239, 239, 239,
+ 81, 81, 81, 239, 239, 81, 239, 81, 239, 239, 81, 81, 81, 239, 239, 81,
+ 81, 81, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 81, 81, 81, 81,
+ 240, 240, 238, 240, 240, 81, 81, 81, 240, 240, 240, 81, 240, 240, 240,
+ 241, 81, 81, 239, 81, 81, 81, 81, 81, 81, 240, 81, 81, 81, 81, 81, 81,
+ 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 244,
+ 244, 244, 244, 244, 244, 245, 244, 81, 81, 81, 81, 81, 246, 247, 247,
+ 247, 246, 248, 248, 248, 248, 248, 248, 248, 248, 81, 248, 248, 248, 81,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 81, 81, 81, 248, 246, 246, 246, 247, 247, 247, 247, 81, 246,
+ 246, 246, 81, 246, 246, 246, 249, 81, 81, 81, 81, 81, 81, 81, 250, 251,
+ 81, 248, 248, 248, 81, 81, 81, 81, 81, 248, 248, 246, 246, 81, 81, 252,
+ 252, 252, 252, 252, 252, 252, 252, 252, 252, 81, 81, 81, 81, 81, 81, 81,
+ 253, 254, 254, 254, 254, 254, 254, 254, 255, 256, 257, 258, 258, 259,
+ 256, 256, 256, 256, 256, 256, 256, 256, 81, 256, 256, 256, 81, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 81, 256, 256, 256, 256, 256, 81, 81, 260, 256, 258, 261, 258,
+ 258, 258, 258, 258, 81, 261, 258, 258, 81, 258, 258, 257, 262, 81, 81,
+ 81, 81, 81, 81, 81, 258, 258, 81, 81, 81, 81, 81, 81, 81, 256, 81, 256,
+ 256, 257, 257, 81, 81, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
+ 81, 256, 256, 81, 81, 81, 81, 81, 264, 264, 265, 265, 81, 266, 266, 266,
+ 266, 266, 266, 266, 266, 81, 266, 266, 266, 81, 266, 266, 266, 266, 266,
+ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 267, 267,
+ 266, 265, 265, 265, 264, 264, 264, 264, 81, 265, 265, 265, 81, 265, 265,
+ 265, 267, 266, 268, 81, 81, 81, 81, 266, 266, 266, 265, 269, 269, 269,
+ 269, 269, 269, 269, 266, 266, 266, 264, 264, 81, 81, 270, 270, 270, 270,
+ 270, 270, 270, 270, 270, 270, 269, 269, 269, 269, 269, 269, 269, 269,
+ 269, 271, 266, 266, 266, 266, 266, 266, 81, 81, 272, 272, 81, 273, 273,
+ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
+ 273, 273, 81, 81, 81, 273, 273, 273, 273, 273, 273, 273, 273, 81, 273,
+ 273, 273, 273, 273, 273, 273, 273, 273, 81, 273, 81, 81, 81, 81, 274, 81,
+ 81, 81, 81, 272, 272, 272, 275, 275, 275, 81, 275, 81, 272, 272, 272,
+ 272, 272, 272, 272, 272, 81, 81, 81, 81, 81, 81, 276, 276, 276, 276, 276,
+ 276, 276, 276, 276, 276, 81, 81, 272, 272, 277, 81, 81, 81, 81, 278, 278,
+ 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
+ 279, 278, 278, 279, 279, 279, 279, 280, 280, 281, 81, 81, 81, 81, 282,
+ 278, 278, 278, 278, 278, 278, 283, 279, 284, 284, 284, 284, 279, 279,
+ 279, 285, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 287, 287, 81,
+ 81, 81, 81, 81, 288, 288, 81, 288, 81, 288, 288, 288, 288, 288, 81, 288,
+ 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
+ 288, 81, 288, 81, 288, 288, 289, 288, 288, 289, 289, 289, 289, 290, 290,
+ 291, 289, 289, 288, 81, 81, 288, 288, 288, 288, 288, 81, 292, 81, 293,
+ 293, 293, 293, 289, 289, 81, 81, 294, 294, 294, 294, 294, 294, 294, 294,
+ 294, 294, 81, 81, 288, 288, 288, 288, 295, 296, 296, 296, 297, 298, 297,
+ 297, 299, 297, 297, 300, 299, 301, 301, 301, 301, 301, 299, 302, 301,
+ 302, 302, 302, 303, 303, 302, 302, 302, 302, 302, 302, 304, 304, 304,
+ 304, 304, 304, 304, 304, 304, 304, 305, 305, 305, 305, 305, 305, 305,
+ 305, 305, 305, 306, 303, 302, 303, 302, 307, 308, 309, 308, 309, 310,
+ 310, 295, 295, 295, 295, 295, 295, 295, 295, 81, 295, 295, 295, 295, 295,
+ 295, 295, 295, 295, 295, 295, 295, 81, 81, 81, 81, 311, 312, 313, 314,
+ 313, 313, 313, 313, 313, 312, 312, 312, 312, 313, 315, 312, 313, 316,
+ 316, 317, 300, 316, 316, 295, 295, 295, 295, 295, 313, 313, 313, 313,
+ 313, 313, 313, 313, 313, 313, 313, 81, 313, 313, 313, 313, 313, 313, 313,
+ 313, 313, 313, 313, 313, 81, 306, 306, 302, 302, 302, 302, 302, 302, 303,
+ 302, 302, 302, 302, 302, 302, 81, 302, 302, 297, 297, 300, 297, 298, 318,
+ 318, 318, 318, 299, 299, 81, 81, 81, 81, 81, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 320, 320, 321, 321, 321, 321, 320, 321,
+ 321, 321, 321, 321, 322, 320, 323, 323, 320, 320, 321, 321, 319, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 325, 325, 326, 326, 326,
+ 326, 319, 319, 319, 319, 319, 319, 320, 320, 321, 321, 319, 319, 319,
+ 319, 321, 321, 321, 319, 320, 320, 320, 319, 319, 320, 320, 320, 320,
+ 320, 320, 320, 319, 319, 319, 321, 321, 321, 321, 319, 319, 319, 319,
+ 319, 321, 320, 320, 321, 321, 320, 320, 320, 320, 320, 320, 327, 319,
+ 320, 324, 324, 320, 320, 320, 321, 328, 328, 329, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 81, 329, 81, 81, 81, 81, 81,
+ 329, 81, 81, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 331,
+ 332, 330, 330, 330, 333, 333, 333, 333, 333, 333, 333, 333, 334, 334,
+ 334, 334, 334, 334, 334, 334, 335, 335, 335, 335, 335, 335, 335, 335,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 81, 336, 336, 336, 336, 81,
+ 81, 336, 336, 336, 336, 336, 336, 336, 81, 336, 336, 336, 81, 81, 337,
+ 337, 337, 338, 339, 338, 338, 338, 338, 338, 338, 338, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 81, 81, 81, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 81, 81, 81, 81, 81, 81, 342, 342, 342, 342, 342, 342, 342, 342, 342,
+ 342, 342, 342, 342, 342, 81, 81, 343, 343, 343, 343, 343, 343, 81, 81,
+ 344, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345,
+ 345, 345, 345, 345, 345, 345, 345, 346, 347, 345, 348, 349, 349, 349,
+ 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, 349,
+ 349, 350, 351, 81, 81, 81, 352, 352, 352, 352, 352, 352, 352, 352, 352,
+ 352, 352, 198, 198, 198, 353, 353, 353, 352, 352, 352, 352, 352, 352,
+ 352, 352, 81, 81, 81, 81, 81, 81, 81, 354, 354, 354, 354, 354, 354, 354,
+ 354, 354, 354, 354, 354, 354, 81, 354, 354, 354, 354, 355, 355, 356, 81,
+ 81, 81, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 358, 358, 359,
+ 198, 198, 81, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 361, 361,
+ 81, 81, 81, 81, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362,
+ 362, 362, 81, 362, 362, 362, 81, 363, 363, 81, 81, 81, 81, 364, 364, 364,
+ 364, 364, 364, 364, 364, 364, 364, 364, 364, 365, 365, 366, 365, 365,
+ 365, 365, 365, 365, 365, 366, 366, 366, 366, 366, 366, 366, 366, 365,
+ 366, 366, 365, 365, 365, 365, 365, 365, 365, 365, 365, 367, 365, 368,
+ 368, 369, 370, 368, 371, 368, 372, 364, 373, 81, 81, 374, 374, 374, 374,
+ 374, 374, 374, 374, 374, 374, 81, 81, 81, 81, 81, 81, 375, 375, 375, 375,
+ 375, 375, 375, 375, 375, 375, 81, 81, 81, 81, 81, 81, 376, 376, 377, 377,
+ 378, 379, 380, 376, 381, 381, 376, 382, 382, 382, 383, 81, 384, 384, 384,
+ 384, 384, 384, 384, 384, 384, 384, 81, 81, 81, 81, 81, 81, 385, 385, 385,
+ 385, 385, 385, 385, 385, 385, 385, 385, 386, 385, 385, 385, 385, 385, 81,
+ 81, 81, 81, 81, 81, 81, 385, 385, 385, 385, 385, 382, 382, 385, 385, 387,
+ 385, 81, 81, 81, 81, 81, 345, 345, 345, 345, 345, 345, 81, 81, 388, 388,
+ 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 81, 389,
+ 389, 389, 390, 390, 390, 390, 389, 389, 390, 390, 390, 81, 81, 81, 81,
+ 390, 390, 389, 390, 390, 390, 390, 390, 390, 391, 392, 393, 81, 81, 81,
+ 81, 394, 81, 81, 81, 395, 395, 396, 396, 396, 396, 396, 396, 396, 396,
+ 396, 396, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397,
+ 397, 397, 81, 81, 397, 397, 397, 397, 397, 81, 81, 81, 398, 398, 398,
+ 398, 398, 398, 398, 398, 398, 398, 398, 398, 81, 81, 81, 81, 398, 398,
+ 81, 81, 81, 81, 81, 81, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399,
+ 400, 81, 81, 81, 401, 401, 402, 402, 402, 402, 402, 402, 402, 402, 403,
+ 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
+ 404, 405, 406, 406, 407, 81, 81, 408, 408, 409, 409, 409, 409, 409, 409,
+ 409, 409, 409, 409, 409, 409, 409, 410, 411, 410, 411, 411, 411, 411,
+ 411, 411, 411, 81, 412, 410, 411, 410, 410, 411, 411, 411, 411, 411, 411,
+ 411, 411, 410, 410, 410, 410, 410, 410, 411, 411, 413, 413, 413, 413,
+ 413, 413, 413, 413, 81, 81, 414, 415, 415, 415, 415, 415, 415, 415, 415,
+ 415, 415, 81, 81, 81, 81, 81, 81, 416, 416, 416, 416, 416, 416, 416, 417,
+ 416, 416, 416, 416, 416, 416, 81, 81, 96, 96, 96, 96, 96, 156, 156, 156,
+ 156, 156, 156, 96, 96, 156, 418, 81, 419, 419, 419, 419, 420, 421, 421,
+ 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 422,
+ 420, 419, 419, 419, 419, 419, 420, 419, 420, 420, 420, 420, 420, 419,
+ 420, 423, 421, 421, 421, 421, 421, 421, 421, 81, 81, 81, 81, 424, 424,
+ 424, 424, 424, 424, 424, 424, 424, 424, 425, 425, 426, 425, 425, 425,
+ 425, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 428, 429, 428,
+ 428, 428, 428, 428, 428, 428, 427, 427, 427, 427, 427, 427, 427, 427,
+ 427, 81, 81, 81, 430, 430, 431, 432, 432, 432, 432, 432, 432, 432, 432,
+ 432, 432, 432, 432, 432, 432, 431, 430, 430, 430, 430, 431, 431, 430,
+ 430, 433, 434, 430, 430, 432, 432, 435, 435, 435, 435, 435, 435, 435,
+ 435, 435, 435, 432, 432, 432, 432, 432, 432, 436, 436, 436, 436, 436,
+ 436, 436, 436, 436, 436, 436, 436, 436, 436, 437, 438, 439, 439, 438,
+ 438, 438, 439, 438, 439, 439, 439, 440, 440, 81, 81, 81, 81, 81, 81, 81,
+ 81, 441, 441, 441, 441, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442,
+ 442, 442, 443, 443, 443, 443, 443, 443, 443, 443, 444, 444, 444, 444,
+ 444, 444, 444, 444, 443, 443, 444, 445, 81, 81, 81, 446, 446, 446, 446,
+ 446, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 81, 81, 81, 442,
+ 442, 442, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 449, 449,
+ 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 450, 450,
+ 450, 450, 450, 450, 451, 451, 93, 81, 81, 81, 81, 81, 81, 81, 329, 329,
+ 329, 81, 81, 329, 329, 329, 452, 452, 452, 452, 452, 452, 452, 452, 96,
+ 96, 96, 331, 453, 156, 156, 156, 156, 156, 96, 96, 156, 156, 156, 156,
+ 96, 454, 453, 453, 453, 453, 453, 453, 453, 455, 455, 455, 455, 156, 455,
+ 455, 455, 455, 455, 455, 96, 455, 455, 454, 96, 96, 455, 81, 81, 81, 81,
+ 81, 56, 56, 56, 56, 56, 56, 79, 79, 79, 79, 79, 93, 59, 59, 59, 59, 59,
+ 59, 59, 59, 59, 82, 82, 82, 82, 82, 59, 59, 59, 59, 82, 82, 82, 82, 82,
+ 56, 56, 56, 56, 56, 456, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 59, 59,
+ 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 82, 96, 96, 156, 96, 96, 96, 96,
+ 96, 96, 96, 156, 96, 96, 457, 458, 156, 459, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 460, 461, 461,
+ 156, 81, 96, 462, 156, 96, 156, 52, 56, 52, 56, 52, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 52, 56, 79, 79, 79, 79, 79, 79, 79, 79, 78, 78, 78, 78,
+ 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 81, 81, 78, 78, 78, 78, 78, 78,
+ 81, 81, 81, 78, 81, 78, 81, 78, 81, 78, 463, 463, 463, 463, 463, 463,
+ 463, 463, 79, 79, 79, 79, 79, 81, 79, 79, 78, 78, 78, 78, 463, 80, 79,
+ 80, 80, 80, 79, 79, 79, 81, 79, 79, 78, 78, 78, 78, 463, 80, 80, 80, 79,
+ 79, 79, 79, 81, 81, 79, 79, 78, 78, 78, 78, 81, 80, 80, 80, 78, 78, 78,
+ 78, 78, 80, 80, 80, 81, 81, 79, 79, 79, 81, 79, 79, 78, 78, 78, 78, 463,
+ 464, 80, 81, 465, 465, 465, 465, 465, 465, 465, 466, 465, 465, 465, 467,
+ 468, 469, 470, 471, 472, 473, 474, 472, 475, 476, 38, 84, 477, 478, 479,
+ 42, 477, 478, 479, 42, 38, 38, 480, 84, 481, 481, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 33, 490, 491, 490, 490, 491, 492, 493, 493, 84,
+ 42, 50, 38, 494, 494, 480, 495, 495, 84, 84, 84, 496, 479, 497, 494, 494,
+ 494, 84, 84, 84, 84, 84, 84, 84, 84, 498, 84, 495, 84, 379, 84, 379, 379,
+ 379, 379, 84, 379, 379, 465, 499, 500, 500, 500, 500, 81, 501, 502, 503,
+ 504, 505, 505, 505, 505, 505, 505, 506, 59, 81, 81, 47, 506, 506, 506,
+ 506, 506, 507, 507, 498, 479, 497, 508, 506, 47, 47, 47, 47, 506, 506,
+ 506, 506, 506, 507, 507, 498, 479, 497, 81, 59, 59, 59, 59, 59, 81, 81,
+ 81, 282, 282, 282, 282, 282, 282, 282, 509, 282, 510, 282, 282, 36, 282,
+ 282, 282, 282, 282, 282, 282, 282, 282, 509, 282, 282, 282, 282, 509,
+ 282, 282, 509, 282, 511, 511, 511, 511, 511, 511, 511, 511, 96, 96, 453,
+ 453, 96, 96, 96, 96, 453, 453, 453, 96, 96, 418, 418, 418, 418, 96, 418,
+ 418, 418, 453, 453, 96, 156, 96, 453, 453, 156, 156, 156, 156, 96, 81,
+ 81, 81, 81, 81, 81, 81, 40, 40, 512, 513, 40, 514, 40, 512, 40, 513, 49,
+ 512, 512, 512, 49, 49, 512, 512, 512, 515, 40, 512, 516, 40, 498, 512,
+ 512, 512, 512, 512, 40, 40, 40, 514, 514, 40, 512, 40, 85, 40, 512, 40,
+ 52, 517, 512, 512, 518, 49, 512, 512, 52, 512, 49, 455, 455, 455, 455,
+ 49, 40, 40, 49, 49, 512, 512, 498, 498, 498, 498, 498, 512, 49, 49, 49,
+ 49, 40, 498, 40, 40, 56, 318, 519, 519, 519, 520, 51, 521, 519, 519, 519,
+ 519, 519, 51, 520, 520, 51, 519, 522, 522, 522, 522, 522, 522, 522, 522,
+ 522, 522, 522, 522, 523, 523, 523, 523, 522, 522, 523, 523, 523, 523,
+ 523, 523, 523, 523, 523, 52, 56, 523, 523, 523, 523, 51, 40, 40, 81, 81,
+ 81, 81, 54, 54, 54, 54, 54, 514, 514, 514, 514, 514, 498, 498, 40, 40,
+ 40, 40, 498, 40, 40, 498, 40, 40, 498, 40, 40, 40, 40, 40, 40, 40, 498,
+ 40, 40, 40, 40, 40, 40, 40, 40, 40, 44, 44, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 498, 498, 40, 40, 54, 40, 54, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 44, 40, 40, 40, 40, 498, 498, 498, 498, 498, 498, 498,
+ 498, 498, 498, 498, 498, 54, 498, 54, 54, 498, 498, 498, 54, 54, 498,
+ 498, 54, 498, 498, 498, 54, 498, 54, 524, 525, 498, 54, 498, 498, 498,
+ 498, 54, 498, 498, 54, 54, 54, 54, 498, 498, 54, 498, 54, 498, 54, 54,
+ 54, 54, 54, 54, 498, 54, 498, 498, 498, 498, 498, 54, 54, 54, 54, 498,
+ 498, 498, 498, 54, 54, 498, 498, 54, 498, 498, 498, 54, 498, 498, 498,
+ 498, 498, 54, 498, 498, 498, 498, 498, 54, 54, 498, 498, 54, 54, 54, 54,
+ 498, 498, 54, 54, 498, 498, 54, 54, 498, 498, 498, 498, 498, 54, 498,
+ 498, 498, 54, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
+ 498, 54, 498, 498, 498, 498, 498, 498, 498, 526, 479, 497, 479, 497, 40,
+ 40, 40, 40, 40, 40, 514, 40, 40, 40, 40, 40, 40, 40, 527, 527, 40, 40,
+ 40, 40, 498, 498, 40, 40, 40, 40, 40, 40, 40, 528, 529, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 318, 318, 318, 318, 318, 318, 318, 318, 318,
+ 318, 318, 318, 318, 40, 498, 40, 40, 40, 40, 40, 40, 40, 40, 318, 40, 40,
+ 40, 40, 40, 498, 498, 498, 498, 498, 498, 498, 498, 498, 40, 40, 40, 40,
+ 40, 530, 530, 530, 530, 40, 40, 40, 527, 531, 531, 527, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 81, 40, 40, 40, 81, 81, 81, 81, 81, 51, 51,
51, 51, 51, 51, 51, 51, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 519, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 518, 512, 512, 512,
- 512, 512, 512, 512, 512, 512, 512, 512, 512, 40, 40, 40, 40, 512, 512,
- 512, 512, 531, 40, 40, 40, 40, 40, 512, 512, 512, 512, 40, 40, 512, 512,
- 40, 512, 512, 512, 512, 512, 512, 512, 40, 40, 40, 40, 40, 40, 40, 40,
- 512, 512, 40, 40, 512, 54, 40, 40, 40, 40, 512, 512, 40, 40, 512, 54, 40,
- 40, 40, 40, 512, 512, 512, 40, 40, 512, 40, 40, 512, 512, 40, 40, 40, 40,
- 40, 40, 40, 512, 496, 496, 496, 496, 496, 532, 532, 496, 529, 529, 529,
- 529, 40, 512, 512, 40, 40, 512, 40, 40, 40, 40, 512, 512, 40, 40, 40, 40,
- 525, 525, 531, 531, 529, 40, 529, 529, 533, 534, 533, 529, 40, 529, 529,
- 529, 40, 40, 40, 40, 512, 40, 512, 40, 40, 40, 40, 40, 528, 528, 528,
- 528, 528, 528, 528, 528, 528, 528, 528, 528, 40, 40, 40, 40, 512, 512,
- 40, 512, 512, 512, 40, 512, 533, 512, 512, 40, 512, 512, 40, 54, 40, 40,
- 40, 40, 40, 40, 40, 525, 40, 40, 40, 528, 40, 40, 40, 40, 40, 40, 40, 40,
- 40, 40, 512, 512, 40, 528, 40, 40, 40, 40, 40, 40, 40, 40, 528, 528, 317,
- 40, 40, 40, 40, 40, 40, 40, 40, 525, 525, 533, 529, 529, 529, 529, 525,
- 525, 533, 533, 533, 512, 512, 512, 512, 533, 528, 533, 533, 533, 512,
- 533, 525, 512, 512, 512, 533, 533, 512, 512, 533, 512, 512, 533, 533,
- 533, 40, 512, 40, 40, 40, 40, 512, 512, 525, 512, 512, 512, 512, 512,
- 512, 533, 525, 525, 533, 525, 512, 533, 533, 535, 525, 512, 512, 525,
- 533, 533, 529, 529, 529, 529, 529, 528, 40, 40, 529, 529, 536, 536, 534,
- 534, 40, 40, 528, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 44, 40,
- 40, 40, 40, 40, 40, 528, 40, 528, 40, 40, 40, 40, 528, 528, 528, 40, 537,
- 40, 40, 40, 538, 538, 538, 538, 538, 538, 40, 539, 539, 529, 40, 40, 40,
- 477, 495, 477, 495, 477, 495, 477, 495, 477, 495, 477, 495, 477, 495, 51,
- 51, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 40, 528,
- 528, 528, 40, 40, 40, 40, 40, 40, 40, 528, 496, 496, 496, 496, 496, 477,
- 495, 496, 496, 496, 496, 496, 496, 496, 16, 31, 16, 31, 16, 31, 16, 31,
- 477, 495, 540, 540, 540, 540, 540, 540, 540, 540, 496, 496, 496, 477,
- 495, 16, 31, 477, 495, 477, 495, 477, 495, 477, 495, 477, 495, 496, 496,
- 496, 496, 496, 496, 496, 477, 495, 477, 495, 496, 496, 496, 496, 496,
- 496, 496, 496, 477, 495, 496, 496, 40, 40, 40, 528, 528, 40, 40, 40, 496,
- 496, 496, 496, 496, 40, 40, 496, 496, 496, 496, 496, 496, 40, 40, 40,
- 528, 40, 40, 40, 40, 537, 512, 512, 40, 40, 40, 40, 81, 81, 40, 40, 40,
- 40, 40, 40, 40, 40, 81, 81, 40, 81, 40, 40, 40, 40, 40, 40, 541, 541,
- 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 81, 542,
- 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 81,
- 52, 56, 52, 52, 52, 56, 56, 52, 56, 52, 56, 52, 56, 52, 52, 52, 52, 56,
- 52, 56, 56, 52, 56, 56, 56, 56, 56, 56, 59, 59, 52, 52, 87, 88, 87, 88,
- 88, 543, 543, 543, 543, 543, 543, 87, 88, 87, 88, 544, 544, 544, 87, 88,
- 81, 81, 81, 81, 81, 545, 546, 546, 546, 547, 545, 546, 329, 329, 329,
- 329, 329, 329, 81, 329, 81, 81, 81, 81, 81, 329, 81, 81, 548, 548, 548,
- 548, 548, 548, 548, 548, 81, 81, 81, 81, 81, 81, 81, 549, 550, 81, 81,
- 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 551, 95, 95, 95, 95, 95,
- 95, 95, 95, 552, 552, 42, 50, 42, 50, 552, 552, 552, 42, 50, 552, 42, 50,
- 377, 377, 377, 377, 377, 377, 377, 377, 84, 472, 553, 377, 554, 84, 42,
- 50, 84, 84, 42, 50, 477, 495, 477, 495, 477, 495, 477, 495, 377, 377,
- 377, 377, 375, 60, 377, 377, 84, 377, 377, 84, 84, 84, 84, 84, 555, 555,
- 377, 377, 377, 84, 472, 377, 477, 377, 377, 377, 377, 377, 377, 377, 377,
- 84, 377, 84, 377, 81, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556,
- 81, 556, 556, 556, 556, 556, 556, 556, 556, 556, 81, 81, 81, 81, 556,
- 556, 556, 556, 556, 556, 81, 81, 525, 525, 525, 525, 525, 525, 525, 525,
- 525, 525, 525, 525, 81, 81, 81, 81, 557, 558, 558, 559, 525, 560, 561,
- 562, 526, 527, 526, 527, 526, 527, 526, 527, 526, 527, 525, 525, 526,
- 527, 526, 527, 526, 527, 526, 527, 563, 526, 527, 527, 525, 562, 562,
- 562, 562, 562, 562, 562, 562, 562, 564, 565, 566, 567, 568, 568, 569,
- 570, 570, 570, 570, 571, 525, 525, 562, 562, 562, 560, 572, 559, 525,
- 529, 81, 573, 574, 573, 574, 573, 574, 573, 574, 573, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573,
- 574, 574, 574, 574, 574, 574, 574, 573, 574, 573, 574, 573, 574, 574,
- 574, 574, 574, 574, 573, 574, 574, 574, 574, 574, 574, 573, 573, 81, 81,
- 575, 575, 576, 576, 577, 577, 574, 563, 578, 579, 578, 579, 578, 579,
- 578, 579, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579,
- 579, 579, 579, 579, 579, 579, 578, 579, 579, 579, 579, 579, 579, 579,
- 578, 579, 578, 579, 578, 579, 579, 579, 579, 579, 579, 578, 579, 579,
- 579, 579, 579, 579, 578, 578, 579, 579, 579, 579, 580, 581, 582, 582,
- 579, 81, 81, 81, 81, 81, 583, 583, 583, 583, 583, 583, 583, 583, 583,
- 583, 583, 81, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584,
- 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 81, 585, 585, 586, 586,
- 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 583, 583,
- 583, 81, 81, 81, 81, 81, 578, 578, 578, 578, 578, 578, 578, 578, 587,
- 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 81,
- 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585,
- 585, 585, 589, 589, 589, 589, 589, 589, 589, 589, 525, 590, 590, 590,
- 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 587, 587,
- 587, 587, 588, 588, 588, 585, 585, 590, 590, 590, 590, 590, 590, 590,
- 585, 585, 585, 585, 525, 525, 525, 525, 591, 591, 591, 591, 591, 591,
- 591, 591, 591, 591, 591, 591, 591, 591, 591, 81, 585, 585, 585, 585, 585,
- 585, 585, 525, 525, 525, 525, 585, 585, 585, 585, 585, 585, 585, 585,
- 585, 585, 585, 525, 525, 592, 592, 592, 592, 592, 592, 592, 592, 592,
- 592, 592, 592, 592, 592, 593, 593, 593, 593, 593, 593, 593, 593, 593,
- 593, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594,
- 595, 594, 594, 594, 594, 594, 594, 594, 81, 81, 81, 596, 596, 596, 596,
- 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 81, 597, 597, 597,
- 597, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 599, 599, 600,
- 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 601, 602, 603,
- 602, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 600, 600, 81, 81,
- 81, 81, 90, 93, 90, 93, 90, 93, 605, 95, 97, 97, 97, 606, 95, 95, 95, 95,
- 95, 95, 95, 95, 95, 95, 606, 607, 90, 93, 90, 93, 454, 454, 95, 95, 608,
- 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 609,
- 609, 609, 609, 609, 609, 609, 609, 609, 609, 610, 610, 611, 612, 612,
- 612, 612, 612, 62, 62, 62, 62, 62, 62, 62, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 62, 62, 52, 56, 52, 56, 52, 56, 56, 56, 52, 56, 52, 56, 52, 56,
- 59, 56, 56, 56, 56, 56, 56, 56, 56, 52, 56, 52, 56, 52, 52, 56, 60, 613,
- 613, 52, 56, 52, 56, 57, 52, 56, 52, 56, 56, 56, 52, 56, 52, 56, 52, 52,
- 52, 52, 52, 56, 52, 52, 52, 52, 52, 56, 52, 56, 52, 56, 81, 81, 81, 81,
- 81, 81, 81, 81, 81, 81, 81, 81, 81, 57, 59, 59, 56, 57, 57, 57, 57, 57,
- 614, 614, 615, 614, 614, 614, 616, 614, 614, 614, 614, 615, 614, 614,
- 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 617,
- 617, 615, 615, 617, 618, 618, 618, 618, 81, 81, 81, 81, 619, 619, 619,
- 619, 619, 619, 317, 317, 507, 516, 81, 81, 81, 81, 81, 81, 620, 620, 620,
- 620, 620, 620, 620, 620, 620, 620, 620, 620, 621, 621, 622, 622, 623,
- 623, 624, 624, 624, 624, 624, 624, 624, 624, 624, 624, 624, 624, 624,
- 624, 624, 624, 624, 624, 623, 623, 623, 623, 623, 623, 623, 623, 623,
- 623, 623, 623, 623, 623, 623, 623, 625, 626, 81, 81, 81, 81, 81, 81, 81,
- 81, 627, 627, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 81, 81,
- 81, 81, 81, 81, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 195,
- 195, 195, 195, 195, 195, 201, 201, 201, 195, 629, 195, 195, 193, 630,
- 630, 630, 630, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631,
- 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
- 631, 632, 632, 632, 632, 632, 633, 633, 633, 199, 634, 635, 635, 635,
- 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, 636, 636,
- 636, 636, 636, 636, 636, 636, 636, 636, 636, 637, 638, 81, 81, 81, 81,
- 81, 81, 81, 81, 81, 81, 81, 639, 332, 332, 332, 332, 332, 81, 81, 81,
- 640, 640, 640, 641, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642,
- 642, 642, 642, 642, 642, 643, 641, 641, 640, 640, 640, 640, 641, 641,
- 640, 641, 641, 641, 644, 645, 645, 645, 645, 645, 645, 646, 646, 646,
- 645, 645, 645, 645, 81, 61, 647, 647, 647, 647, 647, 647, 647, 647, 647,
- 647, 81, 81, 81, 81, 645, 645, 318, 318, 318, 318, 318, 320, 648, 318,
- 323, 323, 318, 318, 318, 318, 318, 81, 649, 649, 649, 649, 649, 649, 649,
- 649, 649, 650, 650, 650, 650, 650, 650, 651, 651, 650, 650, 651, 651,
- 650, 650, 81, 649, 649, 649, 650, 649, 649, 649, 649, 649, 649, 649, 649,
- 650, 651, 81, 81, 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 81,
- 81, 653, 654, 654, 654, 648, 318, 318, 318, 318, 318, 318, 327, 327, 327,
- 318, 319, 320, 319, 318, 318, 655, 655, 655, 655, 655, 655, 655, 655,
- 656, 655, 656, 656, 657, 655, 655, 656, 656, 655, 655, 655, 655, 655,
- 656, 656, 655, 656, 655, 81, 81, 81, 81, 81, 81, 81, 81, 655, 655, 658,
- 659, 659, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 661,
- 662, 662, 661, 661, 663, 663, 660, 664, 664, 661, 665, 81, 81, 335, 335,
- 335, 335, 335, 335, 81, 56, 56, 56, 613, 59, 59, 59, 59, 56, 56, 56, 56,
- 56, 79, 81, 81, 342, 342, 342, 342, 342, 342, 342, 342, 660, 660, 660,
- 661, 661, 662, 661, 661, 662, 661, 661, 663, 661, 665, 81, 81, 666, 666,
- 666, 666, 666, 666, 666, 666, 666, 666, 81, 81, 81, 81, 81, 81, 667, 668,
- 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668,
- 668, 668, 668, 668, 667, 668, 668, 668, 668, 668, 668, 668, 81, 81, 81,
- 81, 333, 333, 333, 333, 333, 333, 333, 81, 81, 81, 81, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 81, 81, 81, 81, 669, 669, 669, 669, 669,
- 669, 669, 669, 670, 670, 670, 670, 670, 670, 670, 670, 592, 592, 593,
- 593, 593, 593, 593, 593, 56, 56, 56, 56, 56, 56, 56, 81, 81, 81, 81, 101,
- 101, 101, 101, 101, 81, 81, 81, 81, 81, 129, 671, 129, 129, 672, 129,
+ 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532,
+ 521, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 520, 514, 514, 514,
+ 514, 514, 514, 514, 514, 514, 514, 514, 514, 40, 40, 40, 40, 514, 514,
+ 514, 514, 533, 40, 40, 40, 40, 40, 514, 514, 514, 514, 40, 40, 514, 514,
+ 40, 514, 514, 514, 514, 514, 514, 514, 40, 40, 40, 40, 40, 40, 40, 40,
+ 514, 514, 40, 40, 514, 54, 40, 40, 40, 40, 514, 514, 40, 40, 514, 54, 40,
+ 40, 40, 40, 514, 514, 514, 40, 40, 514, 40, 40, 514, 514, 40, 40, 40, 40,
+ 40, 40, 40, 514, 498, 498, 498, 498, 498, 534, 534, 498, 531, 531, 531,
+ 531, 40, 514, 514, 40, 40, 514, 40, 40, 40, 40, 514, 514, 40, 40, 40, 40,
+ 527, 527, 533, 533, 531, 40, 531, 531, 535, 536, 535, 531, 40, 531, 531,
+ 531, 40, 40, 40, 40, 514, 40, 514, 40, 40, 40, 40, 40, 530, 530, 530,
+ 530, 530, 530, 530, 530, 530, 530, 530, 530, 40, 40, 40, 40, 514, 514,
+ 40, 514, 514, 514, 40, 514, 535, 514, 514, 40, 514, 514, 40, 54, 40, 40,
+ 40, 40, 40, 40, 40, 527, 40, 40, 40, 530, 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 514, 514, 40, 530, 40, 40, 40, 40, 40, 40, 40, 40, 530, 530, 318,
+ 40, 40, 40, 40, 40, 40, 40, 40, 527, 527, 535, 531, 531, 531, 531, 527,
+ 527, 535, 535, 535, 514, 514, 514, 514, 535, 530, 535, 535, 535, 514,
+ 535, 527, 514, 514, 514, 535, 535, 514, 514, 535, 514, 514, 535, 535,
+ 535, 40, 514, 40, 40, 40, 40, 514, 514, 527, 514, 514, 514, 514, 514,
+ 514, 535, 527, 527, 535, 527, 514, 535, 535, 537, 527, 514, 514, 527,
+ 535, 535, 531, 531, 531, 531, 531, 530, 40, 40, 531, 531, 538, 538, 536,
+ 536, 40, 40, 530, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 44, 40,
+ 40, 40, 40, 40, 40, 530, 40, 530, 40, 40, 40, 40, 530, 530, 530, 40, 539,
+ 40, 40, 40, 540, 540, 540, 540, 540, 540, 40, 541, 541, 531, 40, 40, 40,
+ 479, 497, 479, 497, 479, 497, 479, 497, 479, 497, 479, 497, 479, 497, 51,
+ 51, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 40, 530,
+ 530, 530, 40, 40, 40, 40, 40, 40, 40, 530, 498, 498, 498, 498, 498, 479,
+ 497, 498, 498, 498, 498, 498, 498, 498, 16, 31, 16, 31, 16, 31, 16, 31,
+ 479, 497, 542, 542, 542, 542, 542, 542, 542, 542, 498, 498, 498, 479,
+ 497, 16, 31, 479, 497, 479, 497, 479, 497, 479, 497, 479, 497, 498, 498,
+ 498, 498, 498, 498, 498, 479, 497, 479, 497, 498, 498, 498, 498, 498,
+ 498, 498, 498, 479, 497, 498, 498, 40, 40, 40, 530, 530, 40, 40, 40, 498,
+ 498, 498, 498, 498, 40, 40, 498, 498, 498, 498, 498, 498, 40, 40, 40,
+ 530, 40, 40, 40, 40, 539, 514, 514, 40, 40, 40, 40, 81, 81, 40, 40, 40,
+ 40, 40, 40, 40, 40, 81, 81, 543, 543, 543, 543, 543, 543, 543, 543, 543,
+ 543, 543, 543, 543, 543, 543, 81, 544, 544, 544, 544, 544, 544, 544, 544,
+ 544, 544, 544, 544, 544, 544, 544, 81, 52, 56, 52, 52, 52, 56, 56, 52,
+ 56, 52, 56, 52, 56, 52, 52, 52, 52, 56, 52, 56, 56, 52, 56, 56, 56, 56,
+ 56, 56, 59, 59, 52, 52, 87, 88, 87, 88, 88, 545, 545, 545, 545, 545, 545,
+ 87, 88, 87, 88, 546, 546, 546, 87, 88, 81, 81, 81, 81, 81, 547, 548, 548,
+ 548, 549, 547, 548, 330, 330, 330, 330, 330, 330, 81, 330, 81, 81, 81,
+ 81, 81, 330, 81, 81, 550, 550, 550, 550, 550, 550, 550, 550, 81, 81, 81,
+ 81, 81, 81, 81, 551, 552, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
+ 81, 81, 553, 95, 95, 95, 95, 95, 95, 95, 95, 554, 554, 42, 50, 42, 50,
+ 554, 554, 554, 42, 50, 554, 42, 50, 379, 379, 379, 379, 379, 379, 379,
+ 379, 84, 474, 555, 379, 556, 84, 42, 50, 84, 84, 42, 50, 479, 497, 479,
+ 497, 479, 497, 479, 497, 379, 379, 379, 379, 377, 60, 379, 379, 84, 379,
+ 379, 84, 84, 84, 84, 84, 557, 557, 379, 379, 379, 84, 474, 379, 479, 379,
+ 379, 379, 379, 379, 379, 379, 379, 84, 379, 84, 379, 379, 558, 558, 558,
+ 558, 558, 558, 558, 558, 558, 558, 81, 558, 558, 558, 558, 558, 558, 558,
+ 558, 558, 81, 81, 81, 81, 558, 558, 558, 558, 558, 558, 81, 81, 527, 527,
+ 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 81, 81, 81, 81, 559,
+ 560, 560, 561, 527, 562, 563, 564, 528, 529, 528, 529, 528, 529, 528,
+ 529, 528, 529, 527, 527, 528, 529, 528, 529, 528, 529, 528, 529, 565,
+ 528, 529, 529, 527, 564, 564, 564, 564, 564, 564, 564, 564, 564, 566,
+ 567, 568, 569, 570, 570, 571, 572, 572, 572, 572, 573, 527, 527, 564,
+ 564, 564, 562, 574, 561, 527, 531, 81, 575, 576, 575, 576, 575, 576, 575,
+ 576, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576,
+ 576, 576, 576, 576, 576, 575, 576, 576, 576, 576, 576, 576, 576, 575,
+ 576, 575, 576, 575, 576, 576, 576, 576, 576, 576, 575, 576, 576, 576,
+ 576, 576, 576, 575, 575, 81, 81, 577, 577, 578, 578, 579, 579, 576, 565,
+ 580, 581, 580, 581, 580, 581, 580, 581, 580, 581, 581, 581, 581, 581,
+ 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 580, 581,
+ 581, 581, 581, 581, 581, 581, 580, 581, 580, 581, 580, 581, 581, 581,
+ 581, 581, 581, 580, 581, 581, 581, 581, 581, 581, 580, 580, 581, 581,
+ 581, 581, 582, 583, 584, 584, 581, 81, 81, 81, 81, 81, 585, 585, 585,
+ 585, 585, 585, 585, 585, 585, 585, 585, 81, 586, 586, 586, 586, 586, 586,
+ 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586,
+ 586, 586, 81, 587, 587, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587,
+ 587, 587, 587, 587, 585, 585, 585, 81, 81, 81, 81, 81, 580, 580, 580,
+ 580, 580, 580, 580, 580, 589, 589, 589, 589, 589, 589, 589, 589, 589,
+ 589, 589, 589, 589, 590, 590, 81, 588, 588, 588, 588, 588, 588, 588, 588,
+ 588, 588, 587, 587, 587, 587, 587, 587, 591, 591, 591, 591, 591, 591,
+ 591, 591, 527, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592,
+ 592, 592, 592, 592, 589, 589, 589, 589, 590, 590, 590, 587, 587, 592,
+ 592, 592, 592, 592, 592, 592, 587, 587, 587, 587, 527, 527, 527, 527,
+ 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593,
+ 593, 81, 587, 587, 587, 587, 587, 587, 587, 527, 527, 527, 527, 587, 587,
+ 587, 587, 587, 587, 587, 587, 587, 587, 587, 527, 527, 594, 594, 594,
+ 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 595, 595, 595,
+ 595, 595, 595, 595, 595, 595, 595, 596, 596, 596, 596, 596, 596, 596,
+ 596, 596, 596, 596, 596, 596, 597, 596, 596, 596, 596, 596, 596, 596, 81,
+ 81, 81, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598,
+ 598, 598, 81, 599, 599, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600,
+ 600, 600, 601, 601, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602,
+ 602, 602, 603, 604, 605, 604, 606, 606, 606, 606, 606, 606, 606, 606,
+ 606, 606, 602, 602, 81, 81, 81, 81, 90, 93, 90, 93, 90, 93, 607, 95, 97,
+ 97, 97, 608, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 608, 609, 90, 93,
+ 90, 93, 456, 456, 95, 95, 610, 610, 610, 610, 610, 610, 610, 610, 610,
+ 610, 610, 610, 610, 610, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+ 611, 612, 612, 613, 614, 614, 614, 614, 614, 62, 62, 62, 62, 62, 62, 62,
+ 60, 60, 60, 60, 60, 60, 60, 60, 60, 62, 62, 52, 56, 52, 56, 52, 56, 56,
+ 56, 52, 56, 52, 56, 52, 56, 59, 56, 56, 56, 56, 56, 56, 56, 56, 52, 56,
+ 52, 56, 52, 52, 56, 60, 615, 615, 52, 56, 52, 56, 57, 52, 56, 52, 56, 56,
+ 56, 52, 56, 52, 56, 52, 52, 52, 52, 52, 56, 52, 52, 52, 52, 52, 56, 52,
+ 56, 81, 81, 52, 56, 52, 52, 52, 81, 81, 81, 81, 81, 81, 81, 81, 57, 59,
+ 59, 56, 57, 57, 57, 57, 57, 616, 616, 617, 616, 616, 616, 618, 616, 616,
+ 616, 616, 617, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616,
+ 616, 616, 616, 616, 619, 619, 617, 617, 619, 620, 620, 620, 620, 81, 81,
+ 81, 81, 621, 621, 621, 621, 621, 621, 318, 318, 509, 518, 81, 81, 81, 81,
+ 81, 81, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 623,
+ 623, 624, 624, 625, 625, 626, 626, 626, 626, 626, 626, 626, 626, 626,
+ 626, 626, 626, 626, 626, 626, 626, 626, 626, 625, 625, 625, 625, 625,
+ 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, 627, 628, 81, 81,
+ 81, 81, 81, 81, 81, 81, 629, 629, 630, 630, 630, 630, 630, 630, 630, 630,
+ 630, 630, 81, 81, 81, 81, 81, 81, 631, 631, 631, 631, 631, 631, 631, 631,
+ 631, 631, 195, 195, 195, 195, 195, 195, 200, 200, 200, 195, 632, 195,
+ 195, 193, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 634, 634,
+ 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634,
+ 634, 634, 634, 634, 635, 635, 635, 635, 635, 636, 636, 636, 198, 637,
+ 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638,
+ 638, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 640, 641, 81,
+ 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 642, 333, 333, 333, 333, 333, 81,
+ 81, 81, 643, 643, 643, 644, 645, 645, 645, 645, 645, 645, 645, 645, 645,
+ 645, 645, 645, 645, 645, 645, 646, 644, 644, 643, 643, 643, 643, 644,
+ 644, 643, 643, 644, 644, 647, 648, 648, 648, 648, 648, 648, 649, 649,
+ 649, 648, 648, 648, 648, 81, 61, 650, 650, 650, 650, 650, 650, 650, 650,
+ 650, 650, 81, 81, 81, 81, 648, 648, 319, 319, 319, 319, 319, 321, 651,
+ 319, 324, 324, 319, 319, 319, 319, 319, 81, 652, 652, 652, 652, 652, 652,
+ 652, 652, 652, 653, 653, 653, 653, 653, 653, 654, 654, 653, 653, 654,
+ 654, 653, 653, 81, 652, 652, 652, 653, 652, 652, 652, 652, 652, 652, 652,
+ 652, 653, 654, 81, 81, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655,
+ 81, 81, 656, 657, 657, 657, 651, 319, 319, 319, 319, 319, 319, 328, 328,
+ 328, 319, 320, 321, 320, 319, 319, 658, 658, 658, 658, 658, 658, 658,
+ 658, 659, 658, 659, 659, 660, 658, 658, 659, 659, 658, 658, 658, 658,
+ 658, 659, 659, 658, 659, 658, 81, 81, 81, 81, 81, 81, 81, 81, 658, 658,
+ 661, 662, 662, 663, 663, 663, 663, 663, 663, 663, 663, 663, 663, 663,
+ 664, 665, 665, 664, 664, 666, 666, 663, 667, 667, 664, 668, 81, 81, 336,
+ 336, 336, 336, 336, 336, 81, 56, 56, 56, 615, 59, 59, 59, 59, 56, 56, 56,
+ 56, 56, 79, 56, 56, 343, 343, 343, 343, 343, 343, 343, 343, 663, 663,
+ 663, 664, 664, 665, 664, 664, 665, 664, 664, 666, 664, 668, 81, 81, 669,
+ 669, 669, 669, 669, 669, 669, 669, 669, 669, 81, 81, 81, 81, 81, 81, 670,
+ 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671,
+ 671, 671, 671, 671, 671, 670, 671, 671, 671, 671, 671, 671, 671, 81, 81,
+ 81, 81, 334, 334, 334, 334, 334, 334, 334, 81, 81, 81, 81, 335, 335, 335,
+ 335, 335, 335, 335, 335, 335, 81, 81, 81, 81, 672, 672, 672, 672, 672,
+ 672, 672, 672, 673, 673, 673, 673, 673, 673, 673, 673, 594, 594, 595,
+ 595, 595, 595, 595, 595, 56, 56, 56, 56, 56, 56, 56, 81, 81, 81, 81, 101,
+ 101, 101, 101, 101, 81, 81, 81, 81, 81, 129, 674, 129, 129, 675, 129,
129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 81, 129, 129,
129, 129, 129, 81, 129, 81, 129, 129, 81, 129, 129, 81, 129, 129, 146,
- 146, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673,
- 673, 673, 673, 81, 81, 81, 81, 81, 81, 81, 81, 81, 146, 146, 146, 146,
- 146, 146, 146, 146, 146, 146, 146, 495, 477, 81, 81, 146, 146, 146, 146,
- 146, 146, 146, 146, 146, 146, 135, 138, 81, 81, 674, 674, 674, 674, 674,
- 674, 674, 674, 675, 558, 558, 675, 675, 676, 676, 526, 527, 677, 81, 81,
+ 146, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676,
+ 676, 676, 676, 81, 81, 81, 81, 81, 81, 81, 81, 81, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 497, 479, 81, 81, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 135, 138, 81, 81, 677, 677, 677, 677, 677,
+ 677, 677, 677, 678, 560, 560, 678, 678, 679, 679, 528, 529, 680, 81, 81,
81, 81, 81, 81, 96, 96, 96, 96, 96, 96, 96, 156, 156, 156, 156, 156, 156,
- 156, 95, 95, 559, 569, 569, 678, 678, 526, 527, 526, 527, 526, 527, 526,
- 527, 526, 527, 526, 527, 526, 527, 526, 527, 559, 559, 526, 527, 559,
- 559, 559, 559, 678, 678, 678, 679, 559, 679, 81, 580, 680, 676, 676, 569,
- 526, 527, 526, 527, 526, 527, 681, 559, 559, 682, 683, 684, 684, 684, 81,
- 559, 685, 686, 559, 81, 81, 81, 81, 146, 146, 146, 146, 146, 81, 81, 497,
- 81, 687, 688, 689, 690, 691, 688, 688, 692, 693, 688, 694, 695, 696, 695,
- 697, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 699, 700, 701,
- 701, 701, 687, 688, 702, 702, 702, 702, 702, 702, 702, 702, 702, 702,
- 702, 702, 702, 702, 702, 702, 702, 702, 692, 688, 693, 703, 704, 703,
- 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705,
- 705, 705, 705, 705, 692, 701, 693, 701, 692, 693, 706, 707, 708, 706,
- 709, 710, 711, 711, 711, 711, 711, 711, 711, 711, 711, 712, 710, 710,
- 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710,
- 710, 710, 710, 710, 710, 713, 713, 714, 714, 714, 714, 714, 714, 714,
- 714, 714, 714, 714, 714, 714, 714, 714, 81, 81, 81, 714, 714, 714, 714,
- 714, 714, 81, 81, 714, 714, 714, 81, 81, 81, 715, 690, 701, 703, 716,
- 690, 690, 81, 717, 718, 718, 718, 718, 717, 717, 81, 81, 719, 719, 719,
- 720, 512, 81, 81, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721,
- 721, 81, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 81, 721, 721,
- 721, 81, 721, 721, 81, 721, 721, 721, 721, 721, 721, 721, 81, 81, 721,
- 721, 721, 81, 81, 81, 81, 81, 199, 377, 199, 81, 81, 81, 81, 619, 619,
- 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 81, 81, 81, 317,
- 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, 723,
- 723, 723, 723, 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, 724,
- 724, 724, 724, 724, 724, 724, 723, 723, 724, 725, 725, 81, 40, 40, 40,
- 40, 81, 81, 81, 81, 724, 81, 81, 81, 81, 81, 81, 81, 317, 317, 317, 317,
- 317, 156, 81, 81, 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, 726,
- 726, 726, 81, 81, 81, 727, 727, 727, 727, 727, 727, 727, 727, 727, 81,
- 81, 81, 81, 81, 81, 81, 156, 504, 504, 504, 504, 504, 504, 504, 504, 504,
- 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 81, 81, 81, 81, 728,
- 728, 728, 728, 728, 728, 728, 728, 729, 729, 729, 729, 81, 81, 81, 81,
- 81, 81, 81, 81, 81, 728, 728, 728, 730, 730, 730, 730, 730, 730, 730,
- 730, 730, 731, 730, 730, 730, 730, 730, 730, 730, 730, 731, 81, 81, 81,
- 81, 81, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732,
- 732, 733, 733, 733, 733, 733, 81, 81, 81, 81, 81, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 81, 735, 736, 736, 736,
- 736, 736, 736, 736, 736, 736, 736, 736, 736, 81, 81, 81, 81, 737, 738,
- 738, 738, 738, 738, 81, 81, 739, 739, 739, 739, 739, 739, 739, 739, 740,
- 740, 740, 740, 740, 740, 740, 740, 741, 741, 741, 741, 741, 741, 741,
- 741, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742,
- 742, 81, 81, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 81, 81,
- 81, 81, 81, 81, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744,
- 744, 81, 81, 81, 81, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745,
- 745, 745, 81, 81, 81, 81, 746, 746, 746, 746, 746, 746, 746, 746, 747,
- 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 81, 81, 81, 81,
- 81, 81, 81, 81, 81, 81, 81, 748, 749, 749, 749, 749, 749, 749, 749, 749,
- 749, 749, 749, 749, 749, 749, 749, 81, 749, 749, 749, 749, 749, 749, 81,
- 81, 750, 750, 750, 750, 750, 750, 81, 81, 750, 81, 750, 750, 750, 750,
- 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750,
- 750, 750, 81, 750, 750, 81, 81, 81, 750, 81, 81, 750, 751, 751, 751, 751,
- 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 81, 752, 753, 753, 753,
- 753, 753, 753, 753, 753, 754, 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 755, 755, 756, 756, 756, 756, 756, 756,
- 756, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757,
- 757, 757, 81, 81, 81, 81, 81, 81, 81, 81, 758, 758, 758, 758, 758, 758,
- 758, 758, 758, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 81,
- 759, 759, 81, 81, 81, 81, 81, 760, 760, 760, 760, 760, 761, 761, 761,
- 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 762, 762, 762,
- 762, 762, 762, 81, 81, 81, 763, 764, 764, 764, 764, 764, 764, 764, 764,
- 764, 764, 81, 81, 81, 81, 81, 765, 766, 766, 766, 766, 766, 766, 766,
- 766, 767, 767, 767, 767, 767, 767, 767, 767, 81, 81, 81, 81, 768, 768,
- 767, 767, 768, 768, 768, 768, 768, 768, 768, 768, 81, 81, 768, 768, 768,
- 768, 768, 768, 769, 770, 770, 770, 81, 770, 770, 81, 81, 81, 81, 81, 770,
- 771, 770, 772, 769, 769, 769, 769, 81, 769, 769, 769, 81, 769, 769, 769,
- 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769,
- 769, 769, 769, 769, 81, 81, 772, 773, 771, 81, 81, 81, 81, 774, 775, 775,
- 775, 775, 775, 775, 775, 775, 775, 81, 81, 81, 81, 81, 81, 81, 776, 776,
- 776, 776, 776, 776, 776, 776, 777, 81, 81, 81, 81, 81, 81, 81, 778, 778,
- 778, 778, 778, 778, 778, 778, 778, 778, 778, 778, 778, 779, 779, 780,
- 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 782,
- 782, 782, 783, 783, 783, 783, 783, 783, 783, 783, 784, 783, 783, 783,
- 783, 783, 783, 783, 783, 783, 783, 783, 783, 785, 786, 81, 81, 81, 81,
- 787, 787, 787, 787, 787, 788, 788, 788, 788, 788, 788, 789, 81, 790, 790,
- 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 81, 81, 81,
- 791, 791, 791, 791, 791, 791, 791, 792, 792, 792, 792, 792, 792, 792,
- 792, 792, 792, 792, 792, 792, 792, 81, 81, 793, 793, 793, 793, 793, 793,
- 793, 793, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 81, 81,
- 81, 81, 81, 795, 795, 795, 795, 795, 795, 795, 795, 796, 796, 796, 796,
- 796, 796, 796, 796, 796, 796, 81, 81, 81, 81, 81, 81, 81, 797, 797, 797,
- 797, 81, 81, 81, 81, 798, 798, 798, 798, 798, 798, 798, 799, 799, 799,
+ 156, 95, 95, 561, 571, 571, 681, 681, 528, 529, 528, 529, 528, 529, 528,
+ 529, 528, 529, 528, 529, 528, 529, 528, 529, 561, 561, 528, 529, 561,
+ 561, 561, 561, 681, 681, 681, 682, 561, 682, 81, 582, 683, 679, 679, 571,
+ 528, 529, 528, 529, 528, 529, 684, 561, 561, 685, 686, 687, 687, 687, 81,
+ 561, 688, 689, 561, 81, 81, 81, 81, 146, 146, 146, 146, 146, 81, 81, 499,
+ 81, 690, 691, 692, 693, 694, 691, 691, 695, 696, 691, 697, 698, 699, 698,
+ 700, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 702, 703, 704,
+ 704, 704, 690, 691, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705,
+ 705, 705, 705, 705, 705, 705, 705, 705, 695, 691, 696, 706, 707, 706,
+ 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+ 708, 708, 708, 708, 695, 704, 696, 704, 695, 696, 709, 710, 711, 709,
+ 712, 713, 714, 714, 714, 714, 714, 714, 714, 714, 714, 715, 713, 713,
+ 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713,
+ 713, 713, 713, 713, 713, 716, 716, 717, 717, 717, 717, 717, 717, 717,
+ 717, 717, 717, 717, 717, 717, 717, 717, 81, 81, 81, 717, 717, 717, 717,
+ 717, 717, 81, 81, 717, 717, 717, 81, 81, 81, 718, 693, 704, 706, 719,
+ 693, 693, 81, 720, 721, 721, 721, 721, 720, 720, 81, 81, 722, 722, 722,
+ 723, 514, 81, 81, 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, 724,
+ 724, 81, 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, 81, 724, 724,
+ 724, 81, 724, 724, 81, 724, 724, 724, 724, 724, 724, 724, 81, 81, 724,
+ 724, 724, 81, 81, 81, 81, 81, 198, 379, 198, 81, 81, 81, 81, 621, 621,
+ 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 81, 81, 81, 318,
+ 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 726,
+ 726, 726, 726, 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, 727,
+ 727, 727, 727, 727, 727, 727, 726, 726, 727, 728, 728, 81, 40, 40, 40,
+ 40, 81, 81, 81, 81, 727, 81, 81, 81, 81, 81, 81, 81, 318, 318, 318, 318,
+ 318, 156, 81, 81, 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, 729,
+ 729, 729, 81, 81, 81, 730, 730, 730, 730, 730, 730, 730, 730, 730, 81,
+ 81, 81, 81, 81, 81, 81, 156, 506, 506, 506, 506, 506, 506, 506, 506, 506,
+ 506, 506, 506, 506, 506, 506, 506, 506, 506, 506, 81, 81, 81, 81, 731,
+ 731, 731, 731, 731, 731, 731, 731, 732, 732, 732, 732, 81, 81, 81, 81,
+ 81, 81, 81, 81, 81, 731, 731, 731, 733, 733, 733, 733, 733, 733, 733,
+ 733, 733, 734, 733, 733, 733, 733, 733, 733, 733, 733, 734, 81, 81, 81,
+ 81, 81, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735,
+ 735, 736, 736, 736, 736, 736, 81, 81, 81, 81, 81, 737, 737, 737, 737,
+ 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 81, 738, 739, 739, 739,
+ 739, 739, 739, 739, 739, 739, 739, 739, 739, 81, 81, 81, 81, 740, 741,
+ 741, 741, 741, 741, 81, 81, 742, 742, 742, 742, 742, 742, 742, 742, 743,
+ 743, 743, 743, 743, 743, 743, 743, 744, 744, 744, 744, 744, 744, 744,
+ 744, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745,
+ 745, 81, 81, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 81, 81,
+ 81, 81, 81, 81, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+ 747, 81, 81, 81, 81, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748,
+ 748, 748, 81, 81, 81, 81, 749, 749, 749, 749, 749, 749, 749, 749, 750,
+ 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 81, 81, 81, 81,
+ 81, 81, 81, 81, 81, 81, 81, 751, 752, 752, 752, 752, 752, 752, 752, 752,
+ 752, 752, 752, 752, 752, 752, 752, 81, 752, 752, 752, 752, 752, 752, 81,
+ 81, 753, 753, 753, 753, 753, 753, 81, 81, 753, 81, 753, 753, 753, 753,
+ 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753,
+ 753, 753, 81, 753, 753, 81, 81, 81, 753, 81, 81, 753, 754, 754, 754, 754,
+ 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, 81, 755, 756, 756, 756,
+ 756, 756, 756, 756, 756, 757, 757, 757, 757, 757, 757, 757, 757, 757,
+ 757, 757, 757, 757, 757, 757, 758, 758, 759, 759, 759, 759, 759, 759,
+ 759, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
+ 760, 760, 81, 81, 81, 81, 81, 81, 81, 81, 761, 761, 761, 761, 761, 761,
+ 761, 761, 761, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 81,
+ 762, 762, 81, 81, 81, 81, 81, 763, 763, 763, 763, 763, 764, 764, 764,
+ 764, 764, 764, 764, 764, 764, 764, 764, 764, 764, 764, 765, 765, 765,
+ 765, 765, 765, 81, 81, 81, 766, 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 81, 81, 81, 81, 81, 768, 769, 769, 769, 769, 769, 769, 769,
+ 769, 770, 770, 770, 770, 770, 770, 770, 770, 81, 81, 81, 81, 771, 771,
+ 770, 770, 771, 771, 771, 771, 771, 771, 771, 771, 81, 81, 771, 771, 771,
+ 771, 771, 771, 772, 773, 773, 773, 81, 773, 773, 81, 81, 81, 81, 81, 773,
+ 774, 773, 775, 772, 772, 772, 772, 81, 772, 772, 772, 81, 772, 772, 772,
+ 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
+ 772, 772, 772, 772, 81, 81, 775, 776, 774, 81, 81, 81, 81, 777, 778, 778,
+ 778, 778, 778, 778, 778, 778, 778, 81, 81, 81, 81, 81, 81, 81, 779, 779,
+ 779, 779, 779, 779, 779, 779, 780, 81, 81, 81, 81, 81, 81, 81, 781, 781,
+ 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 782, 782, 783,
+ 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 785,
+ 785, 785, 786, 786, 786, 786, 786, 786, 786, 786, 787, 786, 786, 786,
+ 786, 786, 786, 786, 786, 786, 786, 786, 786, 788, 789, 81, 81, 81, 81,
+ 790, 790, 790, 790, 790, 791, 791, 791, 791, 791, 791, 792, 81, 793, 793,
+ 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, 81, 81, 81,
+ 794, 794, 794, 794, 794, 794, 794, 795, 795, 795, 795, 795, 795, 795,
+ 795, 795, 795, 795, 795, 795, 795, 81, 81, 796, 796, 796, 796, 796, 796,
+ 796, 796, 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, 81, 81,
+ 81, 81, 81, 798, 798, 798, 798, 798, 798, 798, 798, 799, 799, 799, 799,
799, 799, 799, 799, 799, 799, 81, 81, 81, 81, 81, 81, 81, 800, 800, 800,
- 800, 800, 800, 800, 800, 800, 800, 800, 81, 81, 81, 81, 81, 801, 801,
- 801, 801, 801, 801, 801, 801, 801, 801, 801, 81, 81, 81, 81, 81, 81, 81,
- 802, 802, 802, 802, 802, 802, 803, 803, 803, 803, 803, 803, 803, 803,
- 803, 803, 803, 803, 804, 804, 804, 804, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 81, 81, 81, 81, 81, 81, 806, 806, 806, 806, 806, 806,
- 806, 806, 806, 806, 806, 806, 806, 806, 806, 81, 807, 807, 807, 807, 807,
- 807, 807, 807, 807, 807, 807, 807, 807, 808, 808, 808, 808, 808, 808,
- 808, 808, 808, 808, 807, 809, 809, 809, 809, 809, 809, 809, 809, 809,
- 809, 809, 809, 809, 809, 810, 810, 811, 811, 811, 810, 811, 810, 810,
- 810, 810, 812, 812, 812, 812, 813, 813, 813, 813, 813, 81, 81, 81, 81,
- 81, 81, 814, 815, 814, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816,
- 816, 816, 816, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815,
- 815, 815, 815, 817, 818, 818, 819, 819, 819, 819, 819, 81, 81, 81, 81,
- 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820,
- 820, 820, 820, 820, 820, 820, 821, 821, 821, 821, 821, 821, 821, 821,
- 821, 821, 81, 81, 81, 81, 81, 81, 81, 817, 822, 822, 823, 824, 824, 824,
- 824, 824, 824, 824, 824, 824, 824, 824, 824, 824, 823, 823, 823, 822,
- 822, 822, 822, 823, 823, 825, 826, 827, 827, 828, 829, 829, 829, 829, 81,
- 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 828, 81, 81, 830, 830, 830, 830,
- 830, 830, 830, 830, 830, 81, 81, 81, 81, 81, 81, 81, 831, 831, 831, 831,
- 831, 831, 831, 831, 831, 831, 81, 81, 81, 81, 81, 81, 832, 832, 832, 833,
- 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
- 833, 833, 833, 833, 833, 834, 834, 834, 834, 834, 835, 834, 834, 834,
- 834, 834, 834, 836, 836, 81, 837, 837, 837, 837, 837, 837, 837, 837, 837,
- 837, 838, 838, 838, 838, 833, 835, 835, 81, 839, 839, 839, 839, 839, 839,
- 839, 839, 839, 839, 839, 840, 841, 842, 839, 81, 843, 843, 844, 845, 845,
- 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845,
- 844, 844, 844, 843, 843, 843, 843, 843, 843, 843, 843, 843, 844, 846,
- 845, 845, 845, 845, 847, 847, 848, 847, 843, 849, 843, 843, 848, 81, 81,
- 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 845, 851, 845, 847,
- 847, 847, 81, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852,
- 852, 852, 852, 852, 852, 852, 852, 852, 81, 81, 81, 853, 853, 853, 853,
- 853, 853, 853, 853, 853, 853, 81, 853, 853, 853, 853, 853, 853, 853, 853,
- 853, 854, 854, 854, 855, 855, 855, 854, 854, 855, 856, 857, 855, 858,
- 858, 859, 858, 858, 859, 855, 81, 860, 860, 860, 860, 860, 860, 860, 81,
- 860, 81, 860, 860, 860, 860, 81, 860, 860, 860, 860, 860, 860, 860, 860,
- 860, 860, 860, 860, 860, 860, 860, 81, 860, 860, 861, 81, 81, 81, 81, 81,
- 81, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
- 862, 863, 864, 864, 864, 863, 863, 863, 863, 863, 863, 865, 866, 81, 81,
- 81, 81, 81, 867, 867, 867, 867, 867, 867, 867, 867, 867, 867, 81, 81, 81,
- 81, 81, 81, 868, 868, 869, 869, 81, 870, 870, 870, 870, 870, 870, 870,
- 870, 81, 81, 870, 870, 81, 81, 870, 870, 870, 870, 870, 870, 870, 870,
- 870, 870, 870, 870, 870, 870, 81, 870, 870, 870, 870, 870, 870, 870, 81,
- 870, 870, 81, 870, 870, 870, 870, 870, 81, 871, 872, 870, 869, 869, 868,
- 869, 869, 869, 869, 81, 81, 869, 869, 81, 81, 869, 869, 873, 81, 81, 870,
- 81, 81, 81, 81, 81, 81, 869, 81, 81, 81, 81, 81, 870, 870, 870, 870, 870,
- 869, 869, 81, 81, 874, 874, 874, 874, 874, 874, 874, 81, 81, 81, 875,
- 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 876, 876,
- 876, 877, 877, 877, 877, 877, 877, 877, 877, 876, 876, 878, 877, 877,
- 876, 879, 875, 875, 875, 875, 880, 880, 880, 880, 881, 882, 882, 882,
- 882, 882, 882, 882, 882, 882, 882, 81, 880, 81, 881, 883, 81, 884, 884,
- 884, 884, 884, 884, 884, 884, 885, 885, 885, 886, 886, 886, 886, 886,
- 886, 885, 886, 885, 885, 885, 885, 886, 886, 885, 887, 888, 884, 884,
- 889, 884, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 81, 81, 81,
- 81, 81, 81, 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 891,
- 891, 891, 891, 892, 892, 892, 893, 893, 893, 893, 81, 81, 892, 892, 892,
- 892, 893, 893, 892, 894, 895, 896, 897, 897, 898, 898, 899, 899, 899,
- 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897,
- 897, 891, 891, 891, 891, 893, 893, 81, 81, 900, 900, 900, 900, 900, 900,
- 900, 900, 901, 901, 901, 902, 902, 902, 902, 902, 902, 902, 902, 901,
- 901, 902, 901, 903, 902, 904, 904, 905, 900, 81, 81, 81, 906, 906, 906,
- 906, 906, 906, 906, 906, 906, 906, 81, 81, 81, 81, 81, 81, 907, 907, 907,
- 907, 907, 907, 907, 907, 907, 907, 907, 907, 907, 81, 81, 81, 908, 908,
- 908, 908, 908, 908, 908, 908, 908, 908, 908, 909, 910, 909, 910, 910,
- 909, 909, 909, 909, 909, 909, 911, 912, 913, 913, 913, 913, 913, 913,
- 913, 913, 913, 913, 81, 81, 81, 81, 81, 81, 914, 914, 914, 914, 914, 914,
- 914, 914, 914, 914, 914, 81, 81, 915, 915, 915, 916, 916, 915, 915, 915,
- 915, 916, 915, 915, 915, 915, 917, 81, 81, 81, 81, 918, 918, 918, 918,
- 918, 918, 918, 918, 918, 918, 919, 919, 920, 920, 920, 921, 922, 922,
- 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, 923, 923, 923, 924,
- 924, 924, 924, 924, 924, 924, 924, 924, 923, 925, 926, 927, 81, 81, 81,
- 81, 928, 928, 928, 928, 928, 928, 928, 928, 929, 929, 929, 929, 929, 929,
- 929, 929, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 931, 931,
- 931, 931, 931, 931, 931, 931, 931, 81, 81, 81, 81, 81, 81, 81, 81, 81,
- 81, 81, 81, 932, 933, 934, 934, 934, 934, 934, 934, 935, 935, 934, 934,
- 933, 933, 933, 933, 933, 933, 933, 933, 933, 933, 933, 933, 933, 933,
- 933, 933, 934, 936, 934, 934, 934, 934, 937, 933, 934, 934, 934, 934,
- 938, 939, 940, 940, 940, 940, 938, 939, 936, 941, 942, 942, 942, 942,
- 942, 942, 943, 943, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941,
- 941, 941, 941, 941, 941, 941, 941, 941, 941, 81, 81, 941, 941, 941, 941,
- 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 943,
- 942, 944, 945, 945, 945, 941, 946, 946, 946, 945, 945, 81, 81, 81, 81,
- 81, 947, 947, 947, 947, 947, 947, 947, 947, 947, 81, 81, 81, 81, 81, 81,
- 81, 948, 948, 948, 948, 948, 948, 948, 948, 948, 81, 948, 948, 948, 948,
- 948, 948, 948, 948, 948, 948, 948, 948, 948, 949, 950, 950, 950, 950,
- 950, 950, 950, 81, 950, 950, 950, 950, 950, 950, 949, 951, 948, 952, 952,
- 952, 952, 952, 81, 81, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953,
- 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954,
- 954, 954, 954, 954, 954, 81, 81, 81, 955, 956, 957, 957, 957, 957, 957,
- 957, 957, 957, 957, 957, 957, 957, 957, 957, 81, 81, 958, 958, 958, 958,
- 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, 81, 959, 958, 958, 958,
- 958, 958, 958, 958, 959, 958, 958, 959, 958, 958, 81, 960, 960, 960, 960,
- 960, 960, 960, 81, 960, 960, 81, 960, 960, 960, 960, 960, 960, 960, 960,
- 960, 960, 960, 960, 960, 960, 961, 961, 961, 961, 961, 961, 81, 81, 81,
- 961, 81, 961, 961, 81, 961, 961, 961, 962, 961, 963, 963, 960, 961, 964,
- 964, 964, 964, 964, 964, 964, 964, 964, 964, 81, 81, 81, 81, 81, 81, 965,
- 965, 965, 965, 965, 965, 81, 965, 965, 81, 965, 965, 965, 965, 965, 965,
- 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, 966, 966, 966, 966,
- 966, 81, 967, 967, 81, 966, 966, 967, 966, 968, 965, 81, 81, 81, 81, 81,
- 81, 81, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 81, 81, 81, 81,
- 81, 81, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 971, 971,
- 972, 972, 973, 973, 81, 81, 81, 81, 81, 81, 81, 974, 974, 974, 974, 974,
- 974, 974, 974, 974, 974, 81, 81, 81, 81, 81, 81, 975, 975, 975, 975, 975,
- 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 81, 976, 976, 976, 976,
- 976, 81, 81, 81, 974, 974, 974, 974, 81, 81, 81, 81, 977, 977, 977, 977,
- 977, 977, 977, 977, 978, 978, 978, 979, 979, 979, 977, 977, 977, 977,
- 979, 977, 977, 977, 978, 979, 978, 979, 977, 977, 977, 977, 977, 977,
- 977, 978, 979, 979, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977,
- 977, 81, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980,
- 980, 981, 982, 980, 980, 980, 980, 980, 980, 980, 81, 608, 81, 81, 81,
- 81, 81, 81, 81, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
- 983, 983, 983, 983, 81, 984, 984, 984, 984, 984, 984, 984, 984, 984, 984,
- 81, 81, 81, 81, 985, 985, 986, 986, 986, 986, 986, 986, 986, 986, 986,
- 986, 986, 986, 986, 986, 81, 81, 987, 987, 987, 987, 987, 988, 81, 81,
- 989, 989, 989, 989, 989, 989, 989, 989, 990, 990, 990, 990, 990, 990,
- 990, 991, 991, 991, 992, 992, 993, 993, 993, 993, 994, 994, 994, 994,
- 991, 993, 81, 81, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 81,
- 996, 996, 996, 996, 996, 996, 996, 81, 989, 989, 989, 989, 989, 81, 81,
- 81, 81, 81, 989, 989, 989, 997, 997, 997, 997, 997, 997, 997, 997, 998,
- 998, 998, 998, 998, 998, 998, 998, 999, 999, 999, 999, 999, 999, 999,
- 999, 999, 999, 999, 999, 999, 999, 999, 1000, 1000, 1001, 1001, 81, 81,
- 81, 81, 81, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
- 1002, 1002, 1002, 81, 81, 81, 1002, 1003, 1003, 1003, 1003, 1003, 1003,
- 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
- 1003, 1003, 1003, 1003, 81, 81, 81, 81, 81, 81, 81, 81, 1004, 1004, 1004,
- 1004, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
- 1005, 1005, 1006, 1007, 81, 81, 81, 81, 81, 81, 1008, 1008, 1008, 1008,
- 1008, 1008, 1008, 1008, 1008, 1008, 81, 81, 81, 81, 81, 81, 1008, 1008,
- 1008, 81, 81, 81, 81, 81, 579, 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 81, 1009, 1009, 1009, 1009, 1009, 1009,
- 1009, 1009, 1009, 1009, 1009, 1009, 81, 81, 81, 81, 1010, 1010, 1010,
- 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 81, 81, 81, 81, 81, 1010,
- 1010, 1010, 1010, 1010, 81, 81, 81, 1010, 81, 81, 81, 81, 81, 81, 81,
- 1010, 1010, 81, 81, 1011, 1012, 1013, 1014, 503, 503, 503, 503, 81, 81,
- 81, 81, 317, 317, 317, 317, 317, 317, 81, 81, 317, 317, 317, 317, 317,
- 317, 317, 81, 81, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
- 317, 1015, 1015, 451, 451, 451, 317, 317, 317, 1016, 1015, 1015, 1015,
- 1015, 1015, 503, 503, 503, 503, 503, 503, 503, 503, 156, 156, 156, 156,
- 156, 156, 156, 156, 317, 317, 96, 96, 96, 96, 96, 156, 156, 317, 317,
- 317, 317, 317, 317, 96, 96, 96, 96, 317, 317, 317, 81, 81, 81, 81, 81,
- 81, 81, 724, 724, 1017, 1017, 1017, 724, 81, 81, 619, 619, 619, 619, 81,
- 81, 81, 81, 619, 81, 81, 81, 81, 81, 81, 81, 510, 510, 510, 510, 510,
- 510, 510, 510, 510, 510, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
- 49, 49, 49, 49, 49, 49, 49, 81, 49, 49, 49, 49, 49, 49, 510, 81, 510,
- 510, 81, 81, 510, 81, 81, 510, 510, 81, 81, 510, 510, 510, 510, 81, 510,
- 510, 49, 49, 81, 49, 81, 49, 49, 49, 49, 49, 49, 49, 81, 49, 49, 49, 49,
- 49, 49, 49, 510, 510, 81, 510, 510, 510, 510, 81, 81, 510, 510, 510, 510,
- 510, 510, 510, 510, 81, 510, 510, 510, 510, 510, 510, 510, 81, 49, 49,
- 510, 510, 81, 510, 510, 510, 510, 81, 510, 510, 510, 510, 510, 81, 510,
- 81, 81, 81, 510, 510, 510, 510, 510, 510, 510, 81, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 81, 81, 510, 1018, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 496, 49, 49, 49, 49, 49, 49, 510, 510, 510, 510, 510, 510,
- 510, 510, 510, 1018, 49, 49, 49, 49, 49, 49, 49, 49, 49, 496, 49, 49,
- 510, 510, 510, 510, 510, 1018, 49, 49, 49, 49, 49, 49, 49, 49, 49, 496,
- 49, 49, 49, 49, 49, 49, 510, 510, 510, 510, 510, 510, 510, 510, 510,
- 1018, 49, 496, 49, 49, 49, 49, 49, 49, 49, 49, 510, 49, 81, 81, 1019,
- 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1020, 1020, 1020,
- 1020, 1020, 1020, 1020, 1020, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
- 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1020, 1020, 1020, 1020,
- 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1020, 1020,
- 1020, 1020, 1020, 1020, 1020, 1020, 1021, 1020, 1020, 1020, 1020, 1020,
- 1020, 1021, 1020, 1020, 1022, 1022, 1022, 1022, 1023, 81, 81, 81, 81, 81,
- 81, 81, 1021, 1021, 1021, 1021, 1021, 81, 1021, 1021, 1021, 1021, 1021,
- 1021, 1021, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 81, 1024, 1024,
- 1024, 1024, 1024, 1024, 1024, 1024, 1024, 81, 81, 1024, 1024, 1024, 1024,
- 1024, 1024, 1024, 81, 1024, 1024, 81, 1024, 1024, 1024, 1024, 1024, 81,
- 81, 81, 81, 81, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
- 1025, 1025, 1025, 1025, 81, 81, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
- 1026, 1026, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 81, 1028, 1028,
- 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1029, 1029, 1029, 1029,
- 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029,
- 1029, 1029, 1030, 1030, 1030, 1030, 1030, 1030, 1031, 81, 81, 81, 81, 81,
- 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 81, 81, 81,
- 81, 1033, 1033, 81, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
- 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1035, 1034,
- 1034, 1034, 1036, 1034, 1034, 1034, 1034, 81, 81, 81, 146, 146, 146, 146,
- 81, 146, 146, 146, 81, 146, 146, 81, 146, 81, 81, 146, 81, 146, 146, 146,
- 146, 146, 146, 146, 146, 146, 146, 81, 146, 146, 146, 146, 81, 146, 81,
- 146, 81, 81, 81, 81, 81, 81, 146, 81, 81, 81, 81, 146, 81, 146, 81, 146,
- 81, 146, 146, 146, 81, 146, 81, 146, 81, 146, 81, 146, 81, 146, 146, 146,
- 146, 81, 146, 81, 146, 146, 81, 146, 146, 146, 146, 146, 146, 146, 146,
- 146, 81, 81, 81, 81, 81, 146, 146, 146, 81, 146, 146, 146, 132, 132, 81,
- 81, 81, 81, 81, 81, 529, 529, 529, 529, 525, 529, 529, 529, 529, 529,
- 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 1037, 1037, 1037, 1037,
- 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 529, 529, 529, 529, 529,
- 529, 529, 1037, 1037, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529,
- 529, 529, 529, 529, 525, 529, 529, 529, 529, 529, 529, 1037, 1037, 47,
- 47, 47, 519, 519, 1037, 1037, 1037, 530, 530, 530, 530, 530, 530, 317,
- 40, 530, 530, 40, 40, 1037, 1037, 1037, 1037, 530, 530, 530, 530, 530,
- 530, 1038, 530, 530, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 1037, 1037,
- 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1039, 1039, 1039, 1039, 1039,
- 1039, 1039, 1039, 1039, 1039, 1040, 585, 585, 1037, 1037, 1037, 1037,
- 1037, 585, 585, 585, 585, 1037, 1037, 1037, 1037, 585, 1037, 1037, 1037,
- 1037, 1037, 1037, 1037, 585, 585, 1037, 1037, 1037, 1037, 1037, 1037,
- 525, 525, 525, 525, 525, 525, 1037, 1037, 525, 529, 529, 529, 529, 529,
- 529, 529, 529, 529, 529, 529, 529, 525, 525, 525, 525, 525, 525, 525,
- 525, 525, 529, 525, 525, 525, 525, 525, 525, 529, 525, 525, 525, 525,
- 525, 525, 525, 536, 525, 525, 525, 525, 525, 525, 529, 529, 529, 529,
- 529, 529, 529, 529, 40, 40, 529, 529, 525, 525, 525, 525, 525, 528, 528,
- 525, 525, 525, 525, 525, 528, 525, 525, 525, 525, 525, 536, 536, 536,
- 525, 525, 536, 525, 525, 536, 534, 534, 529, 529, 525, 525, 529, 529,
- 529, 525, 529, 529, 529, 525, 525, 525, 1041, 1041, 1041, 1041, 1041,
- 525, 525, 525, 525, 525, 525, 525, 529, 525, 529, 536, 536, 525, 525,
- 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 525, 525, 525,
- 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 536, 536, 536, 536,
- 525, 525, 525, 525, 536, 525, 536, 525, 525, 525, 536, 525, 525, 525,
- 525, 536, 536, 536, 525, 536, 536, 536, 528, 525, 528, 525, 528, 525,
- 525, 525, 525, 525, 536, 525, 525, 525, 525, 528, 525, 528, 528, 525,
- 525, 525, 525, 525, 525, 525, 525, 525, 525, 529, 529, 525, 528, 528,
- 528, 528, 528, 528, 528, 525, 525, 525, 525, 525, 525, 525, 525, 528,
- 528, 528, 528, 528, 528, 525, 525, 525, 525, 525, 528, 528, 528, 528,
- 528, 528, 528, 528, 528, 528, 528, 528, 40, 40, 40, 40, 529, 525, 525,
- 525, 525, 529, 529, 529, 529, 529, 534, 534, 529, 529, 529, 529, 536,
- 529, 529, 529, 529, 529, 534, 529, 529, 529, 529, 536, 536, 529, 529,
- 529, 529, 529, 40, 40, 40, 40, 40, 40, 40, 40, 529, 529, 529, 529, 40,
- 40, 529, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 536, 536, 536,
- 525, 525, 525, 536, 536, 536, 536, 536, 40, 40, 40, 40, 40, 40, 538, 538,
- 538, 1042, 1042, 1042, 40, 40, 40, 40, 525, 525, 525, 536, 525, 525, 525,
- 525, 525, 525, 525, 525, 536, 536, 536, 525, 536, 525, 525, 525, 525,
- 525, 529, 529, 529, 529, 529, 529, 536, 529, 529, 529, 525, 525, 525,
- 529, 529, 1037, 1037, 1037, 529, 529, 529, 525, 525, 1037, 1037, 1037,
- 529, 529, 529, 529, 525, 525, 525, 525, 525, 525, 1037, 1037, 1037, 1037,
- 1037, 1037, 40, 40, 40, 40, 1037, 1037, 1037, 1037, 40, 40, 40, 40, 40,
- 529, 529, 529, 529, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 40, 40,
- 1037, 1037, 1037, 1037, 1037, 1037, 40, 40, 40, 40, 40, 40, 1037, 1037,
- 536, 536, 536, 536, 536, 525, 536, 536, 525, 525, 525, 525, 525, 525,
- 536, 525, 536, 536, 525, 525, 525, 536, 536, 1037, 525, 1037, 1037, 525,
- 525, 525, 525, 1037, 1037, 1037, 525, 1037, 525, 525, 525, 525, 525, 525,
- 525, 1037, 1037, 1037, 1037, 1037, 525, 525, 525, 525, 525, 536, 536,
- 525, 536, 536, 1037, 1037, 1037, 1037, 1037, 1037, 525, 536, 536, 536,
- 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 525, 525, 1037, 1037,
- 1037, 1037, 1037, 1037, 81, 81, 592, 592, 592, 592, 592, 592, 592, 593,
- 592, 592, 592, 592, 592, 593, 593, 593, 592, 593, 593, 593, 593, 593,
- 593, 593, 593, 593, 593, 593, 593, 593, 81, 81, 81, 503, 81, 81, 81, 81,
- 81, 81, 503, 503, 503, 503, 503, 503, 503, 503, 670, 670, 670, 670, 670,
- 670, 81, 81,
+ 800, 81, 81, 81, 81, 801, 801, 801, 801, 801, 801, 801, 802, 802, 802,
+ 802, 802, 802, 802, 802, 802, 81, 81, 81, 81, 81, 81, 81, 803, 803, 803,
+ 803, 803, 803, 803, 803, 803, 803, 803, 81, 81, 81, 81, 81, 804, 804,
+ 804, 804, 804, 804, 804, 804, 804, 804, 804, 81, 81, 81, 81, 81, 81, 81,
+ 805, 805, 805, 805, 805, 805, 806, 806, 806, 806, 806, 806, 806, 806,
+ 806, 806, 806, 806, 807, 807, 807, 807, 808, 808, 808, 808, 808, 808,
+ 808, 808, 808, 808, 81, 81, 81, 81, 81, 81, 809, 809, 809, 809, 809, 809,
+ 809, 809, 809, 809, 809, 809, 809, 809, 809, 81, 810, 810, 810, 810, 810,
+ 810, 810, 810, 810, 810, 810, 810, 810, 811, 811, 811, 811, 811, 811,
+ 811, 811, 811, 811, 810, 812, 812, 812, 812, 812, 812, 812, 812, 812,
+ 812, 812, 812, 812, 812, 813, 813, 814, 814, 814, 813, 814, 813, 813,
+ 813, 813, 815, 815, 815, 815, 816, 816, 816, 816, 816, 81, 81, 81, 81,
+ 81, 81, 817, 817, 817, 817, 817, 817, 817, 817, 817, 817, 817, 817, 817,
+ 817, 817, 81, 818, 819, 818, 820, 820, 820, 820, 820, 820, 820, 820, 820,
+ 820, 820, 820, 820, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819,
+ 819, 819, 819, 819, 821, 822, 822, 823, 823, 823, 823, 823, 81, 81, 81,
+ 81, 824, 824, 824, 824, 824, 824, 824, 824, 824, 824, 824, 824, 824, 824,
+ 824, 824, 824, 824, 824, 824, 825, 825, 825, 825, 825, 825, 825, 825,
+ 825, 825, 81, 81, 81, 81, 81, 81, 81, 821, 826, 826, 827, 828, 828, 828,
+ 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, 827, 827, 827, 826,
+ 826, 826, 826, 827, 827, 829, 830, 831, 831, 832, 833, 833, 833, 833, 81,
+ 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 832, 81, 81, 834, 834, 834, 834,
+ 834, 834, 834, 834, 834, 81, 81, 81, 81, 81, 81, 81, 835, 835, 835, 835,
+ 835, 835, 835, 835, 835, 835, 81, 81, 81, 81, 81, 81, 836, 836, 836, 837,
+ 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837,
+ 837, 837, 837, 837, 837, 838, 838, 838, 838, 838, 839, 838, 838, 838,
+ 838, 838, 838, 840, 840, 81, 841, 841, 841, 841, 841, 841, 841, 841, 841,
+ 841, 842, 842, 842, 842, 837, 839, 839, 81, 843, 843, 843, 843, 843, 843,
+ 843, 843, 843, 843, 843, 844, 845, 846, 843, 81, 847, 847, 848, 849, 849,
+ 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849,
+ 848, 848, 848, 847, 847, 847, 847, 847, 847, 847, 847, 847, 848, 850,
+ 849, 849, 849, 849, 851, 851, 852, 851, 847, 853, 847, 847, 852, 81, 81,
+ 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 849, 855, 849, 851,
+ 851, 851, 81, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856,
+ 856, 856, 856, 856, 856, 856, 856, 856, 81, 81, 81, 857, 857, 857, 857,
+ 857, 857, 857, 857, 857, 857, 81, 857, 857, 857, 857, 857, 857, 857, 857,
+ 857, 858, 858, 858, 859, 859, 859, 858, 858, 859, 860, 861, 859, 862,
+ 862, 863, 862, 862, 863, 859, 81, 864, 864, 864, 864, 864, 864, 864, 81,
+ 864, 81, 864, 864, 864, 864, 81, 864, 864, 864, 864, 864, 864, 864, 864,
+ 864, 864, 864, 864, 864, 864, 864, 81, 864, 864, 865, 81, 81, 81, 81, 81,
+ 81, 866, 866, 866, 866, 866, 866, 866, 866, 866, 866, 866, 866, 866, 866,
+ 866, 867, 868, 868, 868, 867, 867, 867, 867, 867, 867, 869, 870, 81, 81,
+ 81, 81, 81, 871, 871, 871, 871, 871, 871, 871, 871, 871, 871, 81, 81, 81,
+ 81, 81, 81, 872, 872, 873, 873, 81, 874, 874, 874, 874, 874, 874, 874,
+ 874, 81, 81, 874, 874, 81, 81, 874, 874, 874, 874, 874, 874, 874, 874,
+ 874, 874, 874, 874, 874, 874, 81, 874, 874, 874, 874, 874, 874, 874, 81,
+ 874, 874, 81, 874, 874, 874, 874, 874, 81, 875, 876, 874, 873, 873, 872,
+ 873, 873, 873, 873, 81, 81, 873, 873, 81, 81, 873, 873, 877, 81, 81, 874,
+ 81, 81, 81, 81, 81, 81, 873, 81, 81, 81, 81, 81, 874, 874, 874, 874, 874,
+ 873, 873, 81, 81, 878, 878, 878, 878, 878, 878, 878, 81, 81, 81, 879,
+ 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 880, 880,
+ 880, 881, 881, 881, 881, 881, 881, 881, 881, 880, 880, 882, 881, 881,
+ 880, 883, 879, 879, 879, 879, 884, 884, 884, 884, 885, 886, 886, 886,
+ 886, 886, 886, 886, 886, 886, 886, 81, 884, 81, 885, 887, 879, 888, 888,
+ 888, 888, 888, 888, 888, 888, 889, 889, 889, 890, 890, 890, 890, 890,
+ 890, 889, 890, 889, 889, 889, 889, 890, 890, 889, 891, 892, 888, 888,
+ 893, 888, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 81, 81, 81,
+ 81, 81, 81, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895,
+ 895, 895, 895, 896, 896, 896, 897, 897, 897, 897, 81, 81, 896, 896, 896,
+ 896, 897, 897, 896, 898, 899, 900, 901, 901, 902, 902, 903, 903, 903,
+ 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
+ 901, 895, 895, 895, 895, 897, 897, 81, 81, 904, 904, 904, 904, 904, 904,
+ 904, 904, 905, 905, 905, 906, 906, 906, 906, 906, 906, 906, 906, 905,
+ 905, 906, 905, 907, 906, 908, 908, 909, 904, 81, 81, 81, 910, 910, 910,
+ 910, 910, 910, 910, 910, 910, 910, 81, 81, 81, 81, 81, 81, 911, 911, 911,
+ 911, 911, 911, 911, 911, 911, 911, 911, 911, 911, 81, 81, 81, 912, 912,
+ 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 914, 913, 914, 914,
+ 913, 913, 913, 913, 913, 913, 915, 916, 912, 81, 81, 81, 81, 81, 81, 81,
+ 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 81, 81, 81, 81, 81, 81,
+ 918, 918, 918, 918, 918, 918, 918, 918, 918, 918, 918, 81, 81, 919, 919,
+ 919, 920, 920, 919, 919, 919, 919, 920, 919, 919, 919, 919, 921, 81, 81,
+ 81, 81, 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, 923, 923, 924,
+ 924, 924, 925, 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, 926,
+ 926, 927, 927, 927, 928, 928, 928, 928, 928, 928, 928, 928, 928, 927,
+ 929, 930, 931, 81, 81, 81, 81, 932, 932, 932, 932, 932, 932, 932, 932,
+ 933, 933, 933, 933, 933, 933, 933, 933, 934, 934, 934, 934, 934, 934,
+ 934, 934, 934, 934, 935, 935, 935, 935, 935, 935, 935, 935, 935, 81, 81,
+ 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 936, 937, 937, 937, 937, 937,
+ 937, 937, 937, 81, 81, 937, 937, 937, 937, 937, 937, 937, 938, 938, 938,
+ 939, 939, 939, 939, 81, 81, 939, 939, 938, 938, 938, 938, 940, 937, 941,
+ 937, 938, 81, 81, 81, 942, 943, 943, 943, 943, 943, 943, 944, 944, 943,
+ 943, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942,
+ 942, 942, 942, 943, 945, 943, 943, 943, 943, 946, 942, 943, 943, 943,
+ 943, 947, 948, 949, 949, 949, 949, 947, 948, 945, 950, 951, 951, 951,
+ 951, 951, 951, 952, 952, 951, 951, 951, 950, 950, 950, 950, 950, 950,
+ 950, 950, 950, 950, 950, 950, 950, 950, 951, 951, 951, 951, 951, 951,
+ 951, 951, 951, 951, 951, 951, 951, 952, 951, 953, 954, 954, 954, 950,
+ 955, 955, 955, 954, 954, 81, 81, 81, 81, 81, 956, 956, 956, 956, 956,
+ 956, 956, 956, 956, 81, 81, 81, 81, 81, 81, 81, 957, 957, 957, 957, 957,
+ 957, 957, 957, 957, 81, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
+ 957, 957, 957, 958, 959, 959, 959, 959, 959, 959, 959, 81, 959, 959, 959,
+ 959, 959, 959, 958, 960, 957, 961, 961, 961, 961, 961, 81, 81, 962, 962,
+ 962, 962, 962, 962, 962, 962, 962, 962, 963, 963, 963, 963, 963, 963,
+ 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 81, 81,
+ 81, 964, 965, 966, 966, 966, 966, 966, 966, 966, 966, 966, 966, 966, 966,
+ 966, 966, 81, 81, 967, 967, 967, 967, 967, 967, 967, 967, 967, 967, 967,
+ 967, 967, 967, 81, 968, 967, 967, 967, 967, 967, 967, 967, 968, 967, 967,
+ 968, 967, 967, 81, 969, 969, 969, 969, 969, 969, 969, 81, 969, 969, 81,
+ 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969,
+ 970, 970, 970, 970, 970, 970, 81, 81, 81, 970, 81, 970, 970, 81, 970,
+ 970, 970, 971, 970, 972, 972, 969, 970, 973, 973, 973, 973, 973, 973,
+ 973, 973, 973, 973, 81, 81, 81, 81, 81, 81, 974, 974, 974, 974, 974, 974,
+ 81, 974, 974, 81, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974,
+ 974, 974, 974, 974, 974, 975, 975, 975, 975, 975, 81, 976, 976, 81, 975,
+ 975, 976, 975, 977, 974, 81, 81, 81, 81, 81, 81, 81, 978, 978, 978, 978,
+ 978, 978, 978, 978, 978, 978, 81, 81, 81, 81, 81, 81, 979, 979, 979, 979,
+ 979, 979, 979, 979, 979, 979, 979, 980, 980, 981, 981, 982, 982, 81, 81,
+ 81, 81, 81, 81, 81, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 983, 983, 983,
+ 983, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
+ 244, 244, 244, 244, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
+ 984, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 81, 81, 81, 81,
+ 81, 81, 986, 986, 986, 986, 986, 986, 986, 986, 986, 986, 986, 986, 986,
+ 986, 986, 81, 987, 987, 987, 987, 987, 81, 81, 81, 985, 985, 985, 985,
+ 81, 81, 81, 81, 988, 988, 988, 988, 988, 988, 988, 988, 989, 989, 989,
+ 990, 990, 990, 988, 988, 988, 988, 990, 988, 988, 988, 989, 990, 989,
+ 990, 988, 988, 988, 988, 988, 988, 988, 989, 990, 990, 988, 988, 988,
+ 988, 988, 988, 988, 988, 988, 988, 988, 81, 991, 991, 991, 991, 991, 991,
+ 991, 992, 993, 81, 81, 81, 81, 81, 81, 81, 994, 994, 994, 994, 994, 994,
+ 994, 994, 994, 994, 994, 994, 994, 994, 995, 996, 994, 994, 994, 994,
+ 994, 994, 994, 81, 610, 81, 81, 81, 81, 81, 81, 81, 997, 997, 997, 997,
+ 997, 997, 997, 997, 997, 997, 997, 997, 997, 997, 997, 81, 998, 998, 998,
+ 998, 998, 998, 998, 998, 998, 998, 81, 81, 81, 81, 999, 999, 1000, 1000,
+ 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
+ 81, 81, 1001, 1001, 1001, 1001, 1001, 1002, 81, 81, 1003, 1003, 1003,
+ 1003, 1003, 1003, 1003, 1003, 1004, 1004, 1004, 1004, 1004, 1004, 1004,
+ 1005, 1005, 1005, 1006, 1006, 1007, 1007, 1007, 1007, 1008, 1008, 1008,
+ 1008, 1005, 1007, 81, 81, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
+ 1009, 1009, 81, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 81, 1003, 1003,
+ 1003, 1003, 1003, 81, 81, 81, 81, 81, 1003, 1003, 1003, 1011, 1011, 1011,
+ 1011, 1011, 1011, 1011, 1011, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
+ 1012, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
+ 1013, 1013, 1013, 1013, 1014, 1014, 1015, 1015, 81, 81, 81, 81, 81, 1016,
+ 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 81, 81, 81,
+ 81, 1017, 1016, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
+ 1018, 1018, 1018, 1018, 1018, 1018, 81, 81, 81, 81, 81, 81, 81, 1017,
+ 1017, 1017, 1017, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
+ 1019, 1019, 1019, 1019, 1020, 1021, 582, 1022, 81, 81, 81, 81, 1023,
+ 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 81, 81, 81,
+ 81, 81, 581, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576,
+ 576, 576, 81, 575, 575, 575, 81, 81, 81, 81, 81, 81, 81, 81, 81, 580,
+ 580, 580, 580, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
+ 1024, 1024, 1024, 81, 81, 81, 81, 1025, 1025, 1025, 1025, 1025, 1025,
+ 1025, 1025, 1025, 1025, 1025, 81, 81, 81, 81, 81, 1025, 1025, 1025, 1025,
+ 1025, 81, 81, 81, 1025, 81, 81, 81, 81, 81, 81, 81, 1025, 1025, 81, 81,
+ 1026, 1027, 1028, 1029, 505, 505, 505, 505, 81, 81, 81, 81, 318, 318,
+ 318, 318, 318, 318, 81, 81, 318, 318, 318, 318, 318, 318, 318, 81, 81,
+ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 1030, 1030,
+ 453, 453, 453, 318, 318, 318, 1031, 1030, 1030, 1030, 1030, 1030, 505,
+ 505, 505, 505, 505, 505, 505, 505, 156, 156, 156, 156, 156, 156, 156,
+ 156, 318, 318, 96, 96, 96, 96, 96, 156, 156, 318, 318, 318, 318, 318,
+ 318, 96, 96, 96, 96, 318, 318, 318, 81, 81, 81, 81, 81, 81, 81, 727, 727,
+ 1032, 1032, 1032, 727, 81, 81, 621, 621, 621, 621, 81, 81, 81, 81, 621,
+ 81, 81, 81, 81, 81, 81, 81, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 49, 49, 49, 49, 49,
+ 49, 49, 81, 49, 49, 49, 49, 49, 49, 512, 81, 512, 512, 81, 81, 512, 81,
+ 81, 512, 512, 81, 81, 512, 512, 512, 512, 81, 512, 512, 49, 49, 81, 49,
+ 81, 49, 49, 49, 49, 49, 49, 49, 81, 49, 49, 49, 49, 49, 49, 49, 512, 512,
+ 81, 512, 512, 512, 512, 81, 81, 512, 512, 512, 512, 512, 512, 512, 512,
+ 81, 512, 512, 512, 512, 512, 512, 512, 81, 49, 49, 512, 512, 81, 512,
+ 512, 512, 512, 81, 512, 512, 512, 512, 512, 81, 512, 81, 81, 81, 512,
+ 512, 512, 512, 512, 512, 512, 81, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 81, 81, 512, 1033, 49, 49, 49, 49, 49, 49, 49, 49, 49, 498, 49,
+ 49, 49, 49, 49, 49, 512, 512, 512, 512, 512, 512, 512, 512, 512, 1033,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 498, 49, 49, 512, 512, 512, 512, 512,
+ 1033, 49, 49, 49, 49, 49, 49, 49, 49, 49, 498, 49, 49, 49, 49, 49, 49,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 1033, 49, 498, 49, 49, 49,
+ 49, 49, 49, 49, 49, 512, 49, 81, 81, 1034, 1034, 1034, 1034, 1034, 1034,
+ 1034, 1034, 1034, 1034, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
+ 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036,
+ 1036, 1036, 1036, 1035, 1035, 1035, 1035, 1036, 1036, 1036, 1036, 1036,
+ 1036, 1036, 1036, 1036, 1036, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
+ 1035, 1036, 1035, 1035, 1035, 1035, 1035, 1035, 1036, 1035, 1035, 1037,
+ 1037, 1037, 1037, 1038, 81, 81, 81, 81, 81, 81, 81, 1036, 1036, 1036,
+ 1036, 1036, 81, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1039, 1039,
+ 1039, 1039, 1039, 1039, 1039, 81, 1039, 1039, 1039, 1039, 1039, 1039,
+ 1039, 1039, 1039, 81, 81, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 81,
+ 1039, 1039, 81, 1039, 1039, 1039, 1039, 1039, 81, 81, 81, 81, 81, 1040,
+ 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040,
+ 81, 81, 81, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1042, 1042, 1042,
+ 1042, 1042, 1042, 1042, 81, 81, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1043, 81, 81, 81, 81, 1040, 1044, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1046, 1046, 1046, 1046,
+ 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 81, 81, 81,
+ 81, 81, 1048, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049,
+ 1049, 1049, 1049, 81, 81, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
+ 1050, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 81, 1052, 1052, 1052,
+ 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1053, 1053, 1053, 1053, 1053,
+ 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,
+ 1053, 1054, 1054, 1054, 1054, 1054, 1054, 1055, 1056, 81, 81, 81, 81,
+ 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 81, 81, 81,
+ 81, 1058, 1058, 81, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
+ 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1060, 1059,
+ 1059, 1059, 1061, 1059, 1059, 1059, 1059, 81, 81, 81, 1059, 1059, 1059,
+ 1059, 1059, 1059, 1062, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 81, 81,
+ 146, 146, 146, 146, 81, 146, 146, 146, 81, 146, 146, 81, 146, 81, 81,
+ 146, 81, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 81, 146, 146,
+ 146, 146, 81, 146, 81, 146, 81, 81, 81, 81, 81, 81, 146, 81, 81, 81, 81,
+ 146, 81, 146, 81, 146, 81, 146, 146, 146, 81, 146, 81, 146, 81, 146, 81,
+ 146, 81, 146, 146, 146, 146, 81, 146, 81, 146, 146, 81, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 81, 81, 81, 81, 81, 146, 146, 146, 81, 146,
+ 146, 146, 132, 132, 81, 81, 81, 81, 81, 81, 531, 531, 531, 531, 527, 531,
+ 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531,
+ 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063,
+ 531, 531, 531, 531, 531, 531, 531, 1063, 1063, 531, 531, 531, 531, 531,
+ 531, 531, 531, 531, 531, 531, 531, 531, 531, 527, 531, 531, 531, 531,
+ 531, 531, 1063, 1063, 47, 47, 47, 521, 521, 1063, 1063, 1063, 532, 532,
+ 532, 532, 532, 532, 318, 40, 532, 532, 40, 40, 40, 1063, 1063, 1063, 532,
+ 532, 532, 532, 532, 532, 1064, 532, 532, 1064, 1064, 1064, 1064, 1064,
+ 1064, 1064, 1064, 1064, 1064, 532, 532, 532, 532, 532, 532, 532, 532,
+ 532, 532, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1065,
+ 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1066, 587, 587,
+ 1063, 1063, 1063, 1063, 1063, 587, 587, 587, 587, 1063, 1063, 1063, 1063,
+ 587, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 587, 587, 1063, 1063,
+ 1063, 1063, 1063, 1063, 527, 527, 527, 527, 527, 527, 1063, 1063, 527,
+ 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 527, 527,
+ 527, 527, 527, 527, 527, 527, 527, 531, 527, 527, 527, 527, 527, 527,
+ 531, 527, 527, 527, 527, 527, 527, 527, 538, 527, 527, 527, 527, 527,
+ 527, 531, 531, 531, 531, 531, 531, 531, 531, 40, 40, 531, 531, 527, 527,
+ 527, 527, 527, 530, 530, 527, 527, 527, 527, 527, 530, 527, 527, 527,
+ 527, 527, 538, 538, 538, 527, 527, 538, 527, 527, 538, 536, 536, 531,
+ 531, 527, 527, 531, 531, 531, 527, 531, 531, 531, 527, 527, 527, 1067,
+ 1067, 1067, 1067, 1067, 527, 527, 527, 527, 527, 527, 527, 531, 527, 531,
+ 538, 538, 527, 527, 538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
+ 538, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527,
+ 538, 538, 538, 527, 527, 527, 538, 527, 527, 527, 527, 538, 538, 538,
+ 527, 538, 538, 538, 527, 527, 527, 527, 527, 527, 527, 538, 527, 538,
+ 527, 527, 527, 527, 527, 527, 530, 527, 530, 527, 530, 527, 527, 527,
+ 527, 527, 538, 527, 527, 527, 527, 530, 527, 530, 530, 527, 527, 527,
+ 527, 527, 527, 527, 527, 527, 527, 531, 531, 527, 530, 530, 530, 530,
+ 530, 530, 530, 527, 527, 527, 527, 527, 527, 527, 527, 530, 530, 530,
+ 530, 530, 530, 527, 527, 527, 527, 527, 530, 530, 530, 530, 530, 530,
+ 530, 530, 530, 530, 530, 530, 40, 40, 40, 40, 531, 527, 527, 527, 527,
+ 531, 531, 531, 531, 531, 536, 536, 531, 531, 531, 531, 538, 531, 531,
+ 531, 531, 531, 536, 531, 531, 531, 531, 538, 538, 531, 531, 531, 531,
+ 531, 40, 40, 40, 40, 40, 40, 40, 40, 531, 531, 531, 531, 40, 40, 531,
+ 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 538, 538, 538, 527,
+ 527, 527, 538, 538, 538, 538, 538, 40, 40, 40, 40, 40, 40, 540, 540, 540,
+ 1068, 1068, 1068, 40, 40, 40, 40, 527, 527, 527, 538, 527, 527, 527, 527,
+ 527, 527, 527, 527, 538, 538, 538, 527, 538, 527, 527, 527, 527, 527,
+ 531, 531, 531, 531, 531, 531, 538, 531, 531, 531, 527, 527, 527, 531,
+ 531, 527, 1063, 1063, 531, 531, 531, 527, 527, 1063, 1063, 1063, 531,
+ 531, 531, 531, 527, 527, 527, 527, 527, 527, 527, 1063, 1063, 1063, 1063,
+ 1063, 40, 40, 40, 40, 1063, 1063, 1063, 1063, 40, 40, 40, 40, 40, 531,
+ 531, 531, 531, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 527, 527, 527,
+ 527, 1063, 1063, 1063, 1063, 40, 40, 1063, 1063, 1063, 1063, 1063, 1063,
+ 40, 40, 40, 40, 40, 40, 1063, 1063, 40, 40, 40, 40, 1063, 527, 527, 538,
+ 527, 527, 527, 527, 527, 527, 538, 527, 538, 538, 527, 527, 538, 538,
+ 538, 527, 527, 527, 1063, 527, 527, 527, 527, 1063, 1063, 1063, 527, 527,
+ 527, 527, 527, 527, 527, 527, 527, 1063, 1063, 527, 527, 527, 527, 527,
+ 527, 1063, 1063, 1063, 527, 527, 527, 527, 527, 527, 527, 538, 538, 527,
+ 538, 538, 527, 538, 527, 527, 527, 527, 527, 527, 527, 1063, 1063, 538,
+ 538, 538, 527, 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
+ 538, 538, 527, 527, 1063, 1063, 1063, 1063, 1063, 1063, 81, 81, 594, 594,
+ 594, 594, 594, 594, 594, 595, 594, 594, 594, 594, 594, 595, 595, 595,
+ 594, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 81,
+ 81, 81, 505, 81, 81, 81, 81, 81, 81, 505, 505, 505, 505, 505, 505, 505,
+ 505, 673, 673, 673, 673, 673, 673, 81, 81,
};
/* decomposition data */
78, 266, 79, 266, 80, 266, 81, 266, 82, 266, 83, 266, 84, 266, 85, 266,
86, 266, 87, 266, 88, 266, 89, 266, 90, 522, 72, 86, 522, 77, 86, 522,
83, 68, 522, 83, 83, 778, 80, 80, 86, 522, 87, 67, 515, 77, 67, 515, 77,
- 68, 522, 68, 74, 522, 12411, 12363, 522, 12467, 12467, 266, 12469, 266,
- 25163, 266, 23383, 266, 21452, 266, 12487, 266, 20108, 266, 22810, 266,
- 35299, 266, 22825, 266, 20132, 266, 26144, 266, 28961, 266, 26009, 266,
- 21069, 266, 24460, 266, 20877, 266, 26032, 266, 21021, 266, 32066, 266,
- 29983, 266, 36009, 266, 22768, 266, 21561, 266, 28436, 266, 25237, 266,
- 25429, 266, 19968, 266, 19977, 266, 36938, 266, 24038, 266, 20013, 266,
- 21491, 266, 25351, 266, 36208, 266, 25171, 266, 31105, 266, 31354, 266,
- 21512, 266, 28288, 266, 26377, 266, 26376, 266, 30003, 266, 21106, 266,
- 21942, 266, 37197, 770, 12308, 26412, 12309, 770, 12308, 19977, 12309,
- 770, 12308, 20108, 12309, 770, 12308, 23433, 12309, 770, 12308, 28857,
- 12309, 770, 12308, 25171, 12309, 770, 12308, 30423, 12309, 770, 12308,
- 21213, 12309, 770, 12308, 25943, 12309, 263, 24471, 263, 21487, 256,
- 20029, 256, 20024, 256, 20033, 256, 55360, 56610, 256, 20320, 256, 20398,
- 256, 20411, 256, 20482, 256, 20602, 256, 20633, 256, 20711, 256, 20687,
- 256, 13470, 256, 55361, 56890, 256, 20813, 256, 20820, 256, 20836, 256,
- 20855, 256, 55361, 56604, 256, 13497, 256, 20839, 256, 20877, 256, 55361,
- 56651, 256, 20887, 256, 20900, 256, 20172, 256, 20908, 256, 20917, 256,
- 55396, 56799, 256, 20981, 256, 20995, 256, 13535, 256, 21051, 256, 21062,
- 256, 21106, 256, 21111, 256, 13589, 256, 21191, 256, 21193, 256, 21220,
- 256, 21242, 256, 21253, 256, 21254, 256, 21271, 256, 21321, 256, 21329,
- 256, 21338, 256, 21363, 256, 21373, 256, 21375, 256, 21375, 256, 21375,
- 256, 55362, 56876, 256, 28784, 256, 21450, 256, 21471, 256, 55362, 57187,
- 256, 21483, 256, 21489, 256, 21510, 256, 21662, 256, 21560, 256, 21576,
- 256, 21608, 256, 21666, 256, 21750, 256, 21776, 256, 21843, 256, 21859,
- 256, 21892, 256, 21892, 256, 21913, 256, 21931, 256, 21939, 256, 21954,
- 256, 22294, 256, 22022, 256, 22295, 256, 22097, 256, 22132, 256, 20999,
- 256, 22766, 256, 22478, 256, 22516, 256, 22541, 256, 22411, 256, 22578,
- 256, 22577, 256, 22700, 256, 55365, 56548, 256, 22770, 256, 22775, 256,
- 22790, 256, 22810, 256, 22818, 256, 22882, 256, 55365, 57000, 256, 55365,
- 57066, 256, 23020, 256, 23067, 256, 23079, 256, 23000, 256, 23142, 256,
- 14062, 256, 14076, 256, 23304, 256, 23358, 256, 23358, 256, 55366, 56776,
- 256, 23491, 256, 23512, 256, 23527, 256, 23539, 256, 55366, 57112, 256,
- 23551, 256, 23558, 256, 24403, 256, 23586, 256, 14209, 256, 23648, 256,
- 23662, 256, 23744, 256, 23693, 256, 55367, 56804, 256, 23875, 256, 55367,
- 56806, 256, 23918, 256, 23915, 256, 23932, 256, 24033, 256, 24034, 256,
- 14383, 256, 24061, 256, 24104, 256, 24125, 256, 24169, 256, 14434, 256,
- 55368, 56707, 256, 14460, 256, 24240, 256, 24243, 256, 24246, 256, 24266,
- 256, 55400, 57234, 256, 24318, 256, 55368, 57137, 256, 55368, 57137, 256,
- 33281, 256, 24354, 256, 24354, 256, 14535, 256, 55372, 57016, 256, 55384,
- 56794, 256, 24418, 256, 24427, 256, 14563, 256, 24474, 256, 24525, 256,
- 24535, 256, 24569, 256, 24705, 256, 14650, 256, 14620, 256, 24724, 256,
- 55369, 57044, 256, 24775, 256, 24904, 256, 24908, 256, 24910, 256, 24908,
- 256, 24954, 256, 24974, 256, 25010, 256, 24996, 256, 25007, 256, 25054,
- 256, 25074, 256, 25078, 256, 25104, 256, 25115, 256, 25181, 256, 25265,
- 256, 25300, 256, 25424, 256, 55370, 57100, 256, 25405, 256, 25340, 256,
- 25448, 256, 25475, 256, 25572, 256, 55370, 57329, 256, 25634, 256, 25541,
- 256, 25513, 256, 14894, 256, 25705, 256, 25726, 256, 25757, 256, 25719,
- 256, 14956, 256, 25935, 256, 25964, 256, 55372, 56330, 256, 26083, 256,
- 26360, 256, 26185, 256, 15129, 256, 26257, 256, 15112, 256, 15076, 256,
- 20882, 256, 20885, 256, 26368, 256, 26268, 256, 32941, 256, 17369, 256,
- 26391, 256, 26395, 256, 26401, 256, 26462, 256, 26451, 256, 55372, 57283,
- 256, 15177, 256, 26618, 256, 26501, 256, 26706, 256, 26757, 256, 55373,
- 56429, 256, 26766, 256, 26655, 256, 26900, 256, 15261, 256, 26946, 256,
- 27043, 256, 27114, 256, 27304, 256, 55373, 56995, 256, 27355, 256, 15384,
- 256, 27425, 256, 55374, 56487, 256, 27476, 256, 15438, 256, 27506, 256,
- 27551, 256, 27578, 256, 27579, 256, 55374, 56973, 256, 55367, 56587, 256,
- 55374, 57082, 256, 27726, 256, 55375, 56508, 256, 27839, 256, 27853, 256,
- 27751, 256, 27926, 256, 27966, 256, 28023, 256, 27969, 256, 28009, 256,
- 28024, 256, 28037, 256, 55375, 56606, 256, 27956, 256, 28207, 256, 28270,
- 256, 15667, 256, 28363, 256, 28359, 256, 55375, 57041, 256, 28153, 256,
- 28526, 256, 55375, 57182, 256, 55375, 57230, 256, 28614, 256, 28729, 256,
- 28702, 256, 28699, 256, 15766, 256, 28746, 256, 28797, 256, 28791, 256,
- 28845, 256, 55361, 56613, 256, 28997, 256, 55376, 56931, 256, 29084, 256,
- 55376, 57259, 256, 29224, 256, 29237, 256, 29264, 256, 55377, 56840, 256,
- 29312, 256, 29333, 256, 55377, 57141, 256, 55378, 56340, 256, 29562, 256,
- 29579, 256, 16044, 256, 29605, 256, 16056, 256, 16056, 256, 29767, 256,
- 29788, 256, 29809, 256, 29829, 256, 29898, 256, 16155, 256, 29988, 256,
- 55379, 56374, 256, 30014, 256, 55379, 56466, 256, 30064, 256, 55368,
- 56735, 256, 30224, 256, 55379, 57249, 256, 55379, 57272, 256, 55380,
- 56388, 256, 16380, 256, 16392, 256, 30452, 256, 55380, 56563, 256, 55380,
- 56562, 256, 55380, 56601, 256, 55380, 56627, 256, 30494, 256, 30495, 256,
- 30495, 256, 30538, 256, 16441, 256, 30603, 256, 16454, 256, 16534, 256,
- 55381, 56349, 256, 30798, 256, 30860, 256, 30924, 256, 16611, 256, 55381,
- 56870, 256, 31062, 256, 55381, 56986, 256, 55381, 57029, 256, 31119, 256,
- 31211, 256, 16687, 256, 31296, 256, 31306, 256, 31311, 256, 55382, 56700,
- 256, 55382, 56999, 256, 55382, 56999, 256, 31470, 256, 16898, 256, 55382,
- 57259, 256, 31686, 256, 31689, 256, 16935, 256, 55383, 56448, 256, 31954,
- 256, 17056, 256, 31976, 256, 31971, 256, 32000, 256, 55383, 57222, 256,
- 32099, 256, 17153, 256, 32199, 256, 32258, 256, 32325, 256, 17204, 256,
- 55384, 56872, 256, 55384, 56903, 256, 17241, 256, 55384, 57049, 256,
- 32634, 256, 55384, 57150, 256, 32661, 256, 32762, 256, 32773, 256, 55385,
- 56538, 256, 55385, 56611, 256, 32864, 256, 55385, 56744, 256, 32880, 256,
- 55372, 57183, 256, 17365, 256, 32946, 256, 33027, 256, 17419, 256, 33086,
- 256, 23221, 256, 55385, 57255, 256, 55385, 57269, 256, 55372, 57235, 256,
- 55372, 57244, 256, 33281, 256, 33284, 256, 36766, 256, 17515, 256, 33425,
- 256, 33419, 256, 33437, 256, 21171, 256, 33457, 256, 33459, 256, 33469,
- 256, 33510, 256, 55386, 57148, 256, 33509, 256, 33565, 256, 33635, 256,
- 33709, 256, 33571, 256, 33725, 256, 33767, 256, 33879, 256, 33619, 256,
- 33738, 256, 33740, 256, 33756, 256, 55387, 56374, 256, 55387, 56683, 256,
- 55387, 56533, 256, 17707, 256, 34033, 256, 34035, 256, 34070, 256, 55388,
- 57290, 256, 34148, 256, 55387, 57132, 256, 17757, 256, 17761, 256, 55387,
- 57265, 256, 55388, 56530, 256, 17771, 256, 34384, 256, 34396, 256, 34407,
- 256, 34409, 256, 34473, 256, 34440, 256, 34574, 256, 34530, 256, 34681,
- 256, 34600, 256, 34667, 256, 34694, 256, 17879, 256, 34785, 256, 34817,
- 256, 17913, 256, 34912, 256, 34915, 256, 55389, 56935, 256, 35031, 256,
- 35038, 256, 17973, 256, 35066, 256, 13499, 256, 55390, 56494, 256, 55390,
- 56678, 256, 18110, 256, 18119, 256, 35488, 256, 35565, 256, 35722, 256,
- 35925, 256, 55391, 56488, 256, 36011, 256, 36033, 256, 36123, 256, 36215,
- 256, 55391, 57135, 256, 55362, 56324, 256, 36299, 256, 36284, 256, 36336,
- 256, 55362, 56542, 256, 36564, 256, 36664, 256, 55393, 56786, 256, 55393,
- 56813, 256, 37012, 256, 37105, 256, 37137, 256, 55393, 57134, 256, 37147,
- 256, 37432, 256, 37591, 256, 37592, 256, 37500, 256, 37881, 256, 37909,
- 256, 55394, 57338, 256, 38283, 256, 18837, 256, 38327, 256, 55395, 56695,
- 256, 18918, 256, 38595, 256, 23986, 256, 38691, 256, 55396, 56645, 256,
- 55396, 56858, 256, 19054, 256, 19062, 256, 38880, 256, 55397, 56330, 256,
- 19122, 256, 55397, 56470, 256, 38923, 256, 38923, 256, 38953, 256, 55397,
- 56758, 256, 39138, 256, 19251, 256, 39209, 256, 39335, 256, 39362, 256,
- 39422, 256, 19406, 256, 55398, 57136, 256, 39698, 256, 40000, 256, 40189,
- 256, 19662, 256, 19693, 256, 40295, 256, 55400, 56526, 256, 19704, 256,
- 55400, 56581, 256, 55400, 56846, 256, 55400, 56977, 256, 40635, 256,
- 19798, 256, 40697, 256, 40702, 256, 40709, 256, 40719, 256, 40726, 256,
- 40763, 256, 55401, 56832,
+ 68, 515, 77, 82, 522, 68, 74, 522, 12411, 12363, 522, 12467, 12467, 266,
+ 12469, 266, 25163, 266, 23383, 266, 21452, 266, 12487, 266, 20108, 266,
+ 22810, 266, 35299, 266, 22825, 266, 20132, 266, 26144, 266, 28961, 266,
+ 26009, 266, 21069, 266, 24460, 266, 20877, 266, 26032, 266, 21021, 266,
+ 32066, 266, 29983, 266, 36009, 266, 22768, 266, 21561, 266, 28436, 266,
+ 25237, 266, 25429, 266, 19968, 266, 19977, 266, 36938, 266, 24038, 266,
+ 20013, 266, 21491, 266, 25351, 266, 36208, 266, 25171, 266, 31105, 266,
+ 31354, 266, 21512, 266, 28288, 266, 26377, 266, 26376, 266, 30003, 266,
+ 21106, 266, 21942, 266, 37197, 770, 12308, 26412, 12309, 770, 12308,
+ 19977, 12309, 770, 12308, 20108, 12309, 770, 12308, 23433, 12309, 770,
+ 12308, 28857, 12309, 770, 12308, 25171, 12309, 770, 12308, 30423, 12309,
+ 770, 12308, 21213, 12309, 770, 12308, 25943, 12309, 263, 24471, 263,
+ 21487, 256, 20029, 256, 20024, 256, 20033, 256, 55360, 56610, 256, 20320,
+ 256, 20398, 256, 20411, 256, 20482, 256, 20602, 256, 20633, 256, 20711,
+ 256, 20687, 256, 13470, 256, 55361, 56890, 256, 20813, 256, 20820, 256,
+ 20836, 256, 20855, 256, 55361, 56604, 256, 13497, 256, 20839, 256, 20877,
+ 256, 55361, 56651, 256, 20887, 256, 20900, 256, 20172, 256, 20908, 256,
+ 20917, 256, 55396, 56799, 256, 20981, 256, 20995, 256, 13535, 256, 21051,
+ 256, 21062, 256, 21106, 256, 21111, 256, 13589, 256, 21191, 256, 21193,
+ 256, 21220, 256, 21242, 256, 21253, 256, 21254, 256, 21271, 256, 21321,
+ 256, 21329, 256, 21338, 256, 21363, 256, 21373, 256, 21375, 256, 21375,
+ 256, 21375, 256, 55362, 56876, 256, 28784, 256, 21450, 256, 21471, 256,
+ 55362, 57187, 256, 21483, 256, 21489, 256, 21510, 256, 21662, 256, 21560,
+ 256, 21576, 256, 21608, 256, 21666, 256, 21750, 256, 21776, 256, 21843,
+ 256, 21859, 256, 21892, 256, 21892, 256, 21913, 256, 21931, 256, 21939,
+ 256, 21954, 256, 22294, 256, 22022, 256, 22295, 256, 22097, 256, 22132,
+ 256, 20999, 256, 22766, 256, 22478, 256, 22516, 256, 22541, 256, 22411,
+ 256, 22578, 256, 22577, 256, 22700, 256, 55365, 56548, 256, 22770, 256,
+ 22775, 256, 22790, 256, 22810, 256, 22818, 256, 22882, 256, 55365, 57000,
+ 256, 55365, 57066, 256, 23020, 256, 23067, 256, 23079, 256, 23000, 256,
+ 23142, 256, 14062, 256, 14076, 256, 23304, 256, 23358, 256, 23358, 256,
+ 55366, 56776, 256, 23491, 256, 23512, 256, 23527, 256, 23539, 256, 55366,
+ 57112, 256, 23551, 256, 23558, 256, 24403, 256, 23586, 256, 14209, 256,
+ 23648, 256, 23662, 256, 23744, 256, 23693, 256, 55367, 56804, 256, 23875,
+ 256, 55367, 56806, 256, 23918, 256, 23915, 256, 23932, 256, 24033, 256,
+ 24034, 256, 14383, 256, 24061, 256, 24104, 256, 24125, 256, 24169, 256,
+ 14434, 256, 55368, 56707, 256, 14460, 256, 24240, 256, 24243, 256, 24246,
+ 256, 24266, 256, 55400, 57234, 256, 24318, 256, 55368, 57137, 256, 55368,
+ 57137, 256, 33281, 256, 24354, 256, 24354, 256, 14535, 256, 55372, 57016,
+ 256, 55384, 56794, 256, 24418, 256, 24427, 256, 14563, 256, 24474, 256,
+ 24525, 256, 24535, 256, 24569, 256, 24705, 256, 14650, 256, 14620, 256,
+ 24724, 256, 55369, 57044, 256, 24775, 256, 24904, 256, 24908, 256, 24910,
+ 256, 24908, 256, 24954, 256, 24974, 256, 25010, 256, 24996, 256, 25007,
+ 256, 25054, 256, 25074, 256, 25078, 256, 25104, 256, 25115, 256, 25181,
+ 256, 25265, 256, 25300, 256, 25424, 256, 55370, 57100, 256, 25405, 256,
+ 25340, 256, 25448, 256, 25475, 256, 25572, 256, 55370, 57329, 256, 25634,
+ 256, 25541, 256, 25513, 256, 14894, 256, 25705, 256, 25726, 256, 25757,
+ 256, 25719, 256, 14956, 256, 25935, 256, 25964, 256, 55372, 56330, 256,
+ 26083, 256, 26360, 256, 26185, 256, 15129, 256, 26257, 256, 15112, 256,
+ 15076, 256, 20882, 256, 20885, 256, 26368, 256, 26268, 256, 32941, 256,
+ 17369, 256, 26391, 256, 26395, 256, 26401, 256, 26462, 256, 26451, 256,
+ 55372, 57283, 256, 15177, 256, 26618, 256, 26501, 256, 26706, 256, 26757,
+ 256, 55373, 56429, 256, 26766, 256, 26655, 256, 26900, 256, 15261, 256,
+ 26946, 256, 27043, 256, 27114, 256, 27304, 256, 55373, 56995, 256, 27355,
+ 256, 15384, 256, 27425, 256, 55374, 56487, 256, 27476, 256, 15438, 256,
+ 27506, 256, 27551, 256, 27578, 256, 27579, 256, 55374, 56973, 256, 55367,
+ 56587, 256, 55374, 57082, 256, 27726, 256, 55375, 56508, 256, 27839, 256,
+ 27853, 256, 27751, 256, 27926, 256, 27966, 256, 28023, 256, 27969, 256,
+ 28009, 256, 28024, 256, 28037, 256, 55375, 56606, 256, 27956, 256, 28207,
+ 256, 28270, 256, 15667, 256, 28363, 256, 28359, 256, 55375, 57041, 256,
+ 28153, 256, 28526, 256, 55375, 57182, 256, 55375, 57230, 256, 28614, 256,
+ 28729, 256, 28702, 256, 28699, 256, 15766, 256, 28746, 256, 28797, 256,
+ 28791, 256, 28845, 256, 55361, 56613, 256, 28997, 256, 55376, 56931, 256,
+ 29084, 256, 55376, 57259, 256, 29224, 256, 29237, 256, 29264, 256, 55377,
+ 56840, 256, 29312, 256, 29333, 256, 55377, 57141, 256, 55378, 56340, 256,
+ 29562, 256, 29579, 256, 16044, 256, 29605, 256, 16056, 256, 16056, 256,
+ 29767, 256, 29788, 256, 29809, 256, 29829, 256, 29898, 256, 16155, 256,
+ 29988, 256, 55379, 56374, 256, 30014, 256, 55379, 56466, 256, 30064, 256,
+ 55368, 56735, 256, 30224, 256, 55379, 57249, 256, 55379, 57272, 256,
+ 55380, 56388, 256, 16380, 256, 16392, 256, 30452, 256, 55380, 56563, 256,
+ 55380, 56562, 256, 55380, 56601, 256, 55380, 56627, 256, 30494, 256,
+ 30495, 256, 30495, 256, 30538, 256, 16441, 256, 30603, 256, 16454, 256,
+ 16534, 256, 55381, 56349, 256, 30798, 256, 30860, 256, 30924, 256, 16611,
+ 256, 55381, 56870, 256, 31062, 256, 55381, 56986, 256, 55381, 57029, 256,
+ 31119, 256, 31211, 256, 16687, 256, 31296, 256, 31306, 256, 31311, 256,
+ 55382, 56700, 256, 55382, 56999, 256, 55382, 56999, 256, 31470, 256,
+ 16898, 256, 55382, 57259, 256, 31686, 256, 31689, 256, 16935, 256, 55383,
+ 56448, 256, 31954, 256, 17056, 256, 31976, 256, 31971, 256, 32000, 256,
+ 55383, 57222, 256, 32099, 256, 17153, 256, 32199, 256, 32258, 256, 32325,
+ 256, 17204, 256, 55384, 56872, 256, 55384, 56903, 256, 17241, 256, 55384,
+ 57049, 256, 32634, 256, 55384, 57150, 256, 32661, 256, 32762, 256, 32773,
+ 256, 55385, 56538, 256, 55385, 56611, 256, 32864, 256, 55385, 56744, 256,
+ 32880, 256, 55372, 57183, 256, 17365, 256, 32946, 256, 33027, 256, 17419,
+ 256, 33086, 256, 23221, 256, 55385, 57255, 256, 55385, 57269, 256, 55372,
+ 57235, 256, 55372, 57244, 256, 33281, 256, 33284, 256, 36766, 256, 17515,
+ 256, 33425, 256, 33419, 256, 33437, 256, 21171, 256, 33457, 256, 33459,
+ 256, 33469, 256, 33510, 256, 55386, 57148, 256, 33509, 256, 33565, 256,
+ 33635, 256, 33709, 256, 33571, 256, 33725, 256, 33767, 256, 33879, 256,
+ 33619, 256, 33738, 256, 33740, 256, 33756, 256, 55387, 56374, 256, 55387,
+ 56683, 256, 55387, 56533, 256, 17707, 256, 34033, 256, 34035, 256, 34070,
+ 256, 55388, 57290, 256, 34148, 256, 55387, 57132, 256, 17757, 256, 17761,
+ 256, 55387, 57265, 256, 55388, 56530, 256, 17771, 256, 34384, 256, 34396,
+ 256, 34407, 256, 34409, 256, 34473, 256, 34440, 256, 34574, 256, 34530,
+ 256, 34681, 256, 34600, 256, 34667, 256, 34694, 256, 17879, 256, 34785,
+ 256, 34817, 256, 17913, 256, 34912, 256, 34915, 256, 55389, 56935, 256,
+ 35031, 256, 35038, 256, 17973, 256, 35066, 256, 13499, 256, 55390, 56494,
+ 256, 55390, 56678, 256, 18110, 256, 18119, 256, 35488, 256, 35565, 256,
+ 35722, 256, 35925, 256, 55391, 56488, 256, 36011, 256, 36033, 256, 36123,
+ 256, 36215, 256, 55391, 57135, 256, 55362, 56324, 256, 36299, 256, 36284,
+ 256, 36336, 256, 55362, 56542, 256, 36564, 256, 36664, 256, 55393, 56786,
+ 256, 55393, 56813, 256, 37012, 256, 37105, 256, 37137, 256, 55393, 57134,
+ 256, 37147, 256, 37432, 256, 37591, 256, 37592, 256, 37500, 256, 37881,
+ 256, 37909, 256, 55394, 57338, 256, 38283, 256, 18837, 256, 38327, 256,
+ 55395, 56695, 256, 18918, 256, 38595, 256, 23986, 256, 38691, 256, 55396,
+ 56645, 256, 55396, 56858, 256, 19054, 256, 19062, 256, 38880, 256, 55397,
+ 56330, 256, 19122, 256, 55397, 56470, 256, 38923, 256, 38923, 256, 38953,
+ 256, 55397, 56758, 256, 39138, 256, 19251, 256, 39209, 256, 39335, 256,
+ 39362, 256, 39422, 256, 19406, 256, 55398, 57136, 256, 39698, 256, 40000,
+ 256, 40189, 256, 19662, 256, 19693, 256, 40295, 256, 55400, 56526, 256,
+ 19704, 256, 55400, 56581, 256, 55400, 56846, 256, 55400, 56977, 256,
+ 40635, 256, 19798, 256, 40697, 256, 40702, 256, 40709, 256, 40719, 256,
+ 40726, 256, 40763, 256, 55401, 56832,
};
/* index tables for the decomposition data */
13005, 13007, 13009, 13011, 13013, 13015, 13017, 13019, 13021, 13023,
13025, 13027, 13029, 13031, 13033, 13035, 13037, 13039, 13041, 13043,
13045, 13047, 13049, 13051, 13053, 13055, 13057, 13060, 13063, 13066,
- 13069, 13073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13076, 13079, 0, 0, 0, 0,
- 13082, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13085, 13088, 13091,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13093, 13095, 13097, 13099, 13101,
- 13103, 13105, 13107, 13109, 13111, 13113, 13115, 13117, 13119, 13121,
- 13123, 13125, 13127, 13129, 13131, 13133, 13135, 13137, 13139, 13141,
- 13143, 13145, 13147, 13149, 13151, 13153, 13155, 13157, 13159, 13161,
- 13163, 13165, 13167, 13169, 13171, 13173, 13175, 13177, 13179, 0, 0, 0,
- 0, 13181, 13185, 13189, 13193, 13197, 13201, 13205, 13209, 13213, 0, 0,
- 0, 0, 0, 0, 0, 13217, 13219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 13221, 13223, 13225, 13227, 13230, 13232, 13234, 13236, 13238, 13240,
- 13242, 13244, 13246, 13248, 13251, 13253, 13255, 13257, 13259, 13262,
- 13264, 13266, 13268, 13271, 13273, 13275, 13277, 13279, 13281, 13284,
- 13286, 13288, 13290, 13292, 13294, 13296, 13298, 13300, 13302, 13304,
- 13306, 13308, 13310, 13312, 13314, 13316, 13318, 13320, 13322, 13324,
- 13326, 13328, 13330, 13333, 13335, 13337, 13339, 13342, 13344, 13346,
- 13348, 13350, 13352, 13354, 13356, 13358, 13360, 13362, 13364, 13366,
- 13368, 13370, 13372, 13374, 13376, 13378, 13380, 13382, 13384, 13386,
- 13388, 13390, 13392, 13394, 13396, 13398, 13400, 13402, 13404, 13406,
- 13409, 13411, 13413, 13415, 13417, 13419, 13421, 13424, 13427, 13429,
- 13431, 13433, 13435, 13437, 13439, 13441, 13443, 13445, 13447, 13450,
- 13452, 13454, 13456, 13458, 13461, 13463, 13465, 13467, 13469, 13471,
- 13473, 13475, 13477, 13479, 13482, 13484, 13487, 13489, 13491, 13493,
- 13495, 13497, 13499, 13501, 13503, 13505, 13507, 13509, 13512, 13514,
- 13516, 13518, 13520, 13522, 13525, 13527, 13530, 13533, 13535, 13537,
- 13539, 13541, 13544, 13547, 13549, 13551, 13553, 13555, 13557, 13559,
- 13561, 13563, 13565, 13567, 13569, 13572, 13574, 13576, 13578, 13580,
- 13582, 13584, 13586, 13588, 13590, 13592, 13594, 13596, 13598, 13600,
- 13602, 13604, 13606, 13608, 13610, 13613, 13615, 13617, 13619, 13621,
- 13623, 13626, 13628, 13630, 13632, 13634, 13636, 13638, 13640, 13642,
- 13644, 13646, 13648, 13651, 13653, 13655, 13657, 13659, 13661, 13663,
- 13665, 13667, 13669, 13671, 13673, 13675, 13677, 13679, 13681, 13683,
- 13685, 13687, 13690, 13692, 13694, 13696, 13698, 13700, 13703, 13705,
- 13707, 13709, 13711, 13713, 13715, 13717, 13719, 13722, 13724, 13726,
- 13728, 13731, 13733, 13735, 13737, 13739, 13741, 13743, 13746, 13749,
- 13752, 13754, 13757, 13759, 13761, 13763, 13765, 13767, 13769, 13771,
- 13773, 13775, 13777, 13780, 13782, 13784, 13786, 13788, 13790, 13792,
- 13795, 13797, 13799, 13802, 13805, 13807, 13809, 13811, 13813, 13815,
- 13817, 13819, 13821, 13823, 13826, 13828, 13831, 13833, 13836, 13838,
- 13840, 13842, 13845, 13847, 13849, 13852, 13855, 13857, 13859, 13861,
- 13863, 13865, 13867, 13869, 13871, 13873, 13875, 13877, 13879, 13881,
- 13884, 13886, 13889, 13891, 13894, 13896, 13899, 13902, 13905, 13907,
- 13909, 13911, 13914, 13917, 13920, 13923, 13925, 13927, 13929, 13931,
- 13933, 13935, 13937, 13939, 13942, 13944, 13946, 13948, 13950, 13953,
- 13955, 13958, 13961, 13963, 13965, 13967, 13969, 13971, 13973, 13976,
- 13979, 13982, 13984, 13986, 13989, 13991, 13993, 13995, 13998, 14000,
- 14002, 14004, 14006, 14008, 14011, 14013, 14015, 14017, 14019, 14021,
- 14023, 14026, 14029, 14031, 14034, 14036, 14039, 14041, 14043, 14045,
- 14048, 14051, 14053, 14056, 14058, 14061, 14063, 14065, 14067, 14069,
- 14071, 14073, 14076, 14079, 14082, 14085, 14087, 14089, 14091, 14093,
- 14095, 14097, 14099, 14101, 14103, 14105, 14107, 14109, 14112, 14114,
- 14116, 14118, 14120, 14122, 14124, 14126, 14128, 14130, 14132, 14134,
- 14136, 14139, 14142, 14145, 14147, 14149, 14151, 14153, 14156, 14158,
- 14161, 14163, 14165, 14168, 14171, 14173, 14175, 14177, 14179, 14181,
- 14183, 14185, 14187, 14189, 14191, 14193, 14195, 14197, 14199, 14201,
- 14203, 14205, 14207, 14209, 14212, 14214, 14216, 14218, 14220, 14222,
- 14225, 14228, 14230, 14232, 14234, 14236, 14238, 14240, 14243, 14245,
- 14247, 14249, 14251, 14254, 14257, 14259, 14261, 14263, 14266, 14268,
- 14270, 14273, 14276, 14278, 14280, 14282, 14285, 14287, 14289, 14291,
- 14293, 14295, 14297, 14299, 14302, 14304, 14306, 14308, 14311, 14313,
- 14315, 14317, 14319, 14322, 14325, 14327, 14329, 14331, 14334, 14336,
- 14339, 14341, 14343, 14345, 14348, 14350, 14352, 14354, 14356, 14358,
- 14360, 14362, 14365, 14367, 14369, 14371, 14373, 14375, 14377, 14380,
- 14382, 14385, 14388, 14391, 14393, 14395, 14397, 14399, 14401, 14403,
- 14405, 14407, 0, 0,
+ 13069, 13073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13076, 13079, 13082, 0, 0, 0,
+ 13085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13088, 13091, 13094,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13096, 13098, 13100, 13102, 13104,
+ 13106, 13108, 13110, 13112, 13114, 13116, 13118, 13120, 13122, 13124,
+ 13126, 13128, 13130, 13132, 13134, 13136, 13138, 13140, 13142, 13144,
+ 13146, 13148, 13150, 13152, 13154, 13156, 13158, 13160, 13162, 13164,
+ 13166, 13168, 13170, 13172, 13174, 13176, 13178, 13180, 13182, 0, 0, 0,
+ 0, 13184, 13188, 13192, 13196, 13200, 13204, 13208, 13212, 13216, 0, 0,
+ 0, 0, 0, 0, 0, 13220, 13222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 13224, 13226, 13228, 13230, 13233, 13235, 13237, 13239, 13241, 13243,
+ 13245, 13247, 13249, 13251, 13254, 13256, 13258, 13260, 13262, 13265,
+ 13267, 13269, 13271, 13274, 13276, 13278, 13280, 13282, 13284, 13287,
+ 13289, 13291, 13293, 13295, 13297, 13299, 13301, 13303, 13305, 13307,
+ 13309, 13311, 13313, 13315, 13317, 13319, 13321, 13323, 13325, 13327,
+ 13329, 13331, 13333, 13336, 13338, 13340, 13342, 13345, 13347, 13349,
+ 13351, 13353, 13355, 13357, 13359, 13361, 13363, 13365, 13367, 13369,
+ 13371, 13373, 13375, 13377, 13379, 13381, 13383, 13385, 13387, 13389,
+ 13391, 13393, 13395, 13397, 13399, 13401, 13403, 13405, 13407, 13409,
+ 13412, 13414, 13416, 13418, 13420, 13422, 13424, 13427, 13430, 13432,
+ 13434, 13436, 13438, 13440, 13442, 13444, 13446, 13448, 13450, 13453,
+ 13455, 13457, 13459, 13461, 13464, 13466, 13468, 13470, 13472, 13474,
+ 13476, 13478, 13480, 13482, 13485, 13487, 13490, 13492, 13494, 13496,
+ 13498, 13500, 13502, 13504, 13506, 13508, 13510, 13512, 13515, 13517,
+ 13519, 13521, 13523, 13525, 13528, 13530, 13533, 13536, 13538, 13540,
+ 13542, 13544, 13547, 13550, 13552, 13554, 13556, 13558, 13560, 13562,
+ 13564, 13566, 13568, 13570, 13572, 13575, 13577, 13579, 13581, 13583,
+ 13585, 13587, 13589, 13591, 13593, 13595, 13597, 13599, 13601, 13603,
+ 13605, 13607, 13609, 13611, 13613, 13616, 13618, 13620, 13622, 13624,
+ 13626, 13629, 13631, 13633, 13635, 13637, 13639, 13641, 13643, 13645,
+ 13647, 13649, 13651, 13654, 13656, 13658, 13660, 13662, 13664, 13666,
+ 13668, 13670, 13672, 13674, 13676, 13678, 13680, 13682, 13684, 13686,
+ 13688, 13690, 13693, 13695, 13697, 13699, 13701, 13703, 13706, 13708,
+ 13710, 13712, 13714, 13716, 13718, 13720, 13722, 13725, 13727, 13729,
+ 13731, 13734, 13736, 13738, 13740, 13742, 13744, 13746, 13749, 13752,
+ 13755, 13757, 13760, 13762, 13764, 13766, 13768, 13770, 13772, 13774,
+ 13776, 13778, 13780, 13783, 13785, 13787, 13789, 13791, 13793, 13795,
+ 13798, 13800, 13802, 13805, 13808, 13810, 13812, 13814, 13816, 13818,
+ 13820, 13822, 13824, 13826, 13829, 13831, 13834, 13836, 13839, 13841,
+ 13843, 13845, 13848, 13850, 13852, 13855, 13858, 13860, 13862, 13864,
+ 13866, 13868, 13870, 13872, 13874, 13876, 13878, 13880, 13882, 13884,
+ 13887, 13889, 13892, 13894, 13897, 13899, 13902, 13905, 13908, 13910,
+ 13912, 13914, 13917, 13920, 13923, 13926, 13928, 13930, 13932, 13934,
+ 13936, 13938, 13940, 13942, 13945, 13947, 13949, 13951, 13953, 13956,
+ 13958, 13961, 13964, 13966, 13968, 13970, 13972, 13974, 13976, 13979,
+ 13982, 13985, 13987, 13989, 13992, 13994, 13996, 13998, 14001, 14003,
+ 14005, 14007, 14009, 14011, 14014, 14016, 14018, 14020, 14022, 14024,
+ 14026, 14029, 14032, 14034, 14037, 14039, 14042, 14044, 14046, 14048,
+ 14051, 14054, 14056, 14059, 14061, 14064, 14066, 14068, 14070, 14072,
+ 14074, 14076, 14079, 14082, 14085, 14088, 14090, 14092, 14094, 14096,
+ 14098, 14100, 14102, 14104, 14106, 14108, 14110, 14112, 14115, 14117,
+ 14119, 14121, 14123, 14125, 14127, 14129, 14131, 14133, 14135, 14137,
+ 14139, 14142, 14145, 14148, 14150, 14152, 14154, 14156, 14159, 14161,
+ 14164, 14166, 14168, 14171, 14174, 14176, 14178, 14180, 14182, 14184,
+ 14186, 14188, 14190, 14192, 14194, 14196, 14198, 14200, 14202, 14204,
+ 14206, 14208, 14210, 14212, 14215, 14217, 14219, 14221, 14223, 14225,
+ 14228, 14231, 14233, 14235, 14237, 14239, 14241, 14243, 14246, 14248,
+ 14250, 14252, 14254, 14257, 14260, 14262, 14264, 14266, 14269, 14271,
+ 14273, 14276, 14279, 14281, 14283, 14285, 14288, 14290, 14292, 14294,
+ 14296, 14298, 14300, 14302, 14305, 14307, 14309, 14311, 14314, 14316,
+ 14318, 14320, 14322, 14325, 14328, 14330, 14332, 14334, 14337, 14339,
+ 14342, 14344, 14346, 14348, 14351, 14353, 14355, 14357, 14359, 14361,
+ 14363, 14365, 14368, 14370, 14372, 14374, 14376, 14378, 14380, 14383,
+ 14385, 14388, 14391, 14394, 14396, 14398, 14400, 14402, 14404, 14406,
+ 14408, 14410, 0, 0,
};
/* NFC pairs */
* on file with this header:
*
* # emoji-data.txt
- * # Date: 2018-02-07, 07:55:18 GMT
- * # © 2018 Unicode®, Inc.
+ * # Date: 2019-01-15, 12:10:05 GMT
+ * # © 2019 Unicode®, Inc.
* # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
* # For terms of use, see http://www.unicode.org/terms_of_use.html
* #
* # Emoji Data for UTS #51
- * # Version: 11.0
+ * # Version: 12.0
* #
* # For documentation and usage, see http://www.unicode.org/reports/tr51
*/
#define HB_VERSION_MAJOR 2
-#define HB_VERSION_MINOR 3
-#define HB_VERSION_MICRO 1
+#define HB_VERSION_MINOR 4
+#define HB_VERSION_MICRO 0
-#define HB_VERSION_STRING "2.3.1"
+#define HB_VERSION_STRING "2.4.0"
#define HB_VERSION_ATLEAST(major,minor,micro) \
((major)*10000+(minor)*100+(micro) <= \
* Compiler attributes
*/
-#if __cplusplus < 201103L
+/* https://github.com/harfbuzz/harfbuzz/issues/1634 */
+#if __cplusplus < 201103L && !defined(_MSC_VER)
#ifndef nullptr
#define nullptr NULL
#! /bin/sh
# test-driver - basic testsuite driver script.
-scriptversion=2013-07-13.22; # UTC
+scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 2011-2014 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# Local Variables:
# mode: shell-script
# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- distdir
+ distdir distdir-am
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/test-aat-layout.Po \
+ ./$(DEPDIR)/test-baseline.Po ./$(DEPDIR)/test-blob.Po \
+ ./$(DEPDIR)/test-buffer.Po \
+ ./$(DEPDIR)/test-collect-unicodes.Po \
+ ./$(DEPDIR)/test-common.Po ./$(DEPDIR)/test-font.Po \
+ ./$(DEPDIR)/test-map.Po ./$(DEPDIR)/test-object.Po \
+ ./$(DEPDIR)/test-ot-color.Po \
+ ./$(DEPDIR)/test-ot-extents-cff.Po ./$(DEPDIR)/test-ot-face.Po \
+ ./$(DEPDIR)/test-ot-ligature-carets.Po \
+ ./$(DEPDIR)/test-ot-name.Po ./$(DEPDIR)/test-ot-tag.Po \
+ ./$(DEPDIR)/test-set.Po ./$(DEPDIR)/test-shape.Po \
+ ./$(DEPDIR)/test-subset-cff1.Po \
+ ./$(DEPDIR)/test-subset-cff2.Po \
+ ./$(DEPDIR)/test-subset-cmap.Po \
+ ./$(DEPDIR)/test-subset-glyf.Po \
+ ./$(DEPDIR)/test-subset-hdmx.Po \
+ ./$(DEPDIR)/test-subset-hmtx.Po ./$(DEPDIR)/test-subset-os2.Po \
+ ./$(DEPDIR)/test-subset-post.Po \
+ ./$(DEPDIR)/test-subset-vmtx.Po ./$(DEPDIR)/test-subset.Po \
+ ./$(DEPDIR)/test-version.Po ./$(DEPDIR)/test_c-test-c.Po \
+ ./$(DEPDIR)/test_cplusplus-test-cplusplus.Po \
+ ./$(DEPDIR)/test_multithread-test-multithread.Po \
+ ./$(DEPDIR)/test_ot_math-test-ot-math.Po \
+ ./$(DEPDIR)/test_unicode-test-unicode.Po
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-aat-layout.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-baseline.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-blob.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-buffer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-collect-unicodes.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-common.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-font.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-map.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-object.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-color.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-extents-cff.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-face.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-ligature-carets.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-name.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-tag.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-set.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-shape.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-cff1.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-cff2.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-cmap.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-glyf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-hdmx.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-hmtx.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-os2.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-post.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-vmtx.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-version.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_c-test-c.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_cplusplus-test-cplusplus.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_multithread-test-multithread.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ot_math-test-ot-math.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_unicode-test-unicode.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-aat-layout.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-baseline.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-blob.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-buffer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-collect-unicodes.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-common.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-font.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-map.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-object.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-color.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-extents-cff.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-face.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-ligature-carets.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-name.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-tag.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-set.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-shape.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-cff1.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-cff2.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-cmap.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-glyf.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-hdmx.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-hmtx.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-os2.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-post.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-vmtx.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-version.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_c-test-c.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_cplusplus-test-cplusplus.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_multithread-test-multithread.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ot_math-test-ot-math.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_unicode-test-unicode.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
fi; \
$$success || exit 1
-check-TESTS:
+check-TESTS: $(check_PROGRAMS)
@list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
clean-noinstPROGRAMS mostlyclean-am
distclean: distclean-am
- -rm -rf ./$(DEPDIR)
+ -rm -f ./$(DEPDIR)/test-aat-layout.Po
+ -rm -f ./$(DEPDIR)/test-baseline.Po
+ -rm -f ./$(DEPDIR)/test-blob.Po
+ -rm -f ./$(DEPDIR)/test-buffer.Po
+ -rm -f ./$(DEPDIR)/test-collect-unicodes.Po
+ -rm -f ./$(DEPDIR)/test-common.Po
+ -rm -f ./$(DEPDIR)/test-font.Po
+ -rm -f ./$(DEPDIR)/test-map.Po
+ -rm -f ./$(DEPDIR)/test-object.Po
+ -rm -f ./$(DEPDIR)/test-ot-color.Po
+ -rm -f ./$(DEPDIR)/test-ot-extents-cff.Po
+ -rm -f ./$(DEPDIR)/test-ot-face.Po
+ -rm -f ./$(DEPDIR)/test-ot-ligature-carets.Po
+ -rm -f ./$(DEPDIR)/test-ot-name.Po
+ -rm -f ./$(DEPDIR)/test-ot-tag.Po
+ -rm -f ./$(DEPDIR)/test-set.Po
+ -rm -f ./$(DEPDIR)/test-shape.Po
+ -rm -f ./$(DEPDIR)/test-subset-cff1.Po
+ -rm -f ./$(DEPDIR)/test-subset-cff2.Po
+ -rm -f ./$(DEPDIR)/test-subset-cmap.Po
+ -rm -f ./$(DEPDIR)/test-subset-glyf.Po
+ -rm -f ./$(DEPDIR)/test-subset-hdmx.Po
+ -rm -f ./$(DEPDIR)/test-subset-hmtx.Po
+ -rm -f ./$(DEPDIR)/test-subset-os2.Po
+ -rm -f ./$(DEPDIR)/test-subset-post.Po
+ -rm -f ./$(DEPDIR)/test-subset-vmtx.Po
+ -rm -f ./$(DEPDIR)/test-subset.Po
+ -rm -f ./$(DEPDIR)/test-version.Po
+ -rm -f ./$(DEPDIR)/test_c-test-c.Po
+ -rm -f ./$(DEPDIR)/test_cplusplus-test-cplusplus.Po
+ -rm -f ./$(DEPDIR)/test_multithread-test-multithread.Po
+ -rm -f ./$(DEPDIR)/test_ot_math-test-ot-math.Po
+ -rm -f ./$(DEPDIR)/test_unicode-test-unicode.Po
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
installcheck-am:
maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
+ -rm -f ./$(DEPDIR)/test-aat-layout.Po
+ -rm -f ./$(DEPDIR)/test-baseline.Po
+ -rm -f ./$(DEPDIR)/test-blob.Po
+ -rm -f ./$(DEPDIR)/test-buffer.Po
+ -rm -f ./$(DEPDIR)/test-collect-unicodes.Po
+ -rm -f ./$(DEPDIR)/test-common.Po
+ -rm -f ./$(DEPDIR)/test-font.Po
+ -rm -f ./$(DEPDIR)/test-map.Po
+ -rm -f ./$(DEPDIR)/test-object.Po
+ -rm -f ./$(DEPDIR)/test-ot-color.Po
+ -rm -f ./$(DEPDIR)/test-ot-extents-cff.Po
+ -rm -f ./$(DEPDIR)/test-ot-face.Po
+ -rm -f ./$(DEPDIR)/test-ot-ligature-carets.Po
+ -rm -f ./$(DEPDIR)/test-ot-name.Po
+ -rm -f ./$(DEPDIR)/test-ot-tag.Po
+ -rm -f ./$(DEPDIR)/test-set.Po
+ -rm -f ./$(DEPDIR)/test-shape.Po
+ -rm -f ./$(DEPDIR)/test-subset-cff1.Po
+ -rm -f ./$(DEPDIR)/test-subset-cff2.Po
+ -rm -f ./$(DEPDIR)/test-subset-cmap.Po
+ -rm -f ./$(DEPDIR)/test-subset-glyf.Po
+ -rm -f ./$(DEPDIR)/test-subset-hdmx.Po
+ -rm -f ./$(DEPDIR)/test-subset-hmtx.Po
+ -rm -f ./$(DEPDIR)/test-subset-os2.Po
+ -rm -f ./$(DEPDIR)/test-subset-post.Po
+ -rm -f ./$(DEPDIR)/test-subset-vmtx.Po
+ -rm -f ./$(DEPDIR)/test-subset.Po
+ -rm -f ./$(DEPDIR)/test-version.Po
+ -rm -f ./$(DEPDIR)/test_c-test-c.Po
+ -rm -f ./$(DEPDIR)/test_cplusplus-test-cplusplus.Po
+ -rm -f ./$(DEPDIR)/test_multithread-test-multithread.Po
+ -rm -f ./$(DEPDIR)/test_ot_math-test-ot-math.Po
+ -rm -f ./$(DEPDIR)/test_unicode-test-unicode.Po
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
.MAKE: check-am install-am install-strip
-.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \
- clean-checkPROGRAMS clean-generic clean-libtool \
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \
+ check-am clean clean-checkPROGRAMS clean-generic clean-libtool \
clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
HB_BEGIN_DECLS
static inline hb_subset_input_t *
-hb_subset_test_create_input(const hb_set_t *codepoints)
+hb_subset_test_create_input (const hb_set_t *codepoints)
{
hb_subset_input_t *input = hb_subset_input_create_or_fail ();
hb_set_t * input_codepoints = hb_subset_input_unicode_set (input);
return input;
}
+static inline hb_subset_input_t *
+hb_subset_test_create_input_from_glyphs (const hb_set_t *glyphs)
+{
+ hb_subset_input_t *input = hb_subset_input_create_or_fail ();
+ hb_set_t * input_glyphs = hb_subset_input_glyph_set (input);
+ hb_set_union (input_glyphs, glyphs);
+ return input;
+}
+
static inline hb_face_t *
hb_subset_test_create_subset (hb_face_t *source,
hb_subset_input_t *input)
test_face (hb_face_get_empty (), 0);
}
+static void
+test_ot_var_axis_on_zero_named_instance ()
+{
+ hb_face_t *face = hb_test_open_font_file ("fonts/Zycon.ttf");
+ g_assert (hb_ot_var_get_axis_count (face));
+ hb_face_destroy (face);
+}
+
int
main (int argc, char **argv)
{
hb_test_init (&argc, &argv);
hb_test_add (test_ot_face_empty);
+ hb_test_add (test_ot_var_axis_on_zero_named_instance);
return hb_test_run();
}
hb_face_destroy (face);
}
+static void
+test_subset_cff1_retaingids (void)
+{
+ hb_face_t *face_abc = hb_test_open_font_file ("fonts/SourceSansPro-Regular.abc.otf");
+ hb_face_t *face_ac = hb_test_open_font_file ("fonts/SourceSansPro-Regular.ac.retaingids.otf");
+
+ hb_set_t *codepoints = hb_set_create ();
+ hb_subset_input_t *input;
+ hb_face_t *face_abc_subset;
+ hb_set_add (codepoints, 'a');
+ hb_set_add (codepoints, 'c');
+ input = hb_subset_test_create_input (codepoints);
+ hb_subset_input_set_retain_gids (input, true);
+ face_abc_subset = hb_subset_test_create_subset (face_abc, input);
+ hb_set_destroy (codepoints);
+
+ hb_subset_test_check (face_ac, face_abc_subset, HB_TAG ('C','F','F',' '));
+
+ hb_face_destroy (face_abc_subset);
+ hb_face_destroy (face_abc);
+ hb_face_destroy (face_ac);
+}
+
+static void
+test_subset_cff1_j_retaingids (void)
+{
+ hb_face_t *face_41_3041_4c2e = hb_test_open_font_file ("fonts/SourceHanSans-Regular.41,3041,4C2E.otf");
+ hb_face_t *face_41_4c2e = hb_test_open_font_file ("fonts/SourceHanSans-Regular.41,4C2E.retaingids.otf");
+
+ hb_set_t *codepoints = hb_set_create ();
+ hb_subset_input_t *input;
+ hb_face_t *face_41_3041_4c2e_subset;
+ hb_set_add (codepoints, 0x41);
+ hb_set_add (codepoints, 0x4C2E);
+ input = hb_subset_test_create_input (codepoints);
+ hb_subset_input_set_retain_gids (input, true);
+ face_41_3041_4c2e_subset = hb_subset_test_create_subset (face_41_3041_4c2e, input);
+ hb_set_destroy (codepoints);
+
+ hb_subset_test_check (face_41_4c2e, face_41_3041_4c2e_subset, HB_TAG ('C','F','F',' '));
+
+ hb_face_destroy (face_41_3041_4c2e_subset);
+ hb_face_destroy (face_41_3041_4c2e);
+ hb_face_destroy (face_41_4c2e);
+}
+
int
main (int argc, char **argv)
{
hb_test_add (test_subset_cff1_expert);
hb_test_add (test_subset_cff1_seac);
hb_test_add (test_subset_cff1_dotsection);
+ hb_test_add (test_subset_cff1_retaingids);
+ hb_test_add (test_subset_cff1_j_retaingids);
return hb_test_run ();
}
hb_face_destroy (face_ac);
}
+static void
+test_subset_cff2_retaingids (void)
+{
+ hb_face_t *face_abc = hb_test_open_font_file ("fonts/AdobeVFPrototype.abc.otf");
+ hb_face_t *face_ac = hb_test_open_font_file ("fonts/AdobeVFPrototype.ac.retaingids.otf");
+
+ hb_set_t *codepoints = hb_set_create ();
+ hb_subset_input_t *input;
+ hb_face_t *face_abc_subset;
+ hb_set_add (codepoints, 'a');
+ hb_set_add (codepoints, 'c');
+ input = hb_subset_test_create_input (codepoints);
+ hb_subset_input_set_retain_gids (input, true);
+ face_abc_subset = hb_subset_test_create_subset (face_abc, input);
+ hb_set_destroy (codepoints);
+
+ hb_subset_test_check (face_ac, face_abc_subset, HB_TAG ('C', 'F', 'F', '2'));
+
+ hb_face_destroy (face_abc_subset);
+ hb_face_destroy (face_abc);
+ hb_face_destroy (face_ac);
+}
+
int
main (int argc, char **argv)
{
hb_test_add (test_subset_cff2_strip_hints);
hb_test_add (test_subset_cff2_desubr);
hb_test_add (test_subset_cff2_desubr_strip_hints);
+ hb_test_add (test_subset_cff2_retaingids);
return hb_test_run ();
}
}
static void
+test_subset_glyf_with_input_glyphs (void)
+{
+ hb_face_t *face_abc = hb_test_open_font_file ("fonts/Roboto-Regular.abc.ttf");
+ hb_face_t *face_ac = hb_test_open_font_file ("fonts/Roboto-Regular.ac.ttf");
+
+ hb_set_t *glyphs = hb_set_create();
+ hb_face_t *face_abc_subset;
+ hb_set_add (glyphs, 1);
+ hb_set_add (glyphs, 3);
+ face_abc_subset =
+ hb_subset_test_create_subset (face_abc, hb_subset_test_create_input_from_glyphs (glyphs));
+ hb_set_destroy (glyphs);
+
+ hb_subset_test_check (face_ac, face_abc_subset, HB_TAG ('g','l','y','f'));
+ hb_subset_test_check (face_ac, face_abc_subset, HB_TAG ('l','o','c', 'a'));
+ check_maxp_num_glyphs(face_abc_subset, 3, true);
+
+ hb_face_destroy (face_abc_subset);
+ hb_face_destroy (face_abc);
+ hb_face_destroy (face_ac);
+}
+
+static void
test_subset_glyf_with_components (void)
{
hb_face_t *face_components = hb_test_open_font_file ("fonts/Roboto-Regular.components.ttf");
hb_face_destroy (face);
}
+static void
+test_subset_glyf_retain_gids (void)
+{
+ hb_face_t *face_abc = hb_test_open_font_file ("fonts/Roboto-Regular.abc.ttf");
+ hb_face_t *face_ac = hb_test_open_font_file ("fonts/Roboto-Regular.ac.retaingids.ttf");
+
+ hb_set_t *codepoints = hb_set_create();
+ hb_face_t *face_abc_subset;
+ hb_set_add (codepoints, 97);
+ hb_set_add (codepoints, 99);
+
+ hb_subset_input_t *input = hb_subset_test_create_input (codepoints);
+ hb_subset_input_set_retain_gids (input, true);
+ face_abc_subset = hb_subset_test_create_subset (face_abc, input);
+ hb_set_destroy (codepoints);
+
+ hb_subset_test_check (face_ac, face_abc_subset, HB_TAG ('g','l','y','f'));
+ hb_subset_test_check (face_ac, face_abc_subset, HB_TAG ('l','o','c', 'a'));
+ check_maxp_num_glyphs(face_abc_subset, 4, true);
+
+ hb_face_destroy (face_abc_subset);
+ hb_face_destroy (face_abc);
+ hb_face_destroy (face_ac);
+}
+
// TODO(grieger): test for long loca generation.
int
hb_test_add (test_subset_glyf_noop);
hb_test_add (test_subset_glyf);
+ hb_test_add (test_subset_glyf_with_input_glyphs);
hb_test_add (test_subset_glyf_strip_hints_simple);
hb_test_add (test_subset_glyf_strip_hints_composite);
hb_test_add (test_subset_glyf_strip_hints_invalid);
hb_test_add (test_subset_glyf_with_components);
hb_test_add (test_subset_glyf_with_gsub);
hb_test_add (test_subset_glyf_without_gsub);
+ hb_test_add (test_subset_glyf_retain_gids);
return hb_test_run();
}
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/hb_shape_fuzzer-hb-shape-fuzzer.Po \
+ ./$(DEPDIR)/hb_shape_fuzzer-main.Po \
+ ./$(DEPDIR)/hb_subset_fuzzer-hb-subset-fuzzer.Po \
+ ./$(DEPDIR)/hb_subset_fuzzer-main.Po
am__mv = mv -f
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb_shape_fuzzer-hb-shape-fuzzer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb_shape_fuzzer-main.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb_subset_fuzzer-hb-subset-fuzzer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb_subset_fuzzer-main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb_shape_fuzzer-hb-shape-fuzzer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb_shape_fuzzer-main.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb_subset_fuzzer-hb-subset-fuzzer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb_subset_fuzzer-main.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
.cc.o:
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
mostlyclean-am
distclean: distclean-am
- -rm -rf ./$(DEPDIR)
+ -rm -f ./$(DEPDIR)/hb_shape_fuzzer-hb-shape-fuzzer.Po
+ -rm -f ./$(DEPDIR)/hb_shape_fuzzer-main.Po
+ -rm -f ./$(DEPDIR)/hb_subset_fuzzer-hb-subset-fuzzer.Po
+ -rm -f ./$(DEPDIR)/hb_subset_fuzzer-main.Po
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
installcheck-am:
maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
+ -rm -f ./$(DEPDIR)/hb_shape_fuzzer-hb-shape-fuzzer.Po
+ -rm -f ./$(DEPDIR)/hb_shape_fuzzer-main.Po
+ -rm -f ./$(DEPDIR)/hb_subset_fuzzer-hb-subset-fuzzer.Po
+ -rm -f ./$(DEPDIR)/hb_subset_fuzzer-main.Po
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
.MAKE: check-am install-am install-strip
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \
ctags ctags-am distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
const hb_codepoint_t text[],
int text_length,
bool drop_hints,
- bool drop_layout)
+ bool drop_layout,
+ bool retain_gids)
{
hb_subset_input_t *input = hb_subset_input_create_or_fail ();
hb_subset_input_set_drop_hints (input, drop_hints);
hb_subset_input_set_drop_layout (input, drop_layout);
+ hb_subset_input_set_retain_gids (input, retain_gids);
hb_set_t *codepoints = hb_subset_input_unicode_set (input);
for (int i = 0; i < text_length; i++)
static void
trySubset (hb_face_t *face,
const hb_codepoint_t text[],
- int text_length)
+ int text_length,
+ const uint8_t flags[1])
{
- for (unsigned int drop_hints = 0; drop_hints < 2; drop_hints++)
- {
- for (unsigned int drop_layout = 0; drop_layout < 2; drop_layout++)
- {
- trySubset (face, text, text_length,
- (bool) drop_hints, (bool) drop_layout);
- }
- }
+ bool drop_hints = flags[0] & (1 << 0);
+ bool drop_layout = flags[0] & (1 << 1);
+ bool retain_gids = flags[0] & (1 << 2);
+ trySubset (face, text, text_length,
+ drop_hints, drop_layout, retain_gids);
}
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
hb_face_collect_unicodes (face, output);
hb_set_destroy (output);
+ uint8_t flags[1] = {0};
const hb_codepoint_t text[] =
{
'A', 'B', 'C', 'D', 'E', 'X', 'Y', 'Z', '1', '2',
'3', '@', '_', '%', '&', ')', '*', '$', '!'
};
- trySubset (face, text, sizeof (text) / sizeof (hb_codepoint_t));
+ trySubset (face, text, sizeof (text) / sizeof (hb_codepoint_t), flags);
hb_codepoint_t text_from_data[16];
- if (size > sizeof(text_from_data)) {
+ if (size > sizeof(text_from_data) + sizeof(flags)) {
memcpy (text_from_data,
data + size - sizeof(text_from_data),
sizeof(text_from_data));
+
+ memcpy (flags,
+ data + size - sizeof(text_from_data) - sizeof(flags),
+ sizeof(flags));
unsigned int text_size = sizeof (text_from_data) / sizeof (hb_codepoint_t);
- trySubset (face, text_from_data, text_size);
+
+ trySubset (face, text_from_data, text_size, flags);
}
hb_face_destroy (face);
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- distdir
+ distdir distdir-am
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- distdir
+ distdir distdir-am
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(srcdir)/Makefile.sources $(am__empty):
fi; \
$$success || exit 1
-check-TESTS:
+check-TESTS:
@list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TESTS_LOG_DRIVER_FLAGS) $(TESTS_LOG_DRIVER_FLAGS) -- $(TESTS_LOG_COMPILE) \
@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(srcdir)/Makefile.sources $(am__empty):
fi; \
$$success || exit 1
-check-TESTS:
+check-TESTS:
@list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TESTS_LOG_DRIVER_FLAGS) $(TESTS_LOG_DRIVER_FLAGS) -- $(TESTS_LOG_COMPILE) \
@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
../fonts/1735326da89f0818cd8c51a0600e9789812c0f94.ttf::U+0A51:[uni25CC=0+1044|udaatguru=0+0]
../fonts/1735326da89f0818cd8c51a0600e9789812c0f94.ttf::U+25CC,U+0A51:[uni25CC=0+1044|udaatguru=0+0]
../fonts/81c368a33816fb20e9f647e8f24e2180f4720263.ttf:--no-glyph-names:U+0C80,U+0C82:[1=0+502|2=0+502]
+../fonts/f75c4b05a0a4d67c1a808081ae3d74a9c66509e8.ttf::U+0A20,U+0A75,U+0A47:[tthaguru=0+1352|yakashguru=0@-90,0+0|eematraguru=0@-411,0+0]
+../fonts/f75c4b05a0a4d67c1a808081ae3d74a9c66509e8.ttf::U+0A20,U+0A75,U+0A42:[tthaguru=0+1352|yakashuuguru=0+0]
../fonts/3998336402905b8be8301ef7f47cf7e050cbb1bd.ttf::U+17A0,U+17D2,U+1782,U+17D2,U+179F,U+17CA,U+17C0:[uni17C1=0+288|uni17A0=0+928|uni17D21782=0@20,-26+0|uni17D2179F.low=0+302|uni17CA=0@-4,30+0|uni17C0.right1.high=0+288]
../fonts/3998336402905b8be8301ef7f47cf7e050cbb1bd.ttf::U+17A0,U+17D2,U+179A,U+17D2,U+179C,U+1784,U+17D2,U+1780:[uni17D2179A=0+287|uni17A0=0+928|uni17D2179C=0@20,-26+0|uni1784=5+635|uni17D21780=5@0,-26+0]
../fonts/3998336402905b8be8301ef7f47cf7e050cbb1bd.ttf::U+17A0,U+17D2,U+179A,U+17D2,U+179C,U+17B6,U+17C6,U+1784:[uni17D2179A=0+287|uni17A017B6=0+1216|uni17D2179C=0@-268,-26+0|uni17C6=0@47,-29+0|uni1784=7+635]
+../fonts/ad01ab2ea1cb1a4d3a2783e2675112ef11ae6404.ttf::U+17D2,U+17D2:[uni25CC=0+635|uni17D2=0+0|uni25CC=0+635|uni17D2=0+0]
/System/Library/Fonts/SFNSDisplay.ttf@c8948f464ff822a5f9bbf2e12d0e4e32268815aa:--font-ptem 9 --font-funcs ot:U+0054,U+0065,U+0020,U+0041,U+0056,U+0020,U+0054,U+0072,U+0020,U+0056,U+0061,U+0020,U+0072,U+0054,U+0020,U+0065,U+0054,U+0020,U+0054,U+0064:[gid282=0@46,0+1147|gid658=1@-89,0+1006|gid3=2@46,0+512|gid4=3@46,0+1319|gid332=4@-19,0+1319|gid3=5@46,0+512|gid282=6@46,0+1167|gid813=7@-69,0+608|gid3=8@46,0+512|gid332=9@46,0+1309|gid572=10@-29,0+1045|gid3=11@46,0+512|gid813=12@46,0+638|gid282=13@-39,0+1197|gid3=14@46,0+512|gid658=15@46,0+1006|gid282=16@-89,0+1147|gid3=17@46,0+512|gid282=18@46,0+1147|gid649=19@-89,0+1091]
/System/Library/Fonts/Apple Color Emoji.ttc@2e09b1f3d42c3821cc6c4ac5b6ce16237ab0d496:--remove-default-ignorables --font-funcs ot:U+1F468,U+200D,U+1F469,U+200D,U+1F467,U+200D,U+1F466:[u1F46A.MWGB=0+800]
/Library/Fonts/Zapfino.ttf@99a1e15163c3e9567d5b1019c45e9254dae63b08:--font-funcs ot:U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+006F:[Z=0+416|a=1@-21,0+264|p_f=2+433|i=4+181|n=5+261|Z=6+416|a=7@-21,0+264|p_f=8+433|i=10+181|n=11+261|Z=12+416|a=13@-21,0+264|p_f=14+433|i=16+181|n=17+261|Z=18+416|a=19@-21,0+264|p_f=20+433|i=22+181|n=23+261|Z=24+416|a=25@-21,0+264|p_f=26+433|i=28+181|n=29+261|Z=30+416|a=31@-21,0+264|p_f=32+433|i=34+181|n=35+261|Z=36+416|a=37@-21,0+264|p_f=38+433|i=40+181|n=41+261|Z=42+416|a=43@-21,0+264|p_f=44+433|i=46+181|n=47+261|Z=48+416|a=49@-21,0+264|p_f=50+433|i=52+181|n=53+261|Z=54+416|a=55@-21,0+264|p_f=56+433|i=58+181|n=59+261|Z=60+416|a=61@-21,0+264|p_f=62+433|i=64+181|n=65+261|Z_a_p_f_i_n_o=66+2333]
+
+# 10.14.2 https://gist.github.com/ebraminio/4b731a82f11a662b2164622ebb93086a
+/System/Library/Fonts/Helvetica.ttc@992d29a0fa4ed91773457c29b661e94843619cde:--font-funcs ot:U+006D,U+0300:[m=0+1706|gravecmb=0@-284,10+0]
+/System/Library/Fonts/LucidaGrande.ttc@63ba1b1de4709bd832ca76bd62368dd99fc34269:--font-funcs ot:U+006D,U+0300:[mgrave=0+1912]
+/System/Library/Fonts/Times.ttc@ebb050e4fcaaebe9992efbc7b5660b60ba18b518:--font-funcs ot:U+0066,U+0069:[fi=0+1139]
+/Library/Fonts/Khmer MN.ttc@37687fe0bd2548e08e29c92a30e476367ae6356b:--font-funcs ot:U+17A2,U+1780,U+17D2,U+179F,U+179A,U+1781,U+17D2,U+1798,U+17C2,U+179A:[km_qa=0+1230|km_ka=1+1230|km_sa.sub=1+620|km_ro=4+712|km_vs_ae=5+726|km_kha=5+1230|km_mo.sub=5+0|km_ro=9+712]
+/Library/Fonts/Tamil MN.ttc@e1df5e056be08937fd65990efbafff0814c03677:--font-funcs ot:U+0BA4,U+0BCA,U+0B95,U+0BC1,U+0B95,U+0BCD,U+0B95,U+0BAA,U+0BCD,U+0BAA,U+0B9F,U+0BCD,U+0B9F,U+0BC1:[tgm_e=0+1702|tgc_ta=0+1598|tgm_aa=0+1149|tgc_ku=2+1962|tgc_k=4+1592|tgc_ka=6+1592|tgc_p=7+1370|tgc_pa=9+1370|tgc_tt=10+1596|tgc_ttu=12+1833]
+/System/Library/Fonts/Times.ttc@ebb050e4fcaaebe9992efbc7b5660b60ba18b518:--font-funcs ot:U+0041,U+0066,U+0300,U+0066,U+0069,U+005A:[A=0+1479|f=1+682|gravecmb=1@-551,588+0|fi=3+1139|Z=5+1251]
+/System/Library/Fonts/LucidaGrande.ttc@63ba1b1de4709bd832ca76bd62368dd99fc34269:--font-funcs ot:U+05E1,U+05B0:[shevahebrew=0@51,0+0|samekhhebrew=0+1361]
+/Library/Fonts/Apple Chancery.ttf@4ec49cba0d4e68d025ada0498c4df1b2f9fd57ac:--font-funcs ot:U+0054,U+0068,U+0020,U+0074,U+0068,U+0020,U+006C,U+006C,U+0020,U+0074,U+0065,U+0020,U+0074,U+006F,U+0020,U+0074,U+0072,U+0020,U+0066,U+0072,U+0020,U+0066,U+0075,U+0020,U+0066,U+006A:[T_h=0+2308|space=2+569|t_h=3+1687|space=5+569|l_l=6+1108|space=8+569|t_e=9+1408|space=11+569|t_o=12+1531|space=14+569|t_r=15+1385|space=17+569|f_r=18+1432|space=20+569|f_u=21+1733|space=23+569|f_j=24+1098]
+/Library/Fonts/Apple Chancery.ttf@4ec49cba0d4e68d025ada0498c4df1b2f9fd57ac:--font-funcs ot:U+0054,U+0065,U+0020,U+0041,U+0056,U+0020,U+0054,U+0072,U+0020,U+0056,U+0061,U+0020,U+0072,U+0054,U+0020,U+0065,U+0054,U+0020,U+0054,U+0064:[T=0+1497|e=1@-62,0+699|space=2+569|A=3+1431|V=4@-37,0+1377|space=5+569|T=6+1510|r=7@-50,0+803|space=8+569|V=9+1376|a=10@-37,0+1014|space=11+569|r=12+853|T=13+1560|space=14+569|e=15+761|T=16+1560|space=17+569|T=18+1515|d=19@-45,0+1006]
+/System/Library/Fonts/GeezaPro.ttc@ab26ea45dcaa5e1c5a958e42af10e10d330e7334:--font-funcs ot:U+0627,U+0644,U+0623,U+064E,U+0628,U+0652,U+062C,U+064E,U+062F,U+0650,U+064A,U+064E,U+0651,U+0629,U+0640,U+0627,U+0644,U+0639,U+064E,U+0631,U+064E,U+0628,U+0650,U+064A,U+064E,U+0651,U+0629:[u0629.final.tehMarbuta=26+713|u064e_u0651.shaddaFatha=23@0,-200+0|u064a.medial.yeh=23+656|u0650.kasra=21@80,290+80|u0628.initial.beh=21@-80,0+576|u064e.fatha=19@200,-570+200|u0631.final.reh=19@-200,0+702|u064e.fatha=17@200,-200+200|u0639.medial.ain=17@-200,0+738|u0644.initial.lam=16+515|u0627.final.alef=15+647|u0640.tatweel=14+449|u0629.final.tehMarbuta=13+713|u064e_u0651.shaddaFatha=10@0,-200+0|u064a.initial.yeh=10+656|u0650.kasra=8@80,570+80|u062f.final.dal=8@-80,0+822|u064e.fatha=6@290,-160+290|u062c.medial.jeem=6@-290,0+1069|u0652.sukun=4@0,-200+0|u0628.initial.beh=4+656|u064e.fatha=1@-252,120+-252|u0644_u0623.isolated.lamHamzaOnAlef=1@120,0+1282|u0627.alef=0+647]
+/System/Library/Fonts/GeezaPro.ttc@ab26ea45dcaa5e1c5a958e42af10e10d330e7334:--font-funcs ot:U+0628,U+064A,U+064E,U+0651,U+0629:[u0629.final.tehMarbuta=4+713|u064e_u0651.shaddaFatha=1@0,-200+0|u064a.medial.yeh=1+656|u0628.initial.beh=0+656]
+/System/Library/Fonts/GeezaPro.ttc@ab26ea45dcaa5e1c5a958e42af10e10d330e7334:--font-funcs ot:U+0631,U+0628:[u0628.beh=1+1415|u0631.reh=0@-202,0+700]
+/System/Library/Fonts/GeezaPro.ttc@ab26ea45dcaa5e1c5a958e42af10e10d330e7334:--font-funcs ot:U+0628,U+064F:[u064f.damma=0@250,-250+250|u0628.beh=0@-250,0+1165]
+/System/Library/Fonts/SFNSDisplay.ttf@6e9677c443f6583228a63fd147663cfc635924d9:--font-funcs ot:U+0054,U+0065,U+0020,U+0041,U+0056,U+0020,U+0054,U+0072,U+0020,U+0056,U+0061,U+0020,U+0072,U+0054,U+0020,U+0065,U+0054,U+0020,U+0054,U+0064:[gid283=0+1055|gid659=1@-135,0+914|gid3=2+420|gid4=3+1227|gid333=4@-65,0+1227|gid3=5+420|gid283=6+1075|gid815=7@-115,0+516|gid3=8+420|gid333=9+1217|gid573=10@-75,0+953|gid3=11+420|gid815=12+546|gid283=13@-85,0+1105|gid3=14+420|gid659=15+914|gid283=16@-135,0+1055|gid3=17+420|gid283=18+1055|gid650=19@-135,0+999]
+/System/Library/Fonts/SFNSDisplay.ttf@6e9677c443f6583228a63fd147663cfc635924d9:--font-ptem 9 --font-funcs ot:U+0054,U+0065,U+0020,U+0041,U+0056,U+0020,U+0054,U+0072,U+0020,U+0056,U+0061,U+0020,U+0072,U+0054,U+0020,U+0065,U+0054,U+0020,U+0054,U+0064:[gid283=0@46,0+1147|gid659=1@-89,0+1006|gid3=2@46,0+512|gid4=3@46,0+1319|gid333=4@-19,0+1319|gid3=5@46,0+512|gid283=6@46,0+1167|gid815=7@-69,0+608|gid3=8@46,0+512|gid333=9@46,0+1309|gid573=10@-29,0+1045|gid3=11@46,0+512|gid815=12@46,0+638|gid283=13@-39,0+1197|gid3=14@46,0+512|gid659=15@46,0+1006|gid283=16@-89,0+1147|gid3=17@46,0+512|gid283=18@46,0+1147|gid650=19@-89,0+1091]
+/System/Library/Fonts/Apple Color Emoji.ttc@60f77161021b1b87e99c3690e1a9b56341cf8792:--remove-default-ignorables --font-funcs ot:U+1F468,U+200D,U+1F469,U+200D,U+1F467,U+200D,U+1F466:[u1F46A.MWGB=0+800]
+/Library/Fonts/Zapfino.ttf@99a1e15163c3e9567d5b1019c45e9254dae63b08:--font-funcs ot:U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+006F:[Z=0+416|a=1@-21,0+264|p_f=2+433|i=4+181|n=5+261|Z=6+416|a=7@-21,0+264|p_f=8+433|i=10+181|n=11+261|Z=12+416|a=13@-21,0+264|p_f=14+433|i=16+181|n=17+261|Z=18+416|a=19@-21,0+264|p_f=20+433|i=22+181|n=23+261|Z=24+416|a=25@-21,0+264|p_f=26+433|i=28+181|n=29+261|Z=30+416|a=31@-21,0+264|p_f=32+433|i=34+181|n=35+261|Z=36+416|a=37@-21,0+264|p_f=38+433|i=40+181|n=41+261|Z=42+416|a=43@-21,0+264|p_f=44+433|i=46+181|n=47+261|Z=48+416|a=49@-21,0+264|p_f=50+433|i=52+181|n=53+261|Z=54+416|a=55@-21,0+264|p_f=56+433|i=58+181|n=59+261|Z=60+416|a=61@-21,0+264|p_f=62+433|i=64+181|n=65+261|Z_a_p_f_i_n_o=66+2333]
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(srcdir)/Makefile.sources $(am__empty):
fi; \
$$success || exit 1
-check-TESTS:
+check-TESTS:
@list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TESTS_LOG_DRIVER_FLAGS) $(TESTS_LOG_DRIVER_FLAGS) -- $(TESTS_LOG_COMPILE) \
@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- distdir
+ distdir distdir-am
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- check recheck distdir
+ check recheck distdir distdir-am
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(srcdir)/Makefile.sources $(am__empty):
fi; \
$$success || exit 1
-check-TESTS:
+check-TESTS:
@list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TESTS_LOG_DRIVER_FLAGS) $(TESTS_LOG_DRIVER_FLAGS) -- $(TESTS_LOG_COMPILE) \
@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
--- /dev/null
+--desubroutinize
+--retain-gids
--- /dev/null
+--no-hinting
+--desubroutinize
+--retain-gids
--- /dev/null
+--no-hinting
+--retain-gids
--- /dev/null
+--retain-gids
PROFILES:
default.txt
drop-hints.txt
+drop-hints-retain-gids.txt
+retain-gids.txt
SUBSETS:
abc
FONTS:
Roboto-Regular.ttf
-SourceSansPro-Regular.otf
PROFILES:
default.txt
FONTS:
Mplus1p-Regular.ttf
-SourceHanSans-Regular.otf
PROFILES:
default.txt
font_base_name_parts = os.path.splitext(font_base_name)
return font_base_name_parts[1]
- def applicable(self):
- return self.profile_path.find("desubroutinize") < 0 or self.get_font_extension() == "otf"
-
# A group of tests to perform on the subsetter. Each test
# Identifies a font a subsetting profile, and a subset to be cut.
class SubsetTestSuite:
for profile in self.profiles:
profile = os.path.join(self._base_path(), "profiles", profile)
for subset in self.subsets:
- test = Test(font, profile, subset)
- if test.applicable():
- yield test
+ yield Test(font, profile, subset)
def _base_path(self):
return os.path.dirname(os.path.dirname(self.test_path))
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/ansi-print.Po \
+ ./$(DEPDIR)/hb-ot-shape-closure.Po ./$(DEPDIR)/hb-shape.Po \
+ ./$(DEPDIR)/hb-subset.Po ./$(DEPDIR)/hb-view.Po \
+ ./$(DEPDIR)/helper-cairo-ansi.Po ./$(DEPDIR)/helper-cairo.Po \
+ ./$(DEPDIR)/options.Po ./$(DEPDIR)/view-cairo.Po
am__mv = mv -f
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(srcdir)/Makefile.sources $(am__empty):
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ansi-print.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-ot-shape-closure.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-shape.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-subset.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-view.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helper-cairo-ansi.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helper-cairo.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/options.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/view-cairo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ansi-print.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-ot-shape-closure.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-shape.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-subset.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-view.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helper-cairo-ansi.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helper-cairo.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/options.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/view-cairo.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
.cc.o:
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
- -rm -rf ./$(DEPDIR)
+ -rm -f ./$(DEPDIR)/ansi-print.Po
+ -rm -f ./$(DEPDIR)/hb-ot-shape-closure.Po
+ -rm -f ./$(DEPDIR)/hb-shape.Po
+ -rm -f ./$(DEPDIR)/hb-subset.Po
+ -rm -f ./$(DEPDIR)/hb-view.Po
+ -rm -f ./$(DEPDIR)/helper-cairo-ansi.Po
+ -rm -f ./$(DEPDIR)/helper-cairo.Po
+ -rm -f ./$(DEPDIR)/options.Po
+ -rm -f ./$(DEPDIR)/view-cairo.Po
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
installcheck-am: installcheck-binPROGRAMS
maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
+ -rm -f ./$(DEPDIR)/ansi-print.Po
+ -rm -f ./$(DEPDIR)/hb-ot-shape-closure.Po
+ -rm -f ./$(DEPDIR)/hb-shape.Po
+ -rm -f ./$(DEPDIR)/hb-subset.Po
+ -rm -f ./$(DEPDIR)/hb-view.Po
+ -rm -f ./$(DEPDIR)/helper-cairo-ansi.Po
+ -rm -f ./$(DEPDIR)/helper-cairo.Po
+ -rm -f ./$(DEPDIR)/options.Po
+ -rm -f ./$(DEPDIR)/view-cairo.Po
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
ctags ctags-am distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
{
hb_subset_input_set_drop_layout (input, !subset_options.keep_layout);
hb_subset_input_set_drop_hints (input, subset_options.drop_hints);
+ hb_subset_input_set_retain_gids (input, subset_options.retain_gids);
hb_subset_input_set_desubroutinize (input, subset_options.desubroutinize);
hb_face_t *face = hb_font_get_face (font);
" Features can be enabled or disabled, either globally or limited to\n"
" specific character ranges. The format for specifying feature settings\n"
" follows. All valid CSS font-feature-settings values other than 'normal'\n"
- " and 'inherited' are also accepted, though, not documented below.\n"
+ " and the global values are also accepted, though not documented below.\n"
+ " CSS string escapes are not supported."
"\n"
" The range indices refer to the positions between Unicode characters,\n"
" unless the --utf8-clusters is provided, in which case range indices\n"
{
{"layout", 0, 0, G_OPTION_ARG_NONE, &this->keep_layout, "Keep OpenType Layout tables", nullptr},
{"no-hinting", 0, 0, G_OPTION_ARG_NONE, &this->drop_hints, "Whether to drop hints", nullptr},
+ {"retain-gids", 0, 0, G_OPTION_ARG_NONE, &this->retain_gids, "If set don't renumber glyph ids in the subset.", nullptr},
{"desubroutinize", 0, 0, G_OPTION_ARG_NONE, &this->desubroutinize, "Remove CFF/CFF2 use of subroutines", nullptr},
{nullptr}
{
keep_layout = false;
drop_hints = false;
+ retain_gids = false;
desubroutinize = false;
add_options (parser);
hb_bool_t keep_layout;
hb_bool_t drop_hints;
+ hb_bool_t retain_gids;
hb_bool_t desubroutinize;
};