• B
    [indic] Adjust left-matra repositioning and Halant,ZWJ sequence · 9940504e
    Behdad Esfahbod 提交于
    From the new code (first paragraph is from the OT Devanagari spec.):
    
      /*   o Reorder matras:
       *
       *     If a pre-base matra character had been reordered before applying basic
       *     features, the glyph can be moved closer to the main consonant based on
       *     whether half-forms had been formed. Actual position for the matra is
       *     defined as “after last standalone halant glyph, after initial matra
       *     position and before the main consonant”. If ZWJ or ZWNJ follow this
       *     halant, position is moved after it.
       *
       * IMPLEMENTATION NOTES:
       *
       * It looks like the last sentence is wrong.  Testing, with Windows 7 Uniscribe
       * and Devanagari shows that the behavior is best described as:
       *
       * "If ZWJ follows this halant, matra is NOT repositioned after this halant.
       *  If ZWNJ follows this halant, position is moved after it."
       *
       * Test case, with Adobe Devanagari or Nirmala UI:
       *
       *   U+091F,U+094D,U+200C,U+092F,U+093F
       *   (Matra moves to the middle, after ZWNJ.)
       *
       *   U+091F,U+094D,U+200D,U+092F,U+093F
       *   (Matra does NOT move, stays to the left.)
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/1070
    
    Test case added with Adobe Devanagari.
    9940504e