How dotted circle ( place holder for a character ) disappeared ?

I am working on Indic Script and dotted circle appeared before user type a char in that place. I am looking at similar script font and found that dotted circle are placed there by a sub ( one to many ). But don't know how you remove it after a char is typed. Example: ‌ေ  and  ‌‌ကေ  ,  ြ  ‌and မြ

Does system take care of it or you need a sub to clear the circle. Thanks

Comments

  • John Hudson
    John Hudson Posts: 3,190
    The dotted circle is inserted in text by a shaping engine to indicate either a baseless mark or what the engine consider an invalid character sequence. So, normally you don’t need to do anything special with this glyph, other than include it in your font (encoded as U+25CC), and provide mark positioning anchors on it.
  • WAY KYI
    WAY KYI Posts: 130
    Thank you very much. I was confused that there are subs ( one to many ) in the font like below;
    ----------------------------------------------
    lookup MultipleSubstitutionlookup1 {
      lookupflag 0;
        sub \uni102D by \uni25CC \uni102D ;
        sub \uni102E by \uni25CC \uni102E ;
    } MultipleSubstitutionlookup1;

    lookup abvsAboveBaseSubstitutionsinMMlookup5 {
      lookupflag 0;
        sub [\uni102D \uni102E ] [\uni102D \uni102E ]'lookup MultipleSubstitutionlookup1;
    } abvsAboveBaseSubstitutionsinMMlookup5;
    -----------------------------------------------
    for all those needing placeholders. So, is lookup5 removing the dotted circles? Why is it doing replacing the same glyph with exact ones? Is this a waste of time or what is the purpose of doing it here? Hope you could explain me again. Thanks
  • John Hudson
    John Hudson Posts: 3,190
    Sorry, I don’t use AFDKO tools very often, so I don’t know what that lookup5 code is doing.

    Back in the early days of OTL support, some layout engines didn’t recognise U+25CC as a legitimate base for a combining mark, which ironically would result in a second dotted circle being inserted by the shaping engine if a user input an explicit one, so e.g. U+25CC U+0301 would display as ◌◌́. I also remember doing some contextual cleanup in early Hebrew fonts to work around shaping engines erroneously inserting a dotted circle in sequences that would be considered invalid in modern Hebrew but which occur in Biblical Hebrew (those engines were eventually fixed). So possibly this is something like that: a work around to manage the dotted circle in specific circumstances?
  • Simon Cozens
    Simon Cozens Posts: 741
    edited October 2021
    Oh, hey, I recognise that decompiled OTL code. :-)

    The font is inserting a dotted circle between repeated i-vowel and ii-vowel glyphs.

    In the Myanmar cluster specification you can have any number of above-base vowels after a base consonant - I don't know why they specified that probably to support things like reduplicated Aiton Ai - but that's not something this font is able to render. So if the user types "ကိိ" (ka i i), the font is inserting a dotted circle to break up the cluster into ကိ ိ.
  • WAY KYI
    WAY KYI Posts: 130
    edited October 2021
    Thank very much to both of you. I think I understand now. I thought it was self-replacing but it is not. When you repeat the vowel twice, it shows you need consonant for second vowel or it shows you typed wrong here. Yes, you can put up to three vowels above the base character but you need to combine them as one glyph using ligature. Thanks