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%)
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%)
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.
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.
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%).
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%).
Behdad Esfahbod [Tue, 24 Jul 2012 05:44:47 +0000 (01:44 -0400)]
[Indic] Fix minor bug in pre-base Ra positioning
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%).
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%).
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%).
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.
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%).
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%).
Behdad Esfahbod [Tue, 24 Jul 2012 03:49:04 +0000 (23:49 -0400)]
[Indic] Change "unknown" position to end of syllable
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.
Behdad Esfahbod [Tue, 24 Jul 2012 00:14:13 +0000 (20:14 -0400)]
Minor refactoring
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.
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%).
Behdad Esfahbod [Mon, 23 Jul 2012 23:55:35 +0000 (19:55 -0400)]
[GSUB/GPOS] Const correctness
Behdad Esfahbod [Mon, 23 Jul 2012 23:51:48 +0000 (19:51 -0400)]
[Indic] Minor refactoring
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.
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!
Behdad Esfahbod [Mon, 23 Jul 2012 18:04:42 +0000 (14:04 -0400)]
[Thai] Fix SARA AM handling
Oops, thinko.
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).
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.
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>.
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.
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.
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.
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
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
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
Behdad Esfahbod [Fri, 20 Jul 2012 23:34:39 +0000 (19:34 -0400)]
Add a test case
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.
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.
Behdad Esfahbod [Fri, 20 Jul 2012 21:05:46 +0000 (17:05 -0400)]
[Uniscribe] Fix script fallback
Gurmukhi failures half now. Others changed slightly.
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...
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.
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%.
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.
Behdad Esfahbod [Fri, 20 Jul 2012 19:10:02 +0000 (15:10 -0400)]
[Indic] Don't attach SM/VD to other characters
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.
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.
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%.
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.
Behdad Esfahbod [Fri, 20 Jul 2012 17:51:31 +0000 (13:51 -0400)]
[Indic] Minor!
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!
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.
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.
Behdad Esfahbod [Fri, 20 Jul 2012 15:42:24 +0000 (11:42 -0400)]
[Indic] Minor
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.
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.
Behdad Esfahbod [Fri, 20 Jul 2012 14:47:46 +0000 (10:47 -0400)]
[Indic] Apply 'cjct' globally
Fixes 5 Devanagari failures, and no regressions.
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%.
Behdad Esfahbod [Fri, 20 Jul 2012 14:18:23 +0000 (10:18 -0400)]
Minor
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%.
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%!
Behdad Esfahbod [Fri, 20 Jul 2012 01:02:38 +0000 (21:02 -0400)]
Minor
Behdad Esfahbod [Fri, 20 Jul 2012 00:52:44 +0000 (20:52 -0400)]
[buffer] Make sure out_info = info during GPOS
Behdad Esfahbod [Fri, 20 Jul 2012 00:45:41 +0000 (20:45 -0400)]
Print line number during return when tracing
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.
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.
Behdad Esfahbod [Fri, 20 Jul 2012 00:03:25 +0000 (20:03 -0400)]
[Indic] Add failing test for Kannada
Behdad Esfahbod [Thu, 19 Jul 2012 23:52:19 +0000 (19:52 -0400)]
[Indic] Better position U+0CD5
Fixes another 5% of Kannada failures.
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.
Behdad Esfahbod [Thu, 19 Jul 2012 20:14:23 +0000 (16:14 -0400)]
[GSUB] Fix would_apply() for LigatureSubst
Behdad Esfahbod [Thu, 19 Jul 2012 19:29:13 +0000 (15:29 -0400)]
[TODO] Minor
Behdad Esfahbod [Thu, 19 Jul 2012 18:59:15 +0000 (14:59 -0400)]
Add src/test-would-substitute tool
Behdad Esfahbod [Thu, 19 Jul 2012 18:35:23 +0000 (14:35 -0400)]
Refactor / finish would_apply() operation
Untested.
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.
Behdad Esfahbod [Thu, 19 Jul 2012 16:59:06 +0000 (12:59 -0400)]
[Indic] More refactoring
Behdad Esfahbod [Thu, 19 Jul 2012 16:32:16 +0000 (12:32 -0400)]
[Indic] Minor refactoring
Behdad Esfahbod [Thu, 19 Jul 2012 16:23:23 +0000 (12:23 -0400)]
[Indic] Minor
Behdad Esfahbod [Thu, 19 Jul 2012 16:11:12 +0000 (12:11 -0400)]
[Indic] Start refactoring different matra positions per script
Behdad Esfahbod [Thu, 19 Jul 2012 15:30:48 +0000 (11:30 -0400)]
[test] Ignore tests with DOTTED CIRCLE in the output
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.
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%).
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.
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.
Behdad Esfahbod [Wed, 18 Jul 2012 21:29:10 +0000 (17:29 -0400)]
[Indic] Minor
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.
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%!
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.
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.
Behdad Esfahbod [Wed, 18 Jul 2012 20:00:20 +0000 (16:00 -0400)]
[Indic] Minor
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!
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
Behdad Esfahbod [Wed, 18 Jul 2012 19:41:53 +0000 (15:41 -0400)]
[Indic] Fix out-of-bounds array access
Behdad Esfahbod [Wed, 18 Jul 2012 19:28:25 +0000 (15:28 -0400)]
[Indic] Allow joiners before matras
Fixes 1 more Devanagari test!
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.
Behdad Esfahbod [Wed, 18 Jul 2012 19:05:40 +0000 (15:05 -0400)]
[Indic] Streamline halant/joiner in grammar
Behdad Esfahbod [Wed, 18 Jul 2012 18:57:28 +0000 (14:57 -0400)]
[Indic] Minor
Behdad Esfahbod [Wed, 18 Jul 2012 18:23:55 +0000 (14:23 -0400)]
[Indic] Hopefully minor!
Refactoring Indic machin. No semantic change.
Behdad Esfahbod [Wed, 18 Jul 2012 18:09:25 +0000 (14:09 -0400)]
[Indic] Minor
Behdad Esfahbod [Wed, 18 Jul 2012 17:13:03 +0000 (13:13 -0400)]
[Indic] Unbreak Tamil
Tamil has only about 150 failures now!
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!
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!
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.
Behdad Esfahbod [Tue, 17 Jul 2012 18:25:14 +0000 (14:25 -0400)]
[Indic] Minor
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