Commit Diff


commit - e2b415032b08f7e6dd36a8c7108472a9489e2455
commit + 211041b67c14326eabd70c13aa0eb5fb4c6dcef8
blob - 0cf4f551f151f95632f25f9fc0520a93ad052d21
blob + c9986cf9b08d1daa0d9dfe213ccc9f9118d288b0
--- config.h
+++ config.h
@@ -38,9 +38,13 @@
 #define RVC_BORDER      BLUE
 #define RVC_SCROLLBAR   CYAN
 #define RVC_LINK        CYAN
-#define RVC_FILE        DEFAULT
-#define RVC_DIR         DEFAULT
 #define RVC_HIDDEN      YELLOW
+#define RVC_REG         DEFAULT
+#define RVC_DIR         DEFAULT
+#define RVC_CHR         MAGENTA
+#define RVC_BLK         MAGENTA
+#define RVC_FIFO        BLUE
+#define RVC_SOCK        MAGENTA
 #define RVC_PROMPT      DEFAULT
 #define RVC_TABNUM      DEFAULT
 #define RVC_MARKS       YELLOW
blob - 66d9140c4629f0d3f267ade5162860411429821b
blob + e8371c245f1f182b37fbd43ec523e34fc966843a
--- rover.c
+++ rover.c
@@ -355,7 +355,7 @@ update_view()
 {
     int i, j;
     int numsize;
-    int ishidden, isdir;
+    int ishidden;
     int marking;
 
     mvhline(0, 0, ' ', COLS);
@@ -385,18 +385,25 @@ update_view()
     marking = !strcmp(CWD, rover.marks.dirpath);
     for (i = 0, j = SCROLL; i < HEIGHT && j < rover.nfiles; i++, j++) {
         ishidden = ENAME(j)[0] == '.';
-        isdir = S_ISDIR(EMODE(j));
         if (j == ESEL)
             wattr_on(rover.window, A_REVERSE, NULL);
         if (ISLINK(j))
             wcolor_set(rover.window, RVC_LINK, NULL);
         else if (ishidden)
             wcolor_set(rover.window, RVC_HIDDEN, NULL);
-        else if (isdir)
+        else if (S_ISREG(EMODE(j)))
+            wcolor_set(rover.window, RVC_REG, NULL);
+        else if (S_ISDIR(EMODE(j)))
             wcolor_set(rover.window, RVC_DIR, NULL);
-        else
-            wcolor_set(rover.window, RVC_FILE, NULL);
-        if (!isdir) {
+        else if (S_ISCHR(EMODE(j)))
+            wcolor_set(rover.window, RVC_CHR, NULL);
+        else if (S_ISBLK(EMODE(j)))
+            wcolor_set(rover.window, RVC_BLK, NULL);
+        else if (S_ISFIFO(EMODE(j)))
+            wcolor_set(rover.window, RVC_FIFO, NULL);
+        else if (S_ISSOCK(EMODE(j)))
+            wcolor_set(rover.window, RVC_SOCK, NULL);
+        if (!S_ISDIR(EMODE(j))) {
             char *suffix, *suffixes = "BKMGTPEZY";
             off_t human_size = ESIZE(j) * 10;
             int length = mbstowcs(NULL, ENAME(j), 0);