commit 8563ec5cb28f43060eacac0d7b0f27ecee78c9fc
parent eb12354ce4453fb1c6f1dd106edbc0967896a590
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date: Fri, 31 Mar 2017 21:17:50 +0530
Revamp detail mode
If a filename has Unicode chars, the alignment is broken. Hence moving name to
the last column. This also makes the view compact.
Moving block and char dev indicators in the space for size.
Diffstat:
| M | nnn.c | | | 38 | +++++++++++++++----------------------- |
1 file changed, 15 insertions(+), 23 deletions(-)
diff --git a/nnn.c b/nnn.c
@@ -458,7 +458,6 @@ printent_long(struct entry *ent, int active)
{
static char buf[18];
const static struct tm *p;
- static char name[PATH_MAX + 2];
p = localtime(&ent->t);
strftime(buf, 18, "%b %d %H:%M %Y", p);
@@ -466,29 +465,22 @@ printent_long(struct entry *ent, int active)
if (active)
attron(A_REVERSE);
- if (S_ISDIR(ent->mode)) {
- sprintf(name, "%s/", ent->name);
- printw("%s%-32.32s %-18.18s\n", cur(active), name, buf);
- } else if (S_ISLNK(ent->mode)) {
- sprintf(name, "%s@", ent->name);
- printw("%s%-32.32s %-18.18s\n", cur(active), name, buf);
- } else if (S_ISSOCK(ent->mode)) {
- sprintf(name, "%s=", ent->name);
- printw("%s%-32.32s %-18.18s\n", cur(active), name, buf);
- } else if (S_ISFIFO(ent->mode)) {
- sprintf(name, "%s|", ent->name);
- printw("%s%-32.32s %-18.18s\n", cur(active), name, buf);
- } else if (S_ISBLK(ent->mode))
- printw("%s%-32.32s b %-18.18s\n", cur(active), ent->name, buf);
+ if (S_ISDIR(ent->mode))
+ printw("%s%-17.17s %s/\n", cur(active), buf, ent->name);
+ else if (S_ISLNK(ent->mode))
+ printw("%s%-17.17s %s@\n", cur(active), buf, ent->name);
+ else if (S_ISSOCK(ent->mode))
+ printw("%s%-17.17s %s=\n", cur(active), buf, ent->name);
+ else if (S_ISFIFO(ent->mode))
+ printw("%s%-17.17s %s|\n", cur(active), buf, ent->name);
+ else if (S_ISBLK(ent->mode))
+ printw("%s%-17.17s b %s\n", cur(active), buf, ent->name);
else if (S_ISCHR(ent->mode))
- printw("%s%-32.32s c %-18.18s\n", cur(active), ent->name, buf);
- else if (ent->mode & S_IXUSR) {
- sprintf(name, "%s*", ent->name);
- printw("%s%-32.32s %-18.18s %s\n", cur(active), name,
- buf, coolsize(ent->size));
- } else
- printw("%s%-32.32s %-18.18s %s\n", cur(active), ent->name,
- buf, coolsize(ent->size));
+ printw("%s%-17.17s c %s\n", cur(active), buf, ent->name);
+ else if (ent->mode & S_IXUSR)
+ printw("%s%-17.17s %8.8s %s*\n", cur(active), buf, coolsize(ent->size), ent->name);
+ else
+ printw("%s%-17.17s %8.8s %s\n", cur(active), buf, coolsize(ent->size), ent->name);
if (active)
attroff(A_REVERSE);