ram: Refactor Linux perc/used
authordrkhsh <me@drkhsh.at>
Thu, 27 Oct 2022 22:11:15 +0000 (00:11 +0200)
committerdrkhsh <me@drkhsh.at>
Thu, 27 Oct 2022 23:03:20 +0000 (01:03 +0200)
Fixes up overly complicated line, by splitting up logic

components/ram.c

index d90b107461c473e49f9138777dbfb9d5cde176e4..9a69db8b1624a9ddd98ea07dd700e9406411b530 100644 (file)
@@ -27,6 +27,7 @@
        ram_perc(const char *unused)
        {
                uintmax_t total, free, buffers, cached;
+               int percent;
 
                if (pscanf("/proc/meminfo",
                           "MemTotal: %ju kB\n"
@@ -42,8 +43,8 @@
                        return NULL;
                }
 
-               return bprintf("%d", 100 * ((total - free) - (buffers + cached))
-                               / total);
+               percent = 100 * ((total - free) - (buffers + cached)) / total;
+               return bprintf("%d", percent);
        }
 
        const char *
@@ -62,7 +63,7 @@
        const char *
        ram_used(const char *unused)
        {
-               uintmax_t total, free, buffers, cached;
+               uintmax_t total, free, buffers, cached, used;
 
                if (pscanf("/proc/meminfo",
                           "MemTotal: %ju kB\n"
                           "MemAvailable: %ju kB\n"
                           "Buffers: %ju kB\n"
                           "Cached: %ju kB\n",
-                          &total, &free, &buffers, &buffers, &cached) != 5) {
+                          &total, &free, &buffers, &buffers, &cached) != 5)
                        return NULL;
-               }
 
-               return fmt_human((total - free - buffers - cached) * 1024,
-                                1024);
+               used = (total - free - buffers - cached);
+               return fmt_human(used * 1024, 1024);
        }
 #elif defined(__OpenBSD__)
        #include <stdlib.h>