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

Roland Mainz roland.mainz at nrubsig.org
Sun Nov 28 23:03:17 PST 2010


On Sun, Nov 28, 2010 at 8:58 PM, Gaetan Nadon <memsize at videotron.ca> wrote:
> On Sun, 2010-11-28 at 19:58 +0100, Roland Mainz wrote:
>
> 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).
>
> Thanks. I tried to run autogen.sh on a module installed in a source
> directory containing a space
> and it failed.

Note the issue mainly applies to users on Windows which use
environments like Cygwin, UWIN, SFU etc. where user homedirs very
often have whitespaces etc. in the name of their home directory.

----

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