Simply pass both of their tags to hb_shape_full, which I think would be done something like this: hb_feature_t features[] = {{HB_TAG("c","v","0","6"), 1, start, end}, {HB_TAG("c","v","0","8"), 1, start, end}}; hb_shape_full(font, buffer, features, 2, NULL); On Sat, Sep 24, 2022 at 7:48 PM Eli Zaretskii wrote: > > From: समीर सिंह Sameer Singh > > Date: Sat, 24 Sep 2022 18:40:55 +0530 > > Cc: emacs-devel@gnu.org > > > > You are suggesting that we let the font and the shaping engine decide > > which alternative to use? That sounds un-Emacsy to me. For the use > > case where only specific characters should be affected, I think we > > should have a facility whereby users could specify, for each character > > that has alternatives, which one to use. > > > > No, I am not suggesting that every variation has its own tag and the > user can choose which tag they would > > like or not. > > For example look at the FiraCode variations attached > > So what do I do if I want variant 4 for 'i' and variant 2 for 'l'? >