X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Ffpending.m4;h=145c86a0bc4dcf9bca286cb45cc3d92fcea65981;hb=dd2c1e84650acc6eaafa2675c5c689104103d029;hp=72c9cf952ac0f6a5bb17b9bbdf2341a00d40af78;hpb=023f0bdf4c13b17e65aed138d597fb9903b4494c;p=gnulib.git diff --git a/m4/fpending.m4 b/m4/fpending.m4 index 72c9cf952..145c86a0b 100644 --- a/m4/fpending.m4 +++ b/m4/fpending.m4 @@ -1,69 +1,72 @@ -#serial 1 +#serial 3 dnl From Jim Meyering dnl Using code from emacs, based on suggestions from Paul Eggert dnl and Ulrich Drepper. -AC_DEFUN(jm_FUNC_FPENDING, +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_CHECK_HEADERS(stdio_ext.h) AC_REPLACE_FUNCS([__fpending]) + fp_headers=' +# if HAVE_STDIO_EXT_H +# include +# endif +' + AC_CHECK_DECLS([__fpending], , , $fp_headers) if test $ac_cv_func___fpending = no; then AC_CACHE_CHECK( [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 \ + for ac_expr in \ \ - '# glibc2' \ - 'fp->_IO_write_ptr - fp->_IO_write_base' \ + '# glibc2' \ + 'fp->_IO_write_ptr - fp->_IO_write_base' \ \ - '# traditional Unix' \ - 'fp->_ptr - fp->_base' \ + '# traditional Unix' \ + 'fp->_ptr - fp->_base' \ \ - '# BSD' \ - 'fp->_p - fp->_bf._base' \ + '# BSD' \ + 'fp->_p - fp->_bf._base' \ \ - '# SCO, Unixware' \ - 'fp->__ptr - fp->__base' \ + '# SCO, Unixware' \ + 'fp->__ptr - fp->__base' \ \ - '# old glibc?' \ - 'fp->__bufp - fp->__buffer' \ + '# old glibc?' \ + 'fp->__bufp - fp->__buffer' \ \ - '# old glibc iostream?' \ - 'fp->_pptr - fp->_pbase' \ + '# old glibc iostream?' \ + 'fp->_pptr - fp->_pbase' \ \ - '# VMS' \ - '(*fp)->_ptr - (*fp)->_base' \ + '# VMS' \ + '(*fp)->_ptr - (*fp)->_base' \ \ - '# e.g., DGUX R4.11; the info is not available' \ - 1 \ - ; do - # Skip each embedded comment. - case "$ac_expr" in '#'*) continue;; esac -' - - DEFS="$DEFS -DPENDING_OUTPUT_N_BYTES=$ac_expr" - AC_TRY_COMPILE( - [#include - ], - [long unsigned int n = $ac_expr;], - fp_done=yes - ) - DEFS=$fp_save_DEFS - test "$fp_done" = yes && break - done - AC_DEFINE_UNQUOTED(PENDING_OUTPUT_N_BYTES, $ac_expr, - [the number of pending output bytes on stream `fp']) - ]) - fi - + '# e.g., DGUX R4.11; the info is not available' \ + 1 \ + ; do + # Skip each embedded comment. + case "$ac_expr" in '#'*) continue;; esac + AC_TRY_COMPILE( + [#include + ], + [FILE *fp = stdin; (void) ($ac_expr);], + fp_done=yes + ) + test "$fp_done" = yes && break + done - if test $fu_cv_sys_struct_timespec = yes; then - AC_DEFINE_UNQUOTED(HAVE_STRUCT_TIMESPEC, 1, - [Define if struct timespec is declared in . ]) + ac_cv_sys_pending_output_n_bytes=$ac_expr + ] + ) + AC_DEFINE_UNQUOTED(PENDING_OUTPUT_N_BYTES, + $ac_cv_sys_pending_output_n_bytes, + [the number of pending output bytes on stream `fp']) fi ])