autoconf-patches
[Top][All Lists]
Advanced

[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




reply via email to

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