autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FYI] m4sugar: fix AS_VAR_GET regression.


From: Gary V. Vaughan
Subject: [FYI] m4sugar: fix AS_VAR_GET regression.
Date: Tue, 29 Jan 2013 19:27:56 +0700

AS_VAR_GET expands AS_ECHO inside en evaled single quoted string,
which causes the single quotes in "printf '%s\n'" to expose the
%s\n to the shell which expands "\n" to simply "n" before passing
it to printf.
* lib/m4sugar/m4sh.m4 (AS_ECHO): Use double quotes around the
format string.
* doc/autoconf.texi (Limitations of Shell Builtins): Show double
quotes to match AS_ECHO expansion.
* NEWS: Likewise.
---
 NEWS                | 2 +-
 doc/autoconf.texi   | 2 +-
 lib/m4sugar/m4sh.m4 | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/NEWS b/NEWS
index 35e7b88..16de922 100644
--- a/NEWS
+++ b/NEWS
@@ -10,7 +10,7 @@ GNU Autoconf NEWS - User visible changes.
 
 ** Use of printf is now recommended instead of working around bugs in
    echo.  Macros AS_ECHO and AS_ECHO_N now expand unconditionally to
-   "printf '%s\n'" and "printf %s".
+   'printf "%s\n"' and 'printf %s'.
 
 ** Macros
 
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index c95d871..8f58d4a 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -17523,7 +17523,7 @@ only if you know that @var{foo}'s value cannot contain 
backslashes and
 cannot start with @samp{-}.
 
 Normally, @command{printf} is safer and easier to use than @command{echo}
-and @command{echo -n}.  Thus, you should use @command{printf '%s\n'}
+and @command{echo -n}.  Thus, you should use @command{printf "%s\n"}
 instead of @command{echo}, and similarly use @command{printf %s} instead
 of @command{echo -n}.
 
diff --git a/lib/m4sugar/m4sh.m4 b/lib/m4sugar/m4sh.m4
index 479c2d9..53fdf8d 100644
--- a/lib/m4sugar/m4sh.m4
+++ b/lib/m4sugar/m4sh.m4
@@ -1026,7 +1026,7 @@ fi
 # (typically a quoted string).  The bytes of WORD are output as-is, even
 # if it starts with "-" or contains "\".
 m4_defun([AS_ECHO],
-[printf '%s\n' $1])
+[printf "%s\n" $1])
 
 
 # AS_ECHO_N(WORD)
-- 
1.8.1.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]