From 2ef1d7440a877ed69ea73c9e2b0c2fc920fcd0bb Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Tue, 18 Feb 2020 16:48:49 +0100 Subject: use format_placeholder for cpu_temperature --- src/print_cpu_temperature.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/print_cpu_temperature.c b/src/print_cpu_temperature.c index 01744a1..f94d1a7 100644 --- a/src/print_cpu_temperature.c +++ b/src/print_cpu_temperature.c @@ -10,6 +10,8 @@ #include "i3status.h" +#define STRING_SIZE 20 + #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) #include #include @@ -213,7 +215,6 @@ void print_cpu_temperature_info(yajl_gen json_gen, char *buffer, int zone, const char *outwalk = buffer; #ifdef THERMAL_ZONE const char *selected_format = format; - const char *walk; bool colorful_output = false; char *thermal_zone; temperature_t temperature; @@ -248,18 +249,13 @@ void print_cpu_temperature_info(yajl_gen json_gen, char *buffer, int zone, const selected_format = format_above_threshold; } - for (walk = selected_format; *walk != '\0'; walk++) { - if (*walk != '%') { - *(outwalk++) = *walk; - - } else if (BEGINS_WITH(walk + 1, "degrees")) { - outwalk += sprintf(outwalk, "%s", temperature.formatted_value); - walk += strlen("degrees"); + char string_degrees[STRING_SIZE]; + snprintf(string_degrees, STRING_SIZE, "%s", temperature.formatted_value); + placeholder_t placeholders[] = { + {.name = "%degrees", .value = string_degrees}}; - } else { - *(outwalk++) = '%'; - } - } + const size_t num = sizeof(placeholders) / sizeof(placeholder_t); + buffer = format_placeholders(selected_format, &placeholders[0], num); if (colorful_output) { END_COLOR; @@ -269,6 +265,7 @@ void print_cpu_temperature_info(yajl_gen json_gen, char *buffer, int zone, const free(thermal_zone); OUTPUT_FULL_TEXT(buffer); + free(buffer); return; error: free(thermal_zone); -- cgit v1.2.3