nnn

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit ccfccb7187a82ebe7fce3ca2bbc3eaa94a1b4ccd
parent 8d94809897df2528c63ef99aa54b4a630ddcb789
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date:   Tue,  4 Aug 2020 00:42:58 +0530

Detect odd hex symbols in NNN_COLORS

Diffstat:
Msrc/nnn.c | 20++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/nnn.c b/src/nnn.c @@ -1589,7 +1589,6 @@ static bool initcurses(void *oldmask) if (colors || !getenv("NO_COLOR")) { uint *pcode; - char ch; bool ext = FALSE; start_color(); @@ -1622,16 +1621,17 @@ static bool initcurses(void *oldmask) if (colors && *colors) { if (ext) { - ch = *colors; - if (*++colors) { - *pcode = (16 * xchartohex(ch)) + xchartohex(*colors); - ++colors; - } else - *pcode = xchartohex(ch); - } else { + *pcode = xchartohex(*colors) << 4; + if (*++colors) + *pcode += xchartohex(*colors); + else { /* Each color code must be 2 hex symbols */ + exitcurses(); + fprintf(stderr, "NNN_COLORS!\n"); + return FALSE; + } + } else *pcode = (*colors < '0' || *colors > '7') ? 4 : *colors - '0'; - ++colors; - } + ++colors; } else *pcode = 4;