From fec1b18ce53b4f697d57bd3fa71c6aef1561cd99 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Wed, 25 Apr 2007 07:51:53 +0000 Subject: [PATCH] New module 'ftello'. --- ChangeLog | 10 ++++++++++ lib/stdio_.h | 13 +++++++++++++ m4/ftello.m4 | 19 +++++++++++++++++++ m4/stdio_h.m4 | 2 ++ modules/ftello | 24 ++++++++++++++++++++++++ modules/stdio | 2 ++ 6 files changed, 70 insertions(+) create mode 100644 m4/ftello.m4 create mode 100644 modules/ftello diff --git a/ChangeLog b/ChangeLog index a7062cbfc1..b5f1ee170e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2007-04-25 Bruno Haible + + * modules/ftello: New file. + * m4/ftello.m4: New file. + * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_FTELLO, + HAVE_FTELLO. + * lib/stdio_.h (ftello): New declaration. + * modules/stdio (Makefile.am): Substitute also GNULIB_FTELLO, + HAVE_FTELLO. + 2007-04-25 Bruno Haible * modules/fseeko-tests: New file. diff --git a/lib/stdio_.h b/lib/stdio_.h index 54024d2852..46ec407c9c 100644 --- a/lib/stdio_.h +++ b/lib/stdio_.h @@ -220,6 +220,19 @@ extern int vsprintf (char *str, const char *format, va_list args) fseeko (f, o, w)) #endif +#if @GNULIB_FTELLO@ +# if !@HAVE_FTELLO@ +/* Assume 'off_t' is the same type as 'long'. */ +# define ftello ftell +# endif +#else +# undef ftello +# define ftello(f) \ + (GL_LINK_WARNING ("ftello is unportable - " \ + "use gnulib module ftello for portability"), \ + ftello (f)) +#endif + #if @GNULIB_FFLUSH@ # if @REPLACE_FFLUSH@ # define fflush rpl_fflush diff --git a/m4/ftello.m4 b/m4/ftello.m4 new file mode 100644 index 0000000000..c2b826df8a --- /dev/null +++ b/m4/ftello.m4 @@ -0,0 +1,19 @@ +# ftello.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_FTELLO], +[ + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + AC_REQUIRE([AC_PROG_CC]) + AC_CACHE_CHECK([for ftello], [gl_cv_func_ftello], + [ + AC_TRY_LINK([#include ], [ftello (stdin);], + [gl_cv_func_ftello=yes], [gl_cv_func_ftello=no]) + ]) + if test $gl_cv_func_ftello = no; then + HAVE_FTELLO=0 + fi +]) diff --git a/m4/stdio_h.m4 b/m4/stdio_h.m4 index 06bbea0248..c696ee2ee7 100644 --- a/m4/stdio_h.m4 +++ b/m4/stdio_h.m4 @@ -31,6 +31,7 @@ AC_DEFUN([gl_STDIO_H_DEFAULTS], GNULIB_VSPRINTF_POSIX=0; AC_SUBST([GNULIB_VSPRINTF_POSIX]) GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF]) GNULIB_FSEEKO=0; AC_SUBST([GNULIB_FSEEKO]) + GNULIB_FTELLO=0; AC_SUBST([GNULIB_FTELLO]) GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH]) dnl Assume proper GNU behavior unless another module says otherwise. REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF]) @@ -46,5 +47,6 @@ AC_DEFUN([gl_STDIO_H_DEFAULTS], HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF]) REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF]) HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO]) + HAVE_FTELLO=1; AC_SUBST([HAVE_FTELLO]) REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH]) ]) diff --git a/modules/ftello b/modules/ftello new file mode 100644 index 0000000000..0994f10d7d --- /dev/null +++ b/modules/ftello @@ -0,0 +1,24 @@ +Description: +ftello() function: Retrieve the position of a FILE stream. + +Files: +m4/ftello.m4 + +Depends-on: +stdio + +configure.ac: +gl_FUNC_FTELLO +gl_STDIO_MODULE_INDICATOR([ftello]) + +Makefile.am: + +Include: + + +License: +LGPL + +Maintainer: +Bruno Haible + diff --git a/modules/stdio b/modules/stdio index d1deea963d..519b15745b 100644 --- a/modules/stdio +++ b/modules/stdio @@ -31,6 +31,7 @@ stdio.h: stdio_.h -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_FTELLO''@|$(GNULIB_FTELLO)|g' \ -e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \ -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ @@ -45,6 +46,7 @@ stdio.h: stdio_.h -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \ + -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \ -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ < $(srcdir)/stdio_.h; \ -- 2.30.2