X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Ffpending.m4;h=edf7378002f2a76331b4baa40f633310f070b57c;hb=b0df6af4ba3f1b975ae8a39c959862f9f4c37820;hp=c72b7cc4a7b8fb700da2a881ed137586eeac49af;hpb=ee76465ad82c04707c78ff3ed723358217c9e34f;p=gnulib.git diff --git a/m4/fpending.m4 b/m4/fpending.m4 index c72b7cc4a..edf737800 100644 --- a/m4/fpending.m4 +++ b/m4/fpending.m4 @@ -1,4 +1,9 @@ -#serial 2 +#serial 8 + +# Copyright (C) 2000, 2001, 2004, 2005, 2006 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. dnl From Jim Meyering dnl Using code from emacs, based on suggestions from Paul Eggert @@ -8,11 +13,14 @@ dnl Find out how to determine the number of pending output bytes on a stream. dnl glibc (2.1.93 and newer) and Solaris provide __fpending. On other systems, dnl we have to grub around in the FILE struct. -AC_DEFUN([jm_FUNC_FPENDING], +AC_DEFUN([gl_FUNC_FPENDING], [ + AC_LIBSOURCES([__fpending.c, __fpending.h]) + AC_CHECK_HEADERS(stdio_ext.h) AC_REPLACE_FUNCS([__fpending]) fp_headers=' +# include # if HAVE_STDIO_EXT_H # include # endif @@ -23,7 +31,6 @@ AC_DEFUN([jm_FUNC_FPENDING], [how to determine the number of pending output bytes on a stream], ac_cv_sys_pending_output_n_bytes, [ - fp_save_DEFS=$DEFS for ac_expr in \ \ '# glibc2' \ @@ -36,7 +43,7 @@ AC_DEFUN([jm_FUNC_FPENDING], 'fp->_p - fp->_bf._base' \ \ '# SCO, Unixware' \ - 'fp->__ptr - fp->__base' \ + '(fp->__ptr ? fp->__ptr - fp->__base : 0)' \ \ '# old glibc?' \ 'fp->__bufp - fp->__buffer' \ @@ -54,14 +61,12 @@ AC_DEFUN([jm_FUNC_FPENDING], # Skip each embedded comment. case "$ac_expr" in '#'*) continue;; esac - DEFS="$DEFS -DPENDING_OUTPUT_N_BYTES=$ac_expr" AC_TRY_COMPILE( [#include ], [FILE *fp = stdin; (void) ($ac_expr);], fp_done=yes ) - DEFS=$fp_save_DEFS test "$fp_done" = yes && break done