platform/upstream/libHarfBuzzSharp.git
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%).

12 years ago[Indic] Reposition Khmer prebase-reordering Ra around split matras
Behdad Esfahbod [Tue, 24 Jul 2012 06:10:20 +0000 (02:10 -0400)]
[Indic] Reposition Khmer prebase-reordering Ra around split matras

In Khmer coeng model, a V,Ra can go *after* matras.  If it goes after a
split matra, it should be reordered to *before* the left part of such matra.

Khmer failures down from 136 to 39 (0.0130381%).

12 years ago[Indic] Fix minor bug in pre-base Ra positioning
Behdad Esfahbod [Tue, 24 Jul 2012 05:44:47 +0000 (01:44 -0400)]
[Indic] Fix minor bug in pre-base Ra positioning

12 years ago[Indic] Position Khmer U+17CE
Behdad Esfahbod [Tue, 24 Jul 2012 05:32:07 +0000 (01:32 -0400)]
[Indic] Position Khmer U+17CE

Fixes another 6 Khmer failures.  Now at 136 (0.0454661%).

12 years ago[Indic] Don't reposition Khmer Bindu
Behdad Esfahbod [Tue, 24 Jul 2012 05:04:18 +0000 (01:04 -0400)]
[Indic] Don't reposition Khmer Bindu

Khmer Bindu doesn't like to move to syllable end.  Leave it where it
was.

Brings down Khmer failures from 510 to 142 (0.047572%).

12 years ago[Indic] In Sinhala, form forced Reph even if no other consonant found
Behdad Esfahbod [Tue, 24 Jul 2012 04:26:43 +0000 (00:26 -0400)]
[Indic] In Sinhala, form forced Reph even if no other consonant found

Fixes another 10 Sinhala failures.  Down to 148 (0.0544424%).

12 years ago[Indic] Further adjust base algorithm for Sinhala
Behdad Esfahbod [Tue, 24 Jul 2012 04:21:16 +0000 (00:21 -0400)]
[Indic] Further adjust base algorithm for Sinhala

Apparently if there is C,V,ZWJ,C, the first C will be base, but if
it's C,ZWJ,V,C, the second one will be.

Note that Uniscribe implements this differently, by breaking syllable in
the case of C,ZWJ,V,C and putting the first consonant in one syllable
and the rest in the next syllable.

Sinhala failures down from 208 to 158 (0.0581209%).  No changes to
Khmer.

12 years ago[Indic] End Vowel-based syllable at ZWJ
Behdad Esfahbod [Tue, 24 Jul 2012 04:09:12 +0000 (00:09 -0400)]
[Indic] End Vowel-based syllable at ZWJ

One Devanagari test regressed, plus 10 Malayalam (at 1545 now).

Fixed 120 Sinhala failures.  Now at 208 (0.0765136%).

12 years ago[Indic] Improve Sinhala base algorithm and reph positioning
Behdad Esfahbod [Tue, 24 Jul 2012 03:51:29 +0000 (23:51 -0400)]
[Indic] Improve Sinhala base algorithm and reph positioning

Sinhala does not have half forms.  And most (all?) consonants can be
base, except when preceded by ZWJ, which would request a subjoined form.
Hence switch the base algorithm to categorize with Khmer, start search
at start, and stop at a ZWJ.

Also, mark all pos=base consonants after base to be subjoined.  Mark
base itself to have pos=base.

Finally, adjust Sinhala's reph position to after-main.

Brings down Sinhala failures from 455 to 328 (0.120656%).

12 years ago[Indic] Change "unknown" position to end of syllable
Behdad Esfahbod [Tue, 24 Jul 2012 03:49:04 +0000 (23:49 -0400)]
[Indic] Change "unknown" position to end of syllable

12 years agoWhen removing zero-width marks, don't remove ligatures
Behdad Esfahbod [Tue, 24 Jul 2012 00:18:17 +0000 (20:18 -0400)]
When removing zero-width marks, don't remove ligatures

If a mark ligated, it probably should NOT be removed.

12 years agoMinor refactoring
Behdad Esfahbod [Tue, 24 Jul 2012 00:14:13 +0000 (20:14 -0400)]
Minor refactoring

12 years ago[Indic] Improve check on ligatures
Behdad Esfahbod [Tue, 24 Jul 2012 00:11:42 +0000 (20:11 -0400)]
[Indic] Improve check on ligatures

Only skip actual ligatures, not marks in-between ligature components.

12 years ago[Indic] exclude ligatures when matching on Indic category
Behdad Esfahbod [Tue, 24 Jul 2012 00:07:50 +0000 (20:07 -0400)]
[Indic] exclude ligatures when matching on Indic category

If, say, a H,ZWJ,C ligature was formed, we don't want the code to detec
that as a Halant.  So, ignore ligatures when matching category in
final_reordering.

Sinhala failures down from 514 to 455 (0.167374%).

12 years ago[GSUB/GPOS] Const correctness
Behdad Esfahbod [Mon, 23 Jul 2012 23:55:35 +0000 (19:55 -0400)]
[GSUB/GPOS] Const correctness

12 years ago[Indic] Minor refactoring
Behdad Esfahbod [Mon, 23 Jul 2012 23:51:48 +0000 (19:51 -0400)]
[Indic] Minor refactoring

12 years ago[Indic] Remove syllable length check before sorting
Behdad Esfahbod [Mon, 23 Jul 2012 22:25:02 +0000 (18:25 -0400)]
[Indic] Remove syllable length check before sorting

We now limit syllable lengths in the machine.  No need to match here.

12 years ago[Indic] Limit syllables to at most five consonants
Behdad Esfahbod [Mon, 23 Jul 2012 22:19:17 +0000 (18:19 -0400)]
[Indic] Limit syllables to at most five consonants

Seems to be about what Uniscribe does.  Not exactly.  But close enough.
More consonants will start a new cluster.

A few scripts went way down in failures.  In particular:

  - Devanagari failures went down from 490 to 56.
  - Telugu went down from 113 to 49.

Other scripts went down slightly or didn't change.  New numbers:

BENGALI: 353908 out of 354285 tests passed. 377 failed (0.106412%)
DEVANAGARI: 693572 out of 693628 tests passed. 56 failed (0.00807349%)
GUJARATI: 366485 out of 366506 tests passed. 21 failed (0.00572978%)
GURMUKHI: 60750 out of 60809 tests passed. 59 failed (0.0970251%)
KANNADA: 950730 out of 951913 tests passed. 1183 failed (0.124276%)
KHMER: 298613 out of 299124 tests passed. 511 failed (0.170832%)
MALAYALAM: 1046881 out of 1048416 tests passed. 1535 failed (0.146411%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271333 out of 271847 tests passed. 514 failed (0.189077%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970524 out of 970573 tests passed. 49 failed (0.00504856%)

Some of the remaining Telugu and Devanagari issues seem to be Uniscribe
eating Anusvara when placed before a non-joiner.  Ouch!

12 years ago[Thai] Fix SARA AM handling
Behdad Esfahbod [Mon, 23 Jul 2012 18:04:42 +0000 (14:04 -0400)]
[Thai] Fix SARA AM handling

Oops, thinko.

12 years ago[Thai] Reorder U+0E3A THAI VOWEL SIGN PHINTHU
Behdad Esfahbod [Mon, 23 Jul 2012 17:52:07 +0000 (13:52 -0400)]
[Thai] Reorder U+0E3A THAI VOWEL SIGN PHINTHU

Uniscribe reorders U+0E3A to be after U+0E38 and U+0E39.  We do that by
modifying the ccc for U+0E3A.

Fixes the two remaining Thai failures (see previous commit).

12 years ago[Thai] Adjust SARA AM reordering to match Uniscribe
Behdad Esfahbod [Mon, 23 Jul 2012 17:15:33 +0000 (13:15 -0400)]
[Thai] Adjust SARA AM reordering to match Uniscribe

Adjust the list of marks before SARA AM that get the reordering
treatment.  Also adjust cluster formation to match Uniscribe.

With Wikipedia test data, now I see:

  - For Thai, with the Angsana New font from Win7, I see 54 failures out
    of over 4M tests  (0.00129107%).  Of the 54, two are legitimate
    reordering issues (fix coming soon), and the other 52 are simply
    Uniscribe using a zero-width space char instead of an unknown
    character for missing glyphs.  No idea why.  The missing-glyph
    sequences include one that is a Thai character followed by an Arabic
    Sokun.  Someone confused it with Nikhahit I assume!

  - For Lao, with the Dokchampa font from Win7, 33 tests fail out of
    54k (0.0615167%).  All seem to be insignificant mark positioning
    with two marks on a base.  Have to investigate.

12 years ago[Indic] Fix cluster formation with left-matras and conjunct forms
Behdad Esfahbod [Mon, 23 Jul 2012 12:22:55 +0000 (08:22 -0400)]
[Indic] Fix cluster formation with left-matras and conjunct forms

Test case was: <U+0D15,U+0D4D,U+0D15,U+0D4A>.

12 years ago[Indic] Further streamline cluster formation
Behdad Esfahbod [Mon, 23 Jul 2012 04:11:26 +0000 (00:11 -0400)]
[Indic] Further streamline cluster formation

This should address all possible cluster misformations that I had in
mind.

12 years ago[Indic] Merge clusters before sorting
Behdad Esfahbod [Mon, 23 Jul 2012 03:58:55 +0000 (23:58 -0400)]
[Indic] Merge clusters before sorting

This should fix any instabilities in cluster formation that we were
speculating may happen with surrounding syllables.  Or most of it
perhaps.

12 years ago[Indic] Update clusters for left-matra even if matra didn't move
Behdad Esfahbod [Mon, 23 Jul 2012 03:55:19 +0000 (23:55 -0400)]
[Indic] Update clusters for left-matra even if matra didn't move

Fixes crashes reported with left matra under
non-uniscribe-bug-compatibilty mode.

12 years ago[Indic] Merge in Malayalam tests
Behdad Esfahbod [Mon, 23 Jul 2012 03:23:56 +0000 (23:23 -0400)]
[Indic] Merge in Malayalam tests

From:
http://silpa.org.in/pub/tests/hb/ml/ml-harfbuzz-testdata.txt

12 years ago[Indic] Add extensive Sinhala tests
Behdad Esfahbod [Mon, 23 Jul 2012 03:20:27 +0000 (23:20 -0400)]
[Indic] Add extensive Sinhala tests

Generated by:
http://git.savannah.gnu.org/cgit/sinhala.git/plain/utils/gen-unicode-sinhala.py

12 years ago[Indic] Add Sinhala tests
Behdad Esfahbod [Mon, 23 Jul 2012 03:17:59 +0000 (23:17 -0400)]
[Indic] Add Sinhala tests

Merge tests from:
http://git.savannah.gnu.org/cgit/sinhala.git/plain/patches/icu-sinhala-rendering.txt

12 years agoAdd a test case
Behdad Esfahbod [Fri, 20 Jul 2012 23:34:39 +0000 (19:34 -0400)]
Add a test case

12 years ago[Indic] Stop searching for base if a post form is found before below form
Behdad Esfahbod [Fri, 20 Jul 2012 22:38:27 +0000 (18:38 -0400)]
[Indic] Stop searching for base if a post form is found before below form

Improves Bengali and Gurmukhi.  Malayalam regressed a bit.  We will deal
with that later.

12 years ago[Indic] Recompose Bengali Ya,Nukta
Behdad Esfahbod [Fri, 20 Jul 2012 22:13:04 +0000 (18:13 -0400)]
[Indic] Recompose Bengali Ya,Nukta

This is a bunch of hacks for now.

Improves Bengali a bit.

12 years ago[Uniscribe] Fix script fallback
Behdad Esfahbod [Fri, 20 Jul 2012 21:05:46 +0000 (17:05 -0400)]
[Uniscribe] Fix script fallback

Gurmukhi failures half now.  Others changed slightly.

12 years ago[Indic] Allow a ZWNJ after SM's
Behdad Esfahbod [Fri, 20 Jul 2012 20:26:55 +0000 (16:26 -0400)]
[Indic] Allow a ZWNJ after SM's

Malayalam failures go way down.  Other scripts benefitted slightly too.
Sinhala had one or two test regressions, but...

12 years ago[Indic] Improve Reph AfterMain positioning
Behdad Esfahbod [Fri, 20 Jul 2012 20:17:28 +0000 (16:17 -0400)]
[Indic] Improve Reph AfterMain positioning

Fixes 20 out of 48 failing Oriya tests.  Failure rate down to 0.066% now.

12 years ago[Indic] Reposition Oriya Candrabindu
Behdad Esfahbod [Fri, 20 Jul 2012 20:03:09 +0000 (16:03 -0400)]
[Indic] Reposition Oriya Candrabindu

Oriya failures down from 0.65% to 0.20%.

12 years ago[Indic] Fix base search in final_reordering
Behdad Esfahbod [Fri, 20 Jul 2012 19:47:24 +0000 (15:47 -0400)]
[Indic] Fix base search in final_reordering

Fixes most Malayalam failures.  Down from 1.6% to 0.38% now.  Fixes a
few more in other scripts too.

12 years ago[Indic] Don't attach SM/VD to other characters
Behdad Esfahbod [Fri, 20 Jul 2012 19:10:02 +0000 (15:10 -0400)]
[Indic] Don't attach SM/VD to other characters

12 years agoFix compiler warnings
Behdad Esfahbod [Fri, 20 Jul 2012 18:27:38 +0000 (14:27 -0400)]
Fix compiler warnings

If x is not constant, we cannot ASSERT_STATIC on it.

12 years ago[Indic] Form Telugu Reph out of Ra,Virama,ZWJ
Behdad Esfahbod [Fri, 20 Jul 2012 18:13:35 +0000 (14:13 -0400)]
[Indic] Form Telugu Reph out of Ra,Virama,ZWJ

Apparently this was approved in Feb 2012.  No font yet.

12 years ago[Indic] Don't split U+0AC9
Behdad Esfahbod [Fri, 20 Jul 2012 18:02:35 +0000 (14:02 -0400)]
[Indic] Don't split U+0AC9

Althought IndicMatraCategory.txt classifies it as Top_And_Right matra,
it does not have Unicode decomposition, and Uniscribe does not do
anything special about it either.

Gujarati failures down from 0.672% to 0.0130966%.

12 years ago[Indic] Simplify Uniscribe cluster emulation
Behdad Esfahbod [Fri, 20 Jul 2012 17:56:32 +0000 (13:56 -0400)]
[Indic] Simplify Uniscribe cluster emulation

Now that we break syllables on Halant,ZWNJ, this code can be simplified.

12 years ago[Indic] Minor!
Behdad Esfahbod [Fri, 20 Jul 2012 17:51:31 +0000 (13:51 -0400)]
[Indic] Minor!

12 years ago[Indic] Break syllables at Halant,ZWNJ
Behdad Esfahbod [Fri, 20 Jul 2012 17:48:03 +0000 (13:48 -0400)]
[Indic] Break syllables at Halant,ZWNJ

That's really what Uniscribe does, and explains a lot of pecularities of
Halant,ZWNJ before the base.

Sent Telugu from 1% failures to 0.03%.  Improved Kannada and Malayalam
slightly.  Fixed half of Bengali, and did NOT break anything!

12 years ago[Indic] Better check for applying 'init'
Behdad Esfahbod [Fri, 20 Jul 2012 17:37:48 +0000 (13:37 -0400)]
[Indic] Better check for applying 'init'

Specifically, don't apply 'init' if previous char is a joiner.

Fixes some more of Bengali.

12 years ago[GPOS] Don't zero mark advances
Behdad Esfahbod [Fri, 20 Jul 2012 16:32:59 +0000 (12:32 -0400)]
[GPOS] Don't zero mark advances

Fixes more of Telugu, Kannada, and Oriya.

May break things (outside Indic...), but we cannot think of any font relying
on this immediately.

12 years ago[Indic] Minor
Behdad Esfahbod [Fri, 20 Jul 2012 15:42:24 +0000 (11:42 -0400)]
[Indic] Minor

12 years ago[Indic] Implement reph positioning step 5
Behdad Esfahbod [Fri, 20 Jul 2012 15:25:41 +0000 (11:25 -0400)]
[Indic] Implement reph positioning step 5

Not tuned, just copied from step 2.  Fixes another 0.5% of Kannada
failures.  1% to go.

12 years ago[Indic] Don't let ZWNJ at the end of syllable affect base search
Behdad Esfahbod [Fri, 20 Jul 2012 15:04:15 +0000 (11:04 -0400)]
[Indic] Don't let ZWNJ at the end of syllable affect base search

Fixes a few Devanagari, half of remaining Kannada failures, quarter for
Telugu, and others slightly improved or unchanged.

12 years ago[Indic] Apply 'cjct' globally
Behdad Esfahbod [Fri, 20 Jul 2012 14:47:46 +0000 (10:47 -0400)]
[Indic] Apply 'cjct' globally

Fixes 5 Devanagari failures, and no regressions.

12 years ago[Indic] Unbreak old scriptures
Behdad Esfahbod [Fri, 20 Jul 2012 14:30:24 +0000 (10:30 -0400)]
[Indic] Unbreak old scriptures

Brings down failures with Lohit-Telugu from 57% to 1.40%.

12 years agoMinor
Behdad Esfahbod [Fri, 20 Jul 2012 14:18:23 +0000 (10:18 -0400)]
Minor

12 years ago[Indic] Recategorize some Kannada right matras
Behdad Esfahbod [Fri, 20 Jul 2012 01:17:48 +0000 (21:17 -0400)]
[Indic] Recategorize some Kannada right matras

Kannada failures down from 3.5% to 2.93%.

12 years ago[Indic] Recategorize GURMUKHI ADDAK
Behdad Esfahbod [Fri, 20 Jul 2012 01:13:04 +0000 (21:13 -0400)]
[Indic] Recategorize GURMUKHI ADDAK

It's not in IndicSyllabicCategory.txt.  Fixes most of Gurmukhi failures.
Failures down from 7.7% to 0.222%!

12 years agoMinor
Behdad Esfahbod [Fri, 20 Jul 2012 01:02:38 +0000 (21:02 -0400)]
Minor

12 years ago[buffer] Make sure out_info = info during GPOS
Behdad Esfahbod [Fri, 20 Jul 2012 00:52:44 +0000 (20:52 -0400)]
[buffer] Make sure out_info = info during GPOS

12 years agoPrint line number during return when tracing
Behdad Esfahbod [Fri, 20 Jul 2012 00:45:41 +0000 (20:45 -0400)]
Print line number during return when tracing

12 years ago[Indic] Unbreak Khmer
Behdad Esfahbod [Fri, 20 Jul 2012 00:30:22 +0000 (20:30 -0400)]
[Indic] Unbreak Khmer

For Khmer, all consonants are subjoining.  No need to look in the font.
We were looking in the wrong order anyway.

12 years ago[Indic] Apply 'akhn' globally
Behdad Esfahbod [Fri, 20 Jul 2012 00:24:14 +0000 (20:24 -0400)]
[Indic] Apply 'akhn' globally

Fixes 1.5% more failures for Telugu, 2% for Kannada.
Breaks one test in Devanagari.

12 years ago[Indic] Add failing test for Kannada
Behdad Esfahbod [Fri, 20 Jul 2012 00:03:25 +0000 (20:03 -0400)]
[Indic] Add failing test for Kannada

12 years ago[Indic] Better position U+0CD5
Behdad Esfahbod [Thu, 19 Jul 2012 23:52:19 +0000 (19:52 -0400)]
[Indic] Better position U+0CD5

Fixes another 5% of Kannada failures.

12 years ago[Indic] Lookup consonant position in the font
Behdad Esfahbod [Thu, 19 Jul 2012 20:20:21 +0000 (16:20 -0400)]
[Indic] Lookup consonant position in the font

Fixes most failures of Oriya, and improves others a bit.

12 years ago[GSUB] Fix would_apply() for LigatureSubst
Behdad Esfahbod [Thu, 19 Jul 2012 20:14:23 +0000 (16:14 -0400)]
[GSUB] Fix would_apply() for LigatureSubst