1
0
mirror of https://github.com/arduino/Arduino.git synced 2025-02-20 14:54:31 +01:00

Improved portability of String class (maniacbug)

This commit is contained in:
Cristian Maglie 2013-12-31 22:30:55 +01:00
parent e2d373ed61
commit 673847c8b6
3 changed files with 21 additions and 21 deletions

View File

@ -13,6 +13,7 @@ ARDUINO 1.5.6 BETA
* sam: Fixed regression in analogRead() (fails to read multiple channels) (Mark Tillotson)
* sam: Optimized delayMicroseconds() (Rob Tillaart) #1121
* Optimized Print::print(String&) method, now uses internal string buffer to perform block write
* Improved portability of String class (maniacbug) #695
ARDUINO 1.5.5 BETA 2013.11.28

View File

@ -21,7 +21,6 @@
#include "WString.h"
/*********************************************/
/* Constructors */
/*********************************************/
@ -69,7 +68,7 @@ String::String(char c)
String::String(unsigned char value, unsigned char base)
{
init();
char buf[9];
char buf[1 + 8 * sizeof(unsigned char)];
utoa(value, buf, base);
*this = buf;
}
@ -77,7 +76,7 @@ String::String(unsigned char value, unsigned char base)
String::String(int value, unsigned char base)
{
init();
char buf[18];
char buf[2 + 8 * sizeof(int)];
itoa(value, buf, base);
*this = buf;
}
@ -85,7 +84,7 @@ String::String(int value, unsigned char base)
String::String(unsigned int value, unsigned char base)
{
init();
char buf[17];
char buf[1 + 8 * sizeof(unsigned int)];
utoa(value, buf, base);
*this = buf;
}
@ -93,7 +92,7 @@ String::String(unsigned int value, unsigned char base)
String::String(long value, unsigned char base)
{
init();
char buf[34];
char buf[2 + 8 * sizeof(long)];
ltoa(value, buf, base);
*this = buf;
}
@ -101,7 +100,7 @@ String::String(long value, unsigned char base)
String::String(unsigned long value, unsigned char base)
{
init();
char buf[33];
char buf[1 + 8 * sizeof(unsigned long)];
ultoa(value, buf, base);
*this = buf;
}
@ -288,35 +287,35 @@ unsigned char String::concat(char c)
unsigned char String::concat(unsigned char num)
{
char buf[4];
char buf[1 + 3 * sizeof(unsigned char)];
itoa(num, buf, 10);
return concat(buf, strlen(buf));
}
unsigned char String::concat(int num)
{
char buf[12];
char buf[2 + 3 * sizeof(int)];
itoa(num, buf, 10);
return concat(buf, strlen(buf));
}
unsigned char String::concat(unsigned int num)
{
char buf[11];
char buf[1 + 3 * sizeof(unsigned int)];
utoa(num, buf, 10);
return concat(buf, strlen(buf));
}
unsigned char String::concat(long num)
{
char buf[12];
char buf[2 + 3 * sizeof(long)];
ltoa(num, buf, 10);
return concat(buf, strlen(buf));
}
unsigned char String::concat(unsigned long num)
{
char buf[11];
char buf[1 + 3 * sizeof(unsigned long)];
ultoa(num, buf, 10);
return concat(buf, strlen(buf));
}

View File

@ -70,7 +70,7 @@ String::String(char c)
String::String(unsigned char value, unsigned char base)
{
init();
char buf[9];
char buf[1 + 8 * sizeof(unsigned char)];
utoa(value, buf, base);
*this = buf;
}
@ -78,7 +78,7 @@ String::String(unsigned char value, unsigned char base)
String::String(int value, unsigned char base)
{
init();
char buf[18];
char buf[2 + 8 * sizeof(int)];
itoa(value, buf, base);
*this = buf;
}
@ -86,7 +86,7 @@ String::String(int value, unsigned char base)
String::String(unsigned int value, unsigned char base)
{
init();
char buf[17];
char buf[1 + 8 * sizeof(unsigned int)];
utoa(value, buf, base);
*this = buf;
}
@ -94,7 +94,7 @@ String::String(unsigned int value, unsigned char base)
String::String(long value, unsigned char base)
{
init();
char buf[34];
char buf[2 + 8 * sizeof(long)];
ltoa(value, buf, base);
*this = buf;
}
@ -102,7 +102,7 @@ String::String(long value, unsigned char base)
String::String(unsigned long value, unsigned char base)
{
init();
char buf[33];
char buf[1 + 8 * sizeof(unsigned long)];
ultoa(value, buf, base);
*this = buf;
}
@ -289,35 +289,35 @@ unsigned char String::concat(char c)
unsigned char String::concat(unsigned char num)
{
char buf[4];
char buf[1 + 3 * sizeof(unsigned char)];
itoa(num, buf, 10);
return concat(buf, strlen(buf));
}
unsigned char String::concat(int num)
{
char buf[12];
char buf[2 + 3 * sizeof(int)];
itoa(num, buf, 10);
return concat(buf, strlen(buf));
}
unsigned char String::concat(unsigned int num)
{
char buf[11];
char buf[1 + 3 * sizeof(unsigned int)];
utoa(num, buf, 10);
return concat(buf, strlen(buf));
}
unsigned char String::concat(long num)
{
char buf[12];
char buf[2 + 3 * sizeof(long)];
ltoa(num, buf, 10);
return concat(buf, strlen(buf));
}
unsigned char String::concat(unsigned long num)
{
char buf[11];
char buf[1 + 3 * sizeof(unsigned long)];
ultoa(num, buf, 10);
return concat(buf, strlen(buf));
}