diff --git a/cores/esp8266/StreamString.cpp b/cores/esp8266/StreamString.cpp index b6d0c5f4d..7ebf11d0e 100644 --- a/cores/esp8266/StreamString.cpp +++ b/cores/esp8266/StreamString.cpp @@ -23,12 +23,14 @@ #include #include "StreamString.h" -size_t StreamString::write(const uint8_t *buffer, size_t size) { - if(reserve(length() + size + 1)) { - const uint8_t *s = buffer; - const uint8_t *end = buffer + size; - while(write(*s++) && s < end); - return s - buffer; +size_t StreamString::write(const uint8_t *data, size_t size) { + if(size && data) { + if(reserve(length() + size + 1)) { + memcpy((void *) (buffer + len), (const void *) data, size); + len += size; + *(buffer + len) = 0x00; // add null for string end + return size; + } } return 0; }