3
# Copyright (C) 2000, 2001, 2004, 2005, 2006 Free Software Foundation, Inc.
4
# This file is free software; the Free Software Foundation
5
# gives unlimited permission to copy and/or distribute it,
6
# with or without modifications, as long as this notice is preserved.
9
dnl Using code from emacs, based on suggestions from Paul Eggert
10
dnl and Ulrich Drepper.
12
dnl Find out how to determine the number of pending output bytes on a stream.
13
dnl glibc (2.1.93 and newer) and Solaris provide __fpending. On other systems,
14
dnl we have to grub around in the FILE struct.
16
AC_DEFUN([gl_FUNC_FPENDING],
18
AC_CHECK_HEADERS_ONCE(stdio_ext.h)
19
AC_REPLACE_FUNCS([__fpending])
23
# include <stdio_ext.h>
26
AC_CHECK_DECLS([__fpending], , , $fp_headers)
27
if test $ac_cv_func___fpending = no; then
29
[how to determine the number of pending output bytes on a stream],
30
ac_cv_sys_pending_output_n_bytes,
35
'fp->_IO_write_ptr - fp->_IO_write_base' \
37
'# traditional Unix' \
38
'fp->_ptr - fp->_base' \
41
'fp->_p - fp->_bf._base' \
44
'(fp->__ptr ? fp->__ptr - fp->__base : 0)' \
47
'fp->__bufp - fp->__buffer' \
49
'# old glibc iostream?' \
50
'fp->_pptr - fp->_pbase' \
53
'(*fp)->_ptr - (*fp)->_base' \
55
'# e.g., DGUX R4.11; the info is not available' \
59
# Skip each embedded comment.
60
case "$ac_expr" in '#'*) continue;; esac
65
[FILE *fp = stdin; (void) ($ac_expr);],
68
test "$fp_done" = yes && break
71
ac_cv_sys_pending_output_n_bytes=$ac_expr
74
AC_DEFINE_UNQUOTED(PENDING_OUTPUT_N_BYTES,
75
$ac_cv_sys_pending_output_n_bytes,
76
[the number of pending output bytes on stream `fp'])