<div>Hi Behdad, list,</div><div><br></div><div>the alternative you've suggested does make sense;</div><div>but in my opinion, it is better to change the API now, until 1.0, to make it more intuitive/cleaner than be a hostage of some "tricky" cases for the next 10-15-20 years...<br clear="all">

</div><div><br></div><div>Regards,<br>Konstantin</div>
<br><br><div class="gmail_quote">2013/6/7 Behdad Esfahbod <span dir="ltr"><<a href="mailto:behdad@behdad.org" target="_blank">behdad@behdad.org</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">On 13-04-20 05:49 AM, Jonathan Kew wrote:<br>
><br>
</div><div class="im">> The remaining question is what to do about a VS that was part of a valid<br>
> sequence, but the font being used didn't handle it.<br>
<br>
</div>So, apparently Mongolian fonts in the wild implement the Mongolian Variation<br>
Selectors using GSUB, not cmap. [1]<br>
<br>
So, we either need to keep the "unused" variation selectors in the glyph<br>
stream, or remove the Mongolian ones from the cmap processing.<br>
<br>
Fixing this the way I like would require a change to the get_glyph() callback<br>
API.  Right now we have:<br>
<br>
typedef hb_bool_t<br>
(*hb_font_get_glyph_func_t) (hb_font_t *font, void *font_data,<br>
                             hb_codepoint_t unicode,<br>
                             hb_codepoint_t variation_selector,<br>
                             hb_codepoint_t *glyph,<br>
                             void *user_data);<br>
<br>
Now ideally I would have wanted to split that in two:<br>
<br>
  bool get_glyph (unicode)<br>
<br>
and<br>
<br>
  bool get_glyph_variant (unicode, selector)<br>
<br>
but I'm afraid it's too late to make such a change.  Instead, I propose that<br>
we just change the semantics of the existing call and expect that callbacks<br>
return false if the requested variant is not available, and then we will call<br>
them back with variation_selector=0 and will retain the glyph for the selector<br>
in the glyph stream.<br>
<br>
Makes sense?<br>
<br>
<br>
[1] <a href="https://bugs.freedesktop.org/show_bug.cgi?id=65258" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=65258</a><br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
behdad<br>
<a href="http://behdad.org/" target="_blank">http://behdad.org/</a><br>
</font></span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
HarfBuzz mailing list<br>
<a href="mailto:HarfBuzz@lists.freedesktop.org">HarfBuzz@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/harfbuzz" target="_blank">http://lists.freedesktop.org/mailman/listinfo/harfbuzz</a><br>
</div></div></blockquote></div><br>