124 #include "FCString.h" 133 int compareString(
const char* a,
const char* b) {
137 int compareString(
const char* a,
const String& b) {
138 return strcmp(a, b.c_str());
141 int compareString(
const char* a,
const __FlashStringHelper* b) {
142 return strcmp_P(a, (
const char*)b);
145 int compareString(
const String& a,
const char* b) {
146 return strcmp(a.c_str(), b);
149 int compareString(
const String& a,
const String& b) {
150 return a.compareTo(b);
153 int compareString(
const String& a,
const __FlashStringHelper* b) {
154 return strcmp_P(a.c_str(), (
const char*)b);
157 int compareString(
const __FlashStringHelper* a,
const char* b) {
158 return -strcmp_P(b, (
const char*) a);
164 int compareString(
const __FlashStringHelper* a,
const __FlashStringHelper* b) {
165 const char* aa =
reinterpret_cast<const char*
>(a);
166 const char* bb =
reinterpret_cast<const char*
>(b);
169 uint8_t ca = pgm_read_byte(aa);
170 uint8_t cb = pgm_read_byte(bb);
171 if (ca != cb)
return (
int) ca - (int) cb;
172 if (ca ==
'\0')
return 0;
178 int compareString(
const __FlashStringHelper* a,
const String& b) {
179 return -strcmp_P(b.c_str(), (
const char*)a);
182 int compareString(
const FCString& a,
const FCString& b) {
183 if (a.getType() == FCString::kCStringType) {
184 if (b.getType() == FCString::kCStringType) {
185 return compareString(a.getCString(), b.getCString());
187 return compareString(a.getCString(), b.getFString());
190 if (b.getType() == FCString::kCStringType) {
191 return compareString(a.getFString(), b.getCString());
193 return compareString(a.getFString(), b.getFString());
200 int compareStringN(
const char* a,
const char* b,
size_t n) {
201 return strncmp(a, b, n);
204 int compareStringN(
const char* a,
const __FlashStringHelper* b,
size_t n) {
205 return strncmp_P(a, (
const char*)b, n);
208 int compareStringN(
const __FlashStringHelper* a,
const char* b,
size_t n) {
209 return -strncmp_P(b, (
const char*)a, n);
215 int compareStringN(
const __FlashStringHelper* a,
const __FlashStringHelper* b,
217 const char* aa =
reinterpret_cast<const char*
>(a);
218 const char* bb =
reinterpret_cast<const char*
>(b);
221 uint8_t ca = pgm_read_byte(aa);
222 uint8_t cb = pgm_read_byte(bb);
223 if (ca != cb)
return (
int) ca - (int) cb;
224 if (ca ==
'\0')
return 0;
232 int compareStringN(
const FCString& a,
const char* b,
size_t n) {
233 if (a.getType() == FCString::kCStringType) {
234 return compareStringN(a.getCString(), b, n);
236 return compareStringN(a.getFString(), b, n);
240 int compareStringN(
const FCString& a,
const __FlashStringHelper* b,
size_t n) {
241 if (a.getType() == FCString::kCStringType) {
242 return compareStringN(a.getCString(), b, n);
244 return compareStringN(a.getFString(), b, n);
250 bool compareEqual(
bool a,
bool b) {
254 bool compareEqual(
char a,
char b) {
258 bool compareEqual(
int a,
int b) {
262 bool compareEqual(
unsigned int a,
unsigned int b) {
266 bool compareEqual(
long a,
long b) {
270 bool compareEqual(
unsigned long a,
unsigned long b) {
274 bool compareEqual(
double a,
double b) {
278 bool compareEqual(
const char* a,
const char* b) {
279 return compareString(a, b) == 0;
282 bool compareEqual(
const char* a,
const String& b) {
283 return compareString(a, b) == 0;
286 bool compareEqual(
const char* a,
const __FlashStringHelper* b) {
287 return compareString(a, b) == 0;
290 bool compareEqual(
const __FlashStringHelper* a,
const char* b) {
291 return compareString(a, b) == 0;
294 bool compareEqual(
const __FlashStringHelper* a,
const __FlashStringHelper* b) {
295 return compareString(a, b) == 0;
298 bool compareEqual(
const __FlashStringHelper* a,
const String& b) {
299 return compareString(a, b) == 0;
302 bool compareEqual(
const String& a,
const char* b) {
303 return compareString(a, b) == 0;
306 bool compareEqual(
const String& a,
const String& b) {
307 return compareString(a, b) == 0;
310 bool compareEqual(
const String& a,
const __FlashStringHelper* b) {
311 return compareString(a, b) == 0;
316 bool compareLess(
bool a,
bool b) {
320 bool compareLess(
char a,
char b) {
324 bool compareLess(
int a,
int b) {
328 bool compareLess(
unsigned int a,
unsigned int b) {
332 bool compareLess(
long a,
long b) {
336 bool compareLess(
unsigned long a,
unsigned long b) {
340 bool compareLess(
double a,
double b) {
344 bool compareLess(
const char* a,
const char* b) {
345 return compareString(a, b) < 0;
348 bool compareLess(
const char* a,
const String& b) {
349 return compareString(a, b) < 0;
352 bool compareLess(
const char* a,
const __FlashStringHelper* b) {
353 return compareString(a, b) < 0;
356 bool compareLess(
const __FlashStringHelper* a,
const char* b) {
357 return compareString(a, b) < 0;
361 const __FlashStringHelper* a,
const __FlashStringHelper* b) {
362 return compareString(a, b) < 0;
365 bool compareLess(
const __FlashStringHelper* a,
const String& b) {
366 return compareString(a, b) < 0;
369 bool compareLess(
const String& a,
const char* b) {
370 return compareString(a, b) < 0;
373 bool compareLess(
const String& a,
const String& b) {
374 return compareString(a, b) < 0;
377 bool compareLess(
const String& a,
const __FlashStringHelper* b) {
378 return compareString(a, b) < 0;
383 bool compareMore(
bool a,
bool b) {
387 bool compareMore(
char a,
char b) {
391 bool compareMore(
int a,
int b) {
395 bool compareMore(
unsigned int a,
unsigned int b) {
399 bool compareMore(
long a,
long b) {
403 bool compareMore(
unsigned long a,
unsigned long b) {
407 bool compareMore(
double a,
double b) {
411 bool compareMore(
const char* a,
const char* b) {
412 return compareString(a, b) > 0;
415 bool compareMore(
const char* a,
const String& b) {
416 return compareString(a, b) > 0;
419 bool compareMore(
const char* a,
const __FlashStringHelper* b) {
420 return compareString(a, b) > 0;
423 bool compareMore(
const __FlashStringHelper* a,
const char* b) {
424 return compareString(a, b) > 0;
427 bool compareMore(
const __FlashStringHelper* a,
const __FlashStringHelper* b) {
428 return compareString(a, b) > 0;
431 bool compareMore(
const __FlashStringHelper* a,
const String& b) {
432 return compareString(a, b) > 0;
435 bool compareMore(
const String& a,
const char* b) {
436 return compareString(a, b) > 0;
439 bool compareMore(
const String& a,
const String& b) {
440 return compareString(a, b) > 0;
443 bool compareMore(
const String& a,
const __FlashStringHelper* b) {
444 return compareString(a, b) > 0;
449 bool compareLessOrEqual(
bool a,
bool b) {
453 bool compareLessOrEqual(
char a,
char b) {
457 bool compareLessOrEqual(
int a,
int b) {
461 bool compareLessOrEqual(
unsigned int a,
unsigned int b) {
465 bool compareLessOrEqual(
long a,
long b) {
469 bool compareLessOrEqual(
unsigned long a,
unsigned long b) {
473 bool compareLessOrEqual(
double a,
double b) {
477 bool compareLessOrEqual(
const char* a,
const char* b) {
478 return compareString(a, b) <= 0;
481 bool compareLessOrEqual(
const char* a,
const String& b) {
482 return compareString(a, b) <= 0;
485 bool compareLessOrEqual(
const char* a,
const __FlashStringHelper* b) {
486 return compareString(a, b) <= 0;
489 bool compareLessOrEqual(
const __FlashStringHelper* a,
const char* b) {
490 return compareString(a, b) <= 0;
493 bool compareLessOrEqual(
494 const __FlashStringHelper* a,
const __FlashStringHelper* b) {
495 return compareString(a, b) <= 0;
498 bool compareLessOrEqual(
const __FlashStringHelper* a,
const String& b) {
499 return compareString(a, b) <= 0;
502 bool compareLessOrEqual(
const String& a,
const char* b) {
503 return compareString(a, b) <= 0;
506 bool compareLessOrEqual(
const String& a,
const String& b) {
507 return compareString(a, b) <= 0;
510 bool compareLessOrEqual(
const String& a,
const __FlashStringHelper* b) {
511 return compareString(a, b) <= 0;
516 bool compareMoreOrEqual(
bool a,
bool b) {
520 bool compareMoreOrEqual(
char a,
char b) {
524 bool compareMoreOrEqual(
int a,
int b) {
528 bool compareMoreOrEqual(
unsigned int a,
unsigned int b) {
532 bool compareMoreOrEqual(
long a,
long b) {
536 bool compareMoreOrEqual(
unsigned long a,
unsigned long b) {
540 bool compareMoreOrEqual(
double a,
double b) {
544 bool compareMoreOrEqual(
const char* a,
const char* b) {
545 return compareString(a, b) >= 0;
548 bool compareMoreOrEqual(
const char* a,
const String& b) {
549 return compareString(a, b) >= 0;
552 bool compareMoreOrEqual(
const char* a,
const __FlashStringHelper* b) {
553 return compareString(a, b) >= 0;
556 bool compareMoreOrEqual(
const __FlashStringHelper* a,
const char* b) {
557 return compareString(a, b) >= 0;
560 bool compareMoreOrEqual(
561 const __FlashStringHelper* a,
const __FlashStringHelper* b) {
562 return compareString(a, b) >= 0;
565 bool compareMoreOrEqual(
const __FlashStringHelper* a,
const String& b) {
566 return compareString(a, b) >= 0;
569 bool compareMoreOrEqual(
const String& a,
const char* b) {
570 return compareString(a, b) >= 0;
573 bool compareMoreOrEqual(
const String& a,
const String& b) {
574 return compareString(a, b) >= 0;
577 bool compareMoreOrEqual(
const String& a,
const __FlashStringHelper* b) {
578 return compareString(a, b) >= 0;
583 bool compareNotEqual(
bool a,
bool b) {
587 bool compareNotEqual(
char a,
char b) {
591 bool compareNotEqual(
int a,
int b) {
595 bool compareNotEqual(
unsigned int a,
unsigned int b) {
599 bool compareNotEqual(
long a,
long b) {
603 bool compareNotEqual(
unsigned long a,
unsigned long b) {
607 bool compareNotEqual(
double a,
double b) {
611 bool compareNotEqual(
const char* a,
const char* b) {
612 return compareString(a, b) != 0;
615 bool compareNotEqual(
const char* a,
const String& b) {
616 return compareString(a, b) != 0;
619 bool compareNotEqual(
const char* a,
const __FlashStringHelper* b) {
620 return compareString(a, b) != 0;
623 bool compareNotEqual(
const __FlashStringHelper* a,
const char* b) {
624 return compareString(a, b) != 0;
627 bool compareNotEqual(
628 const __FlashStringHelper* a,
const __FlashStringHelper* b) {
629 return compareString(a, b) != 0;
632 bool compareNotEqual(
const __FlashStringHelper* a,
const String& b) {
633 return compareString(a, b) != 0;
636 bool compareNotEqual(
const String& a,
const char* b) {
637 return compareString(a, b) != 0;
640 bool compareNotEqual(
const String& a,
const String& b) {
641 return compareString(a, b) != 0;
644 bool compareNotEqual(
const String& a,
const __FlashStringHelper* b) {
645 return compareString(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...