Преглед на файлове

Simplify counting of printable characters

Scott Lahteine преди 7 години
родител
ревизия
4a96433b7e
променени са 3 файла, в които са добавени 10 реда и са изтрити 18 реда
  1. 0
    1
      Marlin/macros.h
  2. 3
    15
      Marlin/ultralcd.cpp
  3. 7
    2
      Marlin/utf_mapper.h

+ 0
- 1
Marlin/macros.h Целия файл

@@ -127,7 +127,6 @@
127 127
 #define DECIMAL(a) (NUMERIC(a) || a == '.')
128 128
 #define NUMERIC_SIGNED(a) (NUMERIC(a) || (a) == '-' || (a) == '+')
129 129
 #define DECIMAL_SIGNED(a) (DECIMAL(a) || (a) == '-' || (a) == '+')
130
-#define PRINTABLE(C) (((C) & 0xC0u) != 0x80u)
131 130
 #define COUNT(a) (sizeof(a)/sizeof(*a))
132 131
 #define ZERO(a) memset(a,0,sizeof(a))
133 132
 #define COPY(a,b) memcpy(a,b,min(sizeof(a),sizeof(b)))

+ 3
- 15
Marlin/ultralcd.cpp Целия файл

@@ -3885,11 +3885,7 @@ void lcd_init() {
3885 3885
 int lcd_strlen(const char* s) {
3886 3886
   int i = 0, j = 0;
3887 3887
   while (s[i]) {
3888
-    #if ENABLED(MAPPER_NON)
3889
-      j++;
3890
-    #else
3891
-      if (PRINTABLE(s[i])) j++;
3892
-    #endif
3888
+    if (PRINTABLE(s[i])) j++;
3893 3889
     i++;
3894 3890
   }
3895 3891
   return j;
@@ -3898,11 +3894,7 @@ int lcd_strlen(const char* s) {
3898 3894
 int lcd_strlen_P(const char* s) {
3899 3895
   int j = 0;
3900 3896
   while (pgm_read_byte(s)) {
3901
-    #if ENABLED(MAPPER_NON)
3902
-      j++;
3903
-    #else
3904
-      if (PRINTABLE(pgm_read_byte(s))) j++;
3905
-    #endif
3897
+    if (PRINTABLE(pgm_read_byte(s))) j++;
3906 3898
     s++;
3907 3899
   }
3908 3900
   return j;
@@ -4167,11 +4159,7 @@ void lcd_update() {
4167 4159
   void set_utf_strlen(char* s, uint8_t n) {
4168 4160
     uint8_t i = 0, j = 0;
4169 4161
     while (s[i] && (j < n)) {
4170
-      #if ENABLED(MAPPER_NON)
4171
-        j++;
4172
-      #else
4173
-        if (PRINTABLE(s[i])) j++;
4174
-      #endif
4162
+      if (PRINTABLE(s[i])) j++;
4175 4163
       i++;
4176 4164
     }
4177 4165
     while (j++ < n) s[i++] = ' ';

+ 7
- 2
Marlin/utf_mapper.h Целия файл

@@ -23,7 +23,7 @@
23 23
 #ifndef UTF_MAPPER_H
24 24
 #define UTF_MAPPER_H
25 25
 
26
-#include  "language.h"
26
+#include "language.h"
27 27
 
28 28
 #if ENABLED(DOGLCD)
29 29
   #define HARDWARE_CHAR_OUT u8g.print
@@ -144,6 +144,8 @@
144 144
   #endif // DISPLAY_CHARSET_HD44780
145 145
 #endif // SIMULATE_ROMFONT
146 146
 
147
+#define PRINTABLE(C) (((C) & 0xC0u) != 0x80u)
148
+
147 149
 #if ENABLED(MAPPER_C2C3)
148 150
 
149 151
   char charset_mapper(const char c) {
@@ -466,8 +468,11 @@
466 468
 
467 469
   #define MAPPER_NON
468 470
 
471
+  #undef PRINTABLE
472
+  #define PRINTABLE(C) true
473
+
469 474
   char charset_mapper(const char c) {
470
-    HARDWARE_CHAR_OUT( c );
475
+    HARDWARE_CHAR_OUT(c);
471 476
     return 1;
472 477
   }
473 478
 

Loading…
Отказ
Запис