[PATCH 2/5] build: use proper quoting in autogen.sh

Roland Mainz roland.mainz at nrubsig.org
Sun Nov 28 10:58:18 PST 2010


On Sun, Nov 28, 2010 at 7:47 PM, Gaetan Nadon <memsize at videotron.ca> wrote:
> On Sun, 2010-11-28 at 15:47 +0100, Jan Engelhardt wrote:
>
> Signed-off-by: Jan Engelhardt <jengelh at medozas.de>
> ---
>  autogen.sh |    8 ++++----
>  1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/autogen.sh b/autogen.sh
> index 904cd67..90d2520 100755
> --- a/autogen.sh
> +++ b/autogen.sh
> @@ -1,12 +1,12 @@
>  #! /bin/sh
>
> -srcdir=`dirname $0`
> +srcdir=`dirname "$0"`
>  test -z "$srcdir" && srcdir=.
>
>  ORIGDIR=`pwd`
> -cd $srcdir
> +cd "$srcdir"
>
>  autoreconf -v --install || exit 1
> -cd $ORIGDIR || exit $?
> +cd "$ORIGDIR" || exit $?
>
> -$srcdir/configure --enable-maintainer-mode "$@"
> +exec "$srcdir/configure" --enable-maintainer-mode "$@"
>
> I am not expert in quoting, can you explain how this is more appropriate?
> If it is, then all other autogen.sh should be changed as well.
> I am always looking for improvement.

Without double-quotes an variable expansion (e.g. ${var}) is subject
to field splitting (for each character listed in the variable IFS -
which by default contains <space>, <tab>, <newline>).
Example (note that "sh" is expected to be a POSIX sh-like shell):
Without double-quotes the "printf" utility will see the value "foo
bar" as two arguments (note that printf(1) will repeatedly use the
format until all arguments have been used-up):
-- snip --
$ sh -c 'x="foo bar" ; printf "|%s|\n" $x'
|foo|
|bar|
-- snip --
With double-quotes it will print:
-- snip --
$ sh -c 'x="foo bar" ; printf "|%s|\n" "$x"'
|foo bar|
-- snip --

It's usually recommended to use double-quotes unless field splitting
is really wanted (or set IFS='' to disable field-splitting).

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) roland.mainz at nrubsig.org
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 3992797
 (;O/ \/ \O;)



More information about the xorg mailing list