33 namespace ace_routine {
36 if (mString.cstring ==
nullptr) {
37 return printer.print((uintptr_t)
this);
40 if (mStringType == kCStringType) {
49 int compareString(
const char* a,
const char* b) {
50 if (a == b) {
return 0; }
51 if (a ==
nullptr) {
return -1; }
52 if (b ==
nullptr) {
return 1; }
56 int compareString(
const char* a,
const __FlashStringHelper* b) {
57 if (a == (
const char*) b) {
return 0; }
58 if (a ==
nullptr) {
return -1; }
59 if (b ==
nullptr) {
return 1; }
60 return strcmp_P(a, (
const char*) b);
63 int compareString(
const __FlashStringHelper* a,
const char* b) {
64 return -compareString(b, a);
67 int compareString(
const __FlashStringHelper* a,
const __FlashStringHelper* b) {
68 if (a == b) {
return 0; }
69 if (a ==
nullptr) {
return -1; }
70 if (b ==
nullptr) {
return 1; }
71 const char* aa =
reinterpret_cast<const char*
>(a);
72 const char* bb =
reinterpret_cast<const char*
>(b);
75 uint8_t ca = pgm_read_byte(aa);
76 uint8_t cb = pgm_read_byte(bb);
77 if (ca != cb)
return (
int) ca - (int) cb;
78 if (ca ==
'\0')
return 0;
87 if (
getType() == FCString::kCStringType) {
88 if (that.
getType() == FCString::kCStringType) {
94 if (that.
getType() == FCString::kCStringType) {