Behdad Esfahbod [Thu, 22 Jan 2015 00:42:09 +0000 (16:42 -0800)]
[coretext] Use vertical advance for notdef in vertical direction
Behdad Esfahbod [Thu, 22 Jan 2015 02:33:50 +0000 (18:33 -0800)]
Add convenience make target "make lib" in src/
Behdad Esfahbod [Wed, 21 Jan 2015 09:57:44 +0000 (01:57 -0800)]
Add README.python
Behdad Esfahbod [Wed, 21 Jan 2015 09:51:48 +0000 (01:51 -0800)]
[bindings] Add README.python
Behdad Esfahbod [Tue, 20 Jan 2015 20:30:45 +0000 (12:30 -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.
Behdad Esfahbod [Fri, 9 Jan 2015 22:22:01 +0000 (14:22 -0800)]
[util] Minor
Behdad Esfahbod [Tue, 20 Jan 2015 01:00:31 +0000 (17:00 -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.
Behdad Esfahbod [Mon, 19 Jan 2015 22:42:11 +0000 (14:42 -0800)]
[bindings] Minor
Behdad Esfahbod [Tue, 20 Jan 2015 00:15:00 +0000 (16:15 -0800)]
Merge pull request #77 from roozbehp/master
Change New Tai Lue shaping engine from SEA to default
Roozbeh Pournader [Sun, 18 Jan 2015 22:30:08 +0000 (14:30 -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.
Behdad Esfahbod [Sun, 18 Jan 2015 04:16:56 +0000 (20:16 -0800)]
[indic] Fix out-of-bounds access
Behdad Esfahbod [Wed, 7 Jan 2015 18:51:44 +0000 (10:51 -0800)]
[bindings] Update sample.py
Behdad Esfahbod [Wed, 7 Jan 2015 03:16:38 +0000 (19:16 -0800)]
[bindings] Use hb_glib_blob_create() in sample
hb_blob_create() is considered C-only API.
Behdad Esfahbod [Wed, 7 Jan 2015 00:58:33 +0000 (16:58 -0800)]
[glib] Add hb_glib_blob_create() that takes GBytes
Behdad Esfahbod [Tue, 6 Jan 2015 23:43:14 +0000 (15:43 -0800)]
[bindings] Replace deprecated allow-none with optional and nullable
Behdad Esfahbod [Tue, 6 Jan 2015 23:37:31 +0000 (15:37 -0800)]
[bindings] Make sample Python 2/3 compatible
Behdad Esfahbod [Tue, 6 Jan 2015 22:05:26 +0000 (14:05 -0800)]
Fix up gobject-introspection a bit
Minimal shaping works now!
Behdad Esfahbod [Mon, 5 Jan 2015 22:43:13 +0000 (14:43 -0800)]
Remove hardcoded ICU include paths.
ICU exports them using LOCAL_EXPORT_C_INCLUDE_DIRS.
https://android-review.googlesource.com/#/c/121311/
Behdad Esfahbod [Mon, 5 Jan 2015 04:32:18 +0000 (20:32 -0800)]
Merge pull request #76 from cpeterso/cpeterso/Wunused-function
Add #ifdef HB_USE_ATEXIT to fix -Wunused-function warnings
Chris Peterson [Mon, 5 Jan 2015 03:31:10 +0000 (19:31 -0800)]
Add #ifdef HB_USE_ATEXIT to fix -Wunused-function warnings
Behdad Esfahbod [Sun, 4 Jan 2015 05:55:30 +0000 (21:55 -0800)]
Merge pull request #75 from cpeterso/cpeterso/Wunused-value
Fix hb_atomic_ptr_cmpexch -Wunused-value warnings
Chris Peterson [Sun, 4 Jan 2015 03:46:19 +0000 (19:46 -0800)]
Fix hb_atomic_ptr_cmpexch -Wunused-value warnings
Behdad Esfahbod [Fri, 2 Jan 2015 22:09:23 +0000 (14:09 -0800)]
Add missing va_end()
Fixes https://github.com/behdad/harfbuzz/pull/74
Behdad Esfahbod [Mon, 29 Dec 2014 02:56:15 +0000 (18:56 -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.
See comments in the commit.
Behdad Esfahbod [Mon, 29 Dec 2014 01:44:26 +0000 (17:44 -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
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
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
font tables.
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
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
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
current understanding.
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
choices.
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=75299
Behdad Esfahbod [Mon, 29 Dec 2014 01:27:39 +0000 (17:27 -0800)]
Remove redundant check for FT_Face_GetCharVariantIndex
We require FreeType >= 2.8.3. This symbol was introduced earlier
than that.
Behdad Esfahbod [Mon, 29 Dec 2014 01:04:23 +0000 (17:04 -0800)]
Fix FreeType version check
Behdad Esfahbod [Mon, 29 Dec 2014 00:20:31 +0000 (16:20 -0800)]
[ft] Open blob in READONLY mode
HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE is deprecated and fairly
useless now.
Behdad Esfahbod [Mon, 29 Dec 2014 00:03:26 +0000 (16:03 -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.
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.
Behdad Esfahbod [Fri, 19 Dec 2014 02:22:21 +0000 (18:22 -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
accepted on a 64bit machine. Avoid that.
Behdad Esfahbod [Fri, 19 Dec 2014 02:09:41 +0000 (18:09 -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.
Behdad Esfahbod [Wed, 17 Dec 2014 20:09:17 +0000 (12:09 -0800)]
0.9.37
Behdad Esfahbod [Sat, 13 Dec 2014 05:07:53 +0000 (21:07 -0800)]
[otlayout] Mark variables that are C arrays as opposed to OT::ArrayOf
Behdad Esfahbod [Sat, 13 Dec 2014 04:54:28 +0000 (20:54 -0800)]
[otlayout] Avoid invalid access with Context format 3
Behdad Esfahbod [Sat, 13 Dec 2014 04:43:18 +0000 (20:43 -0800)]
[ot] Debug get_coverage
Behdad Esfahbod [Sat, 13 Dec 2014 04:36:49 +0000 (20:36 -0800)]
[ot] Print format in dispatch trace
Behdad Esfahbod [Sat, 13 Dec 2014 04:28:49 +0000 (20:28 -0800)]
Minor
Behdad Esfahbod [Sat, 13 Dec 2014 03:46:09 +0000 (19:46 -0800)]
[ot] Make sure all toplevel tables have tableTag
Behdad Esfahbod [Sat, 13 Dec 2014 03:32:46 +0000 (19:32 -0800)]
[sanitize] Improve debug output some more
Behdad Esfahbod [Sat, 13 Dec 2014 02:23:20 +0000 (18:23 -0800)]
[sanitize] Improve debug output
Behdad Esfahbod [Wed, 10 Dec 2014 20:05:24 +0000 (12:05 -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%)
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%)
Behdad Esfahbod [Thu, 20 Nov 2014 22:42:24 +0000 (14:42 -0800)]
0.9.36
Behdad Esfahbod [Wed, 29 Oct 2014 18:23:08 +0000 (11:23 -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
Behdad Esfahbod [Wed, 15 Oct 2014 04:26:13 +0000 (21:26 -0700)]
Move code around
Behdad Esfahbod [Wed, 15 Oct 2014 04:24:59 +0000 (21:24 -0700)]
Move macros around
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=84491
Behdad Esfahbod [Wed, 15 Oct 2014 03:07:31 +0000 (20:07 -0700)]
Fix misc warnings
Fixes https://github.com/behdad/harfbuzz/pull/51
Behdad Esfahbod [Thu, 2 Oct 2014 20:54:33 +0000 (16:54 -0400)]
Update test expectation for previous commit
Behdad Esfahbod [Thu, 2 Oct 2014 20:40:41 +0000 (16:40 -0400)]
[ft] Add NO_HINTING in a couple other places
Behdad Esfahbod [Wed, 1 Oct 2014 22:58:43 +0000 (18:58 -0400)]
[travis] Fix clang again
Behdad Esfahbod [Wed, 1 Oct 2014 22:54:55 +0000 (18:54 -0400)]
[travis] Fail build if coveralls fails
Behdad Esfahbod [Wed, 1 Oct 2014 22:48:40 +0000 (18:48 -0400)]
[travis] Only run coveralls under gcc
Behdad Esfahbod [Wed, 1 Oct 2014 22:18:25 +0000 (18:18 -0400)]
Help clang with gcov
Behdad Esfahbod [Wed, 1 Oct 2014 22:07:27 +0000 (18:07 -0400)]
[travis] Try to make coverage work with clang
Behdad Esfahbod [Wed, 1 Oct 2014 21:57:43 +0000 (17:57 -0400)]
[travis] Minor
Behdad Esfahbod [Wed, 1 Oct 2014 21:45:17 +0000 (17:45 -0400)]
Add README.md symlink to make github happy
Behdad Esfahbod [Wed, 1 Oct 2014 21:44:30 +0000 (17:44 -0400)]
[travis] Re-enable clang
Behdad Esfahbod [Wed, 1 Oct 2014 21:41:41 +0000 (17:41 -0400)]
Add build and coverage status links
Behdad Esfahbod [Wed, 1 Oct 2014 21:35:03 +0000 (17:35 -0400)]
[travis] Report matrix settings to help debugging
Behdad Esfahbod [Wed, 1 Oct 2014 21:20:31 +0000 (17:20 -0400)]
[travis] More coveralls
Behdad Esfahbod [Wed, 1 Oct 2014 21:05:58 +0000 (17:05 -0400)]
[travis] Give coveralls a hand
Behdad Esfahbod [Wed, 1 Oct 2014 21:03:26 +0000 (17:03 -0400)]
[travis] Disable clang for now
Behdad Esfahbod [Wed, 1 Oct 2014 20:53:00 +0000 (16:53 -0400)]
[test] Fixup test
Behdad Esfahbod [Wed, 1 Oct 2014 20:49:22 +0000 (16:49 -0400)]
[travis] Another try at coveralls.io
Behdad Esfahbod [Wed, 1 Oct 2014 20:38:47 +0000 (16:38 -0400)]
[travis] First try to hookup coveralls.io code coverage tracking
Behdad Esfahbod [Wed, 1 Oct 2014 20:14:59 +0000 (16:14 -0400)]
[travis] Unbreak
Behdad Esfahbod [Wed, 1 Oct 2014 20:09:08 +0000 (16:09 -0400)]
[travis] Minor
Behdad Esfahbod [Wed, 1 Oct 2014 18:24:07 +0000 (14:24 -0400)]
Create ragel-generated files in srcdir
Behdad Esfahbod [Wed, 1 Oct 2014 17:33:21 +0000 (13:33 -0400)]
Clean ragel-generated headers in maintainercleanfiles
Behdad Esfahbod [Wed, 1 Oct 2014 16:41:03 +0000 (12:41 -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.
Behdad Esfahbod [Wed, 1 Oct 2014 15:56:07 +0000 (11:56 -0400)]
check-static-inits: Filter out zero-length sections
When compiling with -O0, zero-sized constructors were showing up
and confusing the test.
Behdad Esfahbod [Wed, 1 Oct 2014 15:55:14 +0000 (11:55 -0400)]
check-static-inits: check for static finalizers
Behdad Esfahbod [Wed, 1 Oct 2014 15:28:01 +0000 (11:28 -0400)]
Hide other bubble-sort
Behdad Esfahbod [Wed, 1 Oct 2014 15:07:08 +0000 (11:07 -0400)]
Hide bubble-sort!
Behdad Esfahbod [Thu, 25 Sep 2014 14:59:46 +0000 (17:59 +0300)]
[util] Fix ansi output when surface is empty
Behdad Esfahbod [Thu, 25 Sep 2014 14:45:49 +0000 (17:45 +0300)]
[ot-font] Add hb_ot_face_cmap_accelerator_t
Behdad Esfahbod [Thu, 25 Sep 2014 14:26:56 +0000 (17:26 +0300)]
[ot-font] Minor
Behdad Esfahbod [Thu, 25 Sep 2014 14:15:35 +0000 (17:15 +0300)]
[ot-font] Handle missing vertical metrics tables
Behdad Esfahbod [Thu, 25 Sep 2014 13:53:24 +0000 (16:53 +0300)]
[ot-font] Add metrics_accel_t
Behdad Esfahbod [Thu, 25 Sep 2014 10:04:08 +0000 (13:04 +0300)]
[ot-font] Start adding vertical support
Behdad Esfahbod [Mon, 25 Aug 2014 16:54:57 +0000 (12:54 -0400)]
Fix build
Behdad Esfahbod [Mon, 25 Aug 2014 16:31:19 +0000 (12:31 -0400)]
[arabic] Don't #include __FILE__
Fine!
https://code.google.com/p/chromium/issues/detail?id=406957
Behdad Esfahbod [Mon, 25 Aug 2014 15:48:12 +0000 (11:48 -0400)]
[arabic] Allow disabling win1256 fallback code
By defining HB_NO_WIN1256.
Behdad Esfahbod [Fri, 22 Aug 2014 16:06:57 +0000 (12:06 -0400)]
[ot] Prefer Windows platform cmap tables / accept all Unicode encodingIDs
Some fonts on the Mac ship with (0,1).
Behdad Esfahbod [Fri, 15 Aug 2014 18:28:04 +0000 (14:28 -0400)]
[win32] Avoid preprocessor warnings re macros
Behdad Esfahbod [Thu, 14 Aug 2014 17:33:37 +0000 (13:33 -0400)]
Fix check-symbols on OS X
Behdad Esfahbod [Thu, 14 Aug 2014 17:29:30 +0000 (13:29 -0400)]
[coretext] Hide feature_mappings
Behdad Esfahbod [Thu, 14 Aug 2014 17:25:55 +0000 (13:25 -0400)]
Simplify hb-object
Behdad Esfahbod [Thu, 14 Aug 2014 17:15:21 +0000 (13:15 -0400)]
Really fix clang build this time
Behdad Esfahbod [Thu, 14 Aug 2014 17:11:33 +0000 (13:11 -0400)]
Revert "Fix build on clang after previous commit"
This reverts commit
9c80cbc87f23040a334e30c750f64523d9ef10c8.
Behdad Esfahbod [Thu, 14 Aug 2014 17:09:52 +0000 (13:09 -0400)]
Fix build on clang after previous commit
Behdad Esfahbod [Thu, 14 Aug 2014 17:05:36 +0000 (13:05 -0400)]
Rewrite this==NULL checks to avoid undefined behavior
Fixes https://code.google.com/p/chromium/issues/detail?id=403594
Behdad Esfahbod [Thu, 14 Aug 2014 16:59:16 +0000 (12:59 -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
Behdad Esfahbod [Thu, 14 Aug 2014 16:57:02 +0000 (12:57 -0400)]
Make hb_object_t members private
In preparation for fixing:
https://code.google.com/p/chromium/issues/detail?id=403594
Behdad Esfahbod [Wed, 13 Aug 2014 23:42:01 +0000 (19:42 -0400)]
Minor
Behdad Esfahbod [Wed, 13 Aug 2014 16:39:34 +0000 (12:39 -0400)]
0.9.35
Behdad Esfahbod [Tue, 12 Aug 2014 23:26:35 +0000 (19:26 -0400)]
[coretext] Add version guards for kCTLanguageAttributeName
Behdad Esfahbod [Tue, 12 Aug 2014 23:17:19 +0000 (19:17 -0400)]
[coretext] Pass buffer language to CoreText
Behdad Esfahbod [Tue, 12 Aug 2014 23:10:33 +0000 (19:10 -0400)]
[coretext] Minor
Behdad Esfahbod [Tue, 12 Aug 2014 22:57:08 +0000 (18:57 -0400)]
[hb-coretext] Fix cluster order of notdef runs in RTL text
Behdad Esfahbod [Tue, 12 Aug 2014 21:15:09 +0000 (17:15 -0400)]
[shape-plan] Fix typo!
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.