From: Bruno Haible Date: Fri, 9 Mar 2007 02:41:51 +0000 (+0000) Subject: Preserve errno. X-Git-Tag: cvs-readonly~826 X-Git-Url: http://erislabs.net/gitweb/?a=commitdiff_plain;h=20b319a6d47d029941507a8db8b5a2a67b40cd23;p=gnulib.git Preserve errno. --- diff --git a/lib/fseterr.c b/lib/fseterr.c index 5ff8ba7e7..3f876155b 100644 --- a/lib/fseterr.c +++ b/lib/fseterr.c @@ -20,6 +20,8 @@ /* Specification. */ #include "fseterr.h" +#include + void fseterr (FILE *fp) { @@ -35,9 +37,11 @@ fseterr (FILE *fp) #else /* unknown */ /* Portable fallback, based on an idea by Rich Felker. Wow! 6 system calls for something that is just a bit operation! */ + int saved_errno; int fd; int fd2; + saved_errno = errno; fflush (fp); fd = fileno (fp); fd2 = dup (fd); @@ -51,5 +55,6 @@ fseterr (FILE *fp) abort (); close (fd2); } + errno = saved_errno; #endif }