File tree 2 files changed +16
-0
lines changed
hardware/arduino/cores/arduino
2 files changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -453,6 +453,19 @@ unsigned char String::equals(const char *cstr) const
453
453
return strcmp (buffer, cstr) == 0 ;
454
454
}
455
455
456
+ unsigned char String::equals (const __FlashStringHelper *fstr) const
457
+ {
458
+ const char PROGMEM *p = (const char PROGMEM *)fstr;
459
+
460
+ for (int i = 0 ; i < len; i++)
461
+ {
462
+ if (pgm_read_byte (p) == 0 ) return 0 ;
463
+ if (buffer[i] != (char )pgm_read_byte (p++)) return 0 ;
464
+ }
465
+
466
+ return 1 ;
467
+ }
468
+
456
469
unsigned char String::operator <(const String &rhs) const
457
470
{
458
471
return compareTo (rhs) < 0 ;
Original file line number Diff line number Diff line change @@ -139,10 +139,13 @@ class String
139
139
int compareTo (const String &s) const ;
140
140
unsigned char equals (const String &s) const ;
141
141
unsigned char equals (const char *cstr) const ;
142
+ unsigned char equals (const __FlashStringHelper *fstr) const ;
142
143
unsigned char operator == (const String &rhs) const {return equals (rhs);}
143
144
unsigned char operator == (const char *cstr) const {return equals (cstr);}
145
+ unsigned char operator == (const __FlashStringHelper *fstr) const {return equals (fstr);}
144
146
unsigned char operator != (const String &rhs) const {return !equals (rhs);}
145
147
unsigned char operator != (const char *cstr) const {return !equals (cstr);}
148
+ unsigned char operator != (const __FlashStringHelper *fstr) const {return !equals (fstr);}
146
149
unsigned char operator < (const String &rhs) const ;
147
150
unsigned char operator > (const String &rhs) const ;
148
151
unsigned char operator <= (const String &rhs) const ;
You can’t perform that action at this time.
0 commit comments