summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTommie Gannert <tommie@gannert.se>2016-08-01 01:00:31 +0100
committerTommie Gannert <tommie@gannert.se>2016-08-03 20:13:10 +0100
commitb890d2e416b23fd53b11bd6df240df5e0faae5f1 (patch)
tree3dedab7bdc2a508c7286d2e7ef365a145233c3a8
parent9ba3ea09007f56b01830ef6cba632dfc827c2732 (diff)
Remove emptytimebuf from print_battery_info.
This changes the behavior for NetBSD: previously this time was not shown while charging. On Linux it was treated as "full time". This change makes all OSes behave the same. OpenBSD and FreeBSD did not support emptytime previously.
-rw-r--r--src/print_battery_info.c41
1 files changed, 11 insertions, 30 deletions
diff --git a/src/print_battery_info.c b/src/print_battery_info.c
index 6b20114..979d0c1 100644
--- a/src/print_battery_info.c
+++ b/src/print_battery_info.c
@@ -35,10 +35,7 @@
*
*/
void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char *path, const char *format, const char *format_down, const char *status_chr, const char *status_bat, const char *status_unk, const char *status_full, int low_threshold, char *threshold_type, bool last_full_capacity, bool integer_battery_capacity, bool hide_seconds) {
- time_t empty_time;
- struct tm *empty_tm;
char buf[1024];
- char emptytimebuf[256];
char consumptionbuf[256];
const char *walk, *last;
char *outwalk = buffer;
@@ -52,7 +49,6 @@ void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char
float percentage_remaining = -1;
charging_status_t status = CS_DISCHARGING;
- memset(emptytimebuf, '\0', sizeof(emptytimebuf));
memset(consumptionbuf, '\0', sizeof(consumptionbuf));
static char batpath[512];
@@ -165,17 +161,6 @@ void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char
}
}
- empty_time = time(NULL);
- empty_time += seconds_remaining;
- empty_tm = localtime(&empty_time);
-
- if (hide_seconds)
- (void)snprintf(emptytimebuf, sizeof(emptytimebuf), "%02d:%02d",
- max(empty_tm->tm_hour, 0), max(empty_tm->tm_min, 0));
- else
- (void)snprintf(emptytimebuf, sizeof(emptytimebuf), "%02d:%02d:%02d",
- max(empty_tm->tm_hour, 0), max(empty_tm->tm_min, 0), max(empty_tm->tm_sec, 0));
-
(void)snprintf(consumptionbuf, sizeof(consumptionbuf), "%1.2fW",
((float)present_rate / 1000.0 / 1000.0));
} else {
@@ -495,20 +480,6 @@ void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char
}
}
- empty_time = time(NULL);
- empty_time += seconds_remaining;
- empty_tm = localtime(&empty_time);
-
- /* No need to show empty time if battery is charging */
- if (status != CS_CHARGING) {
- if (hide_seconds)
- (void)snprintf(emptytimebuf, sizeof(emptytimebuf), "%02d:%02d",
- max(empty_tm->tm_hour, 0), max(empty_tm->tm_min, 0));
- else
- (void)snprintf(emptytimebuf, sizeof(emptytimebuf), "%02d:%02d:%02d",
- max(empty_tm->tm_hour, 0), max(empty_tm->tm_min, 0), max(empty_tm->tm_sec, 0));
- }
-
(void)snprintf(consumptionbuf, sizeof(consumptionbuf), "%1.2fW",
((float)present_rate / 1000.0 / 1000.0));
#endif
@@ -575,7 +546,17 @@ void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char
walk += strlen("remaining");
EAT_SPACE_FROM_OUTPUT_IF_NO_OUTPUT();
} else if (BEGINS_WITH(walk + 1, "emptytime")) {
- outwalk += sprintf(outwalk, "%s", emptytimebuf);
+ if (seconds_remaining >= 0) {
+ time_t empty_time = time(NULL) + seconds_remaining;
+ struct tm *empty_tm = localtime(&empty_time);
+
+ if (hide_seconds)
+ outwalk += sprintf(outwalk, "%02d:%02d",
+ max(empty_tm->tm_hour, 0), max(empty_tm->tm_min, 0));
+ else
+ outwalk += sprintf(outwalk, "%02d:%02d:%02d",
+ max(empty_tm->tm_hour, 0), max(empty_tm->tm_min, 0), max(empty_tm->tm_sec, 0));
+ }
walk += strlen("emptytime");
EAT_SPACE_FROM_OUTPUT_IF_NO_OUTPUT();
} else if (BEGINS_WITH(walk + 1, "consumption")) {