summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--admin/CPP-DEFINES1
-rw-r--r--configure.ac72
-rw-r--r--nt/ChangeLog5
-rw-r--r--nt/config.nt9
-rw-r--r--src/ChangeLog6
-rw-r--r--src/dispnew.c25
7 files changed, 74 insertions, 50 deletions
diff --git a/ChangeLog b/ChangeLog
index e996efbe2e4..f5883f9cc00 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-08-06 Glenn Morris <rgm@gnu.org>
+
+ * configure.ac (GNU_LIBRARY_PENDING_OUTPUT_COUNT): Remove.
+ (PENDING_OUTPUT_COUNT): Absorb GNU_LIBRARY_PENDING_OUTPUT_COUNT.
+ (DISPNEW_NEEDS_STDIO_EXT): New define.
+
2012-08-05 Michael Albinus <michael.albinus@gmx.de>
* INSTALL: Explain, how to disable D-Bus at all. (Bug#12112)
diff --git a/admin/CPP-DEFINES b/admin/CPP-DEFINES
index 47453f50467..ce7005afc01 100644
--- a/admin/CPP-DEFINES
+++ b/admin/CPP-DEFINES
@@ -112,7 +112,6 @@ GC_MARK_SECONDARY_STACK
GC_MARK_STACK
GC_SETJMP_WORKS
GMALLOC_INHIBIT_VALLOC
-GNU_LIBRARY_PENDING_OUTPUT_COUNT
GNU_MALLOC
HAVE_AIX_SMT_EXP
HAVE_CBRT
diff --git a/configure.ac b/configure.ac
index 2a6291e8243..b4fe8bc0b9f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3506,31 +3506,32 @@ esac
dnl Used in dispnew.c
AH_TEMPLATE(PENDING_OUTPUT_COUNT, [Number of chars of output in the
-buffer of a stdio stream.])
+ buffer of a stdio stream.])
-dnl FIXME just PENDING_OUTPUT_COUNT should suffice.
-AH_TEMPLATE(GNU_LIBRARY_PENDING_OUTPUT_COUNT, [Value of
-PENDING_OUTPUT_COUNT if using the GNU C library.])
+AC_MSG_CHECKING([whether we are using the GNU C library])
+AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
+#include <features.h>
+#ifndef __GNU_LIBRARY__
+# error "this is not the GNU C library"
+#endif
+ ]], [[]])], emacs_glibc=yes, emacs_glibc=no)
+AC_MSG_RESULT([$emacs_glibc])
-case $opsys in
- cygwin | darwin | freebsd | netbsd | openbsd )
- AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [((FILE)->_p - (FILE)->_bf._base)])
- ;;
+if test $emacs_glibc = yes; then
- unixware)
- AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [((FILE)->__ptr - (FILE)->__base)])
- ;;
+ emacs_pending_output=unknown
- gnu | gnu-linux | gnu-kfreebsd )
- AC_MSG_CHECKING([for style of pending output formalism])
- dnl In autoconf 2.67 and later, we could use a single test
- dnl since the preprocessed output is accessible in "conftest.i".
- AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
+ case $opsys in
+ gnu | gnu-linux | gnu-kfreebsd )
+ AC_MSG_CHECKING([for style of pending output formalism])
+ dnl In autoconf 2.67 and later, we could use a single test
+ dnl since the preprocessed output is accessible in "conftest.i".
+ AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
#include <stdio.h>
#if !defined (_IO_STDIO_H) && !defined (_STDIO_USES_IOSTREAM)
# error "stdio definitions not found"
#endif
- ]], [[]])], emacs_pending_output=new, emacs_pending_output=unknown)
+ ]], [[]])], emacs_pending_output=new, [])
if test $emacs_pending_output = unknown; then
case $opsys in
@@ -3550,22 +3551,51 @@ case $opsys in
case $emacs_pending_output in
new)
dnl New C libio names.
- AC_DEFINE(GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE),
+ AC_DEFINE(PENDING_OUTPUT_COUNT(FILE),
[((FILE)->_IO_write_ptr - (FILE)->_IO_write_base)])
;;
uclibc)
dnl Using the uClibc library.
- AC_DEFINE(GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE),
+ AC_DEFINE(PENDING_OUTPUT_COUNT(FILE),
[((FILE)->__bufpos - (FILE)->__bufstart)])
;;
old)
dnl Old C++ iostream names.
- AC_DEFINE(GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE),
+ AC_DEFINE(PENDING_OUTPUT_COUNT(FILE),
[((FILE)->_pptr - (FILE)->_pbase)])
;;
esac
;;
-esac
+ esac dnl opsys
+
+ if test $emacs_pending_output = unknown; then
+ AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [((FILE)->__bufp - (FILE)->__buffer)])
+ fi
+
+else dnl !emacs_glibc
+
+ case $opsys in
+ cygwin | darwin | freebsd | netbsd | openbsd )
+ AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [((FILE)->_p - (FILE)->_bf._base)])
+ ;;
+
+ unixware)
+ AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [((FILE)->__ptr - (FILE)->__base)])
+ ;;
+
+ *)
+ dnl HAVE_STDIO_EXT_H && HAVE___FPENDING
+ if test x$ac_cv_header_stdio_ext_h = xyes && \
+ test x$ac_cv_func___fpending = xyes; then
+ AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [__fpending (FILE)])
+ AC_DEFINE(DISPNEW_NEEDS_STDIO_EXT, 1,
+ [Define if dispnew.c should include stdio_ext.h.])
+ else
+ AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [((FILE)->_ptr - (FILE)->_base)])
+ fi
+ ;;
+ esac
+fi dnl emacs_glibc
dnl Used in vm-limit.c
diff --git a/nt/ChangeLog b/nt/ChangeLog
index ffdfb5dcab2..11d62250c20 100644
--- a/nt/ChangeLog
+++ b/nt/ChangeLog
@@ -1,3 +1,8 @@
+2012-08-06 Glenn Morris <rgm@gnu.org>
+
+ * config.nt (GNU_LIBRARY_PENDING_OUTPUT_COUNT): Remove.
+ (PENDING_OUTPUT_COUNT): Define it as dispnew.c used to.
+
2012-08-04 Eli Zaretskii <eliz@gnu.org>
* paths.h (PATH_LOADSEARCH, PATH_SITELOADSEARCH, PATH_EXEC)
diff --git a/nt/config.nt b/nt/config.nt
index abc90687e3f..f0bcce7a285 100644
--- a/nt/config.nt
+++ b/nt/config.nt
@@ -211,9 +211,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
whether the gnulib module scanf shall be considered present. */
#undef GNULIB_SCANF
-/* Value of PENDING_OUTPUT_COUNT if using the GNU C library. */
-#undef GNU_LIBRARY_PENDING_OUTPUT_COUNT
-
/* Define if ths system is compatible with GNU/Linux. */
#undef GNU_LINUX
@@ -1229,7 +1226,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#undef PACKAGE_VERSION
/* Number of chars of output in the buffer of a stdio stream. */
-#undef PENDING_OUTPUT_COUNT
+#ifdef __GNU_LIBRARY__
+#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->__bufp - (FILE)->__buffer)
+#else
+#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base)
+#endif
/* Define to empty to suppress deprecation warnings when building with
--enable-gcc-warnings and with libpng versions before 1.5, which lack
diff --git a/src/ChangeLog b/src/ChangeLog
index d08802f5f56..ec3f08fc6a0 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2012-08-06 Glenn Morris <rgm@gnu.org>
+
+ * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT):
+ Let configure handle it.
+ (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it.
+
2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
Use GCALIGNMENT where appropriate.
diff --git a/src/dispnew.c b/src/dispnew.c
index 10206ecd43b..d06ab594b2f 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -65,33 +65,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include "systime.h"
#include <errno.h>
-/* Get number of chars of output now in the buffer of a stdio stream.
- This ought to be built in stdio, but it isn't. Some s- files
- override this because their stdio internals differ. */
-#ifdef __GNU_LIBRARY__
-
-/* The s- file might have overridden the definition with one that
- works for the system's C library. But we are using the GNU C
- library, so this is the right definition for every system. */
-#ifdef GNU_LIBRARY_PENDING_OUTPUT_COUNT
-#define PENDING_OUTPUT_COUNT GNU_LIBRARY_PENDING_OUTPUT_COUNT
-#else
-#undef PENDING_OUTPUT_COUNT
-#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->__bufp - (FILE)->__buffer)
-#endif
-
-/* not __GNU_LIBRARY__ and no PENDING_OUTPUT_COUNT defined */
-#elif !defined (PENDING_OUTPUT_COUNT)
-
-#if HAVE_STDIO_EXT_H && HAVE___FPENDING
+#ifdef DISPNEW_NEEDS_STDIO_EXT
#include <stdio_ext.h>
-#define PENDING_OUTPUT_COUNT(FILE) __fpending (FILE)
-#else
-#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base)
#endif
-#endif /* not __GNU_LIBRARY__ and no PENDING_OUTPUT_COUNT defined */
-
#if defined (HAVE_TERM_H) && defined (GNU_LINUX)
#include <term.h> /* for tgetent */
#endif