platform/upstream/libHarfBuzzSharp.git
12 years agoAdd hb_set_digest_t
Behdad Esfahbod [Thu, 2 Aug 2012 01:06:27 +0000 (21:06 -0400)]
Add hb_set_digest_t

Implement two set digests, and one that combines the two.

12 years ago[OT] Templatize Coverage::add_coverage()
Behdad Esfahbod [Thu, 2 Aug 2012 01:05:57 +0000 (21:05 -0400)]
[OT] Templatize Coverage::add_coverage()

12 years agoInline font getters
Behdad Esfahbod [Wed, 1 Aug 2012 23:03:46 +0000 (19:03 -0400)]
Inline font getters

12 years agoUse a lookup table for modified_combining_class
Behdad Esfahbod [Wed, 1 Aug 2012 22:07:42 +0000 (18:07 -0400)]
Use a lookup table for modified_combining_class

12 years agoInline Unicode callbacks internally
Behdad Esfahbod [Wed, 1 Aug 2012 21:13:10 +0000 (17:13 -0400)]
Inline Unicode callbacks internally

12 years agoMove unicode accessors around
Behdad Esfahbod [Wed, 1 Aug 2012 21:01:59 +0000 (17:01 -0400)]
Move unicode accessors around

12 years agoAdd hb_unicode_combining_class_t
Behdad Esfahbod [Wed, 1 Aug 2012 20:23:44 +0000 (16:23 -0400)]
Add hb_unicode_combining_class_t

12 years agoAdd commentary on the compatibility decomposition in the normalizer
Behdad Esfahbod [Wed, 1 Aug 2012 17:32:39 +0000 (13:32 -0400)]
Add commentary on the compatibility decomposition in the normalizer

12 years ago[hb-old] Adjust mark positioning parameters
Behdad Esfahbod [Wed, 1 Aug 2012 04:21:09 +0000 (00:21 -0400)]
[hb-old] Adjust mark positioning parameters

Fallback mark positioning works now...  With hb-ft and hb-view /
hb-shape at least.

12 years ago[old] Implement fontMetrics
Behdad Esfahbod [Wed, 1 Aug 2012 04:03:41 +0000 (00:03 -0400)]
[old] Implement fontMetrics

12 years ago[GPOS] Adjust mark advance-width zeroing logic
Behdad Esfahbod [Wed, 1 Aug 2012 03:41:06 +0000 (23:41 -0400)]
[GPOS] Adjust mark advance-width zeroing logic

If there is no GPOS, zero mark advances.

If there *is* GPOS and the shaper requests so, zero mark advances for
attached marks.

Fixes regression with Tibetan, where the font has GPOS, and marks a
glyph as mark where it shouldn't get zero advance.

12 years agoRemove some TODO items
Behdad Esfahbod [Wed, 1 Aug 2012 03:10:11 +0000 (23:10 -0400)]
Remove some TODO items

12 years ago[OT] Zero mark advances if the shaper desires so
Behdad Esfahbod [Wed, 1 Aug 2012 03:08:25 +0000 (23:08 -0400)]
[OT] Zero mark advances if the shaper desires so

Enabled for all shapers except for Indic.

12 years ago[OT] Synthesize glyph classes
Behdad Esfahbod [Wed, 1 Aug 2012 02:48:38 +0000 (22:48 -0400)]
[OT] Synthesize glyph classes

12 years ago[GSUB] Minor
Behdad Esfahbod [Wed, 1 Aug 2012 02:43:58 +0000 (22:43 -0400)]
[GSUB] Minor

12 years ago[hb-old] Implement getGlyphMetrics()
Behdad Esfahbod [Wed, 1 Aug 2012 02:43:32 +0000 (22:43 -0400)]
[hb-old] Implement getGlyphMetrics()

Still working on it.

12 years agoImplement Unicode compatibility decompositions
Behdad Esfahbod [Wed, 1 Aug 2012 01:36:16 +0000 (21:36 -0400)]
Implement Unicode compatibility decompositions

Based on patch from Philip Withnall.
https://bugs.freedesktop.org/show_bug.cgi?id=41095

12 years agoRemove unused function
Behdad Esfahbod [Wed, 1 Aug 2012 01:10:16 +0000 (21:10 -0400)]
Remove unused function

12 years ago[buffer] Minor
Behdad Esfahbod [Tue, 31 Jul 2012 18:51:36 +0000 (14:51 -0400)]
[buffer] Minor

12 years ago[OT] Streamline complex shaper enumeration
Behdad Esfahbod [Tue, 31 Jul 2012 01:08:51 +0000 (21:08 -0400)]
[OT] Streamline complex shaper enumeration

Add a shaper class struct.

12 years agoMinor
Behdad Esfahbod [Mon, 30 Jul 2012 23:54:50 +0000 (19:54 -0400)]
Minor

12 years agoMore refactoring glyph class access
Behdad Esfahbod [Mon, 30 Jul 2012 23:47:53 +0000 (19:47 -0400)]
More refactoring glyph class access

12 years ago[OT] Don't crash if no GDEF available
Behdad Esfahbod [Mon, 30 Jul 2012 23:37:44 +0000 (19:37 -0400)]
[OT] Don't crash if no GDEF available

12 years agoMinor
Behdad Esfahbod [Mon, 30 Jul 2012 23:31:17 +0000 (19:31 -0400)]
Minor

12 years ago[GSUB/GPOS] Move glyph props matching around
Behdad Esfahbod [Mon, 30 Jul 2012 23:30:01 +0000 (19:30 -0400)]
[GSUB/GPOS] Move glyph props matching around

12 years ago[GSUB] Don't erase glyph classes if GDEF does not have glyph classes
Behdad Esfahbod [Mon, 30 Jul 2012 22:46:41 +0000 (18:46 -0400)]
[GSUB] Don't erase glyph classes if GDEF does not have glyph classes

12 years agoMinor
Behdad Esfahbod [Mon, 30 Jul 2012 22:40:27 +0000 (18:40 -0400)]
Minor

12 years ago[GSUB] Minor
Behdad Esfahbod [Mon, 30 Jul 2012 22:36:42 +0000 (18:36 -0400)]
[GSUB] Minor

12 years ago[Uniscribe] Clean up a bit
Behdad Esfahbod [Mon, 30 Jul 2012 21:54:38 +0000 (17:54 -0400)]
[Uniscribe] Clean up a bit

12 years ago[CoreText] Port to shape_plan infrastructure
Behdad Esfahbod [Mon, 30 Jul 2012 21:48:04 +0000 (17:48 -0400)]
[CoreText] Port to shape_plan infrastructure

12 years agoFix build on Mac
Behdad Esfahbod [Mon, 30 Jul 2012 21:22:17 +0000 (17:22 -0400)]
Fix build on Mac

12 years agoUnbreak Hangul jamo composition
Behdad Esfahbod [Mon, 30 Jul 2012 18:53:41 +0000 (14:53 -0400)]
Unbreak Hangul jamo composition

When we removed the separate Hangul shaper, the specific normalization
preference of Hangul was lost.  Fix that.  Also, the Thai shaper was
copied from Hangul, so had the fully-composed normalization behavior,
which was unnecessary.  So, fix that too.

12 years ago[Indic] Recategorize Telugu length marks
Behdad Esfahbod [Mon, 30 Jul 2012 17:54:46 +0000 (13:54 -0400)]
[Indic] Recategorize Telugu length marks

Fixes 8 more Telugu tests.  Failures at 15 (0.00154548%).

12 years agoAdd Hebrew test
Behdad Esfahbod [Mon, 30 Jul 2012 16:40:18 +0000 (12:40 -0400)]
Add Hebrew test

12 years ago[hb-old] Fix misc leaks
Behdad Esfahbod [Mon, 30 Jul 2012 14:50:57 +0000 (10:50 -0400)]
[hb-old] Fix misc leaks

Backport (forward-port?!) from upstream:

commit 3ab7b37bdebf0f8773493a1fee910b151c4de30f
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Jul 30 10:50:22 2012 -0400

    Fix misc leaks

    https://bugs.freedesktop.org/show_bug.cgi?id=31992
    https://bugs.freedesktop.org/show_bug.cgi?id=31993
    https://bugs.freedesktop.org/show_bug.cgi?id=31994
    https://bugs.freedesktop.org/show_bug.cgi?id=31995

12 years agoDon't lock user_data set during destruction if empty
Behdad Esfahbod [Mon, 30 Jul 2012 14:06:42 +0000 (10:06 -0400)]
Don't lock user_data set during destruction if empty

12 years agoFix leak
Behdad Esfahbod [Mon, 30 Jul 2012 13:53:06 +0000 (09:53 -0400)]
Fix leak

12 years ago[OT] Gain back some lost speed
Behdad Esfahbod [Mon, 30 Jul 2012 06:38:39 +0000 (02:38 -0400)]
[OT] Gain back some lost speed

12 years ago[OT] Remove hb_ot_layout_ensure()
Behdad Esfahbod [Mon, 30 Jul 2012 06:36:46 +0000 (02:36 -0400)]
[OT] Remove hb_ot_layout_ensure()

I didn't like it from the beginning.

12 years agoMinor
Behdad Esfahbod [Mon, 30 Jul 2012 06:35:07 +0000 (02:35 -0400)]
Minor

12 years ago[GSUB] Further adjustments to mark-attachment vs ligation interaction
Behdad Esfahbod [Mon, 30 Jul 2012 05:46:34 +0000 (01:46 -0400)]
[GSUB] Further adjustments to mark-attachment vs ligation interaction

The d1d69ec52e75a78575b620a1c456d528b6078170 change broke Kannada badly,
since it was ligating consonants, pushing matra out, and then ligating
with the matra.  Adjust for that.  See comments.

12 years ago[GSUB] Minor
Behdad Esfahbod [Mon, 30 Jul 2012 04:55:15 +0000 (00:55 -0400)]
[GSUB] Minor

12 years ago[GSUB] Don't ligate glyphs attached to different components of ligatures
Behdad Esfahbod [Mon, 30 Jul 2012 04:51:47 +0000 (00:51 -0400)]
[GSUB] Don't ligate glyphs attached to different components of ligatures

This concludes the mark-attachment vs ligating interaction fixes (for now).

12 years agoMinor
Behdad Esfahbod [Mon, 30 Jul 2012 04:42:07 +0000 (00:42 -0400)]
Minor

12 years agoMinor
Behdad Esfahbod [Mon, 30 Jul 2012 04:39:00 +0000 (00:39 -0400)]
Minor

12 years ago[GSUB] Fix mark component stuff when ligatures form ligatures!
Behdad Esfahbod [Mon, 30 Jul 2012 04:00:59 +0000 (00:00 -0400)]
[GSUB] Fix mark component stuff when ligatures form ligatures!

See comments.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=437633

12 years ago[GSUB/GPOS] Minor
Behdad Esfahbod [Mon, 30 Jul 2012 02:02:24 +0000 (22:02 -0400)]
[GSUB/GPOS] Minor

Start squeezing more out of lig_id/lig_comp.

12 years agoFixup bb0e4ba3e9c5a407fc5d73c914e429d24d336380
Behdad Esfahbod [Mon, 30 Jul 2012 01:35:22 +0000 (21:35 -0400)]
Fixup bb0e4ba3e9c5a407fc5d73c914e429d24d336380

12 years ago[GSUB] Don't set new lig_id on mark ligatures
Behdad Esfahbod [Mon, 30 Jul 2012 00:37:38 +0000 (20:37 -0400)]
[GSUB] Don't set new lig_id on mark ligatures

If two marks form a ligature, retain their previous lig_id, such that
the mark ligature can attach to ligature components...

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676343

In fact, I noticed that we should not let ligatures form between glyphs
coming from different components of a previous ligature.  For example,
if the sequence is: LAM,SHADDA,LAM,FATHA,HEH, the LAM,LAM,HEH form a
ligature, putting SHADDA and FATHA next to eachother.  However, it would
be wrong to ligate them.  Uniscribe has this bug also.

12 years agoAdd Arabic tests for mark ligature component attachments
Behdad Esfahbod [Mon, 30 Jul 2012 00:31:36 +0000 (20:31 -0400)]
Add Arabic tests for mark ligature component attachments

12 years ago[hb-old] Fix cluster formation in RTL
Behdad Esfahbod [Mon, 30 Jul 2012 00:09:22 +0000 (20:09 -0400)]
[hb-old] Fix cluster formation in RTL

Unlike Uniscribe, hb-old returns glyphs in logical order, so the logic
does not need to duplicated for RTL.

12 years ago[Minor]
Behdad Esfahbod [Sun, 29 Jul 2012 23:56:54 +0000 (19:56 -0400)]
[Minor]

12 years agoMinor
Behdad Esfahbod [Sun, 29 Jul 2012 21:34:14 +0000 (17:34 -0400)]
Minor

12 years ago[Uniscribe] Remove hb_uniscribe_font_ensure()
Behdad Esfahbod [Sun, 29 Jul 2012 01:16:08 +0000 (21:16 -0400)]
[Uniscribe] Remove hb_uniscribe_font_ensure()

Wasn't a huge fan of putting the burden on the user.  Just remove it and
do what we've got to do transparently.

12 years ago[GPOS] Fix mark-to-mark positioning when one of the marks is a ligature
Behdad Esfahbod [Sun, 29 Jul 2012 01:05:25 +0000 (21:05 -0400)]
[GPOS] Fix mark-to-mark positioning when one of the marks is a ligature

This commit: a3313e54008167e415b72c780ca7b9cda958d07e broke MarkMarkPos
when one of the marks itself is a ligature.  That regressed 26 Tibetan
tests (up from zero!).  Fix that.  Tibetan back to zero.

12 years ago[GSUB] Minor
Behdad Esfahbod [Sat, 28 Jul 2012 22:53:01 +0000 (18:53 -0400)]
[GSUB] Minor

12 years ago[GSUB] Simplify would-apply
Behdad Esfahbod [Sat, 28 Jul 2012 22:34:58 +0000 (18:34 -0400)]
[GSUB] Simplify would-apply

12 years agoMinor
Behdad Esfahbod [Sat, 28 Jul 2012 22:03:20 +0000 (18:03 -0400)]
Minor

12 years ago[GSUB/GPOS] Add get_coverage() and use it to speed up main loop
Behdad Esfahbod [Sat, 28 Jul 2012 21:31:01 +0000 (17:31 -0400)]
[GSUB/GPOS] Add get_coverage() and use it to speed up main loop

And use it to speed up the hotspot by checking coverage directly in
the main loop, not 10 functions deep in.

Gives me a solid 20% boost with Indic test suite.  Less so for less
lookup-intensive scenarios.

Remove the "fast_path" hack from before.

12 years agoReject lookups with no subTable
Behdad Esfahbod [Sat, 28 Jul 2012 21:25:20 +0000 (17:25 -0400)]
Reject lookups with no subTable

12 years ago[GSUB/GPOS] Reject Context/ChainContext lookups with zero input
Behdad Esfahbod [Sat, 28 Jul 2012 21:01:59 +0000 (17:01 -0400)]
[GSUB/GPOS] Reject Context/ChainContext lookups with zero input

12 years agoImplement shape_plan caching
Behdad Esfahbod [Fri, 27 Jul 2012 08:02:38 +0000 (04:02 -0400)]
Implement shape_plan caching

Should give us some performance boost.

12 years agoAdd default_shaper_list to shape_plan
Behdad Esfahbod [Fri, 27 Jul 2012 07:16:22 +0000 (03:16 -0400)]
Add default_shaper_list to shape_plan

12 years agoDon't fail choosing shaper on planning failure
Behdad Esfahbod [Fri, 27 Jul 2012 07:12:23 +0000 (03:12 -0400)]
Don't fail choosing shaper on planning failure

Shapers have a chance to reject a font in face shaper_data creation.
No need to allow failing during planning.

12 years agoAdd hb_ot_layout_ensure() and hb_uniscribe_font_ensure()
Behdad Esfahbod [Fri, 27 Jul 2012 07:06:30 +0000 (03:06 -0400)]
Add hb_ot_layout_ensure() and hb_uniscribe_font_ensure()

12 years agoChoose one shaper per plan
Behdad Esfahbod [Fri, 27 Jul 2012 06:49:39 +0000 (02:49 -0400)]
Choose one shaper per plan

12 years agoMove ot shaper completely to shape_plan
Behdad Esfahbod [Fri, 27 Jul 2012 06:29:32 +0000 (02:29 -0400)]
Move ot shaper completely to shape_plan

12 years agoPartially switch ot shaper to shape_plan
Behdad Esfahbod [Fri, 27 Jul 2012 06:12:28 +0000 (02:12 -0400)]
Partially switch ot shaper to shape_plan

12 years agoSwitch old and uniscribe backends to shape_plan
Behdad Esfahbod [Fri, 27 Jul 2012 05:26:11 +0000 (01:26 -0400)]
Switch old and uniscribe backends to shape_plan

12 years agoSwitch to shape_plan
Behdad Esfahbod [Fri, 27 Jul 2012 05:13:53 +0000 (01:13 -0400)]
Switch to shape_plan

Not optimized yet.  Eats babies.  And no shaper uses the shape_plan.

12 years agoStart implementing shape_plan
Behdad Esfahbod [Fri, 27 Jul 2012 03:46:53 +0000 (23:46 -0400)]
Start implementing shape_plan

12 years agoMinor
Behdad Esfahbod [Fri, 27 Jul 2012 02:05:39 +0000 (22:05 -0400)]
Minor

12 years agoStart adding a unified shaper access infrastructure
Behdad Esfahbod [Thu, 26 Jul 2012 21:34:25 +0000 (17:34 -0400)]
Start adding a unified shaper access infrastructure

Add global shape_plan.  Unused so far.

12 years agoFix visibility warnings with MinGW32
Behdad Esfahbod [Thu, 26 Jul 2012 20:06:16 +0000 (16:06 -0400)]
Fix visibility warnings with MinGW32

12 years ago[CoreText] Ensure cluster indices in output buffer are non-decreasing.
Jonathan Kew [Thu, 26 Jul 2012 19:58:45 +0000 (15:58 -0400)]
[CoreText] Ensure cluster indices in output buffer are non-decreasing.

Does not provide Uniscribe-compatible results, but should at least avoid
breaking hb-view due to out-of-order cluster values.

For RTL runs, ensure cluster values are non-increasing (instead of
non-decreasing).

12 years agoMinor
Behdad Esfahbod [Thu, 26 Jul 2012 16:01:12 +0000 (12:01 -0400)]
Minor

12 years ago[hb-old] Fix Arabic cursive positioning
Behdad Esfahbod [Wed, 25 Jul 2012 23:30:15 +0000 (19:30 -0400)]
[hb-old] Fix Arabic cursive positioning

Backporting from upstream:

commit b847f24ce855d24f6822bcd9c0006905e81b94d8
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Jul 25 19:29:16 2012 -0400

    [arabic] Fix Arabic cursive positioning

    This was clearly broken in testing.  Who knows...  Fixes for me.
    Test with a Nastaleeq font, or with Arabic Typesetting.

    Backporting from Chromium.

12 years ago[hb-old] Fixup not-enough-space handling
Behdad Esfahbod [Wed, 25 Jul 2012 23:22:57 +0000 (19:22 -0400)]
[hb-old] Fixup not-enough-space handling

12 years ago[hb-old] Fix clusters
Behdad Esfahbod [Wed, 25 Jul 2012 23:20:34 +0000 (19:20 -0400)]
[hb-old] Fix clusters

Unlike its "documentation", hb-old's log_clusters are, well, indeed
logical, not visual.  Fixup.  Adapted / copied from hb-uniscribe.

12 years ago[GPOS] Fix MarkMarkPos applied to results of MultipleSubst
Behdad Esfahbod [Wed, 25 Jul 2012 22:37:51 +0000 (18:37 -0400)]
[GPOS] Fix MarkMarkPos applied to results of MultipleSubst

This was broken as a result of 7b84c536c10ab90ed96a033d88e9ad232d46c5b8.
As Khaled reported, MarkMark positioning was broken with glyphs
resulting from a MultipleSubst.  Fixed.  Test with the ALLAH character
in Amiri.

12 years agoMinor
Behdad Esfahbod [Wed, 25 Jul 2012 15:59:52 +0000 (11:59 -0400)]
Minor

12 years ago[hb-old] Add HarfBuzz.old shaper
Behdad Esfahbod [Wed, 25 Jul 2012 01:05:12 +0000 (21:05 -0400)]
[hb-old] Add HarfBuzz.old shaper

Choose using shaper name "old".

12 years ago[hb-old] Define Unicode funcs in terms of new HarfBuzz
Behdad Esfahbod [Tue, 24 Jul 2012 23:53:55 +0000 (19:53 -0400)]
[hb-old] Define Unicode funcs in terms of new HarfBuzz

12 years ago[hb-old] Shovel out the line-breaking / word-segmentation stuff
Behdad Esfahbod [Tue, 24 Jul 2012 23:49:48 +0000 (19:49 -0400)]
[hb-old] Shovel out the line-breaking / word-segmentation stuff

12 years ago[hb-old] Add visibility attributes
Behdad Esfahbod [Tue, 24 Jul 2012 23:38:24 +0000 (19:38 -0400)]
[hb-old] Add visibility attributes

12 years ago[hb-old] Remove unused header file
Behdad Esfahbod [Tue, 24 Jul 2012 23:21:22 +0000 (19:21 -0400)]
[hb-old] Remove unused header file

12 years ago[hb-old] Rename hb_buffer_* to HB_Buffer_*
Behdad Esfahbod [Tue, 24 Jul 2012 23:20:19 +0000 (19:20 -0400)]
[hb-old] Rename hb_buffer_* to HB_Buffer_*

12 years ago[hb-old] Start adding HarfBuzz-old as a new backend
Behdad Esfahbod [Tue, 24 Jul 2012 23:16:56 +0000 (19:16 -0400)]
[hb-old] Start adding HarfBuzz-old as a new backend

12 years agoMinor
Behdad Esfahbod [Tue, 24 Jul 2012 21:09:01 +0000 (17:09 -0400)]
Minor

12 years ago[Mongolian] Remove Mongolian Vowel Separator at the end of shaping
Behdad Esfahbod [Tue, 24 Jul 2012 21:03:55 +0000 (17:03 -0400)]
[Mongolian] Remove Mongolian Vowel Separator at the end of shaping

Results match Uniscribe now.

12 years ago[CoreText] Add basic Core Text backend for comparison with our native shaping
Jonathan Kew [Tue, 24 Jul 2012 19:52:32 +0000 (15:52 -0400)]
[CoreText] Add basic Core Text backend for comparison with our native shaping

Does not attempt to handle clusters in a Uniscribe- or HarfBuzz-compatible way;
just returns the original string indexes that CT maintains. These may even be
out-of-order in the case of reordrant glyphs.

12 years agoMake data members of various OpenType structs protected instead of private
Behdad Esfahbod [Tue, 24 Jul 2012 19:40:37 +0000 (15:40 -0400)]
Make data members of various OpenType structs protected instead of private

Should fix warnings generated when building with -Wunused-private-field.
Based on patch from Jonathan Kew.

12 years agoMinor const correctness shuffling
Behdad Esfahbod [Tue, 24 Jul 2012 19:02:34 +0000 (15:02 -0400)]
Minor const correctness shuffling

12 years ago[Indic] Reposition Gurmukhi top matras to after post
Behdad Esfahbod [Tue, 24 Jul 2012 17:48:49 +0000 (13:48 -0400)]
[Indic] Reposition Gurmukhi top matras to after post

The font is forming a post-base consonant in some samples, and Uniscribe
positions top matra on the post-base.  Do the same.

Gurmukhi failures down from 59 to 41 (0.0674242%).

12 years ago[Indic] Ignore Uniscribe output containing two zero-width space glyphs
Behdad Esfahbod [Tue, 24 Jul 2012 17:26:32 +0000 (13:26 -0400)]
[Indic] Ignore Uniscribe output containing two zero-width space glyphs

Uniscribe is buggy and sometimes /eats/ a mark next to a non-joiner.
Most of Malayalam failures where actually hitting this bug.

Ignore test output with two zero-width space glyphs.  This is a hack
until we build up the test suite infrastructure better.

Bengali went down by 9, Devanagari by 2, Kannada by 130, Malayalm down
from 1197 to 307, Sinhala down by 16, Telugu down by 26.  New stats:

BENGALI: 353996 out of 354285 tests passed. 289 failed (0.0815727%)
DEVANAGARI: 693573 out of 693628 tests passed. 55 failed (0.00792932%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
GURMUKHI: 60750 out of 60809 tests passed. 59 failed (0.0970251%)
KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%)
KHMER: 299094 out of 299124 tests passed. 30 failed (0.0100293%)
MALAYALAM: 1048109 out of 1048416 tests passed. 307 failed (0.0292823%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271715 out of 271847 tests passed. 132 failed (0.0485567%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970550 out of 970573 tests passed. 23 failed (0.00236973%)

12 years ago[Indic] Better position left-matra in Malayalam
Behdad Esfahbod [Tue, 24 Jul 2012 07:36:47 +0000 (03:36 -0400)]
[Indic] Better position left-matra in Malayalam

Just put it before base, which is what's expected.

Malayalam failures down from 1559 to 1197 (0.114172%).

BENGALI: 353988 out of 354285 tests passed. 297 failed (0.0838308%)
DEVANAGARI: 693571 out of 693628 tests passed. 57 failed (0.00821766%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
GURMUKHI: 60750 out of 60809 tests passed. 59 failed (0.0970251%)
KANNADA: 950956 out of 951913 tests passed. 957 failed (0.100534%)
KHMER: 299094 out of 299124 tests passed. 30 failed (0.0100293%)
MALAYALAM: 1047219 out of 1048416 tests passed. 1197 failed (0.114172%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271699 out of 271847 tests passed. 148 failed (0.0544424%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970524 out of 970573 tests passed. 49 failed (0.00504856%)

12 years ago[Indic] Implement Reph+Ya-Phalaa interaction
Behdad Esfahbod [Tue, 24 Jul 2012 07:04:36 +0000 (03:04 -0400)]
[Indic] Implement Reph+Ya-Phalaa interaction

The sequence Ra,H,Ya in Bengali is ambigious and Unicode encoded that to
get Ya-Phalaa, one would place ZWJ before Halant.  Ie. a ZWJ,H sequence
requests subjoining, while a H,ZWJ requests Half form.  Implement that.

Bengali failures go down from 377 to 297 (0.0838308%).
Gujarati is down by 4 to 17 (0.0046384%).
Kannada is down by 226 to 957 (0.100534%).

Current status:

BENGALI: 353988 out of 354285 tests passed. 297 failed (0.0838308%)
DEVANAGARI: 693571 out of 693628 tests passed. 57 failed (0.00821766%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
GURMUKHI: 60750 out of 60809 tests passed. 59 failed (0.0970251%)
KANNADA: 950956 out of 951913 tests passed. 957 failed (0.100534%)
KHMER: 299094 out of 299124 tests passed. 30 failed (0.0100293%)
MALAYALAM: 1046857 out of 1048416 tests passed. 1559 failed (0.148701%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271699 out of 271847 tests passed. 148 failed (0.0544424%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970524 out of 970573 tests passed. 49 failed (0.00504856%)

12 years ago[Indic] Limit matras to 4 per syllable
Behdad Esfahbod [Tue, 24 Jul 2012 06:30:38 +0000 (02:30 -0400)]
[Indic] Limit matras to 4 per syllable

Also limit joiners.

This limits our syllable length to a constant, and is
closer to what Uniscribe does anyway.

Two Devanagari tests regressed, but who cares about tests with 20
joiners in a row?!  Devanagari at 57 (0.00821766%) now.

12 years ago[Indic] Unmark U+17D1 KHMER SIGN VIRIAM to NOT be a Virama
Behdad Esfahbod [Tue, 24 Jul 2012 06:25:26 +0000 (02:25 -0400)]
[Indic] Unmark U+17D1 KHMER SIGN VIRIAM to NOT be a Virama

Fixes another 1 Khmer failure.  Down to 30 (0.0100293%) now.

12 years ago[Indic] Recategorize Khmer various signs as top matras
Behdad Esfahbod [Tue, 24 Jul 2012 06:22:18 +0000 (02:22 -0400)]
[Indic] Recategorize Khmer various signs as top matras

Khmer failures down from 39 to 31 (0.0103636%).