Behdad Esfahbod [Wed, 20 Jul 2016 09:35:54 +0000 (02:35 -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
Behdad Esfahbod [Wed, 20 Jul 2016 08:43:56 +0000 (01:43 -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.
Behdad Esfahbod [Tue, 12 Jul 2016 18:18:26 +0000 (11:18 -0700)]
Whitespace
Ebrahim Byagowi [Mon, 11 Jul 2016 23:19:21 +0000 (03:49 +0430)]
[coretext] Speculative fix for CoreText nullptr access (#288)
Birunthan Mohanathas [Mon, 11 Jul 2016 20:38:23 +0000 (13:38 -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
undefined behaviour.
Steve Lhomme [Mon, 11 Jul 2016 19:57:26 +0000 (21:57 +0200)]
clang in MSVC mode doesn't like when we redefine __attribute__ (#283)
Behdad Esfahbod [Sat, 2 Jul 2016 00:09:28 +0000 (17:09 -0700)]
Merge pull request #286 from khaledhosny/gi-tag_from_string
[introspection] Fix hb_tag_from_string annotation
Khaled Hosny [Fri, 1 Jul 2016 22:04:57 +0000 (00:04 +0200)]
[introspection] Fix hb_tag_from_string annotation
Behdad Esfahbod [Thu, 30 Jun 2016 18:01:22 +0000 (11:01 -0700)]
[python] Use utf-32 / utf-16 based on build of Python
Fixes https://github.com/behdad/harfbuzz/pull/271
Behdad Esfahbod [Thu, 30 Jun 2016 16:46:52 +0000 (09:46 -0700)]
Comments
Behdad Esfahbod [Thu, 30 Jun 2016 16:41:03 +0000 (09:41 -0700)]
Merge pull request #268 from drott/conflictingFontFix
Discard reconfigured CTFont if URL changes
Dominik Röttsches [Wed, 29 Jun 2016 10:10:41 +0000 (12:10 +0200)]
Merge branch 'master' into conflictingFontFix
Behdad Esfahbod [Wed, 29 Jun 2016 04:00:37 +0000 (21:00 -0700)]
[gobject] Fix a few warnings
Part of https://github.com/behdad/harfbuzz/issues/277
Behdad Esfahbod [Wed, 29 Jun 2016 04:15:28 +0000 (21:15 -0700)]
Merge pull request #280 from behdad/revert-271-patch-2
Revert "use utf32"
Behdad Esfahbod [Wed, 29 Jun 2016 04:14:38 +0000 (21:14 -0700)]
Revert "use utf32"
Dominik Röttsches [Tue, 28 Jun 2016 07:52:18 +0000 (09:52 +0200)]
Merge branch 'master' into conflictingFontFix
Behdad Esfahbod [Mon, 27 Jun 2016 18:33:27 +0000 (14:33 -0400)]
Merge pull request #273 from ebraminio/master
[dwrite] Use stream font loader instead GDI interop
Ebrahim Byagowi [Sun, 26 Jun 2016 23:24:15 +0000 (03:54 +0430)]
[dwrite] Don't allocate more than needed
Addressing Nikolay Sivov reviews on harfbuzz mailing list
Ebrahim Byagowi [Fri, 24 Jun 2016 07:53:25 +0000 (12:23 +0430)]
[dwrite] Delete remained objects
No longer noticeable memory increase on create/destroy iterations,
highly better than current state of uniscribe backend
Ebrahim Byagowi [Fri, 24 Jun 2016 07:12:01 +0000 (11:42 +0430)]
[dwrite] Release allocated blob on face destroy
This reduces memory consumption of my iterated font create/destroy cycle test
significantly and makes it much better than uniscribe backend even
Ebrahim Byagowi [Thu, 23 Jun 2016 12:11:37 +0000 (16:41 +0430)]
[dwrite] Remove ifdefs without breaking execution on old Windows versions
Ebrahim Byagowi [Tue, 21 Jun 2016 09:27:26 +0000 (13:57 +0430)]
[dwrite] Use stream font loader instead GDI interop
With help of
https://dxr.mozilla.org/mozilla-central/source/gfx/2d/NativeFontResourceDWrite.cpp
Dominik Röttsches [Mon, 20 Jun 2016 07:25:43 +0000 (10:25 +0300)]
Merge branch 'master' into conflictingFontFix
Kelvin [Sat, 18 Jun 2016 22:46:38 +0000 (22:46 +0000)]
Use UTF-32 in Python sample
Khaled Hosny [Sat, 18 Jun 2016 21:08:51 +0000 (00:08 +0300)]
Merge pull request #270 from khaledhosny/travis-failure
Fix make check on Travis
Khaled Hosny [Sat, 18 Jun 2016 19:12:19 +0000 (21:12 +0200)]
[tests] Workaround Python 2 “narrow” builds
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
Dominik Röttsches [Thu, 16 Jun 2016 12:19:39 +0000 (14:19 +0200)]
Discard reconfigured CTFont if URL changes
Fixes https://github.com/behdad/harfbuzz/issues/267
Behdad Esfahbod [Tue, 7 Jun 2016 06:08:54 +0000 (23:08 -0700)]
Round, not truncate, when scaling values
Fixes https://github.com/behdad/harfbuzz/issues/255
Behdad Esfahbod [Mon, 6 Jun 2016 22:58:41 +0000 (15:58 -0700)]
Change bugreport URL to github
That's where everything is happening these days.
Behdad Esfahbod [Mon, 6 Jun 2016 21:14:24 +0000 (14:14 -0700)]
Update for latest Unicode 9 data files
Behdad Esfahbod [Wed, 1 Jun 2016 23:57:29 +0000 (16:57 -0700)]
Add TODO
Behdad Esfahbod [Fri, 6 May 2016 16:56:07 +0000 (17:56 +0100)]
[myanmar] Handle U+AA74..U+AA76
Fixes https://github.com/behdad/harfbuzz/issues/218
Behdad Esfahbod [Fri, 6 May 2016 16:50:06 +0000 (17:50 +0100)]
Fix build on droid.io
Behdad Esfahbod [Fri, 6 May 2016 16:41:49 +0000 (17:41 +0100)]
[use] Update to draft spec from Andrew Glass from August 2015
Behdad Esfahbod [Fri, 6 May 2016 16:28:25 +0000 (17:28 +0100)]
[use] Add a catch-all clause to the machine
Behdad Esfahbod [Fri, 6 May 2016 16:17:00 +0000 (17:17 +0100)]
[use] Fix 'Number-joiner terminated cluster' to use HN instead of H
From draft update to USE.
Behdad Esfahbod [Fri, 6 May 2016 15:19:19 +0000 (16:19 +0100)]
Allow MultipleSubst to delete glyph
Fixes https://github.com/behdad/harfbuzz/issues/253
Hopefully we got the logic right.
Behdad Esfahbod [Fri, 6 May 2016 15:05:07 +0000 (16:05 +0100)]
[indic] Remove more unused logic after Javanese is gone
Behdad Esfahbod [Fri, 6 May 2016 14:59:27 +0000 (15:59 +0100)]
[indic] Remove unused Javanese bits
Behdad Esfahbod [Fri, 6 May 2016 14:52:27 +0000 (15:52 +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
Behdad Esfahbod [Fri, 6 May 2016 14:39:02 +0000 (15:39 +0100)]
Add Javanese sample text
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