src/nnn.c | 10 +++++++++- diff --git a/src/nnn.c b/src/nnn.c index 1b5041e036f31104246cb70d6d8ef18b7c88f157..0fca4d78a941dc6e677159ae8bf440bcf105d96b 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -2332,7 +2332,6 @@ static void printent(const struct entry *ent, int sel, uint namecols) { wchar_t *wstr; - unescape(ent->name, namecols, &wstr); char ind = '\0'; switch (ent->mode & S_IFMT) { @@ -2360,6 +2359,11 @@ ind = '?'; break; } + if (!ind) + ++namecols; + + unescape(ent->name, namecols, &wstr); + /* Directories are always shown on top */ resetdircolor(ent->flags); @@ -2389,6 +2393,10 @@ permbuf[0] = '0' + ((ent->mode >> 6) & 7); permbuf[1] = '0' + ((ent->mode >> 3) & 7); permbuf[2] = '0' + (ent->mode & 7); permbuf[3] = '\0'; + + /* Add a column if no indicator is needed */ + if (S_ISREG(ent->mode) && !(ent->mode & 0100)) + ++namecols; /* Trim escape chars from name */ const char *pname = unescape(ent->name, namecols, NULL);