]> Sergey Matveev's repositories - nnn.git/commitdiff
Don't reset dircolor prematurely
authorGeorgi Kirilov <kirilov.georgi.s@gmail.com>
Fri, 1 Feb 2019 05:33:11 +0000 (07:33 +0200)
committerArun Prakash Jana <engineerarun@gmail.com>
Fri, 1 Feb 2019 14:21:19 +0000 (19:51 +0530)
src/nnn.c

index 23dbb345bc54b2a17a9f3756bf3c10e7effa8baf..e32a0d95d132d6a6185d9b8d1ebee618c87a4e2f 100644 (file)
--- 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);