From b948423a80759becf7c1ca2c9831960b5b43c5f8 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Sun, 2 Aug 2020 23:15:48 +0530 Subject: [PATCH] Reduce processing if NNN_COLORS is unset --- src/nnn.c | 74 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/src/nnn.c b/src/nnn.c index 336c0c1..781fad8 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -1586,54 +1586,56 @@ static bool initcurses(void *oldmask) char *colors = getenv(env_cfg[NNN_COLORS]); if (colors || !getenv("NO_COLOR")) { - uint *pcode; + uint *pclr; char ch; bool ext = FALSE; start_color(); use_default_colors(); - if (colors && *colors == '#') { - char *sep = strchr(colors, ';'); + if (colors) { + if (*colors == '#') { + char *sep = strchr(colors, ';'); - if (COLORS >= 256) { - ++colors; - ext = TRUE; - - /* - * If fallback colors are specified, set the separator - * to NULL so we don't interpret separator and fallback - * if fewer than CTX_MAX xterm 256 colors are specified. - */ - if (sep) - *sep = '\0'; - } else { - colors = sep; /* Detect if 8 colors fallback is appended */ - if (colors) + if (COLORS >= 256) { ++colors; - } - } - - /* Get and set the context colors */ - for (uchar i = 0; i < CTX_MAX; ++i) { - pcode = &g_ctx[i].color; + ext = TRUE; - if (colors && *colors) { - if (ext) { - ch = *colors; - if (*++colors) { - *pcode = (16 * xchartohex(ch)) + xchartohex(*colors); - ++colors; - } else - *pcode = xchartohex(ch); + /* + * If fallback colors are specified, set the separator + * to NULL so we don't interpret separator and fallback + * if fewer than CTX_MAX xterm 256 colors are specified. + */ + if (sep) + *sep = '\0'; } else { - *pcode = (*colors < '0' || *colors > '7') ? 4 : *colors - '0'; - ++colors; + colors = sep; /* Detect if 8 colors fallback is appended */ + if (colors) + ++colors; } - } else - *pcode = 4; + } + + /* Get and set the context colors */ + for (uchar i = 0; i < CTX_MAX; ++i) { + pclr = &g_ctx[i].color; + + if (*colors) { + if (ext) { + ch = *colors; + if (*++colors) { + *pclr = (16 * xchartohex(ch)) + xchartohex(*colors); + ++colors; + } else + *pclr = xchartohex(ch); + } else { + *pclr = (*colors < '0' || *colors > '7') ? 4 : *colors - '0'; + ++colors; + } + } else + *pclr = 4; - init_pair(i + 1, *pcode, -1); + init_pair(i + 1, *pclr, -1); + } } }