]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
Make “redefining AS_ECHO internals” test more robust.
authorZack Weinberg <zackw@panix.com>
Mon, 30 Nov 2020 14:26:37 +0000 (09:26 -0500)
committerZack Weinberg <zackw@panix.com>
Mon, 30 Nov 2020 16:45:26 +0000 (11:45 -0500)
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’.

tests/m4sh.at

index 6504b71a16a16c2e1c90d87ca6f6ded264f4c79e..7de210ac9bbd363726d3df259e569df314b010da 100644 (file)
@@ -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
 ]], [])