From 7ee946312e227a07cc20dcb5d3c5645caa1684a0 Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Mon, 30 Nov 2020 09:26:37 -0500 Subject: [PATCH] =?utf8?q?Make=20=E2=80=9Credefining=20AS=5FECHO=20interna?= =?utf8?q?ls=E2=80=9D=20test=20more=20robust.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) 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 ]], []) -- 2.47.2