[HarfBuzz] dotted circle is not appearing for dependant vowel

Jonathan Kew jfkthame at googlemail.com
Tue Jul 24 08:50:05 PDT 2012


On 24/7/12 16:05, Shriramana Sharma wrote:
> On Tue, Jul 24, 2012 at 6:48 PM, Jonathan Kew <jfkthame at googlemail.com> wrote:
>> In general, I think the Indic shaper should *not* insert dotted circles. The
>> one exception that I think may be desirable would be the case of
>> left-reordrant matras when no usable base character
>
> Hi Jonathan -- while I agree in principle that security issues should
> not be the responsibility of the shaping engine and support the idea
> of allowing a meaningful rendering for अिुा, I wonder why you support
> the dotted circle concept for the above case alone?
>

In cases such as repeated copies of a combining mark, it's reasonable to 
leave it up to the font to handle positioning such that all the marks 
can be seen - e.g. by stacking rather than overprinting successive copies.

However, because the reordering of <0915, 093F> to <i-matra, ka> is done 
by the shaping engine before application of OpenType features/lookups, I 
don't see any way for a font designer to make the two combinations 
render differently. After the initial reordering by the shaping engine, 
both <0915, 093F> and <093F, 0915> will yield exactly the same sequence 
of glyphs for OpenType layout features to shape, unless the shaper takes 
specific action such as inserting a dotted circle as 'base' character.

I suppose the same could be considered to apply when there is a 
combining mark at the beginning of a text sequence to be shaped; it has 
no base to which it can apply (i.e. we're dealing with a defective 
combining character sequence, in Unicode terms).

I note that the Unicode standard says that:

"With isolated combining characters or when a process is unable to 
perform graphical combination, a process may present a combining 
character without graphical combination; that is, it may present it as 
if it were a base character."

This could apply to the <093F, 0915> sequence, for example: U+093F is a 
combining character, but it has no base with which to combine. So 
perhaps we should "present it as if it were a base" by applying it to a 
_space_ glyph (rather than a dotted circle). This would result in a 
clear visual distinction between <093F, 0915> (you'd see i-matra applied 
to a space, so it'd be separated from the following ka) and <0915, 
093F>, without arbitrarily introducing U+25CC into the sequence.

JK




More information about the HarfBuzz mailing list