mirror of
https://git.savannah.gnu.org/git/gnulib.git
synced 2025-08-08 17:22:05 +03:00
Fix various problems in 'obstack-printf' module.
This commit is contained in:
13
ChangeLog
13
ChangeLog
@@ -1,3 +1,16 @@
|
||||
2008-06-14 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
* lib/obstack_printf.c (obstack_vprintf): Define the stack-allocated
|
||||
array size as a constant, not as a const variable.
|
||||
* m4/obstack-printf.m4 (gl_FUNC_OBSTACK_PRINTF): Require
|
||||
AC_USE_SYSTEM_EXTENSIONS.
|
||||
* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_POSIX): Likewise.
|
||||
Test whether the obstack_printf function actually exists.
|
||||
* modules/obstack-printf (Depends-on): Add extensions.
|
||||
(Include): Remove obstack.h.
|
||||
* modules/obstack-printf-posix (Depends-on): Add extensions.
|
||||
(Include): Remove obstack.h.
|
||||
|
||||
2008-06-13 Eric Blake <ebb9@byu.net>
|
||||
|
||||
Add obstack-printf and obstack-printf-posix modules.
|
||||
|
@@ -58,16 +58,16 @@ obstack_vprintf (struct obstack *obs, const char *format, va_list args)
|
||||
stack-allocated buffer and copy, to reduce the likelihood of a
|
||||
small-size malloc. Otherwise, print directly into the
|
||||
obstack. */
|
||||
const size_t cutoff = 1024;
|
||||
char buf[cutoff];
|
||||
enum { CUTOFF = 1024 };
|
||||
char buf[CUTOFF];
|
||||
char *base = obstack_next_free (obs);
|
||||
size_t len = obstack_room (obs);
|
||||
char *str;
|
||||
|
||||
if (len < cutoff)
|
||||
if (len < CUTOFF)
|
||||
{
|
||||
base = buf;
|
||||
len = cutoff;
|
||||
len = CUTOFF;
|
||||
}
|
||||
str = vasnprintf (base, &len, format, args);
|
||||
if (!str)
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# obstack-printf-posix.m4 serial 1
|
||||
# obstack-printf-posix.m4 serial 2
|
||||
dnl Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
@@ -6,6 +6,9 @@ dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_FUNC_OBSTACK_PRINTF_POSIX],
|
||||
[
|
||||
dnl Persuade glibc <stdio.h> to declare obstack_printf(), obstack_vprintf().
|
||||
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
|
||||
|
||||
AC_REQUIRE([gl_PRINTF_SIZES_C99])
|
||||
AC_REQUIRE([gl_PRINTF_LONG_DOUBLE])
|
||||
AC_REQUIRE([gl_PRINTF_INFINITE])
|
||||
@@ -20,6 +23,8 @@ AC_DEFUN([gl_FUNC_OBSTACK_PRINTF_POSIX],
|
||||
AC_REQUIRE([gl_PRINTF_PRECISION])
|
||||
AC_REQUIRE([gl_PRINTF_ENOMEM])
|
||||
gl_cv_func_obstack_printf_posix=no
|
||||
AC_CHECK_FUNCS_ONCE([obstack_printf])
|
||||
if test $ac_cv_func_obstack_printf = yes ; then
|
||||
case "$gl_cv_func_printf_sizes_c99" in
|
||||
*yes)
|
||||
case "$gl_cv_func_printf_long_double" in
|
||||
@@ -75,6 +80,7 @@ AC_DEFUN([gl_FUNC_OBSTACK_PRINTF_POSIX],
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test $gl_cv_func_obstack_printf_posix = no; then
|
||||
gl_PREREQ_VASNPRINTF_LONG_DOUBLE
|
||||
gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# obstack-printf.m4 serial 1
|
||||
# obstack-printf.m4 serial 2
|
||||
dnl Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
@@ -10,6 +10,9 @@ dnl obstack_vprintf behaves identically, so we only test for one.
|
||||
|
||||
AC_DEFUN([gl_FUNC_OBSTACK_PRINTF],
|
||||
[
|
||||
dnl Persuade glibc <stdio.h> to declare obstack_printf(), obstack_vprintf().
|
||||
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
|
||||
|
||||
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
|
||||
AC_CHECK_FUNCS_ONCE([obstack_printf])
|
||||
if test $ac_cv_func_obstack_printf = no ; then
|
||||
|
@@ -9,6 +9,7 @@ Depends-on:
|
||||
obstack
|
||||
stdio
|
||||
vasnprintf
|
||||
extensions
|
||||
|
||||
configure.ac:
|
||||
gl_FUNC_OBSTACK_PRINTF
|
||||
@@ -17,7 +18,6 @@ gl_STDIO_MODULE_INDICATOR([obstack-printf])
|
||||
Makefile.am:
|
||||
|
||||
Include:
|
||||
"obstack.h"
|
||||
<stdio.h>
|
||||
|
||||
License:
|
||||
|
@@ -10,6 +10,7 @@ Depends-on:
|
||||
obstack
|
||||
stdio
|
||||
vasnprintf-posix
|
||||
extensions
|
||||
|
||||
configure.ac:
|
||||
gl_FUNC_OBSTACK_PRINTF_POSIX
|
||||
@@ -18,7 +19,6 @@ gl_STDIO_MODULE_INDICATOR([obstack-printf-posix])
|
||||
Makefile.am:
|
||||
|
||||
Include:
|
||||
"obstack.h"
|
||||
<stdio.h>
|
||||
|
||||
License:
|
||||
|
Reference in New Issue
Block a user