Closed veltza closed 10 months ago
It makes sense, since st can't do ZWJ and such anyway. Ligatures and other stuff seems unaffected by this.
I made a br-buffer-overflow-and-emoji-fixes branch with the changes for both this and #35, can you check the patches that are relevant to your build?
I tested st-ligatures-20240105-0.9.diff
and st-ligatures-boxdraw-20240105-0.9.diff
and they both fixed the both issues. The rest I checked visually and they looked good to me. So I think they are ready for production.
Sorry to bother you all the time, but there is one more issue that needs to be fixed.
The problem is that emoji modifiers are not processed correctly, which breaks the rendering of the glyphs.
For example, when you look at the emoji-test.txt file, you'll notice that skin color modifiers are missing:
But when you select the text, they appear:
Here is another example where the second regional indicator symbol is missing, but when you select the first symbol, the second one appears:
I read the HarfBuzz manual and found that this behavior is caused by the default clustering level 0. But it looks like level 1 is what we need:
So, I tested the clustering level 1 and it indeed fixed the emoji issue and didn't seem to affect the ligatures at all:
I'm not familiar with HarfBuzz, so do you think this setting has any side effects that should be taken care of?