]> git.sur5r.net Git - i3/i3status/commitdiff
Use format_not_mounted if the directory for a disk_info block does not exist. 35/head
authorIngo Bürk <ingo.buerk@tngtech.com>
Fri, 29 May 2015 06:41:11 +0000 (08:41 +0200)
committerIngo Bürk <ingo.buerk@tngtech.com>
Fri, 29 May 2015 06:43:29 +0000 (08:43 +0200)
This is useful for dynamically mounted devices like thumb drives that get mounted into a directory such as
'/media/$UID/$NAME'.

fixes #33

man/i3status.man
src/print_disk_info.c

index a3a8c60e97d4dc58ebe458f84d860862bca87088..b7eddb7b2e41c428fc370b277881fe35e83a29cf 100644 (file)
@@ -238,7 +238,7 @@ is assumed to be "percentage_avail" and low_threshold to be set to 0, which
 implies no coloring at all.
 
 You can define a different format with the option "format_not_mounted"
-which is used if the path is not a mount point. So you can just empty
+which is used if the path does not exist or is not a mount point. So you can just empty
 the output for the given path with adding +format_not_mounted=""+
 to the config section.
 
index 69d7b8c6187445fe36047ce0c190355b3226c15c..7fd47b9d916ded11ef2352de930ef41fe12c9ac9 100644 (file)
@@ -124,10 +124,11 @@ void print_disk_info(yajl_gen json_gen, char *buffer, const char *path, const ch
 #else
     struct statvfs buf;
 
-    if (statvfs(path, &buf) == -1)
-        return;
-
-    if (format_not_mounted != NULL) {
+    if (statvfs(path, &buf) == -1) {
+        /* If statvfs errors, e.g., due to the path not existing,
+         * we use the format for a not mounted device. */
+        format = format_not_mounted;
+    } else if (format_not_mounted != NULL) {
         FILE *mntentfile = setmntent("/etc/mtab", "r");
         struct mntent *m;
         bool found = false;