From 20b319a6d47d029941507a8db8b5a2a67b40cd23 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Fri, 9 Mar 2007 02:41:51 +0000 Subject: [PATCH] Preserve errno. --- lib/fseterr.c | 5 +++++ 1 file changed, 5 insertions(+) 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 } -- 2.11.0