1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-07-30 16:24:09 +03:00

Moving write errors out of return value into separate API methods.

write(), print(), println() now return size_t (and don't use negative values to signal errors).
Print adds writeError() for checking for write errors, clearWriteError() to reset the flag to false, and a protected setWriteError() for signalling errors.

http://code.google.com/p/arduino/issues/detail?id=598
This commit is contained in:
David A. Mellis
2011-08-26 16:08:14 -04:00
parent 929597375b
commit b73cf39d94
23 changed files with 184 additions and 173 deletions

View File

@ -58,19 +58,26 @@ boolean File::isDirectory(void) {
}
ssize_t File::write(uint8_t val) {
size_t File::write(uint8_t val) {
return write(&val, 1);
}
ssize_t File::write(const char *str) {
size_t File::write(const char *str) {
return write((const uint8_t *) str, strlen(str));
}
ssize_t File::write(const uint8_t *buf, size_t size) {
ssize_t t;
if (!_file) return -1;
size_t File::write(const uint8_t *buf, size_t size) {
size_t t;
if (!_file) {
setWriteError();
return 0;
}
_file->clearWriteError();
t = _file->write(buf, size);
if (t < 0) return t - 1;
if (_file->writeError()) {
setWriteError();
return 0;
}
return t;
}