From: Martin Mares Date: Wed, 23 Dec 2015 18:40:18 +0000 (+0100) Subject: osd-batt: Newer kernels use different file names in /sys X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=d2d774b5a2e32a663160783e3dee4da341f0b7cf;p=osdd.git osd-batt: Newer kernels use different file names in /sys --- diff --git a/osd-batt.c b/osd-batt.c index 2d36aa0..af2e932 100644 --- a/osd-batt.c +++ b/osd-batt.c @@ -1,7 +1,7 @@ /* * A Simple Battery Status Display via OSD * - * (c) 2007--2012 Martin Mares + * (c) 2007--2015 Martin Mares */ #undef DEBUG @@ -67,6 +67,16 @@ static int sys_read_int(char *attribute, int default_value) return atoi(buf); } +static int sys_read_int_variant(char *attr1, char *attr2, int default_value) +{ + char buf[BUFSIZE]; + if (sys_read(buf, attr1) && buf[0] || + sys_read(buf, attr2) && buf[0]) + return atoi(buf); + else + return default_value; +} + static void parse_ac(void) { ac_online = sys_read_int("online", 0); @@ -97,9 +107,9 @@ static void parse_batt(char *batt_name) char status[BUFSIZE]; int charging = sys_read(status, "status") && !strcmp(status, "Charging"); - int charge_full = sys_read_int("charge_full", 0); - int charge_now = sys_read_int("charge_now", 0); - int current_now = sys_read_int("current_now", 0); + int charge_full = sys_read_int_variant("energy_full", "charge_full", 0); + int charge_now = sys_read_int_variant("energy_now", "charge_now", 0); + int current_now = sys_read_int_variant("power_now", "current_now", 0); present_mask |= 1 << batt_id; total_now += charge_now;