mirror of
https://github.com/jarun/nnn.git
synced 2024-11-28 05:41:31 +00:00
Reduce processing if NNN_COLORS is unset
This commit is contained in:
parent
359b6f7a37
commit
b948423a80
74
src/nnn.c
74
src/nnn.c
|
@ -1586,54 +1586,56 @@ static bool initcurses(void *oldmask)
|
||||||
char *colors = getenv(env_cfg[NNN_COLORS]);
|
char *colors = getenv(env_cfg[NNN_COLORS]);
|
||||||
|
|
||||||
if (colors || !getenv("NO_COLOR")) {
|
if (colors || !getenv("NO_COLOR")) {
|
||||||
uint *pcode;
|
uint *pclr;
|
||||||
char ch;
|
char ch;
|
||||||
bool ext = FALSE;
|
bool ext = FALSE;
|
||||||
|
|
||||||
start_color();
|
start_color();
|
||||||
use_default_colors();
|
use_default_colors();
|
||||||
|
|
||||||
if (colors && *colors == '#') {
|
if (colors) {
|
||||||
char *sep = strchr(colors, ';');
|
if (*colors == '#') {
|
||||||
|
char *sep = strchr(colors, ';');
|
||||||
|
|
||||||
if (COLORS >= 256) {
|
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)
|
|
||||||
++colors;
|
++colors;
|
||||||
}
|
ext = TRUE;
|
||||||
}
|
|
||||||
|
|
||||||
/* Get and set the context colors */
|
/*
|
||||||
for (uchar i = 0; i < CTX_MAX; ++i) {
|
* If fallback colors are specified, set the separator
|
||||||
pcode = &g_ctx[i].color;
|
* to NULL so we don't interpret separator and fallback
|
||||||
|
* if fewer than CTX_MAX xterm 256 colors are specified.
|
||||||
if (colors && *colors) {
|
*/
|
||||||
if (ext) {
|
if (sep)
|
||||||
ch = *colors;
|
*sep = '\0';
|
||||||
if (*++colors) {
|
|
||||||
*pcode = (16 * xchartohex(ch)) + xchartohex(*colors);
|
|
||||||
++colors;
|
|
||||||
} else
|
|
||||||
*pcode = xchartohex(ch);
|
|
||||||
} else {
|
} else {
|
||||||
*pcode = (*colors < '0' || *colors > '7') ? 4 : *colors - '0';
|
colors = sep; /* Detect if 8 colors fallback is appended */
|
||||||
++colors;
|
if (colors)
|
||||||
|
++colors;
|
||||||
}
|
}
|
||||||
} else
|
}
|
||||||
*pcode = 4;
|
|
||||||
|
|
||||||
init_pair(i + 1, *pcode, -1);
|
/* 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, *pclr, -1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue