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:
@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user