🩹 Bail on 'mc.zip' write error (#25695)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
Giuliano Zaro
2023-04-18 10:40:13 +02:00
committed by Scott Lahteine
parent 8592035474
commit df7d13a4d0
6 changed files with 6 additions and 15 deletions

View File

@@ -73,7 +73,7 @@ void GcodeSuite::M502() {
bool success = true;
for (uint16_t i = 0; success && i < sizeof(mc_zip); ++i) {
const uint8_t c = pgm_read_byte(&mc_zip[i]);
file.write(c);
success = (file.write(c) == 1);
}
success = file.close() && success;

View File

@@ -2168,7 +2168,7 @@ bool SdBaseFile::truncate(uint32_t length) {
* include write() is called before a file has been opened, write is called
* for a read-only file, device is full, a corrupt file system or an I/O error.
*/
int16_t SdBaseFile::write(const void *buf, uint16_t nbyte) {
int16_t SdBaseFile::write(const void *buf, const uint16_t nbyte) {
#if ENABLED(SDCARD_READONLY)
writeError = true; return -1;
#endif

View File

@@ -345,7 +345,7 @@ class SdBaseFile {
* \return SdVolume that contains this file.
*/
SdVolume* volume() const { return vol_; }
int16_t write(const void *buf, uint16_t nbyte);
int16_t write(const void *buf, const uint16_t nbyte);
private:
friend class SdFat; // allow SdFat to set cwd_

View File

@@ -67,11 +67,7 @@ int16_t SdFile::write(const void * const buf, const uint16_t nbyte) { return SdB
* \param[in] b the byte to be written.
* Use writeError to check for errors.
*/
#if ARDUINO >= 100
size_t SdFile::write(const uint8_t b) { return SdBaseFile::write(&b, 1); }
#else
void SdFile::write(const uint8_t b) { SdBaseFile::write(&b, 1); }
#endif
size_t SdFile::write(const uint8_t b) { return SdBaseFile::write(&b, 1); }
/**
* Write a string to a file. Used by the Arduino Print class.

View File

@@ -42,12 +42,7 @@ class SdFile : public SdBaseFile {
public:
SdFile() {}
SdFile(const char * const name, const uint8_t oflag);
#if ARDUINO >= 100
size_t write(const uint8_t b);
#else
void write(const uint8_t b);
#endif
size_t write(const uint8_t b);
int16_t write(const void * const buf, const uint16_t nbyte);
void write(const char * const str);
void write_P(PGM_P str);