aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cores/arduino/WString.cpp40
-rw-r--r--cores/arduino/WString.h34
2 files changed, 35 insertions, 39 deletions
diff --git a/cores/arduino/WString.cpp b/cores/arduino/WString.cpp
index e9f71d1..5dcf585 100644
--- a/cores/arduino/WString.cpp
+++ b/cores/arduino/WString.cpp
@@ -219,65 +219,61 @@ String & String::operator = (char c)
/* concat */
/*********************************************/
-String & String::concat(const String &s)
+unsigned char String::concat(const String &s)
{
return concat(s.buffer, s.len);
}
-String & String::concat(const char *cstr, unsigned int length)
+unsigned char String::concat(const char *cstr, unsigned int length)
{
unsigned int newlen = len + length;
- if (length == 0 || !reserve(newlen)) return *this;
+ if (!cstr || length == 0) return 1; // nothing to append = success
+ if (!reserve(newlen)) return 0;
strcpy(buffer + len, cstr);
len = newlen;
- return *this;
+ return 1;
}
-String & String::concat(const char *cstr)
+unsigned char String::concat(const char *cstr)
{
- if (cstr) concat(cstr, strlen(cstr));
- return *this;
+ if (!cstr) return 1; // nothing to append = success
+ return concat(cstr, strlen(cstr));
}
-String & String::concat(char c)
+unsigned char String::concat(char c)
{
char buf[2];
buf[0] = c;
buf[1] = 0;
- concat(buf, 1);
- return *this;
+ return concat(buf, 1);
}
-String & String::concat(int num)
+unsigned char String::concat(int num)
{
char buf[7];
itoa(num, buf, 10);
- concat(buf, strlen(buf));
- return *this;
+ return concat(buf, strlen(buf));
}
-String & String::concat(unsigned int num)
+unsigned char String::concat(unsigned int num)
{
char buf[6];
utoa(num, buf, 10);
- concat(buf, strlen(buf));
- return *this;
+ return concat(buf, strlen(buf));
}
-String & String::concat(long num)
+unsigned char String::concat(long num)
{
char buf[12];
ltoa(num, buf, 10);
- concat(buf, strlen(buf));
- return *this;
+ return concat(buf, strlen(buf));
}
-String & String::concat(unsigned long num)
+unsigned char String::concat(unsigned long num)
{
char buf[11];
ultoa(num, buf, 10);
- concat(buf, strlen(buf));
- return *this;
+ return concat(buf, strlen(buf));
}
/*********************************************/
diff --git a/cores/arduino/WString.h b/cores/arduino/WString.h
index 164eeac..f797861 100644
--- a/cores/arduino/WString.h
+++ b/cores/arduino/WString.h
@@ -73,22 +73,22 @@ public:
String & operator = (char c);
// concat
- String & concat(const String &str);
- String & concat(const char *cstr);
- String & concat(char c);
- String & concat(unsigned char c) {return concat((char)c);}
- String & concat(int num);
- String & concat(unsigned int num);
- String & concat(long num);
- String & concat(unsigned long num);
- String & operator += (const String &rhs) {return concat(rhs);}
- String & operator += (const char *cstr) {return concat(cstr);}
- String & operator += (char c) {return concat(c);}
- String & operator += (unsigned char c) {return concat((char)c);}
- String & operator += (int num) {return concat(num);}
- String & operator += (unsigned int num) {return concat(num);}
- String & operator += (long num) {return concat(num);}
- String & operator += (unsigned long num) {return concat(num);}
+ unsigned char concat(const String &str);
+ unsigned char concat(const char *cstr);
+ unsigned char concat(char c);
+ unsigned char concat(unsigned char c) {return concat((char)c);}
+ unsigned char concat(int num);
+ unsigned char concat(unsigned int num);
+ unsigned char concat(long num);
+ unsigned char concat(unsigned long num);
+ String & operator += (const String &rhs) {concat(rhs); return (*this);}
+ String & operator += (const char *cstr) {concat(cstr); return (*this);}
+ String & operator += (char c) {concat(c); return (*this);}
+ String & operator += (unsigned char c) {concat((char)c); return (*this);}
+ String & operator += (int num) {concat(num); return (*this);}
+ String & operator += (unsigned int num) {concat(num); return (*this);}
+ String & operator += (long num) {concat(num); return (*this);}
+ String & operator += (unsigned long num) {concat(num); return (*this);}
// concatenate
friend StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs);
@@ -156,7 +156,7 @@ protected:
protected:
void init(void);
unsigned char changeBuffer(unsigned int maxStrLen);
- String & concat(const char *cstr, unsigned int length);
+ unsigned char concat(const char *cstr, unsigned int length);
};
class StringSumHelper : public String