37 if (mString.cstring ==
nullptr) {
38 return printer.print((uintptr_t)
this);
41 if (mStringType == kCStringType) {
50 int compareString(
const char* a,
const char* b) {
51 if (a == b) {
return 0; }
52 if (a ==
nullptr) {
return -1; }
53 if (b ==
nullptr) {
return 1; }
57 int compareString(
const char* a,
const __FlashStringHelper* b) {
58 if (a == (
const char*) b) {
return 0; }
59 if (a ==
nullptr) {
return -1; }
60 if (b ==
nullptr) {
return 1; }
61 return strcmp_P(a, (
const char*) b);
64 int compareString(
const __FlashStringHelper* a,
const char* b) {
65 return -compareString(b, a);
68 int compareString(
const __FlashStringHelper* a,
const __FlashStringHelper* b) {
69 if (a == b) {
return 0; }
70 if (a ==
nullptr) {
return -1; }
71 if (b ==
nullptr) {
return 1; }
72 const char* aa =
reinterpret_cast<const char*
>(a);
73 const char* bb =
reinterpret_cast<const char*
>(b);
76 uint8_t ca = pgm_read_byte(aa);
77 uint8_t cb = pgm_read_byte(bb);
78 if (ca != cb)
return (
int) ca - (int) cb;
79 if (ca ==
'\0')
return 0;
88 if (
getType() == FCString::kCStringType) {
89 if (that.
getType() == FCString::kCStringType) {
95 if (that.
getType() == FCString::kCStringType) {
const __FlashStringHelper * getFString() const
Get the flash string pointer.
uint8_t getType() const
Get the internal type of string.
A union of (const char*) and (const __FlashStringHelper*) with a discriminator.
const char * getCString() const
Get the c-string pointer.
int compareTo(const FCString &that) const
Compare to another FCString.
size_t printTo(Print &printer) const
Convenience method for printing an FCString to printer.
Various macros to smooth over the differences among the various platforms with regards to their suppo...