From: Laurent Mazet Date: Sun, 13 Apr 2025 13:38:05 +0000 (+0200) Subject: full adaption to c99 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=e34b8a8c2bd515dfefb2ffbe7ca947104e853101;p=fm.git full adaption to c99 --- diff --git a/function.c b/function.c index 40d8eab..f9799f3 100644 --- a/function.c +++ b/function.c @@ -440,16 +440,16 @@ char *_copyfile (char *dest, char *src) char buffer[BUFMAX]; size_t nread = fread (buffer, 1, BUFMAX, fdsrc); VERBOSE (DEBUG, fprintf (stderr, "read %d bytes\n", (int)nread)); - if (nread <= 0) { - break; - } - - size_t nwritten = fwrite (buffer, 1, nread, fddest); - VERBOSE (DEBUG, fprintf (stderr, "wrote %d bytes\n", (int)nwritten)); - if (nwritten != nread) { - msg = strdupcat ("Can't write file '", dest, "'", NULL); + if (ferror (fdsrc)) { + msg = strdupcat ("Can't read file '", src, "'", NULL); + } else { + size_t nwritten = fwrite (buffer, 1, nread, fddest); + VERBOSE (DEBUG, fprintf (stderr, "wrote %d bytes\n", (int)nwritten)); + if (nwritten != nread) { + msg = strdupcat ("Can't write file '", dest, "'", NULL); + } } - } while (msg == NULL); + } while ((msg == NULL) && (!feof (fdsrc))); if ((fclose (fddest) != 0) && (msg == NULL)) { msg = strdupcat ("Can't close file '", dest, "'", NULL); @@ -657,8 +657,14 @@ static char *_readstream (FILE *sd, int *length) buffer = (char *) realloc (buffer, size); memset (buffer + size - BUFMAX - 1, 0, BUFMAX + 1); blocklen = fread (buffer + size - BUFMAX - 1, 1, BUFMAX, sd); + VERBOSE (DEBUG, fprintf (stderr, "read %d bytes\n", (int)blocklen)); _length += blocklen; - } while (blocklen > 0); + if (ferror (sd)) { + VERBOSE (WARNING, fprintf (stderr, "error on reading\n")); + clearerr (sd); + blocklen = 0; + } + } while ((blocklen > 0) && (!feof (sd))); /* check size */ VERBOSE (DEBUG, fprintf (stderr, "length: %d\n", _length)); diff --git a/makefile b/makefile index eb5c920..09ecb8b 100644 --- a/makefile +++ b/makefile @@ -37,8 +37,7 @@ endif # Targets -ALLEXE = -ALLEXE += fm +ALLEXE = $(shell for f in *.c; do grep -q '/\*\slinker:' $$f && echo $${f/.c}; done) SHELL = bash @@ -68,6 +67,7 @@ all: depends $(MAKE) $(ALLEXE:%=%.exe) analyze: + make purge scan-build make #scan-build -stats make