Clamp the percentage at 100% when last_full_capacity is enabled.

This commit is contained in:
Michael Stapelberg 2015-05-20 19:17:23 +02:00
parent f8c11c31b2
commit d1aa135d28

View File

@ -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=<full_design> when fully
* charged, even though thats 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 {