From 8d634350755eb9e22cc54e44439edf074492f883 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Wed, 25 Apr 2007 07:39:55 +0000 Subject: [PATCH] New module 'fseeko'. --- ChangeLog | 10 ++++++++++ lib/stdio_.h | 13 +++++++++++++ m4/fseeko.m4 | 19 +++++++++++++++++++ m4/stdio_h.m4 | 4 +++- modules/fseeko | 24 ++++++++++++++++++++++++ modules/stdio | 2 ++ 6 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 m4/fseeko.m4 create mode 100644 modules/fseeko diff --git a/ChangeLog b/ChangeLog index bf3901e4e..314aeb4f7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2007-04-25 Bruno Haible + * modules/fseeko: New file. + * m4/fseeko.m4: New file. + * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_FSEEKO, + HAVE_FSEEKO. + * lib/stdio_.h (fseeko): New declaration. + * modules/stdio (Makefile.am): Substitute also GNULIB_FSEEKO, + HAVE_FSEEKO. + +2007-04-25 Bruno Haible + * lib/stdio_.h (fflush): Add support for GNULIB_POSIXCHECK. 2007-04-25 Bruno Haible diff --git a/lib/stdio_.h b/lib/stdio_.h index 2a5a253c6..54024d285 100644 --- a/lib/stdio_.h +++ b/lib/stdio_.h @@ -207,6 +207,19 @@ extern int vsprintf (char *str, const char *format, va_list args) # endif #endif +#if @GNULIB_FSEEKO@ +# if !@HAVE_FSEEKO@ +/* Assume 'off_t' is the same type as 'long'. */ +# define fseeko fseek +# endif +#else +# undef fseeko +# define fseeko(f,o,w) \ + (GL_LINK_WARNING ("fseeko is unportable - " \ + "use gnulib module fseeko for portability"), \ + fseeko (f, o, w)) +#endif + #if @GNULIB_FFLUSH@ # if @REPLACE_FFLUSH@ # define fflush rpl_fflush diff --git a/m4/fseeko.m4 b/m4/fseeko.m4 new file mode 100644 index 000000000..86d42f40c --- /dev/null +++ b/m4/fseeko.m4 @@ -0,0 +1,19 @@ +# fseeko.m4 serial 1 +dnl Copyright (C) 2007 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_FSEEKO], +[ + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + AC_REQUIRE([AC_PROG_CC]) + AC_CACHE_CHECK([for fseeko], [gl_cv_func_fseeko], + [ + AC_TRY_LINK([#include ], [fseeko (stdin, 0, 0);], + [gl_cv_func_fseeko=yes], [gl_cv_func_fseeko=no]) + ]) + if test $gl_cv_func_fseeko = no; then + HAVE_FSEEKO=0 + fi +]) diff --git a/m4/stdio_h.m4 b/m4/stdio_h.m4 index d53997f00..06bbea024 100644 --- a/m4/stdio_h.m4 +++ b/m4/stdio_h.m4 @@ -1,4 +1,4 @@ -# stdio_h.m4 serial 3 +# stdio_h.m4 serial 4 dnl Copyright (C) 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -30,6 +30,7 @@ AC_DEFUN([gl_STDIO_H_DEFAULTS], GNULIB_VSNPRINTF=0; AC_SUBST([GNULIB_VSNPRINTF]) GNULIB_VSPRINTF_POSIX=0; AC_SUBST([GNULIB_VSPRINTF_POSIX]) GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF]) + GNULIB_FSEEKO=0; AC_SUBST([GNULIB_FSEEKO]) GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH]) dnl Assume proper GNU behavior unless another module says otherwise. REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF]) @@ -44,5 +45,6 @@ AC_DEFUN([gl_STDIO_H_DEFAULTS], REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF]) HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF]) REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF]) + HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO]) REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH]) ]) diff --git a/modules/fseeko b/modules/fseeko new file mode 100644 index 000000000..ed72f14cc --- /dev/null +++ b/modules/fseeko @@ -0,0 +1,24 @@ +Description: +fseeko() function: Reposition a FILE stream. + +Files: +m4/fseeko.m4 + +Depends-on: +stdio + +configure.ac: +gl_FUNC_FSEEKO +gl_STDIO_MODULE_INDICATOR([fseeko]) + +Makefile.am: + +Include: + + +License: +LGPL + +Maintainer: +Bruno Haible + diff --git a/modules/stdio b/modules/stdio index 3ee2d0be2..d1deea963 100644 --- a/modules/stdio +++ b/modules/stdio @@ -30,6 +30,7 @@ stdio.h: stdio_.h -e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \ -e 's|@''GNULIB_VSPRINTF_POSIX''@|$(GNULIB_VSPRINTF_POSIX)|g' \ -e 's|@''GNULIB_VASPRINTF''@|$(GNULIB_VASPRINTF)|g' \ + -e 's|@''GNULIB_FSEEKO''@|$(GNULIB_FSEEKO)|g' \ -e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \ -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ @@ -43,6 +44,7 @@ stdio.h: stdio_.h -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ + -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \ -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ < $(srcdir)/stdio_.h; \ -- 2.11.0