Merge battery format from https://gitlab.com/berkley4/tint2 (issue #229)
o9000 mrovi9000@gmail.com
1 files changed,
11 insertions(+),
6 deletions(-)
jump to
M
src/battery/battery.c
→
src/battery/battery.c
@@ -76,10 +76,10 @@ battery_low_cmd_sent = FALSE;
battery_timeout = NULL; bat1_has_font = FALSE; bat1_font_desc = NULL; - bat1_format = strdup("%p"); + bat1_format = NULL; bat2_has_font = FALSE; bat2_font_desc = NULL; - bat2_format = strdup("%t"); + bat2_format = NULL; ac_connected_cmd = NULL; ac_disconnected_cmd = NULL; battery_low_cmd = NULL;@@ -147,10 +147,10 @@ // We want to loop over the format specifier, replacing any known symbols with our battery data.
// First, erase anything already stored in the buffer. // This ensures the string will always be null-terminated. bzero(dest, BATTERY_BUF_SIZE); - char buf[BATTERY_BUF_SIZE]; - bzero(buf, BATTERY_BUF_SIZE); for (size_t o = 0; o < strlen(format); o++) { + char buf[BATTERY_BUF_SIZE]; + bzero(buf, BATTERY_BUF_SIZE); char *c = &format[o]; // Format specification: // %s : State (charging, discharging, full, unknown)@@ -195,8 +195,8 @@ }
break; case '%': - buf[0] = *c; - strncat(dest, buf, BATTERY_BUF_SIZE); + case '\0': + strncat(dest, "%", BATTERY_BUF_SIZE); break; default: fprintf(stderr, "Battery: unrecognised format specifier '%%%c'.\n", *c);@@ -260,6 +260,11 @@ battery->area.has_mouse_press_effect = battery->area.has_mouse_over_effect;
if (battery_tooltip_enabled) battery->area._get_tooltip_text = battery_get_tooltip; instantiate_area_gradients(&battery->area); + + if (!bat1_format && !bat2_format) { + bat1_format = strdup("%p"); + bat2_format = strdup("%t"); + } } void battery_init_fonts()