aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md18
-rw-r--r--noice.c43
2 files changed, 35 insertions, 26 deletions
diff --git a/README.md b/README.md
index 1b76913..775fd6d 100644
--- a/README.md
+++ b/README.md
@@ -48,8 +48,9 @@ I chose to fork noice because:
- file type
- modification time
- human-readable file size
- - number of entries in current directory
- current item in reverse video
+ - number of items in current directory
+ - full name of currently selected file
- Case-insensitive alphabetic content listing instead of upper case first
- Roll over at the first and last entries of a directory (with Up/Down keys)
- Sort entries by file size (largest to smallest)
@@ -121,14 +122,13 @@ The following abbreviations are used in the detail view:
| Symbol | File Type |
| --- | --- |
-| B | Block Device |
-| C | Character Device |
-| D | Directory |
-| E | Executable |
-| F | Fifo |
-| L | Symbolic Link |
-| R | Regular File |
-| S | Socket |
+| `/` | Directory |
+| `*` | Executable |
+| `|` | Fifo |
+| `=` | Socket |
+| `@` | Symbolic Link |
+| `b` | Block Device |
+| `c` | Character Device |
### Help
diff --git a/noice.c b/noice.c
index af3ac6a..08bca9e 100644
--- a/noice.c
+++ b/noice.c
@@ -456,6 +456,7 @@ 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);
@@ -463,23 +464,28 @@ printent_long(struct entry *ent, int active)
if (active)
attron(A_REVERSE);
- if (S_ISDIR(ent->mode))
- printw("%s%-32.32s D %-18.18s\n", cur(active), ent->name, buf);
- else if (S_ISLNK(ent->mode))
- printw("%s%-32.32s L %-18.18s\n", cur(active), ent->name, buf);
- else if (S_ISSOCK(ent->mode))
- printw("%s%-32.32s S %-18.18s\n", cur(active), ent->name, buf);
- else if (S_ISFIFO(ent->mode))
- printw("%s%-32.32s F %-18.18s\n", cur(active), ent->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)) {
+ 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);
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)
- printw("%s%-32.32s E %-18.18s %s\n", cur(active), ent->name,
+ 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 R %-18.18s %s\n", cur(active), ent->name,
+ } else
+ printw("%s%-32.32s %-18.18s %s\n", cur(active), ent->name,
buf, coolsize(ent->size));
if (active)
@@ -632,8 +638,11 @@ redraw(char *path)
}
if (showdetail) {
- sprintf(cwd, "%d items", ndents);
- printmsg(cwd);
+ if (ndents) {
+ sprintf(cwd, "%d items [%s]", ndents, dents[cur].name);
+ printmsg(cwd);
+ } else
+ printmsg("0 items");
}
}