nnn

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

commit 28209913830da76c0b04820425bc0a2f096f0164
parent e4c14ee13cf7cbf8d80129aa55e97e1fd85940e6
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date:   Thu, 12 Sep 2019 22:15:25 +0530

Show extn for regular files

Diffstat:
Msrc/nnn.c | 23++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/src/nnn.c b/src/nnn.c @@ -3284,18 +3284,31 @@ static void redraw(char *path) if (cfg.selmode) selmode[0] = 'Y'; + /* Get the file extension for regular files */ + if (S_ISREG(dents[cur].mode)) { + i = (int)strlen(dents[cur].name); + ptr = xmemrchr((uchar *)dents[cur].name, '.', i); + if (ptr) + attrs = ptr - dents[cur].name; /* attrs used as tmp var */ + if (!ptr || (i - attrs) > 5 || (i - attrs) < 2) + ptr = "\b"; + } else + ptr = "\b"; + + /* Get the unescaped file name */ + base = unescape(dents[cur].name, NAME_MAX, NULL); + /* We need to show filename as it may be truncated in directory listing */ if (!cfg.showdetail || !cfg.blkorder) - mvprintw(lastln, 0, "%d/%d (%d) %s%s[%s]\n", cur + 1, ndents, nselected, - selmode, sort, unescape(dents[cur].name, NAME_MAX, NULL)); + mvprintw(lastln, 0, "%d/%d (%d) %s%s%s [%s]\n", + cur + 1, ndents, nselected, selmode, sort, ptr, base); else { xstrlcpy(buf, coolsize(dir_blocks << BLK_SHIFT), 12); c = cfg.apparentsz ? 'a' : 'd'; - mvprintw(lastln, 0, "%d/%d (%d) %s%cu: %s (%lu files) free: %s [%s]\n", + mvprintw(lastln, 0, "%d/%d (%d) %s%cu: %s (%lu files) free: %s %s [%s]\n", cur + 1, ndents, nselected, selmode, c, buf, num_files, - coolsize(get_fs_info(path, FREE)), - unescape(dents[cur].name, NAME_MAX, NULL)); + coolsize(get_fs_info(path, FREE)), ptr, base); } } else printmsg("0/0");