battery: 64 bit ints on Linux
authorAaron Marcher <me@drkhsh.at>
Sat, 7 Jul 2018 08:31:57 +0000 (10:31 +0200)
committerAaron Marcher <me@drkhsh.at>
Sat, 7 Jul 2018 08:31:57 +0000 (10:31 +0200)
components/battery.c

index 82e0baf3537a649f8c0f54ce90c2984ef73a043a..31c7d48f9b82cd8dcc6fc28c15190d2b99f8ecc4 100644 (file)
@@ -5,6 +5,7 @@
 #include "../util.h"
 
 #if defined(__linux__)
+       #include <inttypes.h>
        #include <limits.h>
        #include <unistd.h>
 
@@ -76,7 +77,7 @@
        const char *
        battery_remaining(const char *bat)
        {
-               int charge_now, current_now, m, h;
+               uint64_t charge_now, current_now, m, h;
                double timeleft;
                char path[PATH_MAX], state[12];
 
@@ -92,7 +93,7 @@
                if (!pick(bat, "/sys/class/power_supply/%s/charge_now",
                          "/sys/class/power_supply/%s/energy_now",
                          path, sizeof(path)) ||
-                   pscanf(path, "%d", &charge_now) < 0) {
+                   pscanf(path, "%" PRIu64, &charge_now) < 0) {
                        return NULL;
                }
 
                        if (!pick(bat, "/sys/class/power_supply/%s/current_now",
                                  "/sys/class/power_supply/%s/power_now", path,
                                  sizeof(path)) ||
-                           pscanf(path, "%d", &current_now) < 0) {
+                           pscanf(path, "%" PRIu64, &current_now) < 0) {
                                return NULL;
                        }
 
                        h = timeleft;
                        m = (timeleft - (double)h) * 60;
 
-                       return bprintf("%dh %dm", h, m);
+                       return bprintf("%" PRIu64 "h %" PRIu64 "m", h, m);
                }
 
                return "";