diff options
Diffstat (limited to 'src/print_battery_info.c')
-rw-r--r-- | src/print_battery_info.c | 41 |
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")) { |