🐛 Fix DOGM time overflow, alignment (#25103)
This commit is contained in:
parent
471330b56e
commit
569bbb18d0
@ -449,7 +449,7 @@ FORCE_INLINE void _draw_axis_value(const AxisEnum axis, const char *value, const
|
|||||||
static char bufferc[13];
|
static char bufferc[13];
|
||||||
|
|
||||||
static void prepare_time_string(const duration_t &time, char prefix) {
|
static void prepare_time_string(const duration_t &time, char prefix) {
|
||||||
char str[9];
|
char str[13];
|
||||||
memset(&bufferc[2], 0x20, 5); // partialy fill with spaces to avoid artifacts and terminator
|
memset(&bufferc[2], 0x20, 5); // partialy fill with spaces to avoid artifacts and terminator
|
||||||
bufferc[0] = prefix;
|
bufferc[0] = prefix;
|
||||||
bufferc[1] = ':';
|
bufferc[1] = ':';
|
||||||
|
@ -151,7 +151,9 @@ struct duration_t {
|
|||||||
* 123456789 (strlen)
|
* 123456789 (strlen)
|
||||||
* 12'34
|
* 12'34
|
||||||
* 99:59
|
* 99:59
|
||||||
* 11d 12:33
|
* 123:45
|
||||||
|
* 1d 12:33
|
||||||
|
* 9999d 12:33
|
||||||
*/
|
*/
|
||||||
uint8_t toDigital(char *buffer, bool with_days=false) const {
|
uint8_t toDigital(char *buffer, bool with_days=false) const {
|
||||||
const uint16_t h = uint16_t(this->hour()),
|
const uint16_t h = uint16_t(this->hour()),
|
||||||
@ -159,7 +161,7 @@ struct duration_t {
|
|||||||
if (with_days) {
|
if (with_days) {
|
||||||
const uint16_t d = this->day();
|
const uint16_t d = this->day();
|
||||||
sprintf_P(buffer, PSTR("%hud %02hu:%02hu"), d, h % 24, m); // 1d 23:45
|
sprintf_P(buffer, PSTR("%hud %02hu:%02hu"), d, h % 24, m); // 1d 23:45
|
||||||
return d >= 10 ? 9 : 8;
|
return strlen_P(buffer);
|
||||||
}
|
}
|
||||||
else if (!h) {
|
else if (!h) {
|
||||||
const uint16_t s = uint16_t(this->second() % 60UL);
|
const uint16_t s = uint16_t(this->second() % 60UL);
|
||||||
|
Loading…
Reference in New Issue
Block a user