aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Arun Prakash Jana <engineerarun@gmail.com>2017-08-24 17:50:00 +0530
committerGravatar Arun Prakash Jana <engineerarun@gmail.com>2017-08-24 17:50:00 +0530
commit2f40eb5efc38d17596bb7566034f34765da18e79 (patch)
tree1b02c712892720f86807e60283a3cf5b14ae8054
parent7275d68ab7c583b6f9bd31543dcf8a11d08acad4 (diff)
downloadnnn-2f40eb5efc38d17596bb7566034f34765da18e79.tar.gz
Show volume capacity in help
-rw-r--r--nnn.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/nnn.c b/nnn.c
index 2935917..6f18019 100644
--- a/nnn.c
+++ b/nnn.c
@@ -196,7 +196,6 @@ static char *desktop_manager;
static blkcnt_t ent_blocks;
static blkcnt_t dir_blocks;
static ulong num_files;
-static size_t fs_free;
static uint open_max;
static bm bookmark[BM_MAX];
static const double div_2_pow_10 = 1.0 / 1024.0;
@@ -1587,15 +1586,26 @@ getorder(size_t size)
}
}
-static void
-update_fs_free(char *path)
+static size_t
+get_fs_free(char *path)
{
static struct statvfs svb;
if (statvfs(path, &svb) == -1)
- fs_free = 0;
+ return 0;
+ else
+ return svb.f_bavail << getorder(svb.f_frsize);
+}
+
+static size_t
+get_fs_capacity(char *path)
+{
+ struct statvfs svb;
+
+ if (statvfs(path, &svb) == -1)
+ return 0;
else
- fs_free = svb.f_bavail << getorder(svb.f_bsize);
+ return svb.f_blocks << getorder(svb.f_bsize);
}
static int
@@ -1706,8 +1716,8 @@ show_help(char *path)
if (copier)
dprintf(fd, "NNN_COPIER: %s\n", copier);
- update_fs_free(path);
- dprintf(fd, "\nVolume: %s free\n", coolsize(fs_free));
+ dprintf(fd, "\nVolume: %s of ", coolsize(get_fs_free(path)));
+ dprintf(fd, "%s free\n", coolsize(get_fs_capacity(path)));
dprintf(fd, "\n");
close(fd);
@@ -1753,7 +1763,6 @@ dentfill(char *path, struct entry **dents,
if (cfg.blkorder) {
num_files = 0;
dir_blocks = 0;
- update_fs_free(path);
if (fstatat(fd, ".", &sb_path, 0) == -1) {
printwarn();
@@ -2006,7 +2015,7 @@ redraw(char *path)
sprintf(g_buf, "total %d %s[%s%s]", ndents, sort, unescape(dents[cur].name), ind);
else {
i = sprintf(g_buf, "du: %s (%lu files) ", coolsize(dir_blocks << 9), num_files);
- sprintf(g_buf + i, "vol: %s free [%s%s]", coolsize(fs_free), unescape(dents[cur].name), ind);
+ sprintf(g_buf + i, "vol: %s free [%s%s]", coolsize(get_fs_free(path)), unescape(dents[cur].name), ind);
}
printmsg(g_buf);