Clarify fs free stats.
authorBrenden Matthews <brenden@rty.ca>
Wed, 10 Jun 2009 17:31:24 +0000 (11:31 -0600)
committerBrenden Matthews <brenden@rty.ca>
Wed, 10 Jun 2009 17:31:24 +0000 (11:31 -0600)
doc/variables.xml
src/conky.c

index b8336c5..19b078b 100644 (file)
         </term>
         <listitem>Bar that shows how much space is free on a file
         system. height is the height in pixels. fs is any file on
-        that file system. 
+        that file system. This uses f_bfree (as per man 2 statfs)
+        if it's available, or f_bavail as a fallback. 
         <para /></listitem>
     </varlistentry>
     <varlistentry>
             </command>
             <option>(fs)</option>
         </term>
-        <listitem>Free space on a file system available for users. 
+        <listitem>Free space on a file system. This uses f_bfree
+        (as per man 2 statfs) if it's available, or f_bavail as a
+        fallback. 
         <para /></listitem>
     </varlistentry>
     <varlistentry>
             </command>
             <option>(fs)</option>
         </term>
-        <listitem>Free percentage of space on a file system
-        available for users. 
+        <listitem>Free percentage of space on a file system. This
+        uses f_bfree (as per man 2 statfs) if it's available, or
+        f_bavail as a fallback. 
         <para /></listitem>
     </varlistentry>
     <varlistentry>
             </command>
             <option>(fs)</option>
         </term>
-        <listitem>File system used space. 
+        <listitem>File system used space. This uses f_bfree (as per
+        man 2 statfs) if it's available, or f_bavail as a fallback.
         <para /></listitem>
     </varlistentry>
     <varlistentry>
             </command>
             <option>(fs)</option>
         </term>
-        <listitem>Percent of file system used space. 
+        <listitem>Percent of file system used space. This uses
+        f_bfree (as per man 2 statfs) if it's available, or
+        f_bavail as a fallback. 
         <para /></listitem>
     </varlistentry>
     <varlistentry>
index f498ae5..98492b6 100644 (file)
@@ -4327,13 +4327,19 @@ static void generate_text_internal(char *p, int p_max_size,
 #ifdef X11
                                                if(output_methods & TO_X) {
                                                        new_bar(p, obj->data.fsbar.w, obj->data.fsbar.h,
-                                                               (int) (255 - obj->data.fsbar.fs->avail * 255 /
-                                                               obj->data.fs->size));
+                                                                       (int) (255 - (obj->data.fs->free ?
+                                                                                       obj->data.fs->free :
+                                                                                       obj->data.fsbar.fs->avail) * 255 /
+                                                                               obj->data.fs->size));
                                                }else{
 #endif /* X11 */
                                                        if(!obj->data.fsbar.w) obj->data.fsbar.w = DEFAULT_BAR_WIDTH_NO_X;
-                                                       new_bar_in_shell(p, p_max_size,
-                                                               (int) (100 - obj->data.fsbar.fs->avail * 100 / obj->data.fs->size), obj->data.fsbar.w);
+                                                       new_bar_in_shell(p, p_max_size, (int) (100 -
+                                                                               (obj->data.fs->free ?
+                                                                                obj->data.fs->free :
+                                                                                obj->data.fsbar.fs->avail) * 100 /
+                                                                               obj->data.fs->size),
+                                                                       obj->data.fsbar.w);
 #ifdef X11
                                                }
 #endif /* X11 */
@@ -4391,13 +4397,17 @@ static void generate_text_internal(char *p, int p_max_size,
 #ifdef X11
                                                if(output_methods & TO_X) {
                                                        new_bar(p, obj->data.fsbar.w, obj->data.fsbar.h,
-                                                               (int) (obj->data.fsbar.fs->avail * 255 /
-                                                               obj->data.fs->size));
+                                                                       (int) ((obj->data.fs->free ?
+                                                                                       obj->data.fs->free :
+                                                                                       obj->data.fsbar.fs->avail) * 255 /
+                                                                               obj->data.fs->size));
                                                }else{
 #endif /* X11 */
                                                        if(!obj->data.fsbar.w) obj->data.fsbar.w = DEFAULT_BAR_WIDTH_NO_X;
-                                                       new_bar_in_shell(p, p_max_size,
-                                                               (int) (obj->data.fsbar.fs->avail * 100 / obj->data.fs->size), obj->data.fsbar.w);
+                                                       new_bar_in_shell(p, p_max_size, (int)
+                                                                       ((obj->data.fs->free ? obj->data.fs->free :
+                                                                         obj->data.fsbar.fs->avail) * 100 /
+                                                                        obj->data.fs->size), obj->data.fsbar.w);
 #ifdef X11
                                                }
 #endif /* X11 */