Behdad Esfahbod [Sun, 22 Oct 2017 21:06:00 +0000 (17:06 -0400)]
Behdad Esfahbod [Sun, 22 Oct 2017 19:54:50 +0000 (15:54 -0400)]
[docs] Deprecate hb_set_invert()
ebraminio [Sat, 21 Oct 2017 06:49:55 +0000 (10:19 +0330)]
Merge pull request #572 from fanc999/master.msvc
builds: Support HarfBuzz-GObject and introspection in CMake builds
Behdad Esfahbod [Fri, 20 Oct 2017 17:57:43 +0000 (13:57 -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]
Behdad Esfahbod [Thu, 19 Oct 2017 18:39:52 +0000 (11:39 -0700)]
Remove FLAG_SAFE()
No flag is safe, over time... See previous commit.
Behdad Esfahbod [Thu, 19 Oct 2017 18:35:51 +0000 (11:35 -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
Chun-wei Fan [Thu, 19 Oct 2017 10:36:32 +0000 (18:36 +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
(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
g-ir-scanner), with the same architecture. PKG_CONFIG_PATH and PATH
must be set correctly if $(PREFIX)\bin and/or $(PREFIX)\lib\pkgconfig
are not in the standard PATH and PKG_CONFIG_PATH, which is actually
in-line with the *NIX builds.
Chun-wei Fan [Wed, 18 Oct 2017 07:43:57 +0000 (15:43 +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
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.
-Ensure that things do work in the Visual Studio IDE builds.
Chun-wei Fan [Wed, 18 Oct 2017 14:27:28 +0000 (22:27 +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.
Behdad Esfahbod [Tue, 17 Oct 2017 23:32:12 +0000 (16:32 -0700)]
[bsearch] Micro-optimization
Fredrik Roubert [Tue, 17 Oct 2017 22:06:31 +0000 (15:06 -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.
Behdad Esfahbod [Tue, 17 Oct 2017 19:00:34 +0000 (12:00 -0700)]
Update docs symbols
Behdad Esfahbod [Tue, 17 Oct 2017 18:16:36 +0000 (11:16 -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]
Behdad Esfahbod [Tue, 17 Oct 2017 18:14:48 +0000 (11:14 -0700)]
[coretext] Fix build
error: static_assert expression is not an integral constant expression
Behdad Esfahbod [Mon, 16 Oct 2017 05:33:32 +0000 (01:33 -0400)]
[set] Fix merge logic
Behdad Esfahbod [Sun, 15 Oct 2017 22:21:35 +0000 (18:21 -0400)]
Ouch.
Behdad Esfahbod [Sun, 15 Oct 2017 22:20:25 +0000 (18:20 -0400)]
[set] Disable vectorization
Fixes clang "non-const reference cannot bind to vector element" error.
Behdad Esfahbod [Sun, 15 Oct 2017 21:58:58 +0000 (17:58 -0400)]
Fix bots
Behdad Esfahbod [Sun, 15 Oct 2017 21:01:31 +0000 (17:01 -0400)]
[set] Remove TODO items not worth pursuing
Behdad Esfahbod [Sun, 15 Oct 2017 20:56:05 +0000 (16:56 -0400)]
[set] Speed up intersects()
Behdad Esfahbod [Sun, 15 Oct 2017 20:38:29 +0000 (16:38 -0400)]
Simplify hb_prealloced_array_t initialization
Behdad Esfahbod [Sun, 15 Oct 2017 20:21:03 +0000 (16:21 -0400)]
Properly detect vector_size attribute and use fallback otherwise
Behdad Esfahbod [Sun, 15 Oct 2017 20:10:35 +0000 (16:10 -0400)]
[set] Add fallback implementation of int-vector type
Behdad Esfahbod [Sun, 15 Oct 2017 14:53:09 +0000 (16:53 +0200)]
Faster hb_set_t
Fixes https://github.com/behdad/harfbuzz/pull/23
Behdad Esfahbod [Sun, 15 Oct 2017 14:15:24 +0000 (16:15 +0200)]
Deprecate hb_set_invert()
Behdad Esfahbod [Sun, 15 Oct 2017 14:15:06 +0000 (16:15 +0200)]
Add bfind() to prealloaced_array_t
Behdad Esfahbod [Sun, 15 Oct 2017 14:00:22 +0000 (16:00 +0200)]
Inline another bsearch()
Behdad Esfahbod [Sun, 15 Oct 2017 14:00:09 +0000 (16:00 +0200)]
Add popcount for 64bit ints
Behdad Esfahbod [Sun, 15 Oct 2017 12:10:34 +0000 (14:10 +0200)]
Remove unused hb_cache_t
Behdad Esfahbod [Sun, 15 Oct 2017 12:09:46 +0000 (14:09 +0200)]
Remove unused hb_frozen_set_t
Behdad Esfahbod [Sun, 15 Oct 2017 12:09:05 +0000 (14:09 +0200)]
Move set-digests into their own header file
Behdad Esfahbod [Sun, 15 Oct 2017 12:02:58 +0000 (14:02 +0200)]
Try fixing AppVeyor bots
Behdad Esfahbod [Sun, 15 Oct 2017 10:13:19 +0000 (12:13 +0200)]
Fix warnings
Behdad Esfahbod [Sun, 15 Oct 2017 10:12:10 +0000 (12:12 +0200)]
Use C++11
Behdad Esfahbod [Sun, 15 Oct 2017 10:11:08 +0000 (12:11 +0200)]
Use nullptr instead of NULL
Behdad Esfahbod [Sun, 15 Oct 2017 10:04:16 +0000 (12:04 +0200)]
Don't use NULL in public headers
Behdad Esfahbod [Sun, 15 Oct 2017 10:02:00 +0000 (12:02 +0200)]
Use static_assert instead of custom ASSERT_STATIC
Behdad Esfahbod [Sun, 15 Oct 2017 09:24:35 +0000 (11:24 +0200)]
Add polyfill for static_assert and nullptr
Also fix hb_assert_constant_t.
Behdad Esfahbod [Sun, 15 Oct 2017 08:55:32 +0000 (10:55 +0200)]
[util] Include hb-private.hh
Simplifies compatibility issues by centralizing all boilerplate code
in hb-private.hh.
Behdad Esfahbod [Sun, 15 Oct 2017 08:48:19 +0000 (10:48 +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
Behdad Esfahbod [Fri, 13 Oct 2017 14:30:33 +0000 (16:30 +0200)]
1.6.0
Behdad Esfahbod [Fri, 13 Oct 2017 09:01:55 +0000 (11:01 +0200)]
[ucdn] Fix compiler warnings
Behdad Esfahbod [Fri, 13 Oct 2017 08:30:19 +0000 (10:30 +0200)]
[coretext] Fix build
Behdad Esfahbod [Fri, 13 Oct 2017 08:21:07 +0000 (10:21 +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.
Behdad Esfahbod [Thu, 12 Oct 2017 12:08:58 +0000 (14:08 +0200)]
Merge remote-tracking branch 'origin/master'
Behdad Esfahbod [Thu, 12 Oct 2017 12:07:37 +0000 (14:07 +0200)]
[indic] Special-case Kannada Ra,H,ZWJ sequence
Fixes https://github.com/behdad/harfbuzz/issues/435
n8willis [Thu, 12 Oct 2017 11:48:48 +0000 (12:48 +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.
ebraminio [Thu, 12 Oct 2017 11:45:49 +0000 (15:15 +0330)]
Minor BUILD.md fix (#565)
Behdad Esfahbod [Thu, 12 Oct 2017 10:01:48 +0000 (12:01 +0200)]
[coretext] Use fabs() to silence compiler warning
Dominik Röttsches [Thu, 12 Oct 2017 09:49:37 +0000 (11:49 +0200)]
[coretext] Activate tracking for system fonts
Another attempt at fully fixing
https://github.com/behdad/harfbuzz/issues/360
Khaled Hosny [Thu, 12 Oct 2017 09:05:08 +0000 (12:05 +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
that make use of CMake.
Fixes https://github.com/behdad/harfbuzz/issues/518
Behdad Esfahbod [Thu, 12 Oct 2017 08:46:09 +0000 (10:46 +0200)]
[coretext] Use fabsf() instead of abs()
Fixes bots.
Link libharfbuzz.so with -lm. Surprising that we survived without
it so far!
ebraminio [Thu, 12 Oct 2017 08:41:47 +0000 (12:11 +0330)]
Remove nmake port of harfbuzz (#562)
Behdad Esfahbod [Thu, 12 Oct 2017 08:33:16 +0000 (10:33 +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
hb_ft_font_create().
Fixes https://github.com/behdad/harfbuzz/issues/559
New API:
hb_ft_font_changed()
Behdad Esfahbod [Wed, 11 Oct 2017 15:22:44 +0000 (17:22 +0200)]
Add hb_face_get_table_tags()
New API:
hb_face_get_table_tags()
Fixes https://github.com/behdad/harfbuzz/issues/560
Behdad Esfahbod [Wed, 11 Oct 2017 13:51:31 +0000 (15:51 +0200)]
Remove cast of functions to (hb_destroy_func_t)
Fixes https://github.com/behdad/harfbuzz/issues/474
Behdad Esfahbod [Wed, 11 Oct 2017 13:38:21 +0000 (15:38 +0200)]
[coretext] Minor
Behdad Esfahbod [Wed, 11 Oct 2017 13:37:50 +0000 (15:37 +0200)]
Change ptem API to make 0 mean unset
Behdad Esfahbod [Wed, 11 Oct 2017 13:29:53 +0000 (15:29 +0200)]
[coretext] Minor
Behdad Esfahbod [Wed, 11 Oct 2017 13:29:22 +0000 (15:29 +0200)]
[coretext] Adjust font size check for 0
Behdad Esfahbod [Wed, 11 Oct 2017 13:24:22 +0000 (15:24 +0200)]
Correctly initialize ptem
Behdad Esfahbod [Wed, 11 Oct 2017 13:02:48 +0000 (15:02 +0200)]
[coretext-aat] Also pass through CoreText if font has kerx table
SFNSText has kerx table which apparently is applied.
Behdad Esfahbod [Wed, 11 Oct 2017 12:09:30 +0000 (14:09 +0200)]
[coretext] Change default point size to 12
Behdad Esfahbod [Wed, 11 Oct 2017 11:35:32 +0000 (13:35 +0200)]
Merge branch 'coretext-optical-sizing'
Should fix https://github.com/behdad/harfbuzz/issues/360
Dominik Röttsches [Wed, 11 Oct 2017 11:32:38 +0000 (13:32 +0200)]
[coretext] Recreate CTFont if pt size changed
Attempt at fixing #360
Dominik Röttsches [Wed, 11 Oct 2017 11:24:39 +0000 (13:24 +0200)]
[coretext] Fix build
Behdad Esfahbod [Wed, 11 Oct 2017 11:17:46 +0000 (13:17 +0200)]
[coretext] Another try
Behdad Esfahbod [Wed, 11 Oct 2017 11:05:59 +0000 (13:05 +0200)]
[coretext] Move CT_Font to font data
Towards implementing optical sizing. Untested; won't compile.
https://github.com/behdad/harfbuzz/issues/360
Behdad Esfahbod [Wed, 11 Oct 2017 10:51:25 +0000 (12:51 +0200)]
[coretext] Move font size to a macro
Behdad Esfahbod [Wed, 11 Oct 2017 10:43:46 +0000 (12:43 +0200)]
Infrastructure for creating CTFont with correct font size
https://github.com/behdad/harfbuzz/issues/360
Behdad Esfahbod [Wed, 11 Oct 2017 10:28:06 +0000 (12:28 +0200)]
[coretext] Change default font size from 36 to 18
Behdad Esfahbod [Wed, 11 Oct 2017 10:23:35 +0000 (12:23 +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
Behdad Esfahbod [Wed, 11 Oct 2017 09:47:47 +0000 (11:47 +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
Behdad Esfahbod [Wed, 11 Oct 2017 09:34:53 +0000 (11:34 +0200)]
Fix TODO item
Behdad Esfahbod [Sat, 7 Oct 2017 11:17:33 +0000 (13:17 +0200)]
[arabic] Fix cluster merging
Behdad Esfahbod [Sat, 7 Oct 2017 10:56:53 +0000 (12:56 +0200)]
Add check for HB_EXTERNs
https://github.com/behdad/harfbuzz/pull/555
fanc999 [Sat, 7 Oct 2017 10:57:14 +0000 (18:57 +0800)]
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
builds.
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
PERL one-liners as we did before.
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.
Behdad Esfahbod [Wed, 4 Oct 2017 14:59:22 +0000 (16:59 +0200)]
[ot] Remove 'mal' and 'gle' lang tags
Fixes https://github.com/behdad/harfbuzz/issues/477
Behdad Esfahbod [Wed, 4 Oct 2017 13:06:48 +0000 (15:06 +0200)]
Improve performance of ligature component matching
This O(N^2) was introduced in
8b2c94c43fd335b944d5e5487265706b8e0f9041.
Make it O(N).
Behdad Esfahbod [Wed, 4 Oct 2017 12:47:10 +0000 (14:47 +0200)]
[arabic] Implement Unicode Arabic Mark Ordering Algorithm UTR#53
Fixes https://github.com/behdad/harfbuzz/issues/509
Behdad Esfahbod [Wed, 4 Oct 2017 11:37:08 +0000 (13:37 +0200)]
Add info_cc() convenience macro
Behdad Esfahbod [Wed, 4 Oct 2017 11:20:33 +0000 (13:20 +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.
Behdad Esfahbod [Wed, 4 Oct 2017 11:07:08 +0000 (13:07 +0200)]
Minor
Behdad Esfahbod [Wed, 4 Oct 2017 11:06:51 +0000 (13:06 +0200)]
Revert "Treat HAMZA ABOVE similar to SHADD for sorting purposes"
This reverts commit
5a330575768f5a213072230b9ec8faabac9c5737.
Proper fix coming soon.
Behdad Esfahbod [Wed, 4 Oct 2017 09:33:47 +0000 (11:33 +0200)]
Shorthand format controls should not be ignored
Fixes https://github.com/behdad/harfbuzz/issues/503
Behdad Esfahbod [Wed, 4 Oct 2017 09:28:04 +0000 (11:28 +0200)]
Add Chinantec language tags
Fixes https://github.com/behdad/harfbuzz/issues/516
Behdad Esfahbod [Tue, 3 Oct 2017 15:22:43 +0000 (17:22 +0200)]
Fix GPOS v_origin ordering
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
Behdad Esfahbod [Tue, 3 Oct 2017 14:00:18 +0000 (16:00 +0200)]
[indic] Fix shaping of U+0AFB GUJARATI SIGN SHADDA
Fixes https://github.com/behdad/harfbuzz/issues/552
Behdad Esfahbod [Tue, 3 Oct 2017 13:20:07 +0000 (15:20 +0200)]
[indic] Implement Consonent_With_Stacker
Fixes https://github.com/behdad/harfbuzz/issues/528
Behdad Esfahbod [Tue, 3 Oct 2017 12:57:14 +0000 (14:57 +0200)]
[use] Implement Consonant_With_Stacker
Related to https://github.com/behdad/harfbuzz/issues/528
David Corbett [Tue, 3 Oct 2017 12:07:02 +0000 (08:07 -0400)]
Test Consonant_With_Stacker in Kannada (#530)
Behdad Esfahbod [Tue, 3 Oct 2017 11:46:25 +0000 (13:46 +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
Behdad Esfahbod [Tue, 3 Oct 2017 11:25:44 +0000 (13:25 +0200)]
Behdad Esfahbod [Tue, 3 Oct 2017 11:23:31 +0000 (13:23 +0200)]
Minor
Behdad Esfahbod [Tue, 3 Oct 2017 11:22:07 +0000 (13:22 +0200)]
Make bots happy
Fixes https://github.com/behdad/harfbuzz/issues/551
Behdad Esfahbod [Tue, 3 Oct 2017 11:14:17 +0000 (13:14 +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.
Khaled Hosny [Mon, 2 Oct 2017 20:36:14 +0000 (22:36 +0200)]
Print test-suite.log when CI builds fail
Behdad Esfahbod [Mon, 2 Oct 2017 18:28:56 +0000 (20:28 +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%)
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
wrong.
Behdad Esfahbod [Mon, 2 Oct 2017 18:02:45 +0000 (20:02 +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
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
Behdad Esfahbod [Mon, 2 Oct 2017 16:56:10 +0000 (18:56 +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