From: Michael Stapelberg Date: Wed, 20 May 2015 17:17:23 +0000 (+0200) Subject: Clamp the percentage at 100% when last_full_capacity is enabled. X-Git-Tag: 2.10~28 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=d1aa135d2801d361f2eccc5efab08a6385ecb440;p=i3%2Fi3status Clamp the percentage at 100% when last_full_capacity is enabled. --- diff --git a/src/print_battery_info.c b/src/print_battery_info.c index 85b0a75..0853e18 100644 --- a/src/print_battery_info.c +++ b/src/print_battery_info.c @@ -137,6 +137,14 @@ void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char (void)snprintf(statusbuf, sizeof(statusbuf), "%s", BATT_STATUS_NAME(status)); float percentage_remaining = (((float)remaining / (float)full_design) * 100); + /* Some batteries report POWER_SUPPLY_CHARGE_NOW= when fully + * charged, even though that’s plainly wrong. For people who chose to see + * the percentage calculated based on the last full capacity, we clamp the + * value to 100%, as that makes more sense. + * See http://bugs.debian.org/785398 */ + if (last_full_capacity && percentage_remaining > 100) { + percentage_remaining = 100; + } if (integer_battery_capacity) { (void)snprintf(percentagebuf, sizeof(percentagebuf), "%.00f%%", percentage_remaining); } else {