X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fcommon%2Fcommon.h;h=1abe37ec11b094bf80713ad212a462f6e6f32f93;hb=8b305066676fc7aa433e8eb668f9de8802008025;hp=3b15b28416039ed09b6cd3795f8c9842763a678f;hpb=498e7994d60bd0e9f63c3d5c0fd00eec77ba7c34;p=babeltrace.git diff --git a/src/common/common.h b/src/common/common.h index 3b15b284..1abe37ec 100644 --- a/src/common/common.h +++ b/src/common/common.h @@ -44,24 +44,72 @@ #include "common/macros.h" #include "common/safe.h" -#define BT_COMMON_COLOR_RESET "\033[0m" -#define BT_COMMON_COLOR_BOLD "\033[1m" -#define BT_COMMON_COLOR_FG_DEFAULT "\033[39m" -#define BT_COMMON_COLOR_FG_RED "\033[31m" -#define BT_COMMON_COLOR_FG_GREEN "\033[32m" -#define BT_COMMON_COLOR_FG_YELLOW "\033[33m" -#define BT_COMMON_COLOR_FG_BLUE "\033[34m" -#define BT_COMMON_COLOR_FG_MAGENTA "\033[35m" -#define BT_COMMON_COLOR_FG_CYAN "\033[36m" -#define BT_COMMON_COLOR_FG_LIGHT_GRAY "\033[37m" -#define BT_COMMON_COLOR_BG_DEFAULT "\033[49m" -#define BT_COMMON_COLOR_BG_RED "\033[41m" -#define BT_COMMON_COLOR_BG_GREEN "\033[42m" -#define BT_COMMON_COLOR_BG_YELLOW "\033[43m" -#define BT_COMMON_COLOR_BG_BLUE "\033[44m" -#define BT_COMMON_COLOR_BG_MAGENTA "\033[45m" -#define BT_COMMON_COLOR_BG_CYAN "\033[46m" -#define BT_COMMON_COLOR_BG_LIGHT_GRAY "\033[47m" +#define BT_COMMON_COLOR_RESET "\033[0m" +#define BT_COMMON_COLOR_BOLD "\033[1m" +#define BT_COMMON_COLOR_FG_DEFAULT "\033[39m" +#define BT_COMMON_COLOR_FG_RED "\033[31m" +#define BT_COMMON_COLOR_FG_GREEN "\033[32m" +#define BT_COMMON_COLOR_FG_YELLOW "\033[33m" +#define BT_COMMON_COLOR_FG_BLUE "\033[34m" +#define BT_COMMON_COLOR_FG_MAGENTA "\033[35m" +#define BT_COMMON_COLOR_FG_CYAN "\033[36m" +#define BT_COMMON_COLOR_FG_LIGHT_GRAY "\033[37m" +#define BT_COMMON_COLOR_FG_BOLD_RED "\033[1m\033[31m" +#define BT_COMMON_COLOR_FG_BOLD_GREEN "\033[1m\033[32m" +#define BT_COMMON_COLOR_FG_BOLD_YELLOW "\033[1m\033[33m" +#define BT_COMMON_COLOR_FG_BOLD_BLUE "\033[1m\033[34m" +#define BT_COMMON_COLOR_FG_BOLD_MAGENTA "\033[1m\033[35m" +#define BT_COMMON_COLOR_FG_BOLD_CYAN "\033[1m\033[36m" +#define BT_COMMON_COLOR_FG_BOLD_LIGHT_GRAY "\033[1m\033[37m" +#define BT_COMMON_COLOR_FG_BRIGHT_RED "\033[91m" +#define BT_COMMON_COLOR_FG_BRIGHT_GREEN "\033[92m" +#define BT_COMMON_COLOR_FG_BRIGHT_YELLOW "\033[93m" +#define BT_COMMON_COLOR_FG_BRIGHT_BLUE "\033[94m" +#define BT_COMMON_COLOR_FG_BRIGHT_MAGENTA "\033[95m" +#define BT_COMMON_COLOR_FG_BRIGHT_CYAN "\033[96m" +#define BT_COMMON_COLOR_FG_BRIGHT_LIGHT_GRAY "\033[97m" +#define BT_COMMON_COLOR_BG_DEFAULT "\033[49m" +#define BT_COMMON_COLOR_BG_RED "\033[41m" +#define BT_COMMON_COLOR_BG_GREEN "\033[42m" +#define BT_COMMON_COLOR_BG_YELLOW "\033[43m" +#define BT_COMMON_COLOR_BG_BLUE "\033[44m" +#define BT_COMMON_COLOR_BG_MAGENTA "\033[45m" +#define BT_COMMON_COLOR_BG_CYAN "\033[46m" +#define BT_COMMON_COLOR_BG_LIGHT_GRAY "\033[47m" + +enum bt_common_color_when { + BT_COMMON_COLOR_WHEN_AUTO, + BT_COMMON_COLOR_WHEN_ALWAYS, + BT_COMMON_COLOR_WHEN_NEVER, +}; + +struct bt_common_color_codes { + const char *reset; + const char *bold; + const char *fg_default; + const char *fg_red; + const char *fg_green; + const char *fg_yellow; + const char *fg_blue; + const char *fg_magenta; + const char *fg_cyan; + const char *fg_light_gray; + const char *fg_bright_red; + const char *fg_bright_green; + const char *fg_bright_yellow; + const char *fg_bright_blue; + const char *fg_bright_magenta; + const char *fg_bright_cyan; + const char *fg_bright_light_gray; + const char *bg_default; + const char *bg_red; + const char *bg_green; + const char *bg_yellow; + const char *bg_blue; + const char *bg_magenta; + const char *bg_cyan; + const char *bg_light_gray; +}; struct bt_common_lttng_live_url_parts { GString *proto; @@ -140,6 +188,27 @@ const char *bt_common_color_fg_cyan(void); BT_HIDDEN const char *bt_common_color_fg_light_gray(void); +BT_HIDDEN +const char *bt_common_color_fg_bright_red(void); + +BT_HIDDEN +const char *bt_common_color_fg_bright_green(void); + +BT_HIDDEN +const char *bt_common_color_fg_bright_yellow(void); + +BT_HIDDEN +const char *bt_common_color_fg_bright_blue(void); + +BT_HIDDEN +const char *bt_common_color_fg_bright_magenta(void); + +BT_HIDDEN +const char *bt_common_color_fg_bright_cyan(void); + +BT_HIDDEN +const char *bt_common_color_fg_bright_light_gray(void); + BT_HIDDEN const char *bt_common_color_bg_default(void); @@ -164,6 +233,10 @@ const char *bt_common_color_bg_cyan(void); BT_HIDDEN const char *bt_common_color_bg_light_gray(void); +BT_HIDDEN +void bt_common_color_get_codes(struct bt_common_color_codes *codes, + enum bt_common_color_when use_colors); + /* * Returns the substring from `input` to the first character found * in the list of characters `end_chars`, unescaping any character @@ -636,6 +709,8 @@ const char *bt_common_func_status_string(int status) return "UNKNOWN_OBJECT"; case __BT_FUNC_STATUS_MEMORY_ERROR: return "MEMORY_ERROR"; + case __BT_FUNC_STATUS_USER_ERROR: + return "USER_ERROR"; case __BT_FUNC_STATUS_ERROR: return "ERROR"; case __BT_FUNC_STATUS_OK: @@ -748,7 +823,7 @@ end: * bt_g_string_append_printf cannot be inlined because it expects a * variadic argument list. */ -BT_HIDDEN +BT_HIDDEN __BT_ATTR_FORMAT_PRINTF(2, 3) int bt_common_g_string_append_printf(GString *str, const char *fmt, ...); static inline