I discovered there was an issue when I tried using a test font I created with the following as one of its lookups (in ttx format): <Lookup index="1"> <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> <SingleSubst index="0"> <Substitution in="j" out="i"/> <Substitution in="zero" out="one"/> </SingleSubst> </Lookup>
There is one lookup here, but 2 substitutions. My program needs to iterate through each substitution individually, but the function hb_ot_layout_lookup_collect_glyphs only returns 2 unordered sets representing all the input and output characters for this lookup. How can I get one substitution at a time? On Tue, Aug 29, 2023 at 3:13 PM Werner LEMBERG <w...@gnu.org> wrote: > > > As I was testing my attempt at supporting GSUB lookups, I found that > > hb_ot_layout_lookup_collect_glyphs, is actually not what I need, > > because I assumed that each lookup contains exactly one > > substitution, when it actually may contain multiple. What I really > > need is a way to get each individual substitution. How do I do > > this? > > It's not completely clear to me what you exactly need, please give an > example. > > Behdad, any idea whether HarfBuzz can help here? Otherwise it is > probably necessary to parse the GSUB table by ourselves, which is > something I would like to avoid... > > > Werner >