Add comment.
[gnulib.git] / m4 / fpending.m4
index 0a7b7de..87398b1 100644 (file)
@@ -1,23 +1,39 @@
-#serial 1
+#serial 6
+
+# Copyright (C) 2000, 2001, 2004, 2005 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
 dnl and Ulrich Drepper.
 
 
 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([gl_FUNC_FPENDING],
 [
 [
+  AC_LIBSOURCES([__fpending.c, __fpending.h])
+
   AC_CHECK_HEADERS(stdio_ext.h)
   AC_REPLACE_FUNCS([__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,
       [
   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'                                          \
        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'                              \
                                                                \
            '# traditional Unix'                                \
            'fp->_ptr - fp->_base'                              \
@@ -44,14 +60,12 @@ AC_DEFUN(jm_FUNC_FPENDING,
          # Skip each embedded comment.
          case "$ac_expr" in '#'*) continue;; esac
 
          # 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
          )
          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
 
          test "$fp_done" = yes && break
        done