From: Michael Stapelberg Date: Fri, 1 May 2009 13:32:51 +0000 (+0200) Subject: Display 0 instead of negative values for remaining time X-Git-Tag: 1.0~3 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=ac39765685d9a28cd86a233d171f7278f331ef09;p=i3%2Fi3status Display 0 instead of negative values for remaining time This could happen with new batteries which are charged further than their design capacity is --- diff --git a/i3status.c b/i3status.c index 665e319..cc98fa0 100644 --- a/i3status.c +++ b/i3status.c @@ -93,6 +93,10 @@ static const char **run_watches; static unsigned int num_run_watches; static unsigned int interval = 1; +static int max(int a, int b) { + return (a > b ? a : b); +} + /* * This function just concats two strings in place, it should only be used * for concatting order to the name of a file or concatting color codes. @@ -340,7 +344,7 @@ static char *get_battery_info(const char *path) { (status == CS_CHARGING ? "CHR" : (status == CS_DISCHARGING ? "BAT" : "FULL")), (((float)remaining / (float)full_design) * 100), - hours, minutes, seconds); + max(hours, 0), max(minutes, 0), max(seconds, 0)); } else { (void)snprintf(part, sizeof(part), "%s %.02f%%", (status == CS_CHARGING ? "CHR" :