From d6185d924d04900b061167d3983ca2e2cbdfd791 Mon Sep 17 00:00:00 2001 From: eshifri <46511024+eshifri@users.noreply.github.com> Date: Tue, 17 Jan 2023 17:48:47 -0800 Subject: [PATCH] fix: Display of signed values (#83) * Fix display of the signed values with PREC1 and PREC2 * Use abs() for decimal digits output for negative numbers --- radio/src/thirdparty/libopenui/src/static.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/radio/src/thirdparty/libopenui/src/static.cpp b/radio/src/thirdparty/libopenui/src/static.cpp index 919a3e403..ddad3d980 100644 --- a/radio/src/thirdparty/libopenui/src/static.cpp +++ b/radio/src/thirdparty/libopenui/src/static.cpp @@ -110,11 +110,11 @@ void DynamicNumber::updateText() const char* p = prefix ? prefix : ""; const char* s = suffix ? suffix : ""; if ((textFlags & PREC2) == PREC2) { - lv_label_set_text_fmt(lvobj, "%s%" PRId32 ".%02" PRId32 "%s", p, - value / 100, value % 100, s); + lv_label_set_text_fmt(lvobj, "%s%" PRId32 ".%02" PRIu32 "%s", p, + value / 100, (uint32_t)abs(value % 100), s); } else if (textFlags & PREC1) { - lv_label_set_text_fmt(lvobj, "%s%" PRId32 ".%01" PRId32 "%s", p, - value / 10, value % 10, s); + lv_label_set_text_fmt(lvobj, "%s%" PRId32 ".%01" PRIu32 "%s", p, + value / 10, (uint32_t)abs(value % 10), s); } else { lv_label_set_text_fmt(lvobj, "%s%" PRId32 "%s", p, value, s); } @@ -146,11 +146,11 @@ void DynamicNumber::updateText() const char* p = prefix ? prefix : ""; const char* s = suffix ? suffix : ""; if ((textFlags & PREC2) == PREC2) { - lv_label_set_text_fmt(lvobj, "%s%" PRId16 ".%02" PRId16 "%s", p, - (int16_t)(value / 100), (int16_t)(value % 100), s); + lv_label_set_text_fmt(lvobj, "%s%" PRId16 ".%02" PRIu16 "%s", p, + (int16_t)(value / 100), (uint16_t)abs(value % 100), s); } else if (textFlags & PREC1) { - lv_label_set_text_fmt(lvobj, "%s%" PRId16 ".%01" PRId16 "%s", p, - (int16_t)(value / 10), (int16_t)(value % 10), s); + lv_label_set_text_fmt(lvobj, "%s%" PRId16 ".%01" PRIu16 "%s", p, + (int16_t)(value / 10), (uint16_t)abs(value % 10), s); } else { lv_label_set_text_fmt(lvobj, "%s%" PRId16 "%s", p, value, s); }