133 int compareString(
const char* a,
const char* b) {
134 if (a == b) {
return 0; }
135 if (a ==
nullptr) {
return -1; }
136 if (b ==
nullptr) {
return 1; }
140 int compareString(
const char* a,
const String& b) {
141 if (a ==
nullptr) {
return -1; }
142 return strcmp(a, b.c_str());
145 int compareString(
const char* a,
const __FlashStringHelper* b) {
146 if (a == (
const char*) b) {
return 0; }
147 if (a ==
nullptr) {
return -1; }
148 if (b ==
nullptr) {
return 1; }
149 return strcmp_P(a, (
const char*) b);
152 int compareString(
const String& a,
const char* b) {
153 return -compareString(b, a);
156 int compareString(
const String& a,
const String& b) {
157 return strcmp(a.c_str(), b.c_str());
160 int compareString(
const String& a,
const __FlashStringHelper* b) {
161 if (b ==
nullptr) {
return 1; }
162 return strcmp_P(a.c_str(), (
const char*) b);
165 int compareString(
const __FlashStringHelper* a,
const char* b) {
166 return -compareString(b, a);
169 int compareString(
const __FlashStringHelper* a,
const String& b) {
170 return -compareString(b, a);
176 int compareString(
const __FlashStringHelper* a,
const __FlashStringHelper* b) {
177 if (a == b) {
return 0; }
178 if (a ==
nullptr) {
return -1; }
179 if (b ==
nullptr) {
return 1; }
180 const char* aa =
reinterpret_cast<const char*
>(a);
181 const char* bb =
reinterpret_cast<const char*
>(b);
184 uint8_t ca = pgm_read_byte(aa);
185 uint8_t cb = pgm_read_byte(bb);
186 if (ca != cb)
return (
int) ca - (int) cb;
187 if (ca ==
'\0')
return 0;
197 int compareStringCase(
const char* a,
const char* b) {
198 if (a == b) {
return 0; }
199 if (a ==
nullptr) {
return -1; }
200 if (b ==
nullptr) {
return 1; }
201 return strcasecmp(a, b);
204 int compareStringCase(
const char* a,
const String& b) {
205 if (a ==
nullptr) {
return -1; }
206 return strcasecmp(a, b.c_str());
209 int compareStringCase(
const char* a,
const __FlashStringHelper* b) {
210 if (a == (
const char*) b) {
return 0; }
211 if (a ==
nullptr) {
return -1; }
212 if (b ==
nullptr) {
return 1; }
213 return strcasecmp_P(a, (
const char*) b);
216 int compareStringCase(
const String& a,
const char* b) {
217 return -compareStringCase(b, a);
220 int compareStringCase(
const String& a,
const String& b) {
221 return strcasecmp(a.c_str(), b.c_str());
224 int compareStringCase(
const String& a,
const __FlashStringHelper* b) {
225 if (b ==
nullptr) {
return 1; }
226 return strcasecmp_P(a.c_str(), (
const char*) b);
229 int compareStringCase(
const __FlashStringHelper* a,
const char* b) {
230 return -compareStringCase(b, a);
233 int compareStringCase(
const __FlashStringHelper* a,
const String& b) {
234 return -compareStringCase(b, a);
240 int compareStringCase(
const __FlashStringHelper* a,
241 const __FlashStringHelper* b) {
242 if (a == b) {
return 0; }
243 if (a ==
nullptr) {
return -1; }
244 if (b ==
nullptr) {
return 1; }
245 const char* aa =
reinterpret_cast<const char*
>(a);
246 const char* bb =
reinterpret_cast<const char*
>(b);
249 uint8_t ca = pgm_read_byte(aa);
250 uint8_t cb = pgm_read_byte(bb);
251 uint8_t la = tolower(ca);
252 uint8_t lb = tolower(cb);
253 if (la != lb)
return (
int) la - (int) lb;
254 if (ca ==
'\0')
return 0;
268 int compareStringN(
const char* a,
const char* b,
size_t n) {
269 if (a == b) {
return 0; }
270 if (a ==
nullptr) {
return -1; }
271 if (b ==
nullptr) {
return 1; }
272 return strncmp(a, b, n);
275 int compareStringN(
const char* a,
const __FlashStringHelper* b,
size_t n) {
276 if (a == (
const char*) b) {
return 0; }
277 if (a ==
nullptr) {
return -1; }
278 if (b ==
nullptr) {
return 1; }
279 return strncmp_P(a, (
const char*) b, n);
282 int compareStringN(
const __FlashStringHelper* a,
const char* b,
size_t n) {
283 return -compareStringN(b, a, n);
289 int compareStringN(
const __FlashStringHelper* a,
const __FlashStringHelper* b,
291 if (a == b) {
return 0; }
292 if (a ==
nullptr) {
return -1; }
293 if (b ==
nullptr) {
return 1; }
294 const char* aa =
reinterpret_cast<const char*
>(a);
295 const char* bb =
reinterpret_cast<const char*
>(b);
298 uint8_t ca = pgm_read_byte(aa);
299 uint8_t cb = pgm_read_byte(bb);
300 if (ca != cb)
return (
int) ca - (int) cb;
301 if (ca ==
'\0')
return 0;
313 bool compareEqual(
bool a,
bool b) {
317 bool compareEqual(
char a,
char b) {
321 bool compareEqual(
int a,
int b) {
325 bool compareEqual(
unsigned int a,
unsigned int b) {
329 bool compareEqual(
long a,
long b) {
333 bool compareEqual(
unsigned long a,
unsigned long b) {
337 bool compareEqual(
double a,
double b) {
341 bool compareEqual(
const char* a,
const char* b) {
342 return compareString(a, b) == 0;
345 bool compareEqual(
const char* a,
const String& b) {
346 return compareString(a, b) == 0;
349 bool compareEqual(
const char* a,
const __FlashStringHelper* b) {
350 return compareString(a, b) == 0;
353 bool compareEqual(
const __FlashStringHelper* a,
const char* b) {
354 return compareString(a, b) == 0;
357 bool compareEqual(
const __FlashStringHelper* a,
const __FlashStringHelper* b) {
358 return compareString(a, b) == 0;
361 bool compareEqual(
const __FlashStringHelper* a,
const String& b) {
362 return compareString(a, b) == 0;
365 bool compareEqual(
const String& a,
const char* b) {
366 return compareString(a, b) == 0;
369 bool compareEqual(
const String& a,
const String& b) {
370 return compareString(a, b) == 0;
373 bool compareEqual(
const String& a,
const __FlashStringHelper* b) {
374 return compareString(a, b) == 0;
381 bool compareLess(
bool a,
bool b) {
385 bool compareLess(
char a,
char b) {
389 bool compareLess(
int a,
int b) {
393 bool compareLess(
unsigned int a,
unsigned int b) {
397 bool compareLess(
long a,
long b) {
401 bool compareLess(
unsigned long a,
unsigned long b) {
405 bool compareLess(
double a,
double b) {
409 bool compareLess(
const char* a,
const char* b) {
410 return compareString(a, b) < 0;
413 bool compareLess(
const char* a,
const String& b) {
414 return compareString(a, b) < 0;
417 bool compareLess(
const char* a,
const __FlashStringHelper* b) {
418 return compareString(a, b) < 0;
421 bool compareLess(
const __FlashStringHelper* a,
const char* b) {
422 return compareString(a, b) < 0;
426 const __FlashStringHelper* a,
const __FlashStringHelper* b) {
427 return compareString(a, b) < 0;
430 bool compareLess(
const __FlashStringHelper* a,
const String& b) {
431 return compareString(a, b) < 0;
434 bool compareLess(
const String& a,
const char* b) {
435 return compareString(a, b) < 0;
438 bool compareLess(
const String& a,
const String& b) {
439 return compareString(a, b) < 0;
442 bool compareLess(
const String& a,
const __FlashStringHelper* b) {
443 return compareString(a, b) < 0;
450 bool compareMore(
bool a,
bool b) {
454 bool compareMore(
char a,
char b) {
458 bool compareMore(
int a,
int b) {
462 bool compareMore(
unsigned int a,
unsigned int b) {
466 bool compareMore(
long a,
long b) {
470 bool compareMore(
unsigned long a,
unsigned long b) {
474 bool compareMore(
double a,
double b) {
478 bool compareMore(
const char* a,
const char* b) {
479 return compareString(a, b) > 0;
482 bool compareMore(
const char* a,
const String& b) {
483 return compareString(a, b) > 0;
486 bool compareMore(
const char* a,
const __FlashStringHelper* b) {
487 return compareString(a, b) > 0;
490 bool compareMore(
const __FlashStringHelper* a,
const char* b) {
491 return compareString(a, b) > 0;
494 bool compareMore(
const __FlashStringHelper* a,
const __FlashStringHelper* b) {
495 return compareString(a, b) > 0;
498 bool compareMore(
const __FlashStringHelper* a,
const String& b) {
499 return compareString(a, b) > 0;
502 bool compareMore(
const String& a,
const char* b) {
503 return compareString(a, b) > 0;
506 bool compareMore(
const String& a,
const String& b) {
507 return compareString(a, b) > 0;
510 bool compareMore(
const String& a,
const __FlashStringHelper* b) {
511 return compareString(a, b) > 0;
518 bool compareLessOrEqual(
bool a,
bool b) {
522 bool compareLessOrEqual(
char a,
char b) {
526 bool compareLessOrEqual(
int a,
int b) {
530 bool compareLessOrEqual(
unsigned int a,
unsigned int b) {
534 bool compareLessOrEqual(
long a,
long b) {
538 bool compareLessOrEqual(
unsigned long a,
unsigned long b) {
542 bool compareLessOrEqual(
double a,
double b) {
546 bool compareLessOrEqual(
const char* a,
const char* b) {
547 return compareString(a, b) <= 0;
550 bool compareLessOrEqual(
const char* a,
const String& b) {
551 return compareString(a, b) <= 0;
554 bool compareLessOrEqual(
const char* a,
const __FlashStringHelper* b) {
555 return compareString(a, b) <= 0;
558 bool compareLessOrEqual(
const __FlashStringHelper* a,
const char* b) {
559 return compareString(a, b) <= 0;
562 bool compareLessOrEqual(
563 const __FlashStringHelper* a,
const __FlashStringHelper* b) {
564 return compareString(a, b) <= 0;
567 bool compareLessOrEqual(
const __FlashStringHelper* a,
const String& b) {
568 return compareString(a, b) <= 0;
571 bool compareLessOrEqual(
const String& a,
const char* b) {
572 return compareString(a, b) <= 0;
575 bool compareLessOrEqual(
const String& a,
const String& b) {
576 return compareString(a, b) <= 0;
579 bool compareLessOrEqual(
const String& a,
const __FlashStringHelper* b) {
580 return compareString(a, b) <= 0;
587 bool compareMoreOrEqual(
bool a,
bool b) {
591 bool compareMoreOrEqual(
char a,
char b) {
595 bool compareMoreOrEqual(
int a,
int b) {
599 bool compareMoreOrEqual(
unsigned int a,
unsigned int b) {
603 bool compareMoreOrEqual(
long a,
long b) {
607 bool compareMoreOrEqual(
unsigned long a,
unsigned long b) {
611 bool compareMoreOrEqual(
double a,
double b) {
615 bool compareMoreOrEqual(
const char* a,
const char* b) {
616 return compareString(a, b) >= 0;
619 bool compareMoreOrEqual(
const char* a,
const String& b) {
620 return compareString(a, b) >= 0;
623 bool compareMoreOrEqual(
const char* a,
const __FlashStringHelper* b) {
624 return compareString(a, b) >= 0;
627 bool compareMoreOrEqual(
const __FlashStringHelper* a,
const char* b) {
628 return compareString(a, b) >= 0;
631 bool compareMoreOrEqual(
632 const __FlashStringHelper* a,
const __FlashStringHelper* b) {
633 return compareString(a, b) >= 0;
636 bool compareMoreOrEqual(
const __FlashStringHelper* a,
const String& b) {
637 return compareString(a, b) >= 0;
640 bool compareMoreOrEqual(
const String& a,
const char* b) {
641 return compareString(a, b) >= 0;
644 bool compareMoreOrEqual(
const String& a,
const String& b) {
645 return compareString(a, b) >= 0;
648 bool compareMoreOrEqual(
const String& a,
const __FlashStringHelper* b) {
649 return compareString(a, b) >= 0;
656 bool compareNotEqual(
bool a,
bool b) {
660 bool compareNotEqual(
char a,
char b) {
664 bool compareNotEqual(
int a,
int b) {
668 bool compareNotEqual(
unsigned int a,
unsigned int b) {
672 bool compareNotEqual(
long a,
long b) {
676 bool compareNotEqual(
unsigned long a,
unsigned long b) {
680 bool compareNotEqual(
double a,
double b) {
684 bool compareNotEqual(
const char* a,
const char* b) {
685 return compareString(a, b) != 0;
688 bool compareNotEqual(
const char* a,
const String& b) {
689 return compareString(a, b) != 0;
692 bool compareNotEqual(
const char* a,
const __FlashStringHelper* b) {
693 return compareString(a, b) != 0;
696 bool compareNotEqual(
const __FlashStringHelper* a,
const char* b) {
697 return compareString(a, b) != 0;
700 bool compareNotEqual(
701 const __FlashStringHelper* a,
const __FlashStringHelper* b) {
702 return compareString(a, b) != 0;
705 bool compareNotEqual(
const __FlashStringHelper* a,
const String& b) {
706 return compareString(a, b) != 0;
709 bool compareNotEqual(
const String& a,
const char* b) {
710 return compareString(a, b) != 0;
713 bool compareNotEqual(
const String& a,
const String& b) {
714 return compareString(a, b) != 0;
717 bool compareNotEqual(
const String& a,
const __FlashStringHelper* b) {
718 return compareString(a, b) != 0;
725 bool compareStringCaseEqual(
const char* a,
const char* b) {
726 return compareStringCase(a, b) == 0;
729 bool compareStringCaseEqual(
const char* a,
const String& b) {
730 return compareStringCase(a, b) == 0;
733 bool compareStringCaseEqual(
const char* a,
const __FlashStringHelper* b) {
734 return compareStringCase(a, b) == 0;
737 bool compareStringCaseEqual(
const __FlashStringHelper* a,
const char* b) {
738 return compareStringCase(a, b) == 0;
741 bool compareStringCaseEqual(
const __FlashStringHelper* a,
742 const __FlashStringHelper* b) {
743 return compareStringCase(a, b) == 0;
746 bool compareStringCaseEqual(
const __FlashStringHelper* a,
const String& b) {
747 return compareStringCase(a, b) == 0;
750 bool compareStringCaseEqual(
const String& a,
const char* b) {
751 return compareStringCase(a, b) == 0;
754 bool compareStringCaseEqual(
const String& a,
const String& b) {
755 return compareStringCase(a, b) == 0;
758 bool compareStringCaseEqual(
const String& a,
const __FlashStringHelper* b) {
759 return compareStringCase(a, b) == 0;
766 bool compareStringCaseNotEqual(
const char* a,
const char* b) {
767 return compareStringCase(a, b) != 0;
770 bool compareStringCaseNotEqual(
const char* a,
const String& b) {
771 return compareStringCase(a, b) != 0;
774 bool compareStringCaseNotEqual(
const char* a,
const __FlashStringHelper* b) {
775 return compareStringCase(a, b) != 0;
778 bool compareStringCaseNotEqual(
const __FlashStringHelper* a,
const char* b) {
779 return compareStringCase(a, b) != 0;
782 bool compareStringCaseNotEqual(
const __FlashStringHelper* a,
783 const __FlashStringHelper* b) {
784 return compareStringCase(a, b) != 0;
787 bool compareStringCaseNotEqual(
const __FlashStringHelper* a,
const String& b) {
788 return compareStringCase(a, b) != 0;
791 bool compareStringCaseNotEqual(
const String& a,
const char* b) {
792 return compareStringCase(a, b) != 0;
795 bool compareStringCaseNotEqual(
const String& a,
const String& b) {
796 return compareStringCase(a, b) != 0;
799 bool compareStringCaseNotEqual(
const String& a,
const __FlashStringHelper* b) {
800 return compareStringCase(a, b) != 0;
This file provides overloaded compareXxx(a, b) functions which are used by the various assertXxx(a...
Various macros to smooth over the differences among the various platforms with regards to their suppo...