fpending.m4 1.12 KB
Newer Older
Paul Eggert's avatar
Paul Eggert committed
1
# serial 22
Paul Eggert's avatar
Paul Eggert committed
2

Paul Eggert's avatar
Paul Eggert committed
3
# Copyright (C) 2000-2001, 2004-2019 Free Software Foundation, Inc.
Paul Eggert's avatar
Paul Eggert committed
4 5 6 7 8 9 10 11 12 13
# 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 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,
Paul Eggert's avatar
Paul Eggert committed
14
dnl we have to grub around in the (possibly opaque) FILE struct.
Paul Eggert's avatar
Paul Eggert committed
15 16 17 18

AC_DEFUN([gl_FUNC_FPENDING],
[
  AC_CHECK_HEADERS_ONCE([stdio_ext.h])
Paul Eggert's avatar
Paul Eggert committed
19 20 21 22 23 24
  fp_headers='
    #include <stdio.h>
    #if HAVE_STDIO_EXT_H
    # include <stdio_ext.h>
    #endif
  '
Paul Eggert's avatar
Paul Eggert committed
25 26 27
  AC_CACHE_CHECK([for __fpending], [gl_cv_func___fpending],
    [
      AC_LINK_IFELSE(
Paul Eggert's avatar
Paul Eggert committed
28
        [AC_LANG_PROGRAM([$fp_headers],
Paul Eggert's avatar
Paul Eggert committed
29 30 31 32
           [[return ! __fpending (stdin);]])],
        [gl_cv_func___fpending=yes],
        [gl_cv_func___fpending=no])
    ])
Paul Eggert's avatar
Paul Eggert committed
33 34 35
  if test $gl_cv_func___fpending = yes; then
    AC_CHECK_DECLS([__fpending], [], [], [$fp_headers])
  fi
Paul Eggert's avatar
Paul Eggert committed
36
])