From 2158128ea0343f7e1b736f141289a71ef51797c1 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Sat, 31 May 2014 14:01:18 +0200 Subject: [PATCH] Use the absolute values for (dis)charging rates MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Apparently some notebooks report a negative current, whereas most don’t. fixes #1249 --- src/print_battery_info.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/print_battery_info.c b/src/print_battery_info.c index 7277765..102522b 100644 --- a/src/print_battery_info.c +++ b/src/print_battery_info.c @@ -89,15 +89,15 @@ void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char remaining = atoi(walk+1); } else if (BEGINS_WITH(last, "POWER_SUPPLY_CURRENT_NOW")) - present_rate = atoi(walk+1); + present_rate = abs(atoi(walk+1)); else if (BEGINS_WITH(last, "POWER_SUPPLY_VOLTAGE_NOW")) - voltage = atoi(walk+1); + voltage = abs(atoi(walk+1)); /* on some systems POWER_SUPPLY_POWER_NOW does not exist, but actually * it is the same as POWER_SUPPLY_CURRENT_NOW but with μWh as * unit instead of μAh. We will calculate it as we need it * later. */ else if (BEGINS_WITH(last, "POWER_SUPPLY_POWER_NOW")) - present_rate = atoi(walk+1); + present_rate = abs(atoi(walk+1)); else if (BEGINS_WITH(last, "POWER_SUPPLY_STATUS=Charging")) status = CS_CHARGING; else if (BEGINS_WITH(last, "POWER_SUPPLY_STATUS=Full")) -- 2.39.5