diff options
author | Arun Prakash Jana <engineerarun@gmail.com> | 2017-09-02 14:02:29 +0530 |
---|---|---|
committer | Arun Prakash Jana <engineerarun@gmail.com> | 2017-09-02 14:02:29 +0530 |
commit | 056a79635ab90e0faf94389d7ef6edf56934823f (patch) | |
tree | a8b58169d6b104a97e9079a996f88542edb5788f /nnn.c | |
parent | d0e4c0aac2d3d552f0771f71dccb315868eea0f5 (diff) | |
download | nnn-056a79635ab90e0faf94389d7ef6edf56934823f.tar.gz |
Disable dircolor if no sub-directories
Fix regression from 1e5a0b8c5bc78462956d01c647293a7da594c36f.
Diffstat (limited to 'nnn.c')
-rw-r--r-- | nnn.c | 27 |
1 files changed, 15 insertions, 12 deletions
@@ -1158,6 +1158,15 @@ readinput(void) return g_buf[0] ? g_buf : NULL; } +static void +resetdircolor(mode_t mode) +{ + if (cfg.dircolor && !S_ISDIR(mode)) { + attroff(COLOR_PAIR(1) | A_BOLD); + cfg.dircolor = 0; + } +} + /* * Replace escape characters in a string with '?' * Adjust string length to maxcols if > 0; @@ -1202,6 +1211,9 @@ printent(struct entry *ent, int sel, uint namecols) pname = unescape(ent->name, namecols); + /* Directories are always shown on top */ + resetdircolor(ent->mode); + if (S_ISDIR(ent->mode)) printw("%s%s/\n", CURSYM(sel), pname); else if (S_ISLNK(ent->mode)) @@ -1214,12 +1226,6 @@ printent(struct entry *ent, int sel, uint namecols) printw("%s%s*\n", CURSYM(sel), pname); else printw("%s%s\n", CURSYM(sel), pname); - - /* Dirs are always shown on top */ - if (cfg.dircolor && !S_ISDIR(ent->mode)) { - attroff(COLOR_PAIR(1) | A_BOLD); - cfg.dircolor = 0; - } } static char * @@ -1254,6 +1260,9 @@ printent_long(struct entry *ent, int sel, uint namecols) strftime(buf, 18, "%d-%m-%Y %H:%M", localtime(&ent->t)); pname = unescape(ent->name, namecols); + /* Directories are always shown on top */ + resetdircolor(ent->mode); + if (sel) attron(A_REVERSE); @@ -1293,12 +1302,6 @@ printent_long(struct entry *ent, int sel, uint namecols) printw("%s%-16.16s %8.8s %s\n", CURSYM(sel), buf, coolsize(ent->blocks << 9), pname); } - /* Dirs are always shown on top */ - if (cfg.dircolor && !S_ISDIR(ent->mode)) { - attroff(COLOR_PAIR(1) | A_BOLD); - cfg.dircolor = 0; - } - if (sel) attroff(A_REVERSE); } |