From 8bdca1b1a850cfc196614a44bcbdbf071229da2c Mon Sep 17 00:00:00 2001 From: Carter Li Date: Tue, 28 May 2024 15:38:45 +0800 Subject: [PATCH] Formatting: small optimizations --- src/common/format.c | 3 +-- src/common/option.c | 60 ++++++++++++++++++++++----------------------- 2 files changed, 31 insertions(+), 32 deletions(-) diff --git a/src/common/format.c b/src/common/format.c index bd12a1204..525b65788 100644 --- a/src/common/format.c +++ b/src/common/format.c @@ -257,9 +257,8 @@ void ffParseFormatString(FFstrbuf* buffer, const FFstrbuf* formatstr, uint32_t n { if (!instance.config.display.pipe) { - ffStrbufSubstrAfter(&placeholderValue, 0); ffStrbufAppendS(buffer, "\e["); - ffOptionParseColorNoClear(placeholderValue.chars, buffer); + ffOptionParseColorNoClear(placeholderValue.chars + 1, buffer); ffStrbufAppendC(buffer, 'm'); } continue; diff --git a/src/common/option.c b/src/common/option.c index 2824f1351..de2e487b4 100644 --- a/src/common/option.c +++ b/src/common/option.c @@ -152,39 +152,39 @@ void ffOptionParseColorNoClear(const char* value, FFstrbuf* buffer) while(*value != '\0') { #define FF_APPEND_COLOR_CODE_COND(prefix, code) \ - if(ffStrStartsWithIgnCase(value, #prefix)) { ffStrbufAppendS(buffer, code); value += strlen(#prefix); } + if(ffStrStartsWithIgnCase(value, #prefix)) { ffStrbufAppendS(buffer, code); value += strlen(#prefix); continue; } - FF_APPEND_COLOR_CODE_COND(reset_, FF_COLOR_MODE_RESET) - else FF_APPEND_COLOR_CODE_COND(bright_, FF_COLOR_MODE_BOLD) - else FF_APPEND_COLOR_CODE_COND(dim_, FF_COLOR_MODE_DIM) - else FF_APPEND_COLOR_CODE_COND(italic_, FF_COLOR_MODE_ITALIC) - else FF_APPEND_COLOR_CODE_COND(underline_, FF_COLOR_MODE_UNDERLINE) - else FF_APPEND_COLOR_CODE_COND(blink_, FF_COLOR_MODE_BLINK) - else FF_APPEND_COLOR_CODE_COND(inverse_, FF_COLOR_MODE_INVERSE) - else FF_APPEND_COLOR_CODE_COND(hidden_, FF_COLOR_MODE_HIDDEN) - else FF_APPEND_COLOR_CODE_COND(strike_, FF_COLOR_MODE_STRIKETHROUGH) - else FF_APPEND_COLOR_CODE_COND(black, FF_COLOR_FG_BLACK) - else FF_APPEND_COLOR_CODE_COND(red, FF_COLOR_FG_RED) - else FF_APPEND_COLOR_CODE_COND(green, FF_COLOR_FG_GREEN) - else FF_APPEND_COLOR_CODE_COND(yellow, FF_COLOR_FG_YELLOW) - else FF_APPEND_COLOR_CODE_COND(blue, FF_COLOR_FG_BLUE) - else FF_APPEND_COLOR_CODE_COND(magenta, FF_COLOR_FG_MAGENTA) - else FF_APPEND_COLOR_CODE_COND(cyan, FF_COLOR_FG_CYAN) - else FF_APPEND_COLOR_CODE_COND(white, FF_COLOR_FG_WHITE) - else FF_APPEND_COLOR_CODE_COND(default, FF_COLOR_FG_DEFAULT) - else FF_APPEND_COLOR_CODE_COND(light_black, FF_COLOR_FG_LIGHT_BLACK) - else FF_APPEND_COLOR_CODE_COND(light_red, FF_COLOR_FG_LIGHT_RED) - else FF_APPEND_COLOR_CODE_COND(light_green, FF_COLOR_FG_LIGHT_GREEN) - else FF_APPEND_COLOR_CODE_COND(light_yellow, FF_COLOR_FG_LIGHT_YELLOW) - else FF_APPEND_COLOR_CODE_COND(light_blue, FF_COLOR_FG_LIGHT_BLUE) - else FF_APPEND_COLOR_CODE_COND(light_magenta, FF_COLOR_FG_LIGHT_MAGENTA) - else FF_APPEND_COLOR_CODE_COND(light_cyan, FF_COLOR_FG_LIGHT_CYAN) - else FF_APPEND_COLOR_CODE_COND(light_white, FF_COLOR_FG_LIGHT_WHITE) - else + if (ffCharIsEnglishAlphabet(value[0])) { - ffStrbufAppendC(buffer, *value); - ++value; + FF_APPEND_COLOR_CODE_COND(reset_, FF_COLOR_MODE_RESET) + else FF_APPEND_COLOR_CODE_COND(bright_, FF_COLOR_MODE_BOLD) + else FF_APPEND_COLOR_CODE_COND(dim_, FF_COLOR_MODE_DIM) + else FF_APPEND_COLOR_CODE_COND(italic_, FF_COLOR_MODE_ITALIC) + else FF_APPEND_COLOR_CODE_COND(underline_, FF_COLOR_MODE_UNDERLINE) + else FF_APPEND_COLOR_CODE_COND(blink_, FF_COLOR_MODE_BLINK) + else FF_APPEND_COLOR_CODE_COND(inverse_, FF_COLOR_MODE_INVERSE) + else FF_APPEND_COLOR_CODE_COND(hidden_, FF_COLOR_MODE_HIDDEN) + else FF_APPEND_COLOR_CODE_COND(strike_, FF_COLOR_MODE_STRIKETHROUGH) + else FF_APPEND_COLOR_CODE_COND(black, FF_COLOR_FG_BLACK) + else FF_APPEND_COLOR_CODE_COND(red, FF_COLOR_FG_RED) + else FF_APPEND_COLOR_CODE_COND(green, FF_COLOR_FG_GREEN) + else FF_APPEND_COLOR_CODE_COND(yellow, FF_COLOR_FG_YELLOW) + else FF_APPEND_COLOR_CODE_COND(blue, FF_COLOR_FG_BLUE) + else FF_APPEND_COLOR_CODE_COND(magenta, FF_COLOR_FG_MAGENTA) + else FF_APPEND_COLOR_CODE_COND(cyan, FF_COLOR_FG_CYAN) + else FF_APPEND_COLOR_CODE_COND(white, FF_COLOR_FG_WHITE) + else FF_APPEND_COLOR_CODE_COND(default, FF_COLOR_FG_DEFAULT) + else FF_APPEND_COLOR_CODE_COND(light_black, FF_COLOR_FG_LIGHT_BLACK) + else FF_APPEND_COLOR_CODE_COND(light_red, FF_COLOR_FG_LIGHT_RED) + else FF_APPEND_COLOR_CODE_COND(light_green, FF_COLOR_FG_LIGHT_GREEN) + else FF_APPEND_COLOR_CODE_COND(light_yellow, FF_COLOR_FG_LIGHT_YELLOW) + else FF_APPEND_COLOR_CODE_COND(light_blue, FF_COLOR_FG_LIGHT_BLUE) + else FF_APPEND_COLOR_CODE_COND(light_magenta, FF_COLOR_FG_LIGHT_MAGENTA) + else FF_APPEND_COLOR_CODE_COND(light_cyan, FF_COLOR_FG_LIGHT_CYAN) + else FF_APPEND_COLOR_CODE_COND(light_white, FF_COLOR_FG_LIGHT_WHITE) } + ffStrbufAppendC(buffer, *value); + ++value; #undef FF_APPEND_COLOR_CODE_COND }