From e461ff7387db733080824cb94b239d8d1d09c4f3 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Thu, 24 May 2007 16:59:20 +0000 Subject: Fix lseek on mingw. * modules/lseek: New module. * m4/lseek.m4: New file. * lib/lseek.c: New file. * modules/lseek-tests: New file. * tests/test-lseek.c: New file. * tests/test-lseek.sh: New file. * MODULES.html.sh: Document lseek module. * modules/fflush (Depends-on): Add lseek, fseeko. * modules/fseeko (Depends-on): Likewise. * modules/ftello (Depends-on): Likewise. * m4/fseeko.m4 (gl_FUNC_FSEEKO): Replace fseek[o] if lseek is broken. * m4/ftello.m4 (gl_FUNC_FTELLO): Replace ftell[o] if lseek is broken. * m4/fflush.m4 (gl_REPLACE_FFLUSH): Trigger fseeko module. * lib/fseeko.c (rpl_fseeko): Quit early on non-seekable files. * lib/ftello.c (rpl_ftello): Likewise. * tests/test-fseeko.c (main): Test this. * tests/test-fseeko.sh: Likewise. * tests/test-ftello.c (main): Likewise. * tests/test-ftello.sh: Likewise. * lib/stdio_.h (fseek, ftell): Simplify, since missing fseeko now implies replacing fseek. * modules/stdio (Makefile.am): No longer need HAVE_FSEEKO, HAVE_FTELLO. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add lseek info. * modules/unistd (Makefile.am): Likewise. * lib/unistd_.h (lseek): Declare a replacement. * doc/functions/lseek.texi (lseek): Document this fix. * doc/functions/fseek.texi (fseek): Likewise. * doc/functions/ftell.texi (ftell): Likewise. --- m4/fflush.m4 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'm4/fflush.m4') diff --git a/m4/fflush.m4 b/m4/fflush.m4 index 2399fe03d9..f796a55415 100755 --- a/m4/fflush.m4 +++ b/m4/fflush.m4 @@ -1,4 +1,4 @@ -#serial 3 +# fflush.m4 serial 4 # Copyright (C) 2007 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation @@ -20,9 +20,9 @@ AC_DEFUN([gl_FUNC_FFLUSH], #include #include ]], [[FILE *f = fopen ("conftest.txt", "r"); - char buffer[10]; + char buffer[10]; int fd = fileno (f); - if (!f || 0 > fd || fread (buffer, 1, 5, f) != 5) + if (!f || 0 > fd || fread (buffer, 1, 5, f) != 5) return 2; /* For deterministic results, ensure f read a bigger buffer. */ if (lseek (fd, 0, SEEK_CUR) == 5) @@ -48,4 +48,5 @@ AC_DEFUN([gl_REPLACE_FFLUSH], AC_LIBOBJ([fseeko]) AC_REQUIRE([gl_STDIO_H_DEFAULTS]) REPLACE_FFLUSH=1 + REPLACE_FSEEKO=1 ]) -- cgit v1.2.1