diff options
author | lum <lum@cvs.openbsd.org> | 2011-08-31 08:58:30 +0000 |
---|---|---|
committer | lum <lum@cvs.openbsd.org> | 2011-08-31 08:58:30 +0000 |
commit | d447484181c8a0caab0c41465a089b622ae32deb (patch) | |
tree | 6d810b712f981a21a93850ad4107cc72d4d0fd7c | |
parent | 173502af83b27f7a05a672480065cab2eddfade6 (diff) |
On a file write fail:
1. return an error value
2. show an error message
From Loganaden Velvindron with suggestion from millert@
-rw-r--r-- | usr.bin/mg/file.c | 10 | ||||
-rw-r--r-- | usr.bin/mg/fileio.c | 10 |
2 files changed, 11 insertions, 9 deletions
diff --git a/usr.bin/mg/file.c b/usr.bin/mg/file.c index df1c81fadb8..210c404b23b 100644 --- a/usr.bin/mg/file.c +++ b/usr.bin/mg/file.c @@ -1,4 +1,4 @@ -/* $OpenBSD: file.c,v 1.75 2011/01/23 00:45:03 kjell Exp $ */ +/* $OpenBSD: file.c,v 1.76 2011/08/31 08:58:29 lum Exp $ */ /* This file is in the public domain. */ @@ -414,7 +414,7 @@ retry: } endoffile: /* ignore errors */ - ffclose(NULL); + (void)ffclose(NULL); /* don't zap an error */ if (s == FIOEOF) { if (nline == 1) @@ -635,9 +635,11 @@ writeout(struct buffer *bp, char *fn) s = ffclose(bp); if (s == FIOSUC) ewprintf("Wrote %s", fn); - } else - /* ignore close error if it is a write error */ + } else { + /* print a message indicating write error */ (void)ffclose(bp); + ewprintf("Unable to write %s", fn); + } (void)fupdstat(bp); return (s == FIOSUC); } diff --git a/usr.bin/mg/fileio.c b/usr.bin/mg/fileio.c index 58febf4ce75..747eed69fd3 100644 --- a/usr.bin/mg/fileio.c +++ b/usr.bin/mg/fileio.c @@ -1,4 +1,4 @@ -/* $OpenBSD: fileio.c,v 1.84 2011/01/21 19:10:13 kjell Exp $ */ +/* $OpenBSD: fileio.c,v 1.85 2011/08/31 08:58:29 lum Exp $ */ /* This file is in the public domain. */ @@ -77,7 +77,7 @@ fupdstat(struct buffer *bp) return (FIOERR); } ffstat(bp); - ffclose(bp); + (void)ffclose(bp); return (FIOSUC); } @@ -122,14 +122,14 @@ ffwopen(const char *fn, struct buffer *bp) /* * Close a file. - * XXX - Should look at the status. */ /* ARGSUSED */ int ffclose(struct buffer *bp) { - (void) fclose(ffp); - return (FIOSUC); + if (fclose(ffp) == 0) + return (FIOSUC); + return (FIOERR); } /* |