From a95dcd74e7aac1afe3e1da8ee5a10acd81a1fe58 Mon Sep 17 00:00:00 2001 From: daid303 Date: Mon, 17 Dec 2012 11:09:09 +0100 Subject: [PATCH] Fix some of the duplicated PSTRs, saving 500bytes of flash with LCD on. --- Marlin/ultralcd.cpp | 5 +++-- Marlin/ultralcd_implementation_hitachi_HD44780.h | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index beb79beee..e5c1ed2e5 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -71,10 +71,11 @@ static void menu_action_setting_edit_long5(const char* pstr, unsigned long* ptr, #define MENU_ITEM(type, label, args...) do { \ if (_menuItemNr == _lineNr) { \ if (lcdDrawUpdate) { \ + const char* _label_pstr = PSTR(label); \ if ((encoderPosition / ENCODER_STEPS_PER_MENU_ITEM) == _menuItemNr) { \ - lcd_implementation_drawmenu_ ## type ## _selected (_drawLineNr, PSTR(label) , ## args ); \ + lcd_implementation_drawmenu_ ## type ## _selected (_drawLineNr, _label_pstr , ## args ); \ }else{\ - lcd_implementation_drawmenu_ ## type (_drawLineNr, PSTR(label) , ## args ); \ + lcd_implementation_drawmenu_ ## type (_drawLineNr, _label_pstr , ## args ); \ }\ }\ if (LCD_CLICKED && (encoderPosition / ENCODER_STEPS_PER_MENU_ITEM) == _menuItemNr) {\ diff --git a/Marlin/ultralcd_implementation_hitachi_HD44780.h b/Marlin/ultralcd_implementation_hitachi_HD44780.h index 95f8914f3..1aa7674d9 100644 --- a/Marlin/ultralcd_implementation_hitachi_HD44780.h +++ b/Marlin/ultralcd_implementation_hitachi_HD44780.h @@ -198,6 +198,8 @@ static void lcd_implementation_status_screen() lcd.print('/'); lcd.print(itostr3left(tTarget)); lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); + if (tTarget < 10) + lcd.print(' '); # if EXTRUDERS > 1 || TEMP_SENSOR_BED != 0 //If we have an 2nd extruder or heated bed, show that in the top right corner @@ -215,6 +217,8 @@ static void lcd_implementation_status_screen() lcd.print('/'); lcd.print(itostr3left(tTarget)); lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); + if (tTarget < 10) + lcd.print(' '); # endif//EXTRUDERS > 1 || TEMP_SENSOR_BED != 0 #endif//LCD_WIDTH > 19 @@ -242,6 +246,8 @@ static void lcd_implementation_status_screen() lcd.print('/'); lcd.print(itostr3left(tTarget)); lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); + if (tTarget < 10) + lcd.print(' '); # else lcd.setCursor(0,1); lcd.print('X');