[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [FYI] m4sugar: fix AS_VAR_GET regression.
From: |
Peter Rosin |
Subject: |
Re: [FYI] m4sugar: fix AS_VAR_GET regression. |
Date: |
Tue, 29 Jan 2013 14:17:00 +0100 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/17.0 Thunderbird/17.0 |
On 2013-01-29 13:27, Gary V. Vaughan wrote:
> 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"}
Shouldn't it be
printf "%s\\n"
when you write it outside single quotes?
> 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])
Dito.
Cheers,
Peter