Behdad Esfahbod [Sun, 15 Apr 2012 00:23:58 +0000 (20:23 -0400)]
Move code around
Behdad Esfahbod [Sat, 14 Apr 2012 23:40:18 +0000 (19:40 -0400)]
Minor
Behdad Esfahbod [Sat, 14 Apr 2012 23:23:17 +0000 (19:23 -0400)]
Add assert
Behdad Esfahbod [Sat, 14 Apr 2012 23:19:26 +0000 (19:19 -0400)]
Add HB_DIRECTION_IS_VALID
Behdad Esfahbod [Sat, 14 Apr 2012 22:51:50 +0000 (18:51 -0400)]
Remove public enum names again
As was reported to me, glib-mkenum does not understand named enums,
so remove for now.
Behdad Esfahbod [Sat, 14 Apr 2012 22:47:07 +0000 (18:47 -0400)]
Minor
Behdad Esfahbod [Thu, 12 Apr 2012 21:38:23 +0000 (17:38 -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.
Behdad Esfahbod [Thu, 12 Apr 2012 21:38:02 +0000 (17:38 -0400)]
Minor
Behdad Esfahbod [Thu, 12 Apr 2012 19:50:40 +0000 (15:50 -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.
Behdad Esfahbod [Thu, 12 Apr 2012 18:53:53 +0000 (14:53 -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.
Behdad Esfahbod [Thu, 12 Apr 2012 17:23:59 +0000 (13:23 -0400)]
Add names to enums
gdb was showing <anonymous enum> instead of useful stuff, so name
all our enums.
Behdad Esfahbod [Thu, 12 Apr 2012 17:17:44 +0000 (13:17 -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.
Behdad Esfahbod [Thu, 12 Apr 2012 16:29:10 +0000 (12:29 -0400)]
Minor
Behdad Esfahbod [Thu, 12 Apr 2012 14:06:52 +0000 (10:06 -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
Behdad Esfahbod [Thu, 12 Apr 2012 13:59:26 +0000 (09:59 -0400)]
Minor
Behdad Esfahbod [Thu, 12 Apr 2012 13:44:27 +0000 (09:44 -0400)]
Add Mongolian test case
Behdad Esfahbod [Thu, 12 Apr 2012 13:31:55 +0000 (09:31 -0400)]
Fix left-matra positioning in Indic
Fixes 200 failures out of previous 4290 cases in the OO.o Indic
dictionary (of ~16000 entries).
Behdad Esfahbod [Thu, 12 Apr 2012 02:04:42 +0000 (22:04 -0400)]
Adjust TODO
Behdad Esfahbod [Thu, 12 Apr 2012 02:00:46 +0000 (22:00 -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.
Behdad Esfahbod [Thu, 12 Apr 2012 01:54:37 +0000 (21:54 -0400)]
Update TODO
Behdad Esfahbod [Wed, 11 Apr 2012 21:48:40 +0000 (17:48 -0400)]
Add Hangul test
Behdad Esfahbod [Wed, 11 Apr 2012 21:33:02 +0000 (17:33 -0400)]
Fix diff tool
Behdad Esfahbod [Wed, 11 Apr 2012 21:11:05 +0000 (17:11 -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
is simply not going to work. Oh well...
Behdad Esfahbod [Wed, 11 Apr 2012 18:37:53 +0000 (14:37 -0400)]
Fix shape to presentation forms font check
As reported by Jonathan Kew on the list.
Behdad Esfahbod [Wed, 11 Apr 2012 18:19:55 +0000 (14:19 -0400)]
Fix build with some compilers
As reported by Jonathan Kew on the list.
Behdad Esfahbod [Tue, 10 Apr 2012 22:02:20 +0000 (18:02 -0400)]
In Arabic fallback shaping, check that the font has glyph for new char
Behdad Esfahbod [Tue, 10 Apr 2012 21:22:14 +0000 (17:22 -0400)]
Minor
Behdad Esfahbod [Tue, 10 Apr 2012 21:20:05 +0000 (17:20 -0400)]
Implement Arabic fallback shaping mandatory ligatures
Behdad Esfahbod [Tue, 10 Apr 2012 20:44:38 +0000 (16:44 -0400)]
Do Arabic fallback shaping
Behdad Esfahbod [Tue, 10 Apr 2012 20:25:08 +0000 (16:25 -0400)]
Generate fallback Arabic shaping table
Not hooked up yet.
Behdad Esfahbod [Tue, 10 Apr 2012 14:52:07 +0000 (10:52 -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.
Behdad Esfahbod [Tue, 10 Apr 2012 14:52:03 +0000 (10:52 -0400)]
Minor
Behdad Esfahbod [Tue, 10 Apr 2012 14:47:33 +0000 (10:47 -0400)]
Add Thai test case for SARA AM decomposition
Behdad Esfahbod [Sun, 8 Apr 2012 02:07:23 +0000 (22:07 -0400)]
Move around
Behdad Esfahbod [Sun, 8 Apr 2012 01:52:28 +0000 (21:52 -0400)]
Move code around, in prep for Thai/Lao shaper
Behdad Esfahbod [Sat, 7 Apr 2012 19:06:55 +0000 (15:06 -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,
I have no idea how the 'ljmo', 'vjmo', 'tjmo' features are supposed to
work. Maybe someone can explain them to me?
Behdad Esfahbod [Sat, 7 Apr 2012 18:57:21 +0000 (14:57 -0400)]
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.
Behdad Esfahbod [Sat, 7 Apr 2012 18:51:17 +0000 (14:51 -0400)]
Bring normalization algorithm closer to the spec
No logical difference so far.
Behdad Esfahbod [Sat, 7 Apr 2012 18:49:13 +0000 (14:49 -0400)]
Flip logic around
Behdad Esfahbod [Thu, 5 Apr 2012 21:27:23 +0000 (17:27 -0400)]
Add Hangul test case
Composed, and decomposed, of the same text.
Behdad Esfahbod [Thu, 5 Apr 2012 21:25:19 +0000 (17:25 -0400)]
Add normalize mode
In preparation for Hangul shaper.
Behdad Esfahbod [Thu, 5 Apr 2012 20:46:46 +0000 (16:46 -0400)]
More moving code around
Behdad Esfahbod [Thu, 5 Apr 2012 20:40:37 +0000 (16:40 -0400)]
Move code around
Behdad Esfahbod [Wed, 7 Mar 2012 22:13:25 +0000 (17:13 -0500)]
More sorting by Unicode version
This is the most convenient way to browse scripts.
Behdad Esfahbod [Wed, 7 Mar 2012 21:51:29 +0000 (16:51 -0500)]
Minor
Behdad Esfahbod [Wed, 7 Mar 2012 20:52:02 +0000 (15:52 -0500)]
More Unicode script age annotation, and a couple more RTL scripts
Cross-checked with Mark Davis's spreadsheet at http://goo.gl/x9ilM
Behdad Esfahbod [Wed, 7 Mar 2012 20:33:14 +0000 (15:33 -0500)]
Make src tests pass again
Behdad Esfahbod [Wed, 7 Mar 2012 20:20:20 +0000 (15:20 -0500)]
Separate Unicode 3.1 and Unicode 3.2 additions
Behdad Esfahbod [Wed, 7 Mar 2012 17:56:22 +0000 (12:56 -0500)]
Route three Unicode 6.1 scripts through Indic shaper
Behdad Esfahbod [Wed, 7 Mar 2012 17:53:34 +0000 (12:53 -0500)]
Add Unicode 6.1.0 scripts
Behdad Esfahbod [Wed, 7 Mar 2012 17:49:08 +0000 (12:49 -0500)]
Lydian and Kharoshthi are right-to-left
Behdad Esfahbod [Wed, 7 Mar 2012 17:38:39 +0000 (12:38 -0500)]
Whitespace
Behdad Esfahbod [Wed, 7 Mar 2012 17:21:28 +0000 (12:21 -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
through that shaper. Need to find a better way...
Behdad Esfahbod [Wed, 7 Mar 2012 17:08:33 +0000 (12:08 -0500)]
Update Indic table to Unicode 6.1 data
Behdad Esfahbod [Wed, 7 Mar 2012 15:21:24 +0000 (10:21 -0500)]
Typo
Behdad Esfahbod [Wed, 7 Mar 2012 01:47:50 +0000 (20:47 -0500)]
Minor doc fixes
Behdad Esfahbod [Wed, 7 Mar 2012 01:24:31 +0000 (20:24 -0500)]
Add Hebrew diacritics test cases
From:
https://bugzilla.mozilla.org/show_bug.cgi?id=662055
Behdad Esfahbod [Fri, 2 Mar 2012 02:11:19 +0000 (18:11 -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
Behdad Esfahbod [Fri, 2 Mar 2012 01:30:29 +0000 (17:30 -0800)]
Fix atomic-int op on Apple
The OSAtomicAdd32Barrier operator returns the new value, we want the
old value.
Behdad Esfahbod [Fri, 24 Feb 2012 18:51:09 +0000 (13:51 -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
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
performance boost too.
Behdad Esfahbod [Thu, 23 Feb 2012 23:47:17 +0000 (18:47 -0500)]
Remove unused hb_atomic_int_set()
Apparently it can't be implemented on OS X. We weren't using it anyway.
Behdad Esfahbod [Fri, 24 Feb 2012 00:47:43 +0000 (19:47 -0500)]
Add hb-warning.cc. Oops!
Behdad Esfahbod [Thu, 23 Feb 2012 20:06:16 +0000 (15:06 -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
Behdad Esfahbod [Wed, 22 Feb 2012 21:43:21 +0000 (16:43 -0500)]
Minor
Behdad Esfahbod [Wed, 22 Feb 2012 21:34:37 +0000 (16:34 -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.
Behdad Esfahbod [Wed, 22 Feb 2012 21:31:15 +0000 (16:31 -0500)]
Reorder Hebrew combining classes for better rendering
Patch from Jonathan Kew.
Bug 662055 - advanced Hebrew diacritics are shown correctly only in particular order
Behdad Esfahbod [Tue, 21 Feb 2012 16:31:47 +0000 (11:31 -0500)]
Add test case from https://bugzilla.mozilla.org/show_bug.cgi?id=714067
Behdad Esfahbod [Mon, 30 Jan 2012 14:48:33 +0000 (09:48 -0500)]
Minor error handling
Behdad Esfahbod [Fri, 27 Jan 2012 07:14:08 +0000 (02:14 -0500)]
Update git.mk to new upstream
Behdad Esfahbod [Fri, 27 Jan 2012 07:09:40 +0000 (02:09 -0500)]
Make checks more OS X friendly
Behdad Esfahbod [Fri, 27 Jan 2012 06:57:59 +0000 (01:57 -0500)]
Fix check-header-guards on OS X
Behdad Esfahbod [Fri, 27 Jan 2012 07:20:58 +0000 (02:20 -0500)]
Minor
Behdad Esfahbod [Mon, 23 Jan 2012 00:57:00 +0000 (19:57 -0500)]
Add a few more tests
Behdad Esfahbod [Mon, 23 Jan 2012 00:29:45 +0000 (19:29 -0500)]
Add a couple Thai test cases from Thep
Behdad Esfahbod [Mon, 23 Jan 2012 00:10:55 +0000 (19:10 -0500)]
Add Devanagari test from Tom Hacohen
Behdad Esfahbod [Sun, 22 Jan 2012 21:26:49 +0000 (16:26 -0500)]
Also ignore "ChangeLog" in manifests
Behdad Esfahbod [Sun, 22 Jan 2012 21:21:19 +0000 (16:21 -0500)]
Remove newline
Behdad Esfahbod [Sun, 22 Jan 2012 21:07:32 +0000 (16:07 -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.
Behdad Esfahbod [Sun, 22 Jan 2012 20:31:44 +0000 (15:31 -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
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
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
out in favour of standards-based solutions. :)
JK
Behdad Esfahbod [Sun, 22 Jan 2012 01:03:25 +0000 (20:03 -0500)]
More shoveling around
Behdad Esfahbod [Sun, 22 Jan 2012 00:55:16 +0000 (19:55 -0500)]
Cleanup
Behdad Esfahbod [Sun, 22 Jan 2012 00:43:58 +0000 (19:43 -0500)]
Distribute testing tools
Behdad Esfahbod [Sun, 22 Jan 2012 00:40:30 +0000 (19:40 -0500)]
Speed up colorless diff
Behdad Esfahbod [Sun, 22 Jan 2012 00:37:31 +0000 (19:37 -0500)]
Cleanup manifest code
Behdad Esfahbod [Sun, 22 Jan 2012 00:31:51 +0000 (19:31 -0500)]
Port hb-manifest-update to Python
Behdad Esfahbod [Sun, 22 Jan 2012 00:15:41 +0000 (19:15 -0500)]
Ignore Broken Pipe errors
Behdad Esfahbod [Sun, 22 Jan 2012 00:07:22 +0000 (19:07 -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.
Behdad Esfahbod [Sat, 21 Jan 2012 23:59:48 +0000 (18:59 -0500)]
Correctly print out Unicode strings
Behdad Esfahbod [Sat, 21 Jan 2012 02:21:47 +0000 (21:21 -0500)]
Misc fixes
Behdad Esfahbod [Sat, 21 Jan 2012 02:16:34 +0000 (21:16 -0500)]
Port hb-manifest-read to Python
Behdad Esfahbod [Sat, 21 Jan 2012 01:56:32 +0000 (20:56 -0500)]
Add final residues from test-shape-complex
Behdad Esfahbod [Sat, 21 Jan 2012 01:51:52 +0000 (20:51 -0500)]
Add Punjabi tests from test-shape-complex also
Behdad Esfahbod [Sat, 21 Jan 2012 01:50:09 +0000 (20:50 -0500)]
Add Tamil test data from Muguntharaj Subramanian
Behdad Esfahbod [Sat, 21 Jan 2012 01:48:14 +0000 (20:48 -0500)]
Import test data from late test-shape-complex
Behdad Esfahbod [Sat, 21 Jan 2012 00:32:17 +0000 (19:32 -0500)]
Fix Unicode encoding issue
Behdad Esfahbod [Fri, 20 Jan 2012 23:39:27 +0000 (18:39 -0500)]
Make test tools interactive
By bypassing readlines() buffering.
Behdad Esfahbod [Fri, 20 Jan 2012 23:27:52 +0000 (18:27 -0500)]
Move most testing logic into hb_test_tools.py
The actual utils are one-liners now.
Behdad Esfahbod [Fri, 20 Jan 2012 22:36:10 +0000 (17:36 -0500)]
Remove test-shape-complex
New shaping testsuite and framework coming.
Behdad Esfahbod [Fri, 20 Jan 2012 22:24:05 +0000 (17:24 -0500)]
Add hb-unicode-encode
Behdad Esfahbod [Fri, 20 Jan 2012 22:18:59 +0000 (17:18 -0500)]
[hb-shape] Add parantheses around --show-text output