Commit Diff


commit - 8697a1c0444c73cca3d4db1aa6a68b751cca70de
commit + 165b8d9e451e266d433dd43c4952d78fb371c7c2
blob - 8c1116d23d79f9d69e852b001b0b5cb79f3ceaf6
blob + eebdc019ec30de7a7fea1dd9275598b4b5aff3cc
--- Makefile
+++ Makefile
@@ -1,3 +1,4 @@
+CFLAGS=-D_FILE_OFFSET_BITS=64
 LDLIBS=-lcurses
 PREFIX=/usr/local
 MANPREFIX=$(PREFIX)/man
blob - 19262fbbff20e15e8f7741c37934db5df8b16766
blob + 8b3e07622f60be25214d6911d182697f42d2794a
--- rover.c
+++ rover.c
@@ -324,10 +324,15 @@ update_view()
             wcolor_set(rover.window, RVC_DIR, NULL);
         else
             wcolor_set(rover.window, RVC_FILE, NULL);
-        if (!isdir)
-            snprintf(ROW, ROWSZ, "%s%*d", ENAME(j),
-                    (int) (COLS - strlen(ENAME(j)) - 4), (int) ESIZE(j));
-        else
+        if (!isdir) {
+            char *human_suffix, *suffixes = "BKMGTPEZY";
+            off_t human_size = ESIZE(j);
+            for (human_suffix = suffixes; human_size >= 1024; human_suffix++)
+                human_size = (human_size + 512) / 1024;
+            snprintf(ROW, ROWSZ, "%s%*d %c", ENAME(j),
+                     (int) (COLS - strlen(ENAME(j)) - 6),
+                     (int) human_size, *human_suffix);
+        } else
             strcpy(ROW, ENAME(j));
         mvwhline(rover.window, i + 1, 1, ' ', COLS - 2);
         if (marking && MARKED(j))