1. 25 7月, 2012 12 次提交
  2. 24 7月, 2012 25 次提交
    • B
      [Indic] Better position left-matra in Malayalam · 65c43acc
      Behdad Esfahbod 提交于
      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%)
      65c43acc
    • B
      [Indic] Implement Reph+Ya-Phalaa interaction · 88f413b5
      Behdad Esfahbod 提交于
      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%)
      88f413b5
    • B
      [Indic] Limit matras to 4 per syllable · dff0ece1
      Behdad Esfahbod 提交于
      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.
      dff0ece1
    • B
      [Indic] Unmark U+17D1 KHMER SIGN VIRIAM to NOT be a Virama · 330b329c
      Behdad Esfahbod 提交于
      Fixes another 1 Khmer failure.  Down to 30 (0.0100293%) now.
      330b329c
    • B
      [Indic] Recategorize Khmer various signs as top matras · 6824a719
      Behdad Esfahbod 提交于
      Khmer failures down from 39 to 31 (0.0103636%).
      6824a719
    • B
      [Indic] Reposition Khmer prebase-reordering Ra around split matras · d90b8e84
      Behdad Esfahbod 提交于
      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%).
      d90b8e84
    • B
      [Indic] Fix minor bug in pre-base Ra positioning · 0afb84c1
      Behdad Esfahbod 提交于
      0afb84c1
    • B
      [Indic] Position Khmer U+17CE · 75737991
      Behdad Esfahbod 提交于
      Fixes another 6 Khmer failures.  Now at 136 (0.0454661%).
      75737991
    • B
      [Indic] Don't reposition Khmer Bindu · 8d00e8d0
      Behdad Esfahbod 提交于
      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%).
      8d00e8d0
    • B
      [Indic] In Sinhala, form forced Reph even if no other consonant found · 2278eefc
      Behdad Esfahbod 提交于
      Fixes another 10 Sinhala failures.  Down to 148 (0.0544424%).
      2278eefc
    • B
      [Indic] Further adjust base algorithm for Sinhala · 71fd5e80
      Behdad Esfahbod 提交于
      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.
      71fd5e80
    • B
      [Indic] End Vowel-based syllable at ZWJ · 73d71cc5
      Behdad Esfahbod 提交于
      One Devanagari test regressed, plus 10 Malayalam (at 1545 now).
      
      Fixed 120 Sinhala failures.  Now at 208 (0.0765136%).
      73d71cc5
    • B
      [Indic] Improve Sinhala base algorithm and reph positioning · 34c21503
      Behdad Esfahbod 提交于
      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%).
      34c21503
    • B
      2ec934c6
    • B
      When removing zero-width marks, don't remove ligatures · b70021f7
      Behdad Esfahbod 提交于
      If a mark ligated, it probably should NOT be removed.
      b70021f7
    • B
      Minor refactoring · 49c5ec51
      Behdad Esfahbod 提交于
      49c5ec51
    • B
      [Indic] Improve check on ligatures · c3e6fdc3
      Behdad Esfahbod 提交于
      Only skip actual ligatures, not marks in-between ligature components.
      c3e6fdc3
    • B
      [Indic] exclude ligatures when matching on Indic category · 771a8f50
      Behdad Esfahbod 提交于
      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%).
      771a8f50
    • B
      [GSUB/GPOS] Const correctness · d1af9e82
      Behdad Esfahbod 提交于
      d1af9e82
    • B
      [Indic] Minor refactoring · baacd090
      Behdad Esfahbod 提交于
      baacd090
    • B
      [Indic] Remove syllable length check before sorting · c7c4de2f
      Behdad Esfahbod 提交于
      We now limit syllable lengths in the machine.  No need to match here.
      c7c4de2f
    • B
      [Indic] Limit syllables to at most five consonants · 9fa05273
      Behdad Esfahbod 提交于
      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!
      9fa05273
    • B
      [Thai] Fix SARA AM handling · 093cd583
      Behdad Esfahbod 提交于
      Oops, thinko.
      093cd583
    • B
      [Thai] Reorder U+0E3A THAI VOWEL SIGN PHINTHU · 42848453
      Behdad Esfahbod 提交于
      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).
      42848453
    • B
      [Thai] Adjust SARA AM reordering to match Uniscribe · 4a7f4f3e
      Behdad Esfahbod 提交于
      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.
      4a7f4f3e
  3. 23 7月, 2012 3 次提交