Fix an issue with menu_draw_item_puts_P
Change in memory: Flash: +16 bytes SRAM: 0 bytes
This commit is contained in:
parent
4f4153175c
commit
730bb3708e
|
|
@ -538,14 +538,14 @@ char lcd_print_pad(const char* s, uint8_t len)
|
||||||
return *s;
|
return *s;
|
||||||
}
|
}
|
||||||
|
|
||||||
char lcd_print_pad_P(const char* s, uint8_t len)
|
uint8_t lcd_print_pad_P(const char* s, uint8_t len)
|
||||||
{
|
{
|
||||||
while (len && pgm_read_byte(s)) {
|
while (len && pgm_read_byte(s)) {
|
||||||
lcd_write(pgm_read_byte(s++));
|
lcd_write(pgm_read_byte(s++));
|
||||||
--len;
|
--len;
|
||||||
}
|
}
|
||||||
lcd_space(len);
|
lcd_space(len);
|
||||||
return *s;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcd_print(char c, int base)
|
void lcd_print(char c, int base)
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,12 @@ extern void lcd_printFloat(double number, uint8_t digits);
|
||||||
|
|
||||||
extern void lcd_print(const char*);
|
extern void lcd_print(const char*);
|
||||||
extern char lcd_print_pad(const char* s, uint8_t len);
|
extern char lcd_print_pad(const char* s, uint8_t len);
|
||||||
char lcd_print_pad_P(const char* s, uint8_t len);
|
|
||||||
|
/// @brief print a string from PROGMEM with left-adjusted padding
|
||||||
|
/// @param s string from PROGMEM.
|
||||||
|
/// @param len maximum number of characters to print, including padding. Ranges from 0 to LCD_WIDTH.
|
||||||
|
/// @return number of padded bytes. 0 means there was no padding.
|
||||||
|
uint8_t lcd_print_pad_P(const char* s, uint8_t len);
|
||||||
extern void lcd_print(char, int = 0);
|
extern void lcd_print(char, int = 0);
|
||||||
extern void lcd_print(unsigned char, int = 0);
|
extern void lcd_print(unsigned char, int = 0);
|
||||||
extern void lcd_print(int, int = 10);
|
extern void lcd_print(int, int = 10);
|
||||||
|
|
|
||||||
|
|
@ -242,11 +242,11 @@ static void menu_draw_item_puts_E(char type_char, const Sheet &sheet)
|
||||||
|
|
||||||
static void menu_draw_item_puts_P(char type_char, const char* str, char num)
|
static void menu_draw_item_puts_P(char type_char, const char* str, char num)
|
||||||
{
|
{
|
||||||
lcd_set_cursor(0, menu_row);
|
const uint8_t max_strlen = LCD_WIDTH - 3;
|
||||||
lcd_putc(menu_selection_mark());
|
lcd_putc_at(0, menu_row, menu_selection_mark());
|
||||||
lcd_print_pad_P(str, LCD_WIDTH - 3);
|
uint8_t len = lcd_print_pad_P(str, max_strlen);
|
||||||
lcd_putc(num);
|
lcd_putc_at((max_strlen - len) + 2, menu_row, num);
|
||||||
lcd_putc(type_char);
|
lcd_putc_at(LCD_WIDTH - 1, menu_row, type_char);
|
||||||
}
|
}
|
||||||
|
|
||||||
void menu_item_dummy(void)
|
void menu_item_dummy(void)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue