In an LGPLv2+ project, the last change to fclose dragged in
inappropriate modules.
* modules/fclose (Depends-on): Switch from fflush/fseeko to
simpler lseek.
* lib/fclose.c (rpl_fclose): Likewise.
Reported by Simon Josefsson.
Signed-off-by: Eric Blake <eblake@redhat.com>
2011-05-02 Eric Blake <eblake@redhat.com>
+ fclose: reduced dependencies
+ * modules/fclose (Depends-on): Switch from fflush/fseeko to
+ simpler lseek.
+ * lib/fclose.c (rpl_fclose): Likewise.
+ Reported by Simon Josefsson.
+
exit: drop remaining clients
* modules/argmatch (Depends-on): Replace exit with stdlib.
* modules/copy-file (Depends-on): Likewise.
int saved_errno = 0;
/* We only need to flush the file if it is not reading or if it is
- seekable. */
- if ((!freading (fp) || fseeko (fp, 0, SEEK_CUR) == 0) && fflush (fp))
+ seekable. This only guarantees the file position of input files
+ if the fflush module is also in use. */
+ if ((!freading (fp) || lseek (fileno (fp), 0, SEEK_CUR) != -1)
+ && fflush (fp))
saved_errno = errno;
if (close (fileno (fp)) < 0 && saved_errno == 0)
Depends-on:
stdio
close
-fflush
freading
-fseeko
+lseek
configure.ac:
gl_FUNC_FCLOSE