I've taken a first stab at implementing combining character support in st.
Since damn near every line of st assumes that the buffer is a grid that maps
exactly to the window, I've implemented it in the worst way possible. Each
glyph now holds a union of two combining characters and a pointer to a zero
terminated array. This is purely to make the most of the space. No length is
kept and every character added past 2 causes a realloc.
I think I've hit all the problem spots with proper frees but someone else will
have to verify this.
There's currently a problem with rendering where Xft doesn't draw the
combining characters as a part of the character they combine to, which causes
things like Hangul Jamo to be completely unusable stacks of characters instead
of the proper combined form.
I do not know how to fix this.
If someone wants to pick this up they're welcome to.
-- Joakim
Received on Wed Jun 10 2015 - 23:39:25 CEST