<div><br></div><div class="gmail_quote">2013/4/20 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">

Konstantin has brought up a few interesting issues regarding variation<br>
selectors.  I'll summarize issues that I think can be improved:<br>
<br>
  - Right now we don't handle a sequence of multiple variation selectors in a<br>
row.  What *is* the best way to handle that?  Ideally the extra ones should<br>
become visible.  Even a box is better than silently not showing them, right?<br></blockquote><div><br></div><div><a href="http://unicode.org/faq/unsup_char.html">http://unicode.org/faq/unsup_char.html</a> says unhandled variation selectors shouldn't be visible. Even more, all  variation selectors are of default_ignorable property and expected to be rendered as completely invisible, when unhandled.</div>

<div>I'd say we shouldn't make them visible unless  HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES, and that is what we currently have. However, I don't like the way HB currently makes them invisible - by removing them from the output glyph array.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  - Now, Unicode says only registered variation sequences are valid.  I assume<br>
we don't want to enforce that?<br></blockquote><div><br></div><div>You forgot to mention using the variation selectors in Ideographic Variation Database, too.</div><div>I don't think we should enforce sequences validation; this could be implemented in user's get_glyph() (or get_glyph_variation()), if user really wants that. </div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
- What should HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES do to variation<br>
selectors?  Right now they do not become visible no matter what.  Is it<br>
relevant whether the variation selector was actually used during glyph lookup<br>
or not?<br></blockquote><div><br></div><div>If we're going to not eat the variation selectors from the output, then they would pass through the path the other default_ignorable-s do, thus guaranteeing consistency.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  - If the answer to the last question of the previous item is yes, then we<br>
would new to change get_glyph() API to two separate get_glyph_variation() and<br>
get_glyph() calls.  But that would be an API and ABI break :(.  Thinking about<br>
it now, I wish I had done that from the beginning.<br></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Thoughts?<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
behdad<br>
<a href="http://behdad.org/" target="_blank">http://behdad.org/</a><br>
_______________________________________________<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>
</font></span></blockquote></div><div><br></div><div>
<br clear="all"><div>Regards,<br>Konstantin</div></div><div><br></div>