]> Sergey Matveev's repositories - nnn.git/commitdiff
Re-format detailed view, show filename
authorArun Prakash Jana <engineerarun@gmail.com>
Thu, 30 Mar 2017 13:24:18 +0000 (18:54 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Thu, 30 Mar 2017 13:36:06 +0000 (19:06 +0530)
README.md
noice.c

index 1b76913267b853c071aa37115c0172b33e947cb5..775fd6d5b4f9a2e2b1cb181a6d8cbd31ba4e364a 100644 (file)
--- 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 af3ac6a680e4657dbc321241f817021aea1ba184..08bca9ea4fc4cad417047026a5b0d45f31cb7d3a 100644 (file)
--- 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");
        }
 }