mirror of
https://github.com/jarun/nnn.git
synced 2024-11-28 05:41:31 +00:00
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.
This commit is contained in:
parent
eb12354ce4
commit
8563ec5cb2
38
nnn.c
38
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);
|
||||
|
|
Loading…
Reference in a new issue