X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fobstack-printf-posix.m4;h=606aca1372f149af3105ec7d24facf405b43f0f9;hb=f921c7d1ed533250523b43796cd53144c048b01f;hp=b5678b48a238ea141cddfc7dd5938b0fa3d2fdc4;hpb=7a8101a246b1c7aa64cd2f95ad2a43a2bf2ee891;p=gnulib.git diff --git a/m4/obstack-printf-posix.m4 b/m4/obstack-printf-posix.m4 index b5678b48a..606aca137 100644 --- a/m4/obstack-printf-posix.m4 +++ b/m4/obstack-printf-posix.m4 @@ -1,11 +1,14 @@ -# obstack-printf-posix.m4 serial 1 -dnl Copyright (C) 2008 Free Software Foundation, Inc. +# obstack-printf-posix.m4 serial 4 +dnl Copyright (C) 2008-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_OBSTACK_PRINTF_POSIX], [ + dnl Persuade glibc 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]) @@ -13,6 +16,7 @@ AC_DEFUN([gl_FUNC_OBSTACK_PRINTF_POSIX], AC_REQUIRE([gl_PRINTF_DIRECTIVE_A]) AC_REQUIRE([gl_PRINTF_DIRECTIVE_F]) AC_REQUIRE([gl_PRINTF_DIRECTIVE_N]) + AC_REQUIRE([gl_PRINTF_DIRECTIVE_LS]) AC_REQUIRE([gl_PRINTF_POSITIONS]) AC_REQUIRE([gl_PRINTF_FLAG_GROUPING]) AC_REQUIRE([gl_PRINTF_FLAG_LEFTADJUST]) @@ -20,67 +24,75 @@ AC_DEFUN([gl_FUNC_OBSTACK_PRINTF_POSIX], AC_REQUIRE([gl_PRINTF_PRECISION]) AC_REQUIRE([gl_PRINTF_ENOMEM]) gl_cv_func_obstack_printf_posix=no - case "$gl_cv_func_printf_sizes_c99" in - *yes) - case "$gl_cv_func_printf_long_double" in - *yes) - case "$gl_cv_func_printf_infinite" in - *yes) - case "$gl_cv_func_printf_infinite_long_double" in - *yes) - case "$gl_cv_func_printf_directive_a" in - *yes) - case "$gl_cv_func_printf_directive_f" in - *yes) - case "$gl_cv_func_printf_directive_n" in - *yes) - case "$gl_cv_func_printf_positions" in - *yes) - case "$gl_cv_func_printf_flag_grouping" in - *yes) - case "$gl_cv_func_printf_flag_leftadjust" in - *yes) - case "$gl_cv_func_printf_flag_zero" in - *yes) - case "$gl_cv_func_printf_precision" in - *yes) - case "$gl_cv_func_printf_enomem" in - *yes) - # obstack_printf exists and is - # already POSIX compliant. - gl_cv_func_obstack_printf_posix= yes - ;; - esac - ;; - esac - ;; - esac - ;; - esac - ;; - esac - ;; - esac - ;; - esac - ;; - esac - ;; - esac - ;; - esac - ;; - esac - ;; - esac - ;; - esac + 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 + *yes) + case "$gl_cv_func_printf_infinite" in + *yes) + case "$gl_cv_func_printf_infinite_long_double" in + *yes) + case "$gl_cv_func_printf_directive_a" in + *yes) + case "$gl_cv_func_printf_directive_f" in + *yes) + case "$gl_cv_func_printf_directive_n" in + *yes) + case "$gl_cv_func_printf_directive_ls" in + *yes) + case "$gl_cv_func_printf_positions" in + *yes) + case "$gl_cv_func_printf_flag_grouping" in + *yes) + case "$gl_cv_func_printf_flag_leftadjust" in + *yes) + case "$gl_cv_func_printf_flag_zero" in + *yes) + case "$gl_cv_func_printf_precision" in + *yes) + case "$gl_cv_func_printf_enomem" in + *yes) + # obstack_printf exists and is + # already POSIX compliant. + gl_cv_func_obstack_printf_posix=yes + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + fi if test $gl_cv_func_obstack_printf_posix = no; then gl_PREREQ_VASNPRINTF_LONG_DOUBLE gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE gl_PREREQ_VASNPRINTF_DIRECTIVE_A gl_PREREQ_VASNPRINTF_DIRECTIVE_F + gl_PREREQ_VASNPRINTF_DIRECTIVE_LS gl_PREREQ_VASNPRINTF_FLAG_GROUPING gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST gl_PREREQ_VASNPRINTF_FLAG_ZERO @@ -89,4 +101,5 @@ AC_DEFUN([gl_FUNC_OBSTACK_PRINTF_POSIX], gl_REPLACE_VASNPRINTF gl_REPLACE_OBSTACK_PRINTF fi + gl_DECL_OBSTACK_PRINTF ])