From 44fed67d43ff0959d14218ddb720e4edce172621 Mon Sep 17 00:00:00 2001 From: Max Wash Date: Sun, 3 May 2026 16:49:23 +0100 Subject: [PATCH] fx.term: convert to new assembly build system --- CMakeLists.txt | 10 ++- assemblies/fx.term.c | 7 ++ fx.term/CMakeLists.txt | 4 +- fx.term/error.c | 72 ++++++++++++------ fx.term/include/fx/term.h | 10 --- fx.term/include/fx/term/print.h | 11 ++- fx.term/include/fx/term/tty.h | 61 +++++++++------ fx.term/paragraph.c | 27 +++++-- fx.term/print.c | 15 ++-- fx.term/print.h | 24 +++--- fx.term/tty.c | 129 +++++++++++++++++++++++++------- 11 files changed, 254 insertions(+), 116 deletions(-) create mode 100644 assemblies/fx.term.c delete mode 100644 fx.term/include/fx/term.h diff --git a/CMakeLists.txt b/CMakeLists.txt index b1d518c..b4f7717 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,8 @@ set(fx_all_assemblies fx.collections fx.compression fx.io - fx.serial) + fx.serial + fx.term) if (NOT DEFINED fx_assemblies) set(fx_assemblies ${fx_all_assemblies}) @@ -75,4 +76,11 @@ if ("fx.serial" IN_LIST fx_assemblies) DEPENDENCIES fx.runtime fx.collections) endif () +if ("fx.term" IN_LIST fx_assemblies) + add_fx_assembly( + NAME fx.term + NAMESPACES fx.term + DEPENDENCIES fx.runtime fx.collections) +endif () + add_executable(dynamic-test test/dynamic-test.c) diff --git a/assemblies/fx.term.c b/assemblies/fx.term.c new file mode 100644 index 0000000..bd6637b --- /dev/null +++ b/assemblies/fx.term.c @@ -0,0 +1,7 @@ +#include +#include + +FX_ASSEMBLY_BEGIN() + FX_ASSEMBLY_NAME("fx.term"); + FX_ASSEMBLY_VERSION(1, 0, 0, 0); +FX_ASSEMBLY_END() diff --git a/fx.term/CMakeLists.txt b/fx.term/CMakeLists.txt index 3981a12..32bcf68 100644 --- a/fx.term/CMakeLists.txt +++ b/fx.term/CMakeLists.txt @@ -1,3 +1 @@ -include(../cmake/Templates.cmake) - -add_fx_module(NAME term DEPENDENCIES core ds) +export_fx_namespace_details(fx.term) diff --git a/fx.term/error.c b/fx.term/error.c index 96f9633..fb1eb23 100644 --- a/fx.term/error.c +++ b/fx.term/error.c @@ -1,11 +1,13 @@ -#include -#include +#include +#include #include #include static void get_error_id( - const struct fx_error_vendor *vendor, const struct fx_error *error, - char *out, size_t max) + const struct fx_error_vendor *vendor, + const struct fx_error *error, + char *out, + size_t max) { const char *vendor_name = NULL; const char *error_name = NULL; @@ -38,7 +40,8 @@ static void get_error_id( } static void print_template_parameter( - const struct fx_error_template_parameter *params, size_t nr_params, + const struct fx_error_template_parameter *params, + size_t nr_params, const char *param_name) { const struct fx_error_template_parameter *param = NULL; @@ -122,7 +125,8 @@ static void print_template_parameter( } static void print_content( - const struct fx_error_template_parameter *params, size_t nr_params, + const struct fx_error_template_parameter *params, + size_t nr_params, const char *s) { if (!s) { @@ -214,13 +218,16 @@ static void print_content( static void print_submsg(const struct fx_error *error) { - const struct fx_error_definition *error_def = fx_error_get_definition(error); + const struct fx_error_definition *error_def + = fx_error_get_definition(error); const struct fx_error_submsg *submsg = fx_error_get_first_submsg(error); while (submsg) { - enum fx_error_submsg_type type = fx_error_submsg_get_type(submsg); + enum fx_error_submsg_type type + = fx_error_submsg_get_type(submsg); const char *content = fx_error_submsg_get_content(submsg); - const struct fx_error_msg *msg = fx_error_submsg_get_msg(submsg); + const struct fx_error_msg *msg + = fx_error_submsg_get_msg(submsg); const struct fx_error_template_parameter *params = fx_error_submsg_get_template_parameters(submsg); @@ -229,16 +236,21 @@ static void print_submsg(const struct fx_error *error) switch (type) { case FX_ERROR_SUBMSG_ERROR: fx_tty_printf( - fx_stdtty_err, 0, "[bright_red,bold]>[reset] "); + fx_stdtty_err, + 0, + "[bright_red,bold]>[reset] "); break; case FX_ERROR_SUBMSG_WARNING: fx_tty_printf( - fx_stdtty_err, 0, + fx_stdtty_err, + 0, "[bright_yellow,bold]>[reset] "); break; case FX_ERROR_SUBMSG_INFO: fx_tty_printf( - fx_stdtty_err, 0, "[bright_cyan,bold]>[reset] "); + fx_stdtty_err, + 0, + "[bright_cyan,bold]>[reset] "); break; default: break; @@ -246,11 +258,14 @@ static void print_submsg(const struct fx_error *error) if (msg) { print_content( - params, FX_ERROR_TEMPLATE_PARAMETER_MAX, + params, + FX_ERROR_TEMPLATE_PARAMETER_MAX, fx_error_msg_get_content(msg)); } else if (content) { print_content( - params, FX_ERROR_TEMPLATE_PARAMETER_MAX, content); + params, + FX_ERROR_TEMPLATE_PARAMETER_MAX, + content); } fx_tty_printf(fx_stdtty_err, 0, "\n"); @@ -293,8 +308,11 @@ static void print_stack_trace(const struct fx_error *error) file = get_short_filepath(file); fx_tty_printf( - fx_stdtty_err, 0, - " [dark_grey]at %s() (%s:%u)[reset]\n", func, file, + fx_stdtty_err, + 0, + " [dark_grey]at %s() (%s:%u)[reset]\n", + func, + file, line); frame = fx_error_get_next_stack_frame(error, frame); @@ -302,14 +320,17 @@ static void print_stack_trace(const struct fx_error *error) } static void report_error( - const fx_error *error, fx_error_report_flags flags, bool caused_by) + const fx_error *error, + fx_error_report_flags flags, + bool caused_by) { const fx_error_vendor *vendor = fx_error_get_vendor(error); char error_id[128]; get_error_id(vendor, error, error_id, sizeof error_id); - const struct fx_error_definition *error_def = fx_error_get_definition(error); + const struct fx_error_definition *error_def + = fx_error_get_definition(error); fx_error_status_code code = fx_error_get_status_code(error); const char *description = fx_error_get_description(error); const struct fx_error_template_parameter *params @@ -317,12 +338,14 @@ static void report_error( if (!description && vendor) { description = fx_error_vendor_get_status_code_description( - vendor, code); + vendor, + code); } if (caused_by) { fx_tty_printf( - fx_stdtty_err, 0, + fx_stdtty_err, + 0, " [green]->[reset] caused by [bright_red,bold]ERROR "); } else { fx_tty_printf(fx_stdtty_err, 0, "[bright_red,bold]==> ERROR "); @@ -339,12 +362,14 @@ static void report_error( if (msg) { fx_tty_printf(fx_stdtty_err, 0, ": "); print_content( - params, FX_ERROR_TEMPLATE_PARAMETER_MAX, + params, + FX_ERROR_TEMPLATE_PARAMETER_MAX, fx_error_msg_get_content(msg)); } else if (description) { fx_tty_printf(fx_stdtty_err, 0, ": "); print_content( - params, FX_ERROR_TEMPLATE_PARAMETER_MAX, + params, + FX_ERROR_TEMPLATE_PARAMETER_MAX, description); } } @@ -366,7 +391,8 @@ static void report_error( } void fx_enhanced_error_reporter( - const struct fx_error *error, fx_error_report_flags flags) + const struct fx_error *error, + fx_error_report_flags flags) { report_error(error, flags, false); } diff --git a/fx.term/include/fx/term.h b/fx.term/include/fx/term.h deleted file mode 100644 index bed1c86..0000000 --- a/fx.term/include/fx/term.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef FX_TERM_H_ -#define FX_TERM_H_ - -#include -#include - -#include -#include - -#endif diff --git a/fx.term/include/fx/term/print.h b/fx.term/include/fx/term/print.h index 07ad418..e5ad8d9 100644 --- a/fx.term/include/fx/term/print.h +++ b/fx.term/include/fx/term/print.h @@ -1,8 +1,8 @@ #ifndef FX_TERM_PRINT_H_ #define FX_TERM_PRINT_H_ -#include -#include +#include +#include #include #include @@ -40,13 +40,16 @@ typedef enum fx_print_format { FX_API fx_status fx_print(fx_print_format format, const char *str, ...); FX_API fx_status fx_print_paragraph( - const char *str, struct fx_tty *tty, fx_paragraph_format *format); + const char *str, + struct fx_tty *tty, + fx_paragraph_format *format); FX_API int fx_putc(char c); FX_API int fx_puts(const char *s); FX_API int fx_printf(const char *format, ...); FX_API void fx_enhanced_error_reporter( - const struct fx_error *, enum fx_error_report_flags flags); + const struct fx_error *, + enum fx_error_report_flags flags); #endif diff --git a/fx.term/include/fx/term/tty.h b/fx.term/include/fx/term/tty.h index c382138..de88307 100644 --- a/fx.term/include/fx/term/tty.h +++ b/fx.term/include/fx/term/tty.h @@ -1,38 +1,35 @@ #ifndef FX_TERM_TTY_H_ #define FX_TERM_TTY_H_ -#include -#include +#include +#include #include #include #include -#define fx_stdtty (z__fx_tty_get_std()) -#define fx_stdtty_err (z__fx_tty_get_err()) +#define fx_stdtty (z__fx_tty_get_std()) +#define fx_stdtty_err (z__fx_tty_get_err()) -#define FX_TTY_CTRL_KEY(c) ((c) | FX_MOD_CTRL) +#define FX_TTY_CTRL_KEY(c) ((c) | FX_MOD_CTRL) -#define FX_MAKE_VMODE(fg, bg, a) \ - { \ - .v_fg = fg, .v_bg = bg, .v_attrib = (a) \ - } +#define FX_MAKE_VMODE(fg, bg, a) {.v_fg = fg, .v_bg = bg, .v_attrib = (a)} -#define FX_MAKE_COLOUR_DEFAULT(v) \ +#define FX_MAKE_COLOUR_DEFAULT(v) \ { \ .c_mode = TTY_COLOUR_NONE, \ } -#define FX_MAKE_COLOUR_16(v) \ +#define FX_MAKE_COLOUR_16(v) \ { \ .c_mode = TTY_COLOUR_16, .c_16 = {.value = (v) } \ } -#define FX_MAKE_COLOUR_256(v) \ +#define FX_MAKE_COLOUR_256(v) \ { \ .c_mode = TTY_COLOUR_256, .c_256 = {.value = (v) } \ } -#define FX_MAKE_COLOUR_TRUE(cr, cg, cb) \ +#define FX_MAKE_COLOUR_TRUE(cr, cg, cb) \ { \ .c_mode = TTY_COLOUR_TRUE, .c_true \ = {.r = (cr), \ @@ -152,29 +149,49 @@ static inline unsigned int fx_keycode_get_key(fx_keycode v) FX_API bool fx_tty_is_interactive(const struct fx_tty *tty); FX_API void fx_tty_set_mode(struct fx_tty *tty, enum fx_tty_mode mode); -FX_API void fx_tty_set_vmode(struct fx_tty *tty, const struct fx_tty_vmode *vmode); +FX_API void fx_tty_set_vmode( + struct fx_tty *tty, + const struct fx_tty_vmode *vmode); FX_API void fx_tty_reset_vmode(struct fx_tty *tty); FX_API enum fx_status fx_tty_get_dimensions( - struct fx_tty *tty, unsigned int *w, unsigned int *h); + struct fx_tty *tty, + unsigned int *w, + unsigned int *h); FX_API enum fx_status fx_tty_get_cursor_position( - struct fx_tty *tty, unsigned int *x, unsigned int *y); + struct fx_tty *tty, + unsigned int *x, + unsigned int *y); FX_API fx_keycode fx_tty_read_key(struct fx_tty *tty); FX_API void fx_tty_move_cursor_x( - struct fx_tty *tty, enum fx_tty_position_base base, int pos); + struct fx_tty *tty, + enum fx_tty_position_base base, + int pos); FX_API void fx_tty_move_cursor_y( - struct fx_tty *tty, enum fx_tty_position_base base, int pos); + struct fx_tty *tty, + enum fx_tty_position_base base, + int pos); FX_API void fx_tty_clear(struct fx_tty *tty, enum fx_tty_clear_mode mode); -FX_API int fx_tty_putc(struct fx_tty *tty, enum fx_tty_print_flags flags, char c); +FX_API int fx_tty_putc( + struct fx_tty *tty, + enum fx_tty_print_flags flags, + char c); FX_API int fx_tty_puts( - struct fx_tty *tty, enum fx_tty_print_flags flags, const char *s); + struct fx_tty *tty, + enum fx_tty_print_flags flags, + const char *s); FX_API int fx_tty_printf( - struct fx_tty *tty, enum fx_tty_print_flags flags, const char *s, ...); + struct fx_tty *tty, + enum fx_tty_print_flags flags, + const char *s, + ...); FX_API int fx_tty_vprintf( - struct fx_tty *tty, enum fx_tty_print_flags flags, const char *s, + struct fx_tty *tty, + enum fx_tty_print_flags flags, + const char *s, va_list args); #endif diff --git a/fx.term/paragraph.c b/fx.term/paragraph.c index e4433e7..60f304e 100644 --- a/fx.term/paragraph.c +++ b/fx.term/paragraph.c @@ -1,6 +1,6 @@ -#include -#include #include +#include +#include #include #include #include @@ -9,7 +9,9 @@ #define DEFAULT_PARAGRAPH_WIDTH 160 static void indent( - struct fx_paragraph_format *format, struct fx_tty *tty, unsigned int margin) + struct fx_paragraph_format *format, + struct fx_tty *tty, + unsigned int margin) { unsigned int x = 0; while (x < margin) { @@ -19,7 +21,9 @@ static void indent( } static unsigned int extract_line( - const char **sp, unsigned int line_length, fx_string *out, + const char **sp, + unsigned int line_length, + fx_string *out, struct fx_paragraph_format *format) { const char *start = *sp; @@ -95,7 +99,9 @@ static unsigned int extract_line( } static fx_status print_paragraph_tty( - const char *str, struct fx_tty *tty, struct fx_paragraph_format *format) + const char *str, + struct fx_tty *tty, + struct fx_paragraph_format *format) { unsigned int w = 0, h = 0; fx_tty_get_dimensions(tty, &w, &h); @@ -134,7 +140,8 @@ static fx_status print_paragraph_tty( need_indent = true; while (*str == '\n') { - if (format->p_flags & FX_PARAGRAPH_MULTI_LINE_BREAK) { + if (format->p_flags + & FX_PARAGRAPH_MULTI_LINE_BREAK) { fx_tty_putc(tty, 0, '\n'); } @@ -164,13 +171,17 @@ static fx_status print_paragraph_tty( } static fx_status print_paragraph_file( - const char *str, FILE *fp, struct fx_paragraph_format *format) + const char *str, + FILE *fp, + struct fx_paragraph_format *format) { return FX_SUCCESS; } fx_status fx_print_paragraph( - const char *str, struct fx_tty *fp, struct fx_paragraph_format *format) + const char *str, + struct fx_tty *fp, + struct fx_paragraph_format *format) { return print_paragraph_tty(str, fp, format); } diff --git a/fx.term/print.c b/fx.term/print.c index eb4a7b6..31b379d 100644 --- a/fx.term/print.c +++ b/fx.term/print.c @@ -1,8 +1,8 @@ #include "print.h" -#include -#include #include +#include +#include #include #include #include @@ -131,17 +131,20 @@ int fx_putc(char c) return fx_tty_putc(fx_stdtty, 0, c); } -int fx_puts(const char* s) +int fx_puts(const char *s) { return fx_tty_puts(fx_stdtty, 0, s); } -int fx_printf(const char* format, ...) +int fx_printf(const char *format, ...) { va_list arg; va_start(arg, format); int x = fx_tty_vprintf( - fx_stdtty, FX_TTY_DISABLE_INTERPOLATED_FORMATTING, format, arg); + fx_stdtty, + FX_TTY_DISABLE_INTERPOLATED_FORMATTING, + format, + arg); va_end(arg); return x; -} \ No newline at end of file +} diff --git a/fx.term/print.h b/fx.term/print.h index c02de62..da17b90 100644 --- a/fx.term/print.h +++ b/fx.term/print.h @@ -1,8 +1,7 @@ #ifndef _FX_PRINT_H_ #define _FX_PRINT_H_ -#include -#include +#include #include enum z__fx_stream_modifier { @@ -26,28 +25,31 @@ enum z__fx_stream_modifier { Z__FX_STREAM_MOD_RESET = 0x4000, }; -#define Z__FX_STREAM_MOD_GET_FG_COLOUR(x) \ +#define Z__FX_STREAM_MOD_GET_FG_COLOUR(x) \ ((x) \ - & (Z__FX_STREAM_MOD_BLACK | Z__FX_STREAM_MOD_RED \ + & (Z__FX_STREAM_MOD_BLACK | Z__FX_STREAM_MOD_RED \ | Z__FX_STREAM_MOD_GREEN | Z__FX_STREAM_MOD_FX)) -#define Z__FX_STREAM_MOD_CLEAR_FG_COLOUR(x) \ +#define Z__FX_STREAM_MOD_CLEAR_FG_COLOUR(x) \ ((x) \ - & ~(Z__FX_STREAM_MOD_BLACK | Z__FX_STREAM_MOD_RED \ + & ~(Z__FX_STREAM_MOD_BLACK | Z__FX_STREAM_MOD_RED \ | Z__FX_STREAM_MOD_GREEN | Z__FX_STREAM_MOD_FX)) -#define Z__FX_STREAM_MOD_GET_BG_COLOUR(x) \ +#define Z__FX_STREAM_MOD_GET_BG_COLOUR(x) \ ((x) \ - & (Z__FX_STREAM_MOD_BG_BLACK | Z__FX_STREAM_MOD_BG_RED \ + & (Z__FX_STREAM_MOD_BG_BLACK | Z__FX_STREAM_MOD_BG_RED \ | Z__FX_STREAM_MOD_BG_GREEN | Z__FX_STREAM_MOD_BG_FX)) -#define Z__FX_STREAM_MOD_CLEAR_BG_COLOUR(x) \ +#define Z__FX_STREAM_MOD_CLEAR_BG_COLOUR(x) \ ((x) \ - & ~(Z__FX_STREAM_MOD_BG_BLACK | Z__FX_STREAM_MOD_BG_RED \ + & ~(Z__FX_STREAM_MOD_BG_BLACK | Z__FX_STREAM_MOD_BG_RED \ | Z__FX_STREAM_MOD_BG_GREEN | Z__FX_STREAM_MOD_BG_FX)) FX_API int z__fx_stream_is_tty(FILE *fp); FX_API int z__fx_stream_dimensions(FILE *fp, unsigned int *w, unsigned int *h); FX_API int z__fx_stream_cursorpos( - FILE *in, FILE *out, unsigned int *x, unsigned int *y); + FILE *in, + FILE *out, + unsigned int *x, + unsigned int *y); FX_API int z__fx_stream_set_modifier(FILE *fp, unsigned int mod); #endif diff --git a/fx.term/tty.c b/fx.term/tty.c index 019a0d1..4febaa0 100644 --- a/fx.term/tty.c +++ b/fx.term/tty.c @@ -1,6 +1,6 @@ #include "tty.h" -#include +#include #include #include @@ -8,7 +8,7 @@ #define MOD_HASH_RED 0x89e9be1960f4c21c #define MOD_HASH_GREEN 0x0f40f029637fecbc #define MOD_HASH_YELLOW 0x8346a574925e75a9 -#define MOD_HASH_FX 0xc5ccd29bc2dda64d +#define MOD_HASH_FX 0xc5ccd29bc2dda64d #define MOD_HASH_MAGENTA 0x6c90e772edbc8708 #define MOD_HASH_CYAN 0x70ae2e90c1bce27a #define MOD_HASH_WHITE 0xced973885856e206 @@ -17,7 +17,7 @@ #define MOD_HASH_BRIGHT_RED 0xbad8e3fe841b9385 #define MOD_HASH_BRIGHT_GREEN 0x11cc5e579bdd2fb9 #define MOD_HASH_BRIGHT_YELLOW 0xfd579007fe8579f6 -#define MOD_HASH_BRIGHT_FX 0x57c76bf18badb6d6 +#define MOD_HASH_BRIGHT_FX 0x57c76bf18badb6d6 #define MOD_HASH_BRIGHT_MAGENTA 0xf6ecc6d3fdfec129 #define MOD_HASH_BRIGHT_CYAN 0x03df73fd4e12ec6d #define MOD_HASH_BRIGHT_WHITE 0xb5ebc3323f57d7fb @@ -26,7 +26,7 @@ #define MOD_HASH_BG_RED 0x145b1e4366c7d7aa #define MOD_HASH_BG_GREEN 0xa00b8541d3b1e55a #define MOD_HASH_BG_YELLOW 0x98b030fd86e3b3cf -#define MOD_HASH_BG_FX 0xa15529109506b5df +#define MOD_HASH_BG_FX 0xa15529109506b5df #define MOD_HASH_BG_MAGENTA 0x86dbda99bcc86222 #define MOD_HASH_BG_CYAN 0xf16a3104cf61a098 #define MOD_HASH_BG_WHITE 0x3408c46ab5836674 @@ -35,7 +35,7 @@ #define MOD_HASH_BRIGHT_BG_RED 0x144f5dc138087701 #define MOD_HASH_BRIGHT_BG_GREEN 0xc4d88c6426ffe355 #define MOD_HASH_BRIGHT_BG_YELLOW 0xf7bb000a4a792602 -#define MOD_HASH_BRIGHT_BG_FX 0x9b5c16d6807a1002 +#define MOD_HASH_BRIGHT_BG_FX 0x9b5c16d6807a1002 #define MOD_HASH_BRIGHT_BG_MAGENTA 0xc59fb2196cdba3fd #define MOD_HASH_BRIGHT_BG_CYAN 0x46feb6dc999a6f09 #define MOD_HASH_BRIGHT_BG_WHITE 0xa3e7d1da08826f5f @@ -93,53 +93,83 @@ static void apply_code_to_vmode(struct tty_format_buf *fmt) fmt->vmode.v_fg.c_16.value = FX_TTY_COLOUR16_WHITE; } - if (COMPARE_MOD_NAME(modifier, "dark_grey", mod_hash, MOD_HASH_DARK_GREY)) { + if (COMPARE_MOD_NAME( + modifier, + "dark_grey", + mod_hash, + MOD_HASH_DARK_GREY)) { fmt->vmode.v_fg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_fg.c_16.value = FX_TTY_COLOUR16_BRIGHT_BLACK; } - if (COMPARE_MOD_NAME(modifier, "bright_red", mod_hash, MOD_HASH_BRIGHT_RED)) { + if (COMPARE_MOD_NAME( + modifier, + "bright_red", + mod_hash, + MOD_HASH_BRIGHT_RED)) { fmt->vmode.v_fg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_fg.c_16.value = FX_TTY_COLOUR16_BRIGHT_RED; } if (COMPARE_MOD_NAME( - modifier, "bright_green", mod_hash, MOD_HASH_BRIGHT_GREEN)) { + modifier, + "bright_green", + mod_hash, + MOD_HASH_BRIGHT_GREEN)) { fmt->vmode.v_fg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_fg.c_16.value = FX_TTY_COLOUR16_BRIGHT_GREEN; } if (COMPARE_MOD_NAME( - modifier, "bright_yellow", mod_hash, MOD_HASH_BRIGHT_YELLOW)) { + modifier, + "bright_yellow", + mod_hash, + MOD_HASH_BRIGHT_YELLOW)) { fmt->vmode.v_fg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_fg.c_16.value = FX_TTY_COLOUR16_BRIGHT_YELLOW; } if (COMPARE_MOD_NAME( - modifier, "bright_blue", mod_hash, MOD_HASH_BRIGHT_FX)) { + modifier, + "bright_blue", + mod_hash, + MOD_HASH_BRIGHT_FX)) { fmt->vmode.v_fg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_fg.c_16.value = FX_TTY_COLOUR16_BRIGHT_FX; } if (COMPARE_MOD_NAME( - modifier, "bright_magenta", mod_hash, MOD_HASH_BRIGHT_MAGENTA)) { + modifier, + "bright_magenta", + mod_hash, + MOD_HASH_BRIGHT_MAGENTA)) { fmt->vmode.v_fg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_fg.c_16.value = FX_TTY_COLOUR16_BRIGHT_MAGENTA; } if (COMPARE_MOD_NAME( - modifier, "bright_cyan", mod_hash, MOD_HASH_BRIGHT_CYAN)) { + modifier, + "bright_cyan", + mod_hash, + MOD_HASH_BRIGHT_CYAN)) { fmt->vmode.v_fg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_fg.c_16.value = FX_TTY_COLOUR16_BRIGHT_CYAN; } if (COMPARE_MOD_NAME( - modifier, "bright_white", mod_hash, MOD_HASH_BRIGHT_WHITE)) { + modifier, + "bright_white", + mod_hash, + MOD_HASH_BRIGHT_WHITE)) { fmt->vmode.v_fg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_fg.c_16.value = FX_TTY_COLOUR16_BRIGHT_WHITE; } - if (COMPARE_MOD_NAME(modifier, "bg_black", mod_hash, MOD_HASH_BG_BLACK)) { + if (COMPARE_MOD_NAME( + modifier, + "bg_black", + mod_hash, + MOD_HASH_BG_BLACK)) { fmt->vmode.v_bg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_bg.c_16.value = FX_TTY_COLOUR16_BLACK; } @@ -149,12 +179,20 @@ static void apply_code_to_vmode(struct tty_format_buf *fmt) fmt->vmode.v_bg.c_16.value = FX_TTY_COLOUR16_RED; } - if (COMPARE_MOD_NAME(modifier, "bg_green", mod_hash, MOD_HASH_BG_GREEN)) { + if (COMPARE_MOD_NAME( + modifier, + "bg_green", + mod_hash, + MOD_HASH_BG_GREEN)) { fmt->vmode.v_bg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_bg.c_16.value = FX_TTY_COLOUR16_GREEN; } - if (COMPARE_MOD_NAME(modifier, "bg_yellow", mod_hash, MOD_HASH_BG_YELLOW)) { + if (COMPARE_MOD_NAME( + modifier, + "bg_yellow", + mod_hash, + MOD_HASH_BG_YELLOW)) { fmt->vmode.v_bg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_bg.c_16.value = FX_TTY_COLOUR16_YELLOW; } @@ -164,7 +202,11 @@ static void apply_code_to_vmode(struct tty_format_buf *fmt) fmt->vmode.v_bg.c_16.value = FX_TTY_COLOUR16_FX; } - if (COMPARE_MOD_NAME(modifier, "bg_magenta", mod_hash, MOD_HASH_BG_MAGENTA)) { + if (COMPARE_MOD_NAME( + modifier, + "bg_magenta", + mod_hash, + MOD_HASH_BG_MAGENTA)) { fmt->vmode.v_bg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_bg.c_16.value = FX_TTY_COLOUR16_MAGENTA; } @@ -174,58 +216,82 @@ static void apply_code_to_vmode(struct tty_format_buf *fmt) fmt->vmode.v_bg.c_16.value = FX_TTY_COLOUR16_CYAN; } - if (COMPARE_MOD_NAME(modifier, "bg_white", mod_hash, MOD_HASH_BG_WHITE)) { + if (COMPARE_MOD_NAME( + modifier, + "bg_white", + mod_hash, + MOD_HASH_BG_WHITE)) { fmt->vmode.v_bg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_bg.c_16.value = FX_TTY_COLOUR16_WHITE; } if (COMPARE_MOD_NAME( - modifier, "bg_dark_grey", mod_hash, MOD_HASH_BG_DARK_GREY)) { + modifier, + "bg_dark_grey", + mod_hash, + MOD_HASH_BG_DARK_GREY)) { fmt->vmode.v_bg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_bg.c_16.value = FX_TTY_COLOUR16_BRIGHT_BLACK; } if (COMPARE_MOD_NAME( - modifier, "bright_bg_red", mod_hash, MOD_HASH_BRIGHT_BG_RED)) { + modifier, + "bright_bg_red", + mod_hash, + MOD_HASH_BRIGHT_BG_RED)) { fmt->vmode.v_bg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_bg.c_16.value = FX_TTY_COLOUR16_BRIGHT_RED; } if (COMPARE_MOD_NAME( - modifier, "bright_bg_green", mod_hash, + modifier, + "bright_bg_green", + mod_hash, MOD_HASH_BRIGHT_BG_GREEN)) { fmt->vmode.v_bg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_bg.c_16.value = FX_TTY_COLOUR16_BRIGHT_GREEN; } if (COMPARE_MOD_NAME( - modifier, "bright_bg_yellow", mod_hash, + modifier, + "bright_bg_yellow", + mod_hash, MOD_HASH_BRIGHT_BG_YELLOW)) { fmt->vmode.v_bg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_bg.c_16.value = FX_TTY_COLOUR16_BRIGHT_YELLOW; } if (COMPARE_MOD_NAME( - modifier, "bright_bg_blue", mod_hash, MOD_HASH_BRIGHT_BG_FX)) { + modifier, + "bright_bg_blue", + mod_hash, + MOD_HASH_BRIGHT_BG_FX)) { fmt->vmode.v_bg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_bg.c_16.value = FX_TTY_COLOUR16_BRIGHT_FX; } if (COMPARE_MOD_NAME( - modifier, "bright_bg_magenta", mod_hash, + modifier, + "bright_bg_magenta", + mod_hash, MOD_HASH_BRIGHT_BG_MAGENTA)) { fmt->vmode.v_bg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_bg.c_16.value = FX_TTY_COLOUR16_BRIGHT_MAGENTA; } if (COMPARE_MOD_NAME( - modifier, "bright_bg_cyan", mod_hash, MOD_HASH_BRIGHT_BG_CYAN)) { + modifier, + "bright_bg_cyan", + mod_hash, + MOD_HASH_BRIGHT_BG_CYAN)) { fmt->vmode.v_bg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_bg.c_16.value = FX_TTY_COLOUR16_BRIGHT_CYAN; } if (COMPARE_MOD_NAME( - modifier, "bright_bg_white", mod_hash, + modifier, + "bright_bg_white", + mod_hash, MOD_HASH_BRIGHT_BG_WHITE)) { fmt->vmode.v_bg.c_mode = FX_TTY_COLOUR_16; fmt->vmode.v_bg.c_16.value = FX_TTY_COLOUR16_BRIGHT_WHITE; @@ -328,7 +394,10 @@ int fx_tty_putc(struct fx_tty *tty, enum fx_tty_print_flags flags, char c) return c; } -int fx_tty_puts(struct fx_tty *tty, enum fx_tty_print_flags flags, const char *s) +int fx_tty_puts( + struct fx_tty *tty, + enum fx_tty_print_flags flags, + const char *s) { int r = 0; @@ -340,7 +409,11 @@ int fx_tty_puts(struct fx_tty *tty, enum fx_tty_print_flags flags, const char *s return r; } -int fx_tty_printf(struct fx_tty *tty, enum fx_tty_print_flags flags, const char *s, ...) +int fx_tty_printf( + struct fx_tty *tty, + enum fx_tty_print_flags flags, + const char *s, + ...) { va_list arg; va_start(arg, s);