From: Georgi Kirilov Date: Fri, 1 Feb 2019 05:33:11 +0000 (+0200) Subject: Don't reset dircolor prematurely X-Git-Tag: v2.3~50 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=e5dc6c8750fd7400cded9fe7daaf56d2ca0d9461;p=nnn.git Don't reset dircolor prematurely --- diff --git a/src/nnn.c b/src/nnn.c index 23dbb345..e32a0d95 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -1722,9 +1722,9 @@ static char *get_bm_loc(int key, char *buf) return NULL; } -static void resetdircolor(mode_t mode) +static void resetdircolor(int flags) { - if (cfg.dircolor && !S_ISDIR(mode)) { + if (cfg.dircolor && !(flags & DIR_OR_LINK_TO_DIR)) { attroff(COLOR_PAIR(cfg.curctx + 1) | A_BOLD); cfg.dircolor = 0; } @@ -1872,7 +1872,7 @@ static void printent(struct entry *ent, int sel, uint namecols) pname = unescape(ent->name, namecols); /* Directories are always shown on top */ - resetdircolor(ent->mode); + resetdircolor(ent->flags); printw("%s%s%s\n", CURSYM(sel), pname, get_file_sym(ent->mode)); } @@ -1885,7 +1885,7 @@ static void printent_long(struct entry *ent, int sel, uint namecols) pname = unescape(ent->name, namecols); /* Directories are always shown on top */ - resetdircolor(ent->mode); + resetdircolor(ent->flags); if (sel) attron(A_REVERSE);