Nikolay Sivov (@nsivov) commented about dlls/gdi32/uniscribe/opentype.c:
if (GSUB_is_glyph_covered((const BYTE*)ssf1+offset, glyphs[glyph_index]) != -1) { TRACE(" Glyph 0x%x ->",glyphs[glyph_index]);
if (GET_BE_WORD(ssf1->DeltaGlyphID) == 0)
return GSUB_E_NOGLYPH;
This does not lookup right. As I understand GSUB_E_NOGLYPH is used when lookup wasn't applied, but for example harfbuzz (and corresponding dwrite logic) does not check for zero delta, and lookup considered applied there.
What exactly happens, and why zero delta is a problem?