gitlog-to-changelog: give better diagnostic for failed pipe-open
[gnulib.git] / m4 / fpending.m4
index 145c86a..65d2ddd 100644 (file)
@@ -1,4 +1,10 @@
-#serial 3
+#serial 13
+
+# Copyright (C) 2000, 2001, 2004, 2005, 2006, 2007, 2008 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 +14,12 @@ 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_CHECK_HEADERS(stdio_ext.h)
-  AC_REPLACE_FUNCS([__fpending])
+  AC_CHECK_HEADERS_ONCE(stdio_ext.h)
+  AC_CHECK_FUNCS_ONCE([__fpending])
   fp_headers='
+#     include <stdio.h>
 #     if HAVE_STDIO_EXT_H
 #      include <stdio_ext.h>
 #     endif
@@ -23,31 +30,37 @@ AC_DEFUN([jm_FUNC_FPENDING],
              [how to determine the number of pending output bytes on a stream],
                   ac_cv_sys_pending_output_n_bytes,
       [
-       for ac_expr in                                          \
-                                                               \
-           '# glibc2'                                          \
-           'fp->_IO_write_ptr - fp->_IO_write_base'            \
-                                                               \
-           '# traditional Unix'                                \
-           'fp->_ptr - fp->_base'                              \
-                                                               \
-           '# BSD'                                             \
-           'fp->_p - fp->_bf._base'                            \
-                                                               \
-           '# SCO, Unixware'                                   \
-           'fp->__ptr - fp->__base'                            \
-                                                               \
-           '# old glibc?'                                      \
-           'fp->__bufp - fp->__buffer'                         \
-                                                               \
-           '# old glibc iostream?'                             \
-           'fp->_pptr - fp->_pbase'                            \
-                                                               \
-           '# VMS'                                             \
-           '(*fp)->_ptr - (*fp)->_base'                        \
-                                                               \
-           '# e.g., DGUX R4.11; the info is not available'     \
-           1                                                   \
+       for ac_expr in                                                    \
+                                                                         \
+           '# glibc2'                                                    \
+           'fp->_IO_write_ptr - fp->_IO_write_base'                      \
+                                                                         \
+           '# traditional Unix'                                          \
+           'fp->_ptr - fp->_base'                                        \
+                                                                         \
+           '# BSD'                                                       \
+           'fp->_p - fp->_bf._base'                                      \
+                                                                         \
+           '# SCO, Unixware'                                             \
+           '(fp->__ptr ? fp->__ptr - fp->__base : 0)'                    \
+                                                                         \
+           '# QNX'                                                       \
+           '(fp->_Mode & 0x2000 /*_MWRITE*/ ? fp->_Next - fp->_Buf : 0)' \
+                                                                         \
+           '# old glibc?'                                                \
+           'fp->__bufp - fp->__buffer'                                   \
+                                                                         \
+           '# old glibc iostream?'                                       \
+           'fp->_pptr - fp->_pbase'                                      \
+                                                                         \
+           '# emx+gcc'                                                   \
+           'fp->_ptr - fp->_buffer'                                      \
+                                                                         \
+           '# VMS'                                                       \
+           '(*fp)->_ptr - (*fp)->_base'                                  \
+                                                                         \
+           '# e.g., DGUX R4.11; the info is not available'               \
+           1                                                             \
            ; do
 
          # Skip each embedded comment.
@@ -68,5 +81,6 @@ AC_DEFUN([jm_FUNC_FPENDING],
     AC_DEFINE_UNQUOTED(PENDING_OUTPUT_N_BYTES,
       $ac_cv_sys_pending_output_n_bytes,
       [the number of pending output bytes on stream `fp'])
+    AC_LIBOBJ([fpending])
   fi
 ])