diff options
author | Nicholas Noll <nbnoll@eml.cc> | 2021-10-05 16:57:55 -0700 |
---|---|---|
committer | Nicholas Noll <nbnoll@eml.cc> | 2021-10-05 16:57:55 -0700 |
commit | 08d3749a636f9cd51f70ba1eed043be8e6c2eca9 (patch) | |
tree | c17cdff0796b73758a96977614d84f04d22c3bfb /sys/cmd/term/term.h | |
parent | 2e80e18c190b737338f8000aafe685719b4899a1 (diff) |
feat(term): added ligature support. some combining character help
Diffstat (limited to 'sys/cmd/term/term.h')
-rw-r--r-- | sys/cmd/term/term.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/cmd/term/term.h b/sys/cmd/term/term.h index 11c28c7..fd7b68c 100644 --- a/sys/cmd/term/term.h +++ b/sys/cmd/term/term.h @@ -10,6 +10,8 @@ #include <sys/types.h> #include <sys/wait.h> +#include <hb.h> + // ----------------------------------------------------------------------- // macros @@ -17,7 +19,8 @@ #define DIVCEIL(n, d) (((n) + ((d) - 1)) / (d)) #define DEFAULT(a, b) (a) = (a) ? (a) : (b) #define LIMIT(x, a, b) (x) = (x) < (a) ? (a) : (x) > (b) ? (b) : (x) -#define GLYPHCMP(a, b) ((a).mode != (b).mode || (a).fg != (b).fg || (a).bg != (b).bg) +#define GLYPHCMP(a, b) (((a).mode & (~Gwrap) & (~Gliga)) != ((b).mode & (~Gwrap) & (~Gliga)) || \ + (a).fg != (b).fg || (a).bg != (b).bg) #define TIMEDIFF(t1, t2) ((t1.tv_sec-t2.tv_sec)*1000 + (t1.tv_nsec-t2.tv_nsec)/1E6) #define MODBIT(x, set, bit) ((set) ? ((x) |= (bit)) : ((x) &= ~(bit))) #define TRUECOLOR(r,g,b) (1 << 24 | (r) << 16 | (g) << 8 | (b)) @@ -47,6 +50,7 @@ enum { Gwrap = iota(8), Gwide = iota(9), Gwdummy = iota(10), + Gliga = iota(11), Gboldfaint = Gbold | Gfaint, }; @@ -251,7 +255,7 @@ union Arg { void xbell(void); void xclipcopy(void); -void xdrawcursor(int, int, Letter, int, int, Letter); +void xdrawcursor(int, int, Letter, int, int, Letter, Letter*, int); void xdrawline(Letter*, int, int, int); void xfinishdraw(void); void xloadcols(void); |