[uniscribe] Remove zerowidth glyphs from output
diff --git a/src/hb-uniscribe-shape.cc b/src/hb-uniscribe-shape.cc
index a0020ca..e583ae1 100644
--- a/src/hb-uniscribe-shape.cc
+++ b/src/hb-uniscribe-shape.cc
@@ -399,9 +399,13 @@
#undef FAIL
/* Set glyph infos */
+ buffer->len = 0;
for (unsigned int i = 0; i < glyphs_len; i++)
{
- hb_glyph_info_t *info = &buffer->info[i];
+ if (glyph_props[i].sva.fZeroWidth)
+ continue;
+
+ hb_glyph_info_t *info = &buffer->info[buffer->len++];
info->codepoint = glyphs[i];
info->cluster = vis_clusters[i];
@@ -411,7 +415,6 @@
info->var1.u32 = offsets[i].du;
info->var2.u32 = offsets[i].dv;
}
- buffer->len = glyphs_len;
/* Set glyph positions */
buffer->clear_positions ();