[PATCH] bug fix - AS_IF with blank false branch

"Jannick" <[email protected]>
Newsgroups gmane.comp.sysutils.autoconf.bugs
Message-ID <[email protected]>
Please find attached suggested patches for your consideration and review.

Bug fix for

AS_IF([false],[echo OK],[[]])

yielding the syntactically incorrect shell code:

if false; then :
  echo OK
else

fi


I hope that sending patches to the list as attachments is OK and they will
come through to the list.

Thanks,
J.
0002-m4sh-AS_IF-bug-fix-of-previous-buggy-test-case.patch (text/plain, 632 B)
From f38a8134c63a6bf5fbd1d7a33f85387e0864b188 Mon Sep 17 00:00:00 2001
From: Jannick <[email protected]>
Date: Thu, 26 Dec 2019 03:06:29 +0100
Subject: [PATCH 2/2] m4sh/AS_IF: bug fix of previous buggy test case

* lib/m4sugar/m4sh.m4: replace `else' by `else :' in `_AS_IF_ELSE'.
---
 lib/m4sugar/m4sh.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/m4sugar/m4sh.m4 b/lib/m4sugar/m4sh.m4
index d7e41673..4d357107 100644
--- a/lib/m4sugar/m4sh.m4
+++ b/lib/m4sugar/m4sh.m4
@@ -637,7 +637,7 @@ then :
 ])
 m4_define([_AS_IF_ELSE],
 [m4_ifnblank([$1],
-[else
+[else :
   $1
 ])])
 
-- 
2.24.1.windows.2
0001-m4sh-AS_IF-add-a-buggy-test-for-AS_IF-with-blank-fal.patch (text/plain, 1.2 KB)
From 4e55d3bfe31c4f869b2fb110140b379fe803c5ec Mon Sep 17 00:00:00 2001
From: Jannick <[email protected]>
Date: Thu, 26 Dec 2019 02:53:01 +0100
Subject: [PATCH 1/2] m4sh/AS_IF: add a buggy test for AS_IF with blank false
 branch

The test

make check TESTSUITEFLAGS='-e -k m4sh,m4_map_args_pair'

fails, since m4sh generates from

AS_IF([false], [echo OK], [[]])

the syntactically incorrect shell code

if false; then :
      echo OK
else

fi

* tests/m4sh.at: add test `AS_IF([false], [:], [[]])'
---
 tests/m4sh.at | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/m4sh.at b/tests/m4sh.at
index cbdfcb62..e7d3c1ee 100644
--- a/tests/m4sh.at
+++ b/tests/m4sh.at
@@ -1240,7 +1240,7 @@ AS_CASE([`touch file; false`]) && test -f file && echo fifteen
 dnl The next line is badly underquoted; don't intentionally copy this style.
 AS_CASE([foo], [foo], m4_do(AS_CASE([bar], [bar], [echo sixteen])))
 dnl Handle blank arguments.
-AS_IF([false], [:], [ ]) && AS_CASE([foo], [foo], []
+AS_IF([false], [:], [ ]) && AS_IF([false], [:], [[]]) && AS_CASE([foo], [foo], []
 ) && echo seventeen
 m4_define([empty])AS_IF([:], [empty]
 ) && AS_CASE([foo], [foo], [empty]) && echo eighteen
-- 
2.24.1.windows.2
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.