platform/upstream/libHarfBuzzSharp.git
12 years agoHide backend-specific shape functions
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.

12 years agoAdd names to enums
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.

12 years agoMake it an error to include non-top-level headers
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.

12 years agoMinor
Behdad Esfahbod [Thu, 12 Apr 2012 16:29:10 +0000 (12:29 -0400)]
Minor

12 years agoFix bug with not setting Unicode props of the first character
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

12 years agoMinor
Behdad Esfahbod [Thu, 12 Apr 2012 13:59:26 +0000 (09:59 -0400)]
Minor

12 years agoAdd Mongolian test case
Behdad Esfahbod [Thu, 12 Apr 2012 13:44:27 +0000 (09:44 -0400)]
Add Mongolian test case

12 years agoFix left-matra positioning in Indic
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).

12 years agoAdjust TODO
Behdad Esfahbod [Thu, 12 Apr 2012 02:04:42 +0000 (22:04 -0400)]
Adjust TODO

12 years ago[hangul] Apply *jmo features to all Hangul chars
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.

12 years agoUpdate TODO
Behdad Esfahbod [Thu, 12 Apr 2012 01:54:37 +0000 (21:54 -0400)]
Update TODO

12 years agoAdd Hangul test
Behdad Esfahbod [Wed, 11 Apr 2012 21:48:40 +0000 (17:48 -0400)]
Add Hangul test

12 years agoFix diff tool
Behdad Esfahbod [Wed, 11 Apr 2012 21:33:02 +0000 (17:33 -0400)]
Fix diff tool

12 years agoDon't create hb_apply_context_t per glyph!
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...

12 years agoFix shape to presentation forms font check
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.

12 years agoFix build with some compilers
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.

12 years agoIn Arabic fallback shaping, check that the font has glyph for new char
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

12 years agoMinor
Behdad Esfahbod [Tue, 10 Apr 2012 21:22:14 +0000 (17:22 -0400)]
Minor

12 years agoImplement Arabic fallback shaping mandatory ligatures
Behdad Esfahbod [Tue, 10 Apr 2012 21:20:05 +0000 (17:20 -0400)]
Implement Arabic fallback shaping mandatory ligatures

12 years agoDo Arabic fallback shaping
Behdad Esfahbod [Tue, 10 Apr 2012 20:44:38 +0000 (16:44 -0400)]
Do Arabic fallback shaping

12 years agoGenerate fallback Arabic shaping table
Behdad Esfahbod [Tue, 10 Apr 2012 20:25:08 +0000 (16:25 -0400)]
Generate fallback Arabic shaping table

Not hooked up yet.

12 years agoAdd Thai shaper that does SARA AM decomposition / reordering
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.

12 years agoMinor
Behdad Esfahbod [Tue, 10 Apr 2012 14:52:03 +0000 (10:52 -0400)]
Minor

12 years agoAdd Thai test case for SARA AM decomposition
Behdad Esfahbod [Tue, 10 Apr 2012 14:47:33 +0000 (10:47 -0400)]
Add Thai test case for SARA AM decomposition

12 years agoMove around
Behdad Esfahbod [Sun, 8 Apr 2012 02:07:23 +0000 (22:07 -0400)]
Move around

12 years agoMove code around, in prep for Thai/Lao shaper
Behdad Esfahbod [Sun, 8 Apr 2012 01:52:28 +0000 (21:52 -0400)]
Move code around, in prep for Thai/Lao shaper

12 years agoAdd simple Hangul shaper that recomposes Jamo when feasible
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?

12 years agoImplement normalization mode HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_FULL
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.

12 years agoBring normalization algorithm closer to the spec
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.

12 years agoFlip logic around
Behdad Esfahbod [Sat, 7 Apr 2012 18:49:13 +0000 (14:49 -0400)]
Flip logic around

12 years agoAdd Hangul test case
Behdad Esfahbod [Thu, 5 Apr 2012 21:27:23 +0000 (17:27 -0400)]
Add Hangul test case

Composed, and decomposed, of the same text.

12 years agoAdd normalize mode
Behdad Esfahbod [Thu, 5 Apr 2012 21:25:19 +0000 (17:25 -0400)]
Add normalize mode

In preparation for Hangul shaper.

12 years agoMore moving code around
Behdad Esfahbod [Thu, 5 Apr 2012 20:46:46 +0000 (16:46 -0400)]
More moving code around

12 years agoMove code around
Behdad Esfahbod [Thu, 5 Apr 2012 20:40:37 +0000 (16:40 -0400)]
Move code around

12 years agoMore sorting by Unicode version
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.

12 years agoMinor
Behdad Esfahbod [Wed, 7 Mar 2012 21:51:29 +0000 (16:51 -0500)]
Minor

12 years agoMore Unicode script age annotation, and a couple more RTL scripts
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

12 years agoMake src tests pass again
Behdad Esfahbod [Wed, 7 Mar 2012 20:33:14 +0000 (15:33 -0500)]
Make src tests pass again

12 years agoSeparate Unicode 3.1 and Unicode 3.2 additions
Behdad Esfahbod [Wed, 7 Mar 2012 20:20:20 +0000 (15:20 -0500)]
Separate Unicode 3.1 and Unicode 3.2 additions

12 years agoRoute three Unicode 6.1 scripts through Indic shaper
Behdad Esfahbod [Wed, 7 Mar 2012 17:56:22 +0000 (12:56 -0500)]
Route three Unicode 6.1 scripts through Indic shaper

12 years agoAdd Unicode 6.1.0 scripts
Behdad Esfahbod [Wed, 7 Mar 2012 17:53:34 +0000 (12:53 -0500)]
Add Unicode 6.1.0 scripts

12 years agoLydian and Kharoshthi are right-to-left
Behdad Esfahbod [Wed, 7 Mar 2012 17:49:08 +0000 (12:49 -0500)]
Lydian and Kharoshthi are right-to-left

12 years agoWhitespace
Behdad Esfahbod [Wed, 7 Mar 2012 17:38:39 +0000 (12:38 -0500)]
Whitespace

12 years agoUse generic shaper for Buhid
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...

12 years agoUpdate Indic table to Unicode 6.1 data
Behdad Esfahbod [Wed, 7 Mar 2012 17:08:33 +0000 (12:08 -0500)]
Update Indic table to Unicode 6.1 data

12 years agoTypo
Behdad Esfahbod [Wed, 7 Mar 2012 15:21:24 +0000 (10:21 -0500)]
Typo

12 years agoMinor doc fixes
Behdad Esfahbod [Wed, 7 Mar 2012 01:47:50 +0000 (20:47 -0500)]
Minor doc fixes

12 years agoAdd Hebrew diacritics test cases
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

12 years agoFix cluster formation in Indic
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

12 years agoFix atomic-int op on Apple
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.

12 years agoAdd support for atomic int and mutex on Apple systems
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.

12 years agoRemove unused hb_atomic_int_set()
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.

12 years agoAdd hb-warning.cc. Oops!
Behdad Esfahbod [Fri, 24 Feb 2012 00:47:43 +0000 (19:47 -0500)]
Add hb-warning.cc.  Oops!

12 years agoAllow disabling multi-threaded support
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

12 years agoMinor
Behdad Esfahbod [Wed, 22 Feb 2012 21:43:21 +0000 (16:43 -0500)]
Minor

12 years agoFollowup: Reorder Hebrew combining classes for better rendering
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.

12 years agoReorder Hebrew combining classes for better rendering
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

12 years agoAdd test case from https://bugzilla.mozilla.org/show_bug.cgi?id=714067
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

12 years agoMinor error handling
Behdad Esfahbod [Mon, 30 Jan 2012 14:48:33 +0000 (09:48 -0500)]
Minor error handling

12 years agoUpdate git.mk to new upstream
Behdad Esfahbod [Fri, 27 Jan 2012 07:14:08 +0000 (02:14 -0500)]
Update git.mk to new upstream

12 years agoMake checks more OS X friendly
Behdad Esfahbod [Fri, 27 Jan 2012 07:09:40 +0000 (02:09 -0500)]
Make checks more OS X friendly

12 years agoFix check-header-guards on OS X
Behdad Esfahbod [Fri, 27 Jan 2012 06:57:59 +0000 (01:57 -0500)]
Fix check-header-guards on OS X

12 years agoMinor
Behdad Esfahbod [Fri, 27 Jan 2012 07:20:58 +0000 (02:20 -0500)]
Minor

12 years agoAdd a few more tests
Behdad Esfahbod [Mon, 23 Jan 2012 00:57:00 +0000 (19:57 -0500)]
Add a few more tests

12 years agoAdd a couple Thai test cases from Thep
Behdad Esfahbod [Mon, 23 Jan 2012 00:29:45 +0000 (19:29 -0500)]
Add a couple Thai test cases from Thep

12 years agoAdd Devanagari test from Tom Hacohen
Behdad Esfahbod [Mon, 23 Jan 2012 00:10:55 +0000 (19:10 -0500)]
Add Devanagari test from Tom Hacohen

12 years agoAlso ignore "ChangeLog" in manifests
Behdad Esfahbod [Sun, 22 Jan 2012 21:26:49 +0000 (16:26 -0500)]
Also ignore "ChangeLog" in manifests

12 years agoRemove newline
Behdad Esfahbod [Sun, 22 Jan 2012 21:21:19 +0000 (16:21 -0500)]
Remove newline

12 years agoAllow --color=html in hb-diff
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.

12 years agoFallback to Latin script if the font has no other usable scripts
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

12 years agoMore shoveling around
Behdad Esfahbod [Sun, 22 Jan 2012 01:03:25 +0000 (20:03 -0500)]
More shoveling around

12 years agoCleanup
Behdad Esfahbod [Sun, 22 Jan 2012 00:55:16 +0000 (19:55 -0500)]
Cleanup

12 years agoDistribute testing tools
Behdad Esfahbod [Sun, 22 Jan 2012 00:43:58 +0000 (19:43 -0500)]
Distribute testing tools

12 years agoSpeed up colorless diff
Behdad Esfahbod [Sun, 22 Jan 2012 00:40:30 +0000 (19:40 -0500)]
Speed up colorless diff

12 years agoCleanup manifest code
Behdad Esfahbod [Sun, 22 Jan 2012 00:37:31 +0000 (19:37 -0500)]
Cleanup manifest code

12 years agoPort hb-manifest-update to Python
Behdad Esfahbod [Sun, 22 Jan 2012 00:31:51 +0000 (19:31 -0500)]
Port hb-manifest-update to Python

12 years agoIgnore Broken Pipe errors
Behdad Esfahbod [Sun, 22 Jan 2012 00:15:41 +0000 (19:15 -0500)]
Ignore Broken Pipe errors

12 years ago[util] Make clusters work with char offset instead of UTF-8 offset
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.

12 years agoCorrectly print out Unicode strings
Behdad Esfahbod [Sat, 21 Jan 2012 23:59:48 +0000 (18:59 -0500)]
Correctly print out Unicode strings

12 years agoMisc fixes
Behdad Esfahbod [Sat, 21 Jan 2012 02:21:47 +0000 (21:21 -0500)]
Misc fixes

12 years agoPort hb-manifest-read to Python
Behdad Esfahbod [Sat, 21 Jan 2012 02:16:34 +0000 (21:16 -0500)]
Port hb-manifest-read to Python

12 years agoAdd final residues from test-shape-complex
Behdad Esfahbod [Sat, 21 Jan 2012 01:56:32 +0000 (20:56 -0500)]
Add final residues from test-shape-complex

12 years agoAdd Punjabi tests from test-shape-complex also
Behdad Esfahbod [Sat, 21 Jan 2012 01:51:52 +0000 (20:51 -0500)]
Add Punjabi tests from test-shape-complex also

12 years agoAdd Tamil test data from Muguntharaj Subramanian
Behdad Esfahbod [Sat, 21 Jan 2012 01:50:09 +0000 (20:50 -0500)]
Add Tamil test data from Muguntharaj Subramanian

12 years agoImport test data from late test-shape-complex
Behdad Esfahbod [Sat, 21 Jan 2012 01:48:14 +0000 (20:48 -0500)]
Import test data from late test-shape-complex

12 years agoFix Unicode encoding issue
Behdad Esfahbod [Sat, 21 Jan 2012 00:32:17 +0000 (19:32 -0500)]
Fix Unicode encoding issue

12 years agoMake test tools interactive
Behdad Esfahbod [Fri, 20 Jan 2012 23:39:27 +0000 (18:39 -0500)]
Make test tools interactive

By bypassing readlines() buffering.

12 years agoMove most testing logic into hb_test_tools.py
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.

12 years agoRemove test-shape-complex
Behdad Esfahbod [Fri, 20 Jan 2012 22:36:10 +0000 (17:36 -0500)]
Remove test-shape-complex

New shaping testsuite and framework coming.

12 years agoAdd hb-unicode-encode
Behdad Esfahbod [Fri, 20 Jan 2012 22:24:05 +0000 (17:24 -0500)]
Add hb-unicode-encode

12 years ago[hb-shape] Add parantheses around --show-text output
Behdad Esfahbod [Fri, 20 Jan 2012 22:18:59 +0000 (17:18 -0500)]
[hb-shape] Add parantheses around --show-text output

12 years agoAdd hb-diff-filter-failures
Behdad Esfahbod [Fri, 20 Jan 2012 22:17:44 +0000 (17:17 -0500)]
Add hb-diff-filter-failures

12 years agoMove
Behdad Esfahbod [Fri, 20 Jan 2012 22:16:35 +0000 (17:16 -0500)]
Move

12 years agoMinor
Behdad Esfahbod [Fri, 20 Jan 2012 19:24:21 +0000 (14:24 -0500)]
Minor

12 years agoMinor
Behdad Esfahbod [Fri, 20 Jan 2012 19:21:53 +0000 (14:21 -0500)]
Minor

12 years ago[test/shaping] Add some Indic test data for the new test suite
Behdad Esfahbod [Fri, 20 Jan 2012 18:57:57 +0000 (13:57 -0500)]
[test/shaping] Add some Indic test data for the new test suite

Imported from UTRRS.

12 years agoFix
Behdad Esfahbod [Fri, 20 Jan 2012 18:57:14 +0000 (13:57 -0500)]
Fix

12 years agoMove hb-diff to test/shaping/
Behdad Esfahbod [Fri, 20 Jan 2012 18:50:55 +0000 (13:50 -0500)]
Move hb-diff to test/shaping/

12 years agoAdd hb-unicode-decode
Behdad Esfahbod [Fri, 20 Jan 2012 18:50:05 +0000 (13:50 -0500)]
Add hb-unicode-decode

12 years agoMinor
Behdad Esfahbod [Fri, 20 Jan 2012 18:49:56 +0000 (13:49 -0500)]
Minor