607feb7cff
When matching lookups, be smart about default-ignorable characters. In particular: Do nothing specific about ZWNJ, but for the other default-ignorables: If the lookup in question uses the ignorable character in a sequence, then match it as we used to do. However, if the sequence match will fail because the default-ignorable blocked it, try skipping the ignorable character and continue. The most immediate thing it means is that if Lam-Alef forms a ligature, then Lam-ZWJ-Alef will do to. Finally! One exception: when matching for GPOS, or for backtrack/lookahead of GSUB, we ignore ZWNJ too. That's the right thing to do. It certainly is possible to build fonts that this feature will result in undesirable glyphs, but it's hard to think of a real-world case that that would happen. This *does* break Indic shaping right now, since Indic Unicode has specific rules for what ZWJ/ZWNJ mean, and skipping ZWJ is breaking those rules. That will be fixed in upcoming commits. |
||
---|---|---|
contrib | ||
m4 | ||
src | ||
test | ||
util | ||
Android.mk | ||
AUTHORS | ||
autogen.sh | ||
configure.ac | ||
COPYING | ||
git.mk | ||
harfbuzz.doap | ||
harfbuzz.pc.in | ||
Makefile.am | ||
NEWS | ||
README | ||
THANKS | ||
TODO |
This is HarfBuzz, a text shaping library. For bug reports, mailing list, and other information please visit: http://harfbuzz.org/ For license information, see the file COPYING.