aboutsummaryrefslogtreecommitdiff
path: root/cores/arduino/WString.cpp
diff options
context:
space:
mode:
authorMatthijs Kooijman <matthijs@stdin.nl>2013-11-20 16:55:22 +0100
committerCristian Maglie <c.maglie@bug.st>2013-12-31 20:01:40 +0100
commit1978e82e4e531b641868432727ed70b4838fc12c (patch)
tree556a520bf2fed7c9a1096a3a5d802640647fd347 /cores/arduino/WString.cpp
parent15417bab95046fa7cf165eed886e71229c7b1384 (diff)
Use PGM_P instead of prog_char
On later versions of avr-libc, prog_char is deprecated. In 0acebeeff48 the one occurence of prog_char was replaced by "char PROGMEM", which is not entirely correct (PROGMEM is supposed to be an attribute on a variable, not on a type, even though this is how things work in older libc versions). However, in 1130fede3a2 a few new occurences of prog_char are introduced, which break compilation on newer libc versions again. This commit changes all these pointer types to use the PGM_P macro from <avr/pgmspace.h>. This macro is just "const char *" in newer libc versions and "const prog_char *" in older versions, so it should always work. References #795
Diffstat (limited to 'cores/arduino/WString.cpp')
-rw-r--r--cores/arduino/WString.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/cores/arduino/WString.cpp b/cores/arduino/WString.cpp
index 63af6d3..8b6eabe 100644
--- a/cores/arduino/WString.cpp
+++ b/cores/arduino/WString.cpp
@@ -186,7 +186,7 @@ String & String::copy(const __FlashStringHelper *pstr, unsigned int length)
return *this;
}
len = length;
- strcpy_P(buffer, (const prog_char *)pstr);
+ strcpy_P(buffer, (PGM_P)pstr);
return *this;
}
@@ -246,7 +246,7 @@ String & String::operator = (const char *cstr)
String & String::operator = (const __FlashStringHelper *pstr)
{
- if (pstr) copy(pstr, strlen_P((const prog_char *)pstr));
+ if (pstr) copy(pstr, strlen_P((PGM_P)pstr));
else invalidate();
return *this;