Behdad Esfahbod [Fri, 6 May 2016 14:24:39 +0000 (15:24 +0100)]
Minor
Behdad Esfahbod [Fri, 6 May 2016 10:50:02 +0000 (11:50 +0100)]
[indic] Remove data for scripts that don't go thorough this shaper
Behdad Esfahbod [Fri, 6 May 2016 10:34:46 +0000 (11:34 +0100)]
Update tables to Unicode 9.0.0 beta
Fixes https://github.com/behdad/harfbuzz/issues/251
Behdad Esfahbod [Fri, 6 May 2016 10:21:12 +0000 (11:21 +0100)]
Minor
Behdad Esfahbod [Fri, 6 May 2016 11:08:18 +0000 (12:08 +0100)]
Add Unicode 9 beta scripts
These are frozen, so good time to add.
Behdad Esfahbod [Fri, 6 May 2016 10:59:05 +0000 (11:59 +0100)]
Whitespace
Behdad Esfahbod [Mon, 2 May 2016 08:44:13 +0000 (10:44 +0200)]
1.2.7
Behdad Esfahbod [Mon, 2 May 2016 08:29:12 +0000 (10:29 +0200)]
[ot-font] Remove unused 'post' table include for now
To make a release...
Behdad Esfahbod [Mon, 2 May 2016 08:28:24 +0000 (10:28 +0200)]
[tests] Fix test
Behdad Esfahbod [Mon, 2 May 2016 08:24:00 +0000 (10:24 +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
happens.
Behdad Esfahbod [Sat, 30 Apr 2016 17:20:56 +0000 (19:20 +0200)]
[ot-font] Start implementing 'post' table, for accessing glyph names
Behdad Esfahbod [Wed, 27 Apr 2016 10:38:24 +0000 (03:38 -0700)]
Behdad Esfahbod [Wed, 27 Apr 2016 10:11:41 +0000 (03:11 -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.
Behdad Esfahbod [Wed, 27 Apr 2016 09:44:35 +0000 (02:44 -0700)]
[test] Add text for Tibetan shorthand contractions
From http://www.babelstone.co.uk/Tibetan/Contractions.html
Khaled Hosny [Wed, 27 Apr 2016 00:48:23 +0000 (03:48 +0300)]
Merge pull request #247 from khaledhosny/update-opentype-language-tags
Update opentype language tags
Arthur Reutenauer [Sat, 7 Nov 2015 23:37:21 +0000 (23:37 +0000)]
Mass-added “difficult” tags – to be curated.
Arthur Reutenauer [Sat, 7 Nov 2015 22:59:13 +0000 (22:59 +0000)]
Initial import of missing OpenType 1.7 language tags.
Behdad Esfahbod [Tue, 26 Apr 2016 23:42:25 +0000 (16:42 -0700)]
Undo accidental change
Behdad Esfahbod [Tue, 26 Apr 2016 23:41:17 +0000 (16:41 -0700)]
Do NOT ignore Mongolian Free Variation Selectors during matching
Fixes https://github.com/behdad/harfbuzz/issues/234
Behdad Esfahbod [Tue, 26 Apr 2016 23:02:04 +0000 (16:02 -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
Behdad Esfahbod [Tue, 26 Apr 2016 18:28:37 +0000 (11:28 -0700)]
[util] Print out --debug buffer to stderr
Behdad Esfahbod [Tue, 26 Apr 2016 17:35:23 +0000 (10:35 -0700)]
Annotate blacklisted fonts with their sha1sum
Sascha Brawer [Tue, 26 Apr 2016 09:38:16 +0000 (11:38 +0200)]
Merge pull request #245 from KonstantinRitt/fixes/ce
Unbreak build on Windows CE
Konstantin Ritt [Tue, 26 Apr 2016 08:02:26 +0000 (12:02 +0400)]
Unbreak build on Windows CE
0475ef2f97e3035a2eea9a0f96031331e07e8e29 broke the build by using
vsnprintf(), which is not defined on Windows CE
Behdad Esfahbod [Sat, 9 Apr 2016 19:53:23 +0000 (12:53 -0700)]
Minor
Behdad Esfahbod [Sat, 9 Apr 2016 06:46:55 +0000 (23:46 -0700)]
Minor. We should never get to this branch, but fix it anyway.
Behdad Esfahbod [Fri, 8 Apr 2016 20:51:01 +0000 (13:51 -0700)]
1.2.6
Behdad Esfahbod [Fri, 8 Apr 2016 20:41:20 +0000 (13:41 -0700)]
Blacklist another set of timesi.ttf and timesbi.ttf
Behdad Esfahbod [Fri, 8 Apr 2016 20:16:33 +0000 (13:16 -0700)]
Merge pull request #239 from ebraminio/dwfix
Improve DirectWrite backend
Ebrahim Byagowi [Tue, 5 Apr 2016 21:01:05 +0000 (21:01 +0000)]
Fix when no feature is given
Behdad Esfahbod [Mon, 4 Apr 2016 23:25:32 +0000 (16:25 -0700)]
1.2.5
Behdad Esfahbod [Mon, 4 Apr 2016 23:24:27 +0000 (16:24 -0700)]
Behdad Esfahbod [Mon, 4 Apr 2016 21:54:32 +0000 (14:54 -0700)]
[coretext] Clarify comment
Behdad Esfahbod [Mon, 4 Apr 2016 21:34:25 +0000 (14:34 -0700)]
Fix FixedVersion::to_int()
Ouch. Had broken it in
9a13ed453ef96822a47d6e6f58332b87f38d5c59
Fixes https://github.com/behdad/harfbuzz/issues/238
Will add test soon.
Ebrahim Byagowi [Sat, 2 Apr 2016 13:47:59 +0000 (13:47 +0000)]
Hide justification behind HB_DIRECTWRITE_EXPERIMENTAL_JUSTIFICATION
Ebrahim Byagowi [Fri, 1 Apr 2016 15:47:07 +0000 (15:47 +0000)]
Use standard types instead Windows favourites ones
Ebrahim Byagowi [Fri, 1 Apr 2016 15:36:40 +0000 (15:36 +0000)]
Limit GetJustifiedGlyphs only to scripts with custom justification character
Ebrahim Byagowi [Fri, 1 Apr 2016 06:39:57 +0000 (06:39 +0000)]
Add justification support
Ebrahim Byagowi [Thu, 31 Mar 2016 18:19:44 +0000 (18:19 +0000)]
Basic opentype features support
Ebrahim Byagowi [Thu, 31 Mar 2016 13:45:37 +0000 (13:45 +0000)]
Refactor and remove dupe getglyphs call
Ebrahim Byagowi [Thu, 31 Mar 2016 12:26:16 +0000 (12:26 +0000)]
Better glyph offset support
Ebrahim Byagowi [Wed, 30 Mar 2016 20:21:40 +0000 (20:21 +0000)]
Don't fail when language is not set
Ebrahim Byagowi [Wed, 30 Mar 2016 20:15:09 +0000 (20:15 +0000)]
Make DirectWrite backend to work with different font sizes
Actually copyedited same logic from Uniscribe to make it just work
Behdad Esfahbod [Thu, 17 Mar 2016 21:37:11 +0000 (14:37 -0700)]
1.2.4
Behdad Esfahbod [Thu, 17 Mar 2016 18:59:43 +0000 (11:59 -0700)]
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,
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,
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.
Behdad Esfahbod [Sun, 13 Mar 2016 03:15:15 +0000 (19:15 -0800)]
Merge pull request #232 from c0nk/wip-icu
Add --with-icu=builtin option; fix compile error
Behdad Esfahbod [Sat, 12 Mar 2016 02:50:02 +0000 (18:50 -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
which is ~13 years earlier than tar-pax and is good enough for us.
Behdad Esfahbod [Sat, 12 Mar 2016 02:45:19 +0000 (18:45 -0800)]
Minor comment
Behdad Esfahbod [Tue, 8 Mar 2016 20:16:41 +0000 (12:16 -0800)]
Remove default clause in minor switch statements
Bending to clang warnings...
https://bugs.chromium.org/p/chromium/issues/detail?id=593057
Behdad Esfahbod [Sat, 5 Mar 2016 01:20:35 +0000 (17:20 -0800)]
Merge pull request #231 from KonstantinRitt/post123buildfix
Fix build with HB_DISABLE_DEPRECATED
Behdad Esfahbod [Wed, 2 Mar 2016 21:32:42 +0000 (13:32 -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!
Behdad Esfahbod [Tue, 1 Mar 2016 07:41:53 +0000 (16:41 +0900)]
Add F2DOT14 type
Behdad Esfahbod [Tue, 1 Mar 2016 07:41:26 +0000 (16:41 +0900)]
Use FWORD and UFWORD when it makes sense
I had forgotten about those types.
Kal Conley [Thu, 25 Feb 2016 23:36:17 +0000 (00:36 +0100)]
Fix missing ICU #include
Fix compile error in hb-icu.cc when ICU configured with
U_NO_DEFAULT_INCLUDE_UTF_HEADERS=1
Kal Conley [Thu, 25 Feb 2016 23:35:15 +0000 (00:35 +0100)]
Add --with-icu=builtin configure option
Konstantin Ritt [Thu, 25 Feb 2016 14:55:28 +0000 (18:55 +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.
Behdad Esfahbod [Thu, 25 Feb 2016 05:40:09 +0000 (14:40 +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!
Behdad Esfahbod [Thu, 25 Feb 2016 04:56:47 +0000 (13:56 +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.
Behdad Esfahbod [Thu, 25 Feb 2016 03:26:26 +0000 (12:26 +0900)]
1.2.3
Behdad Esfahbod [Thu, 25 Feb 2016 03:23:02 +0000 (12:23 +0900)]
Disable internal buffer variable bookkeeping in NDEBUG builds
Saves some sweet time and binary size!
Behdad Esfahbod [Thu, 25 Feb 2016 02:31:03 +0000 (11:31 +0900)]
Add blacklist signature for Times New Roman (Bold) Italic on OS X
Behdad Esfahbod [Thu, 25 Feb 2016 02:20:05 +0000 (11:20 +0900)]
[test] Pass closure to hb_font_set_glyph_func()
Exercises fix in
c335fd7986fe360ab8e1c032c9b988d0d30511eb
Behdad Esfahbod [Thu, 25 Feb 2016 02:11:15 +0000 (11:11 +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
Behdad Esfahbod [Thu, 25 Feb 2016 00:16:05 +0000 (09:16 +0900)]
In trampoline implementation of get_glyph(), don't destroy user data twice!
Behdad Esfahbod [Wed, 24 Feb 2016 11:27:13 +0000 (20:27 +0900)]
[ot-font] Accelerate cmap format4 get_glyph
Behdad Esfahbod [Wed, 24 Feb 2016 10:52:36 +0000 (19:52 +0900)]
[ot-font] Towards accelerating get_glyph()
Behdad Esfahbod [Wed, 24 Feb 2016 10:32:43 +0000 (19:32 +0900)]
[ot-font] Remove level of indirection in get_glyph_variant
Behdad Esfahbod [Wed, 24 Feb 2016 10:10:06 +0000 (19:10 +0900)]
[TODO] Update
This file is rather obsolete. Still, give it a refresh.
Behdad Esfahbod [Wed, 24 Feb 2016 10:05:23 +0000 (19:05 +0900)]
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_nominal_glyph_func()
- 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
variation_selector argument is not zero.
Behdad Esfahbod [Wed, 24 Feb 2016 08:32:22 +0000 (17:32 +0900)]
1.2.2
Behdad Esfahbod [Wed, 24 Feb 2016 07:06:40 +0000 (16:06 +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.
Behdad Esfahbod [Wed, 24 Feb 2016 07:06:23 +0000 (16:06 +0900)]
[tests] Fix for multiple options in test runner scripts
Behdad Esfahbod [Wed, 24 Feb 2016 06:53:40 +0000 (15:53 +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.
Behdad Esfahbod [Wed, 24 Feb 2016 06:52:37 +0000 (15:52 +0900)]
Add test for mark positioning in rtl with non-zero mark advance
Apparently I broke this
86c68c7a2c971efe8e35b1f1bd99401dc8b688d2.
Fix coming.
Behdad Esfahbod [Wed, 24 Feb 2016 06:50:33 +0000 (15:50 +0900)]
[tests] Allow commenting out tests to be skipped
Behdad Esfahbod [Wed, 24 Feb 2016 03:30:57 +0000 (12:30 +0900)]
[Android.mk] Update with warning flags
Behdad Esfahbod [Tue, 23 Feb 2016 06:38:43 +0000 (15:38 +0900)]
1.2.1
Behdad Esfahbod [Tue, 23 Feb 2016 06:19:27 +0000 (15:19 +0900)]
Add note re only adding tests with Free Software fonts
Behdad Esfahbod [Tue, 23 Feb 2016 04:47:16 +0000 (13:47 +0900)]
[test] Add README about how to add shaping tests
Behdad Esfahbod [Tue, 23 Feb 2016 04:45:38 +0000 (13:45 +0900)]
Remove MANIFEST files
They are unused currently. We can add later if we hook them up
to anything useful.
Behdad Esfahbod [Mon, 22 Feb 2016 09:22:44 +0000 (18:22 +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.
Fixes https://github.com/behdad/harfbuzz/issues/217
Behdad Esfahbod [Mon, 22 Feb 2016 07:00:59 +0000 (16:00 +0900)]
Minor
Behdad Esfahbod [Mon, 22 Feb 2016 06:56:29 +0000 (15:56 +0900)]
[coretext] Move CTFont construction to face_data
Behdad Esfahbod [Mon, 22 Feb 2016 06:50:12 +0000 (15:50 +0900)]
[coretext] Move code around
Behdad Esfahbod [Mon, 22 Feb 2016 06:42:53 +0000 (15:42 +0900)]
[coretext] Move code around
Behdad Esfahbod [Mon, 22 Feb 2016 06:37:18 +0000 (15:37 +0900)]
[build] git.mk fix for m4/gtk-doc.m4
Behdad Esfahbod [Mon, 22 Feb 2016 06:32:52 +0000 (15:32 +0900)]
[win32] Install git.mk
Behdad Esfahbod [Mon, 22 Feb 2016 02:44:45 +0000 (11:44 +0900)]
Make FixedVersion a template
Behdad Esfahbod [Mon, 22 Feb 2016 06:31:22 +0000 (15:31 +0900)]
[coretext] Fix leak!
Behdad Esfahbod [Mon, 22 Feb 2016 06:28:37 +0000 (15:28 +0900)]
[coretext] Move code around
Behdad Esfahbod [Mon, 22 Feb 2016 06:12:27 +0000 (15:12 +0900)]
[coretext] Ignore PPEM in font size selection
Behdad Esfahbod [Mon, 22 Feb 2016 06:07:20 +0000 (15:07 +0900)]
[coretext] Limit grapheme-cluster forming to cluster-level=0
Behdad Esfahbod [Mon, 22 Feb 2016 05:59:39 +0000 (14:59 +0900)]
[coretext] Fix shaping with varying font size
Fixes https://github.com/libass/libass/issues/212
Behdad Esfahbod [Fri, 19 Feb 2016 08:56:50 +0000 (15:56 +0700)]
1.2.0
Behdad Esfahbod [Fri, 19 Feb 2016 08:13:07 +0000 (15:13 +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.
Behdad Esfahbod [Fri, 19 Feb 2016 08:12:24 +0000 (15:12 +0700)]
[fuzzing] Make test runner actually work
Behdad Esfahbod [Fri, 19 Feb 2016 08:12:16 +0000 (15:12 +0700)]
[fuzzing] Add TODO item
Behdad Esfahbod [Fri, 19 Feb 2016 07:52:31 +0000 (14:52 +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
test/fuzzing/ and have its own test runner. At that point, should add
test from this issue as well.
Behdad Esfahbod [Fri, 19 Feb 2016 07:43:39 +0000 (14:43 +0700)]
[fuzzing] Make "make hb-fuzzer" build lib dependency
Not going to do with util/, but is convenient here.
Behdad Esfahbod [Thu, 18 Feb 2016 12:31:51 +0000 (19:31 +0700)]
Remove pointless overflow check in pointer math
Fixes https://github.com/behdad/harfbuzz/issues/227