From f178004b131400219869f4a5587dc842f1c358bc Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Sat, 12 Aug 2017 01:42:55 +0530 Subject: [PATCH] Show vol free in help --- nnn.c | 94 ++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 51 insertions(+), 43 deletions(-) diff --git a/nnn.c b/nnn.c index 195f095e..17506fd5 100644 --- a/nnn.c +++ b/nnn.c @@ -1421,6 +1421,50 @@ show_stats(char *fpath, char *fname, struct stat *sb) return 0; } +static int +getorder(size_t size) +{ + switch (size) { + case 4096: + return 12; + case 512: + return 9; + case 8192: + return 13; + case 16384: + return 14; + case 32768: + return 15; + case 65536: + return 16; + case 131072: + return 17; + case 262144: + return 18; + case 524288: + return 19; + case 1048576: + return 20; + case 2048: + return 11; + case 1024: + return 10; + default: + return 0; + } +} + +static void +update_fs_free(char *path) +{ + static struct statvfs svb; + + if (statvfs(path, &svb) == -1) + fs_free = 0; + else + fs_free = svb.f_bavail << getorder(svb.f_bsize); +} + static int show_mediainfo(char *fpath, char *arg) { @@ -1434,7 +1478,7 @@ show_mediainfo(char *fpath, char *arg) } static int -show_help(void) +show_help(char *path) { char tmp[] = "/tmp/nnnXXXXXX"; static char helpstr[] = ("\ @@ -1485,7 +1529,7 @@ Home, g, ^, ^A | Jump to first entry\n\ dprintf(fd, "BOOKMARKS\n"); for (; i < MAX_BM; ++i) if (bookmark[i].key) - dprintf(fd, "\t%s: %s\n", + dprintf(fd, " %s: %s\n", bookmark[i].key, bookmark[i].loc); else break; @@ -1504,6 +1548,9 @@ Home, g, ^, ^A | Jump to first entry\n\ if (copier) dprintf(fd, "NNN_COPIER: %s\n", copier); + update_fs_free(path); + dprintf(fd, "\nVolume: %s free\n", coolsize(fs_free)); + dprintf(fd, "\n"); close(fd); @@ -1525,39 +1572,6 @@ sum_bsizes(const char *fpath, const struct stat *sb, return 0; } -static int -getorder(size_t size) -{ - switch (size) { - case 4096: - return 12; - case 512: - return 9; - case 8192: - return 13; - case 16384: - return 14; - case 32768: - return 15; - case 65536: - return 16; - case 131072: - return 17; - case 262144: - return 18; - case 524288: - return 19; - case 1048576: - return 20; - case 2048: - return 11; - case 1024: - return 10; - default: - return 0; - } -} - static int dentfill(char *path, struct entry **dents, int (*filter)(regex_t *, char *), regex_t *re) @@ -1578,15 +1592,9 @@ dentfill(char *path, struct entry **dents, n = 0; if (cfg.blkorder) { - static struct statvfs svb; - - if (statvfs(path, &svb) == -1) - fs_free = 0; - else - fs_free = svb.f_bavail << getorder(svb.f_bsize); - num_files = 0; dir_blocks = 0; + update_fs_free(path); } while ((dp = readdir(dirp)) != NULL) { @@ -2413,7 +2421,7 @@ nochange: printmsg("NNN_COPIER is not set"); goto nochange; case SEL_HELP: - show_help(); + show_help(path); break; case SEL_RUN: run = xgetenv(env, run);