Pārlūkot izejas kodu

Merge pull request #496 from MStohn/fix-16x2-lcd

Fix: Long menu entries (>14 or >18 chars) caused overrun in hitachi display implementation
ErikZalm 12 gadus atpakaļ
vecāks
revīzija
34fb4831a2

+ 2
- 2
Marlin/dogm_lcd_implementation.h Parādīt failu

101
 	u8g.setRot90();	// Rotate screen by 90°
101
 	u8g.setRot90();	// Rotate screen by 90°
102
 #endif
102
 #endif
103
 
103
 
104
-#ifdef LCD_SCREEN_ROT_180;
104
+#ifdef LCD_SCREEN_ROT_180
105
 	u8g.setRot180();	// Rotate screen by 180°
105
 	u8g.setRot180();	// Rotate screen by 180°
106
 #endif
106
 #endif
107
 
107
 
108
-#ifdef LCD_SCREEN_ROT_270;
108
+#ifdef LCD_SCREEN_ROT_270
109
 	u8g.setRot270();	// Rotate screen by 270°
109
 	u8g.setRot270();	// Rotate screen by 270°
110
 #endif
110
 #endif
111
 
111
 

+ 7
- 7
Marlin/ultralcd_implementation_hitachi_HD44780.h Parādīt failu

503
   #endif
503
   #endif
504
     lcd.setCursor(0, row);
504
     lcd.setCursor(0, row);
505
     lcd.print(pre_char);
505
     lcd.print(pre_char);
506
-    while((c = pgm_read_byte(pstr)) != '\0')
506
+    while( ((c = pgm_read_byte(pstr)) != '\0') && (n>0) )
507
     {
507
     {
508
         lcd.print(c);
508
         lcd.print(c);
509
         pstr++;
509
         pstr++;
525
   #endif
525
   #endif
526
     lcd.setCursor(0, row);
526
     lcd.setCursor(0, row);
527
     lcd.print(pre_char);
527
     lcd.print(pre_char);
528
-    while((c = pgm_read_byte(pstr)) != '\0')
528
+    while( ((c = pgm_read_byte(pstr)) != '\0') && (n>0) )
529
     {
529
     {
530
         lcd.print(c);
530
         lcd.print(c);
531
         pstr++;
531
         pstr++;
547
   #endif
547
   #endif
548
     lcd.setCursor(0, row);
548
     lcd.setCursor(0, row);
549
     lcd.print(pre_char);
549
     lcd.print(pre_char);
550
-    while((c = pgm_read_byte(pstr)) != '\0')
550
+    while( ((c = pgm_read_byte(pstr)) != '\0') && (n>0) )
551
     {
551
     {
552
         lcd.print(c);
552
         lcd.print(c);
553
         pstr++;
553
         pstr++;
617
         filename = longFilename;
617
         filename = longFilename;
618
         longFilename[LCD_WIDTH-1] = '\0';
618
         longFilename[LCD_WIDTH-1] = '\0';
619
     }
619
     }
620
-    while((c = *filename) != '\0')
620
+    while( ((c = *filename) != '\0') && (n>0) )
621
     {
621
     {
622
         lcd.print(c);
622
         lcd.print(c);
623
         filename++;
623
         filename++;
637
         filename = longFilename;
637
         filename = longFilename;
638
         longFilename[LCD_WIDTH-1] = '\0';
638
         longFilename[LCD_WIDTH-1] = '\0';
639
     }
639
     }
640
-    while((c = *filename) != '\0')
640
+    while( ((c = *filename) != '\0') && (n>0) )
641
     {
641
     {
642
         lcd.print(c);
642
         lcd.print(c);
643
         filename++;
643
         filename++;
658
         filename = longFilename;
658
         filename = longFilename;
659
         longFilename[LCD_WIDTH-2] = '\0';
659
         longFilename[LCD_WIDTH-2] = '\0';
660
     }
660
     }
661
-    while((c = *filename) != '\0')
661
+    while( ((c = *filename) != '\0') && (n>0) )
662
     {
662
     {
663
         lcd.print(c);
663
         lcd.print(c);
664
         filename++;
664
         filename++;
679
         filename = longFilename;
679
         filename = longFilename;
680
         longFilename[LCD_WIDTH-2] = '\0';
680
         longFilename[LCD_WIDTH-2] = '\0';
681
     }
681
     }
682
-    while((c = *filename) != '\0')
682
+    while( ((c = *filename) != '\0') && (n>0) )
683
     {
683
     {
684
         lcd.print(c);
684
         lcd.print(c);
685
         filename++;
685
         filename++;

Notiek ielāde…
Atcelt
Saglabāt