Merge euidaccess etc. from coreutils.
[gnulib.git] / m4 / fpending.m4
index 0a7b7de..145c86a 100644 (file)
@@ -1,23 +1,32 @@
-#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 <stdio_ext.h>
+#     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                                          \
                                                                \
            '# glibc2'                                          \
-           'fp->_IO_write_ptr - fp->_IO_write_x_base'          \
+           'fp->_IO_write_ptr - fp->_IO_write_base'            \
                                                                \
            '# traditional Unix'                                \
            'fp->_ptr - fp->_base'                              \
@@ -44,14 +53,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 <stdio.h>
            ],
            [FILE *fp = stdin; (void) ($ac_expr);],
            fp_done=yes
          )
-         DEFS=$fp_save_DEFS
          test "$fp_done" = yes && break
        done