From: Zack Weinberg Date: Mon, 30 Nov 2020 14:26:37 +0000 (-0500) Subject: Make “redefining AS_ECHO internals” test more robust. X-Git-Tag: v2.69e~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7ee946312e227a07cc20dcb5d3c5645caa1684a0;p=thirdparty%2Fautoconf.git Make “redefining AS_ECHO internals” test more robust. M4-redefining ‘printf’ as ‘echo’ brings back all the variations in ‘echo’ behavior that we were trying to get away from by switching to ‘printf’ in the first place. This caused a spurious failure on AIX. * tests/m4sh.at (Redefining AS_ECHO internals): Redefine ‘printf’ as a shell function with fully predictable output, not as ‘echo’. --- diff --git a/tests/m4sh.at b/tests/m4sh.at index 6504b71a..7de210ac 100644 --- a/tests/m4sh.at +++ b/tests/m4sh.at @@ -706,7 +706,14 @@ rm config.h # the functioning of AS_ECHO. AT_CONFIGURE_AC( -[[m4@&t@_pushdef([printf], [echo]) +[[# At this point in a configure script, defining shell functions is safe. +fn_printf_override () { + for arg; do + printf '+ %s\n' "$arg" + done + AS@&t@_UNSET([arg]) +} +m4@&t@_pushdef([printf], [fn_printf_override]) AC_MSG_NOTICE([checking whether m4sugar echo works... yes]) AC_MSG_CHECKING([whether m4sugar echo_n works]) AC_MSG_RESULT([yes]) @@ -715,9 +722,12 @@ m4@&t@_popdef([printf]) AT_CHECK_AUTOCONF AT_CHECK_CONFIGURE([], [], -[[%s\n configure: checking whether m4sugar echo works... yes -%s checking whether m4sugar echo_n works... @&t@ -%s\n yes +[[+ %s\n ++ configure: checking whether m4sugar echo works... yes ++ %s ++ checking whether m4sugar echo_n works... @&t@ ++ %s\n ++ yes configure: creating ./config.status config.status: creating config.h ]], [])