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

12 years ago[TODO] Minor
Behdad Esfahbod [Thu, 19 Jul 2012 19:29:13 +0000 (15:29 -0400)]
[TODO] Minor

12 years agoAdd src/test-would-substitute tool
Behdad Esfahbod [Thu, 19 Jul 2012 18:59:15 +0000 (14:59 -0400)]
Add src/test-would-substitute tool

12 years agoRefactor / finish would_apply() operation
Behdad Esfahbod [Thu, 19 Jul 2012 18:35:23 +0000 (14:35 -0400)]
Refactor / finish would_apply() operation

Untested.

12 years ago[Indic] Implement per-script matra positioning
Behdad Esfahbod [Thu, 19 Jul 2012 17:25:08 +0000 (13:25 -0400)]
[Indic] Implement per-script matra positioning

Following what the spec says.

Brings down Telugu failures from 40% to 3.75%, and Kannada failures from
44% to 10%.  Does NOT affect other scripts' test results.

12 years ago[Indic] More refactoring
Behdad Esfahbod [Thu, 19 Jul 2012 16:59:06 +0000 (12:59 -0400)]
[Indic] More refactoring

12 years ago[Indic] Minor refactoring
Behdad Esfahbod [Thu, 19 Jul 2012 16:32:16 +0000 (12:32 -0400)]
[Indic] Minor refactoring

12 years ago[Indic] Minor
Behdad Esfahbod [Thu, 19 Jul 2012 16:23:23 +0000 (12:23 -0400)]
[Indic] Minor

12 years ago[Indic] Start refactoring different matra positions per script
Behdad Esfahbod [Thu, 19 Jul 2012 16:11:12 +0000 (12:11 -0400)]
[Indic] Start refactoring different matra positions per script

12 years ago[test] Ignore tests with DOTTED CIRCLE in the output
Behdad Esfahbod [Thu, 19 Jul 2012 15:30:48 +0000 (11:30 -0400)]
[test] Ignore tests with DOTTED CIRCLE in the output

12 years ago[Indic] Disallow decomposition of a couple characters
Behdad Esfahbod [Thu, 19 Jul 2012 15:25:49 +0000 (11:25 -0400)]
[Indic] Disallow decomposition of a couple characters

This is a hack for now.  Will be fixed when we do complex-shaper-driven
normalization properly.

The results with or without decomposition are the same, but Uniscribe
does not normalize, so this matches better.

12 years ago[Indic] Accept a forced Rakar sequence at the end of syllable
Behdad Esfahbod [Thu, 19 Jul 2012 03:25:58 +0000 (23:25 -0400)]
[Indic] Accept a forced Rakar sequence at the end of syllable

In Sinhala, Rakar is formed by Al-Lakuna,ZWJ,Ra.  If you put that at the
end of a Consonant,Matra syllable, you get a dotted-circle from
Uniscribe.  Apparently adding a ZWJ before the Al-Lakuna "fixes" that.
And people have been encoding that sequence...  So, allow a forced
"ZWJ,Virama,ZWJ,Ra" sequence at the of syllables.

Fixes some 100 or more of Sinhala failures.  Now at 622 only (0.23%).

12 years ago[Indic] Allow joiners on both sides of Halant at the same time
Behdad Esfahbod [Wed, 18 Jul 2012 21:49:19 +0000 (17:49 -0400)]
[Indic] Allow joiners on both sides of Halant at the same time

The sequence <ZWJ,Al-Lakuna,ZWJ> is used in Sinhala to explicitly ask
for Rakar.  Fixes two-thousand Sinhala tests.  Not many left.

12 years ago[Indic] In final reordering, find base, even if it disappeared
Behdad Esfahbod [Wed, 18 Jul 2012 21:42:34 +0000 (17:42 -0400)]
[Indic] In final reordering, find base, even if it disappeared

POS_BASE can disappear if base ligated backward.  Define base as last
with position not after base.

Fixes a few hundred of Sinhala failures with Iskoola Pota.

12 years ago[Indic] Minor
Behdad Esfahbod [Wed, 18 Jul 2012 21:29:10 +0000 (17:29 -0400)]
[Indic] Minor

12 years ago[Indic] Implement Sinhala "Al Lakuna" Reph behavior
Behdad Esfahbod [Wed, 18 Jul 2012 21:22:14 +0000 (17:22 -0400)]
[Indic] Implement Sinhala "Al Lakuna" Reph behavior

In Sinhala, Reph is formed only explicitly, by the presence of a ZWJ.

12 years ago[Indic/Unicode] Decompose Sinhala split matras the way Uniscribe likes
Behdad Esfahbod [Wed, 18 Jul 2012 20:50:41 +0000 (16:50 -0400)]
[Indic/Unicode] Decompose Sinhala split matras the way Uniscribe likes

Makes no visual difference.

Fixes most of the failures.  Down from 15% to 1.3%!

12 years agoApply Tibetan (global) features.
Behdad Esfahbod [Wed, 18 Jul 2012 20:34:10 +0000 (16:34 -0400)]
Apply Tibetan (global) features.

Fixes all Tibetan failures.  All 180k of them!

Merges back Hangul into the default shaper.

12 years ago[Indic] Treat Register Shifters like Nukta
Behdad Esfahbod [Wed, 18 Jul 2012 20:00:49 +0000 (16:00 -0400)]
[Indic] Treat Register Shifters like Nukta

Really this time.

Fixes another 18 Khmer tests.

12 years ago[Indic] Minor
Behdad Esfahbod [Wed, 18 Jul 2012 20:00:20 +0000 (16:00 -0400)]
[Indic] Minor

12 years ago[Indic] Fix Matra reordering when base is at end of syllable
Behdad Esfahbod [Wed, 18 Jul 2012 19:45:43 +0000 (15:45 -0400)]
[Indic] Fix Matra reordering when base is at end of syllable

For example: U+915,U+200c,U+93f

Fixes last Tamil failure!

12 years agoLeave one extra item at the end of buffer allocation
Behdad Esfahbod [Wed, 18 Jul 2012 19:43:55 +0000 (15:43 -0400)]
Leave one extra item at the end of buffer allocation

Just in case, for the times we do out-of-bounds access.

jk

12 years ago[Indic] Fix out-of-bounds array access
Behdad Esfahbod [Wed, 18 Jul 2012 19:41:53 +0000 (15:41 -0400)]
[Indic] Fix out-of-bounds array access

12 years ago[Indic] Allow joiners before matras
Behdad Esfahbod [Wed, 18 Jul 2012 19:28:25 +0000 (15:28 -0400)]
[Indic] Allow joiners before matras

Fixes 1 more Devanagari test!

12 years ago[Indic] Allow halant group in Vowel and placeholder syllables
Behdad Esfahbod [Wed, 18 Jul 2012 19:10:05 +0000 (15:10 -0400)]
[Indic] Allow halant group in Vowel and placeholder syllables

Fixes 2 out of 560 Devanagari failures.  AND:
Fixes 1 out of 2 Tamil failures.

12 years ago[Indic] Streamline halant/joiner in grammar
Behdad Esfahbod [Wed, 18 Jul 2012 19:05:40 +0000 (15:05 -0400)]
[Indic] Streamline halant/joiner in grammar

12 years ago[Indic] Minor
Behdad Esfahbod [Wed, 18 Jul 2012 18:57:28 +0000 (14:57 -0400)]
[Indic] Minor

12 years ago[Indic] Hopefully minor!
Behdad Esfahbod [Wed, 18 Jul 2012 18:23:55 +0000 (14:23 -0400)]
[Indic] Hopefully minor!

Refactoring Indic machin.  No semantic change.

12 years ago[Indic] Minor
Behdad Esfahbod [Wed, 18 Jul 2012 18:09:25 +0000 (14:09 -0400)]
[Indic] Minor

12 years ago[Indic] Unbreak Tamil
Behdad Esfahbod [Wed, 18 Jul 2012 17:13:03 +0000 (13:13 -0400)]
[Indic] Unbreak Tamil

Tamil has only about 150 failures now!

12 years ago[Indic] Position Khmer Robat
Behdad Esfahbod [Tue, 17 Jul 2012 22:17:30 +0000 (18:17 -0400)]
[Indic] Position Khmer Robat

It's a visual Repha.

Still not positioning logical Repha as occurs in Malayalam.

Another 200 Khmer failures fixed.  547 to go.  That's better than
Devanagari!

12 years ago[Indic] Better categorize Register Shifters and Khmer Various signs
Behdad Esfahbod [Tue, 17 Jul 2012 21:53:03 +0000 (17:53 -0400)]
[Indic] Better categorize Register Shifters and Khmer Various signs

Down another 500 or so Khmer failures!

12 years agoAdd hb_buffer_normalize_glyphs() and hb-shape --normalize-glyphs
Behdad Esfahbod [Tue, 17 Jul 2012 21:09:29 +0000 (17:09 -0400)]
Add hb_buffer_normalize_glyphs() and hb-shape --normalize-glyphs

This reorders glyphs within the cluster to a nominal order.  This should
have no visible effect on the output, but helps with testing, for
getting the same hb-shape output for visually-equal glyphs for each
cluster.

12 years ago[Indic] Minor
Behdad Esfahbod [Tue, 17 Jul 2012 18:25:14 +0000 (14:25 -0400)]
[Indic] Minor

12 years ago[Indic] For scripts without Half forms, always choose first consonant as base
Behdad Esfahbod [Tue, 17 Jul 2012 18:23:28 +0000 (14:23 -0400)]
[Indic] For scripts without Half forms, always choose first consonant as base

In such scripts (ie. Khmer), a ZWJ/ZWNJ shouldn't stop the search for
base.  So, instead just choose the first consonant as base directly.

Test sequence:
U+1798,200c,U+17C9,U+17D2,U+179B,U+17C1,U+17C7

12 years ago[Indic] Treat Khmer Register Shifters more like Nuktas
Behdad Esfahbod [Tue, 17 Jul 2012 18:09:32 +0000 (14:09 -0400)]
[Indic] Treat Khmer Register Shifters more like Nuktas

Except that there may be a ZWNJ before a Register Shifter.

12 years ago[Indic] Minor
Behdad Esfahbod [Tue, 17 Jul 2012 18:02:28 +0000 (14:02 -0400)]
[Indic] Minor

12 years ago[Indic] Apply 'cfar' for Khmer
Behdad Esfahbod [Tue, 17 Jul 2012 17:55:10 +0000 (13:55 -0400)]
[Indic] Apply 'cfar' for Khmer

Mark stuff after a pre-base reordering Ro 'cfar'.  Used in Khmer.
This allows distinguishing the following cases with MS Khmer fonts:

  U+1784,U+17D2,U+179A,U+17D2,U+1782
  U+1784,U+17D2,U+1782,U+17D2,U+179A

12 years ago[Indic] Position final subjoined consonants (and vowels) after matras
Behdad Esfahbod [Tue, 17 Jul 2012 16:50:13 +0000 (12:50 -0400)]
[Indic] Position final subjoined consonants (and vowels) after matras

In Khmer, a final subjoined consonant or independent vowel can occur
after matras.  This final subjoined thing should NOT be reordered to
before the matra even though it's subjoined.

Fixes another 1k of the Khmer failures.  Not much left really.

12 years ago[Indic] Recategorize Khmer coeng sign as a separate category OT_Coeng
Behdad Esfahbod [Tue, 17 Jul 2012 15:54:28 +0000 (11:54 -0400)]
[Indic] Recategorize Khmer coeng sign as a separate category OT_Coeng

Amend the syllable structure to allow a final subscripted consonant
(Coeng+C) and a final subscripted independent vowel (Coeng+V).
Fixes another 2k of Khmer failures.

12 years ago[Indic] Add a separate Coeng class
Behdad Esfahbod [Tue, 17 Jul 2012 15:37:32 +0000 (11:37 -0400)]
[Indic] Add a separate Coeng class

No characters recategorized yet.  No semantic change.

12 years ago[Indic] Move Halant with after-base consonants
Behdad Esfahbod [Tue, 17 Jul 2012 15:16:19 +0000 (11:16 -0400)]
[Indic] Move Halant with after-base consonants

Normally, we attach the Halant to the previous character and move it
with it.  For after-base consonants however, the Halant "belongs" to the
consonant after, so attach it so.

This fixes Bengali sequences involving post-base consonant Ya, which
should ligate with the Halant to form Ya Phala, but previously a
reordered matras was blocking the ligation.

12 years ago[Indic] Apply presentation-forms features all at once
Behdad Esfahbod [Tue, 17 Jul 2012 14:40:59 +0000 (10:40 -0400)]
[Indic] Apply presentation-forms features all at once

Seems like this is what Uniscribe is doing, and does not break any fonts
we tested (with Devanagari, Malayalam, Khmer, and Bengali), while fixing
some Ra Phala sequences for Bengali with Vrinda.  Fixes another 2% of
Bengali failures (a couple more to go).

12 years agoFix MarkAttachmentType matching
Behdad Esfahbod [Tue, 17 Jul 2012 02:43:17 +0000 (22:43 -0400)]
Fix MarkAttachmentType matching

Fixes issue reported by Khaled Hosny with his Hussaini Nastaleeq font
and sequences like those added in the previous commit.

12 years ago[test/arabic] Add Arabic tests for mark skipping
Behdad Esfahbod [Tue, 17 Jul 2012 02:46:06 +0000 (22:46 -0400)]
[test/arabic] Add Arabic tests for mark skipping

Expose a bug with Khaled's Hussaini Nastaleeq font.

12 years agoMinor
Behdad Esfahbod [Tue, 17 Jul 2012 02:40:21 +0000 (22:40 -0400)]
Minor

12 years ago[Indic] Disable 'kern' in Uniscribe bug compatibility mode
Behdad Esfahbod [Tue, 17 Jul 2012 00:31:24 +0000 (20:31 -0400)]
[Indic] Disable 'kern' in Uniscribe bug compatibility mode

Uniscribe does not apply 'kern' in the Indic module.  Some of the Khmer
fonts they ship have small adjustments in the 'kern' table.  Disable
'kern' in the Indic module under Uniscribe bug compatibility mode.

Fixes some 10% of the Khmer failures.  Remains under 3% (excluding
dotted-circle ones).

12 years agoAllow complex shapers overriding common features
Behdad Esfahbod [Tue, 17 Jul 2012 00:26:57 +0000 (20:26 -0400)]
Allow complex shapers overriding common features

In a new callback...  Currently unused by all complex shapers.

12 years ago[Indic] Categorize other Khmer marks
Behdad Esfahbod [Mon, 16 Jul 2012 23:56:29 +0000 (19:56 -0400)]
[Indic] Categorize other Khmer marks

Mark them the same as the Register Shifters for now.  Need to rename
that category to something more sensible after all is settled.

Fixes another percent of Khmer failures.  Down to under 3%!

12 years ago[Indic] Recognize pre-base reordering Ra anywhere in the syllable
Behdad Esfahbod [Mon, 16 Jul 2012 21:04:46 +0000 (17:04 -0400)]
[Indic] Recognize pre-base reordering Ra anywhere in the syllable

We were doing that only immediately after base.

Fixes another percent in the Khmer failures.  About three more to go...

12 years ago[Indic] Recognizer Register Shifter marks
Behdad Esfahbod [Mon, 16 Jul 2012 20:45:22 +0000 (16:45 -0400)]
[Indic] Recognizer Register Shifter marks

Fixes another 6% of the Khmer failures.

12 years ago[GSUB/GDEF] Guess glyph classes after substitution only if no GDEF
Behdad Esfahbod [Mon, 16 Jul 2012 20:13:32 +0000 (16:13 -0400)]
[GSUB/GDEF] Guess glyph classes after substitution only if no GDEF

Brings down Khmer failures with Daun Penh font from 36% to 20%.

12 years ago[Indic] Categorize Khmer Ro
Behdad Esfahbod [Mon, 16 Jul 2012 19:52:54 +0000 (15:52 -0400)]
[Indic] Categorize Khmer Ro

Khmer failures down from 58% to 36%.

12 years ago[Indic] Reoder pre-base reordering Ra
Behdad Esfahbod [Mon, 16 Jul 2012 19:49:08 +0000 (15:49 -0400)]
[Indic] Reoder pre-base reordering Ra

Brings down Malayalam failures from 14% down to 3%.

12 years ago[Indic] Rename
Behdad Esfahbod [Mon, 16 Jul 2012 19:40:33 +0000 (15:40 -0400)]
[Indic] Rename

12 years ago[Indic] Start implementing pre-base reordering
Behdad Esfahbod [Mon, 16 Jul 2012 19:30:05 +0000 (15:30 -0400)]
[Indic] Start implementing pre-base reordering