From 001e7d63dfe613e249e9f4ab53170b401532afd3 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Mon, 2 May 2011 11:41:12 -0600 Subject: [PATCH] fclose: reduce dependencies 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 --- ChangeLog | 6 ++++++ lib/fclose.c | 6 ++++-- modules/fclose | 3 +-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index d6ac179d9a..57288d83be 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2011-05-02 Eric Blake + 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. diff --git a/lib/fclose.c b/lib/fclose.c index bce409c960..c8c2fd8e4c 100644 --- a/lib/fclose.c +++ b/lib/fclose.c @@ -33,8 +33,10 @@ rpl_fclose (FILE *fp) 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) diff --git a/modules/fclose b/modules/fclose index d8727c3075..434dd737dc 100644 --- a/modules/fclose +++ b/modules/fclose @@ -8,9 +8,8 @@ m4/fclose.m4 Depends-on: stdio close -fflush freading -fseeko +lseek configure.ac: gl_FUNC_FCLOSE -- 2.30.2