🐛 Fix DOGM time overflow, alignment (#25103)
This commit is contained in:
		
				
					committed by
					
						 Scott Lahteine
						Scott Lahteine
					
				
			
			
				
	
			
			
			
						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); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user