Forgot to attach, here it is. On Sat, Sep 24, 2022 at 10:39 PM समीर सिंह Sameer Singh < lumarzeli30@gmail.com> wrote: > On Sat, Sep 24, 2022 at 9:44 PM Eli Zaretskii wrote: > >> > From: समीर सिंह Sameer Singh >> > Date: Sat, 24 Sep 2022 21:20:03 +0530 >> > Cc: emacs-devel@gnu.org >> > >> > On Sat, Sep 24, 2022 at 8:52 PM Eli Zaretskii wrote: >> > >> > > From: समीर सिंह Sameer Singh >> > > Date: Sat, 24 Sep 2022 20:32:26 +0530 >> > > Cc: emacs-devel@gnu.org >> > > >> > > no, the same would work >> > >> > Then I don't understand how will HarfBuzz know to apply the first tag >> > to 'i', but the second one to 'l'. >> > >> > The font file has a GSUB table for this purpose >> >> I'm sorry, I still don't understand. (I'm not an expert on fonts, so >> I'd appreciate a slightly more detailed explanations.) Are you saying >> that each tag can be used by a single character in a font? IOW, no >> feature tag can ever be shared by two or more characters in a font? >> > > IIUC, then yes. > > >> The HarfBuzz docs says: >> >> The hb_feature_t is the structure that holds information about >> requested feature application. The feature will be applied with the >> given value to all glyphs which are in clusters between start >> (inclusive) and end (exclusive). >> >> This seems to say that we need to set START and END of each feature to >> buffer positions of the characters to which we want the feature to be >> applied. That is why I said that START and END should be set >> separately for each feature, according to the positions of the >> corresponding characters in the buffer submitted to hb_shape_full. >> > > I don't think that is the case, I have attached a slightly modified > harfbuzz-tutorial[1], > where I have defined four features for a,g,i and l respectively with the > same start and end variables. > It works as expected. > > You can provide it with the path to a firacode font file and the text > which it has to display and it will produce a png. > > [1] https://github.com/harfbuzz/harfbuzz-tutorial >