Use Str8 instead of const char * in termcolour functions
This commit is contained in:
parent
62dcfdaa93
commit
180425707b
@ -1,33 +1,34 @@
|
|||||||
#include "aliases.h"
|
#include "aliases.h"
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
|
#include "str8.h"
|
||||||
|
|
||||||
#ifdef WAPP_PLATFORM_POSIX
|
#ifdef WAPP_PLATFORM_POSIX
|
||||||
|
|
||||||
#include "terminal_colours.h"
|
#include "terminal_colours.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
internal const char *colours[COUNT_TERM_COLOUR] = {
|
internal Str8RO colours[COUNT_TERM_COLOUR] = {
|
||||||
[WAPP_TERM_COLOUR_FG_BLACK] = "\033[30m",
|
[WAPP_TERM_COLOUR_FG_BLACK] = wapp_str8_lit_ro("\033[30m"),
|
||||||
[WAPP_TERM_COLOUR_FG_RED] = "\033[31m",
|
[WAPP_TERM_COLOUR_FG_RED] = wapp_str8_lit_ro("\033[31m"),
|
||||||
[WAPP_TERM_COLOUR_FG_GREEN] = "\033[32m",
|
[WAPP_TERM_COLOUR_FG_GREEN] = wapp_str8_lit_ro("\033[32m"),
|
||||||
[WAPP_TERM_COLOUR_FG_BLUE] = "\033[34m",
|
[WAPP_TERM_COLOUR_FG_BLUE] = wapp_str8_lit_ro("\033[34m"),
|
||||||
[WAPP_TERM_COLOUR_FG_CYAN] = "\033[36m",
|
[WAPP_TERM_COLOUR_FG_CYAN] = wapp_str8_lit_ro("\033[36m"),
|
||||||
[WAPP_TERM_COLOUR_FG_MAGENTA] = "\033[35m",
|
[WAPP_TERM_COLOUR_FG_MAGENTA] = wapp_str8_lit_ro("\033[35m"),
|
||||||
[WAPP_TERM_COLOUR_FG_YELLOW] = "\033[33m",
|
[WAPP_TERM_COLOUR_FG_YELLOW] = wapp_str8_lit_ro("\033[33m"),
|
||||||
[WAPP_TERM_COLOUR_FG_WHITE] = "\033[37m",
|
[WAPP_TERM_COLOUR_FG_WHITE] = wapp_str8_lit_ro("\033[37m"),
|
||||||
[WAPP_TERM_COLOUR_FG_BR_BLACK] = "\033[90m",
|
[WAPP_TERM_COLOUR_FG_BR_BLACK] = wapp_str8_lit_ro("\033[90m"),
|
||||||
[WAPP_TERM_COLOUR_FG_BR_RED] = "\033[91m",
|
[WAPP_TERM_COLOUR_FG_BR_RED] = wapp_str8_lit_ro("\033[91m"),
|
||||||
[WAPP_TERM_COLOUR_FG_BR_GREEN] = "\033[92m",
|
[WAPP_TERM_COLOUR_FG_BR_GREEN] = wapp_str8_lit_ro("\033[92m"),
|
||||||
[WAPP_TERM_COLOUR_FG_BR_BLUE] = "\033[94m",
|
[WAPP_TERM_COLOUR_FG_BR_BLUE] = wapp_str8_lit_ro("\033[94m"),
|
||||||
[WAPP_TERM_COLOUR_FG_BR_CYAN] = "\033[96m",
|
[WAPP_TERM_COLOUR_FG_BR_CYAN] = wapp_str8_lit_ro("\033[96m"),
|
||||||
[WAPP_TERM_COLOUR_FG_BR_MAGENTA] = "\033[95m",
|
[WAPP_TERM_COLOUR_FG_BR_MAGENTA] = wapp_str8_lit_ro("\033[95m"),
|
||||||
[WAPP_TERM_COLOUR_FG_BR_YELLOW] = "\033[93m",
|
[WAPP_TERM_COLOUR_FG_BR_YELLOW] = wapp_str8_lit_ro("\033[93m"),
|
||||||
[WAPP_TERM_COLOUR_FG_BR_WHITE] = "\033[97m",
|
[WAPP_TERM_COLOUR_FG_BR_WHITE] = wapp_str8_lit_ro("\033[97m"),
|
||||||
[WAPP_TERM_COLOUR_CLEAR] = "\033[0m",
|
[WAPP_TERM_COLOUR_CLEAR] = wapp_str8_lit_ro("\033[0m"),
|
||||||
};
|
};
|
||||||
|
|
||||||
void print_coloured_text(const char *text, TerminalColour colour) {
|
void print_coloured_text(Str8RO *text, TerminalColour colour) {
|
||||||
printf("%s%s", colours[colour], text);
|
printf(WAPP_STR8_SPEC WAPP_STR8_SPEC, wapp_str8_varg(colours[colour]), wapp_str8_varg((*text)));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // !WAPP_PLATFORM_POSIX
|
#endif // !WAPP_PLATFORM_POSIX
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include "termcolour.h"
|
#include "termcolour.h"
|
||||||
#include "terminal_colours.h"
|
#include "terminal_colours.h"
|
||||||
|
|
||||||
void wapp_shell_termcolour_print_text(const char *text, TerminalColour colour) {
|
void wapp_shell_termcolour_print_text(Str8RO *text, TerminalColour colour) {
|
||||||
if (colour < WAPP_TERM_COLOUR_FG_BLACK || colour > WAPP_TERM_COLOUR_FG_BR_WHITE) {
|
if (colour < WAPP_TERM_COLOUR_FG_BLACK || colour > WAPP_TERM_COLOUR_FG_BR_WHITE) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -10,5 +10,6 @@ void wapp_shell_termcolour_print_text(const char *text, TerminalColour colour) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void wapp_shell_termcolour_clear_colour(void) {
|
void wapp_shell_termcolour_clear_colour(void) {
|
||||||
print_coloured_text("", WAPP_TERM_COLOUR_CLEAR);
|
Str8RO empty = wapp_str8_lit_ro("");
|
||||||
|
print_coloured_text(&empty, WAPP_TERM_COLOUR_CLEAR);
|
||||||
}
|
}
|
||||||
|
@ -3,15 +3,16 @@
|
|||||||
|
|
||||||
#include "aliases.h"
|
#include "aliases.h"
|
||||||
#include "terminal_colours.h"
|
#include "terminal_colours.h"
|
||||||
|
#include "str8.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
BEGIN_C_LINKAGE
|
BEGIN_C_LINKAGE
|
||||||
#endif // __cplusplus
|
#endif // __cplusplus
|
||||||
|
|
||||||
void wapp_shell_termcolour_print_text(const char *text, TerminalColour colour);
|
void wapp_shell_termcolour_print_text(Str8RO *text, TerminalColour colour);
|
||||||
void wapp_shell_termcolour_clear_colour(void);
|
void wapp_shell_termcolour_clear_colour(void);
|
||||||
|
|
||||||
external void print_coloured_text(const char *text, TerminalColour colour);
|
external void print_coloured_text(Str8RO *text, TerminalColour colour);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
END_C_LINKAGE
|
END_C_LINKAGE
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#include "aliases.h"
|
#include "aliases.h"
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
|
#include "str8.h"
|
||||||
|
|
||||||
#ifdef WAPP_PLATFORM_WINDOWS
|
#ifdef WAPP_PLATFORM_WINDOWS
|
||||||
|
|
||||||
@ -40,7 +41,7 @@ internal WORD colours[COUNT_TERM_COLOUR] = {
|
|||||||
[WAPP_TERM_COLOUR_FG_BR_WHITE] = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY,
|
[WAPP_TERM_COLOUR_FG_BR_WHITE] = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY,
|
||||||
};
|
};
|
||||||
|
|
||||||
void print_coloured_text(const char *text, TerminalColour colour) {
|
void print_coloured_text(Str8RO *text, TerminalColour colour) {
|
||||||
persistent TermcolourData data = {0};
|
persistent TermcolourData data = {0};
|
||||||
if (data.handle == 0) {
|
if (data.handle == 0) {
|
||||||
init_data(&data);
|
init_data(&data);
|
||||||
@ -53,7 +54,7 @@ void print_coloured_text(const char *text, TerminalColour colour) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
SetConsoleTextAttribute(data.handle, data.current_colour);
|
SetConsoleTextAttribute(data.handle, data.current_colour);
|
||||||
printf("%s", text);
|
printf(WAPP_STR8_SPEC, wapp_str8_varg(text));
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void init_data(TermcolourData *data) {
|
internal void init_data(TermcolourData *data) {
|
||||||
|
Loading…
Reference in New Issue
Block a user