term: implement bright background colour; linux/darwin support for format codes

This commit is contained in:
2024-11-14 23:11:55 +00:00
parent 64a246e6f7
commit 8a78d9c94a
5 changed files with 405 additions and 63 deletions

View File

@@ -5,36 +5,44 @@
#include <blue/term.h>
#include <stdio.h>
enum {
enum z__b_stream_modifier {
Z__B_STREAM_MOD_BLACK = 0x1,
Z__B_STREAM_MOD_RED = 0x2,
Z__B_STREAM_MOD_GREEN = 0x4,
Z__B_STREAM_MOD_BLUE = 0x8,
Z__B_STREAM_MOD_BRIGHT = 0x10,
Z__B_STREAM_MOD_BG_BLACK = 0x10,
Z__B_STREAM_MOD_BG_RED = 0x20,
Z__B_STREAM_MOD_BG_GREEN = 0x40,
Z__B_STREAM_MOD_BG_BLUE = 0x80,
Z__B_STREAM_MOD_BG_BLACK = 0x20,
Z__B_STREAM_MOD_BG_RED = 0x40,
Z__B_STREAM_MOD_BG_GREEN = 0x80,
Z__B_STREAM_MOD_BG_BLUE = 0x100,
Z__B_STREAM_MOD_BG_BRIGHT = 0x200,
Z__B_STREAM_MOD_BOLD = 0x100,
Z__B_STREAM_MOD_BRIGHT = 0x200,
Z__B_STREAM_MOD_ITALIC = 0x400,
Z__B_STREAM_MOD_ULINE = 0x800,
Z__B_STREAM_MOD_INVERT = 0x1000,
Z__B_STREAM_MOD_BOLD = 0x400,
Z__B_STREAM_MOD_ITALIC = 0x800,
Z__B_STREAM_MOD_ULINE = 0x1000,
Z__B_STREAM_MOD_INVERT = 0x2000,
Z__B_STREAM_MOD_RESET = 0x2000,
Z__B_STREAM_MOD_RESET = 0x4000,
};
#define Z__B_STREAM_MOD_GET_FG_COLOUR(x) \
((x) & (Z__B_STREAM_MOD_BLACK | Z__B_STREAM_MOD_RED | Z__B_STREAM_MOD_GREEN | Z__B_STREAM_MOD_BLUE))
#define Z__B_STREAM_MOD_CLEAR_FG_COLOUR(x) \
((x) & ~(Z__B_STREAM_MOD_BLACK | Z__B_STREAM_MOD_RED | Z__B_STREAM_MOD_GREEN | Z__B_STREAM_MOD_BLUE))
#define Z__B_STREAM_MOD_GET_FG_COLOUR(x) \
((x) \
& (Z__B_STREAM_MOD_BLACK | Z__B_STREAM_MOD_RED \
| Z__B_STREAM_MOD_GREEN | Z__B_STREAM_MOD_BLUE))
#define Z__B_STREAM_MOD_CLEAR_FG_COLOUR(x) \
((x) \
& ~(Z__B_STREAM_MOD_BLACK | Z__B_STREAM_MOD_RED \
| Z__B_STREAM_MOD_GREEN | Z__B_STREAM_MOD_BLUE))
#define Z__B_STREAM_MOD_GET_BG_COLOUR(x) \
((x) & (Z__B_STREAM_MOD_BG_BLACK | Z__B_STREAM_MOD_BG_RED | Z__B_STREAM_MOD_BG_GREEN | Z__B_STREAM_MOD_BG_BLUE))
((x) \
& (Z__B_STREAM_MOD_BG_BLACK | Z__B_STREAM_MOD_BG_RED \
| Z__B_STREAM_MOD_BG_GREEN | Z__B_STREAM_MOD_BG_BLUE))
#define Z__B_STREAM_MOD_CLEAR_BG_COLOUR(x) \
((x) & ~(Z__B_STREAM_MOD_BG_BLACK | Z__B_STREAM_MOD_BG_RED | Z__B_STREAM_MOD_BG_GREEN | Z__B_STREAM_MOD_BG_BLUE))
((x) \
& ~(Z__B_STREAM_MOD_BG_BLACK | Z__B_STREAM_MOD_BG_RED \
| Z__B_STREAM_MOD_BG_GREEN | Z__B_STREAM_MOD_BG_BLUE))
BLUE_API int z__b_stream_is_tty(FILE *fp);
BLUE_API int z__b_stream_dimensions(FILE *fp, unsigned int *w, unsigned int *h);