aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Arun Prakash Jana <engineerarun@gmail.com>2019-09-12 22:15:25 +0530
committerGravatar Arun Prakash Jana <engineerarun@gmail.com>2019-09-12 22:15:25 +0530
commit28209913830da76c0b04820425bc0a2f096f0164 (patch)
treeaafb6b8de5f5e93f6bef352b21bbc4cd1a6b1f12 /src
parente4c14ee13cf7cbf8d80129aa55e97e1fd85940e6 (diff)
downloadnnn-28209913830da76c0b04820425bc0a2f096f0164.tar.gz
Show extn for regular files
Diffstat (limited to 'src')
-rw-r--r--src/nnn.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/nnn.c b/src/nnn.c
index aa681f9..d48fc81 100644
--- 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");