From 0f3894bf63708151df4ebcd4a5ac975cf731d401 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Mon, 2 Jan 2023 12:19:17 +0100 Subject: [PATCH] tag: handle width formatter on ints when no other formatting options are used MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For example: in {cpu:3}, the ‘3’ were ignored, assuming ‘cpu’ was an int tag. --- tag.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/tag.c b/tag.c index c6419ac..b098eb7 100644 --- a/tag.c +++ b/tag.c @@ -591,14 +591,28 @@ tags_expand_template(const char *template, const struct tag_set *tags) case VALUE_VALUE: switch (format) { case FMT_DEFAULT: { - if (tag->type(tag) == TAG_TYPE_FLOAT){ + switch (tag->type(tag)) { + case TAG_TYPE_FLOAT: { const char* fmt = zero_pad ? "%0*.*f" : "%*.*f"; char str[24]; snprintf(str, sizeof(str), fmt, digits, decimals, tag->as_float(tag)); sbuf_append(&formatted, str); - } else { - sbuf_append(&formatted, tag->as_string(tag)); + break; } + + case TAG_TYPE_INT: { + const char* fmt = zero_pad ? "%0*ld" : "%*ld"; + char str[24]; + snprintf(str, sizeof(str), fmt, digits, tag->as_int(tag)); + sbuf_append(&formatted, str); + break; + } + + default: + sbuf_append(&formatted, tag->as_string(tag)); + break; + } + break; }