[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH, take 3][cygwin|mingw] Control where win32 DLLs get installed
From: |
Eric Blake |
Subject: |
Re: [PATCH, take 3][cygwin|mingw] Control where win32 DLLs get installed. |
Date: |
Fri, 14 Aug 2009 07:06:24 -0600 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.22) Gecko/20090605 Thunderbird/2.0.0.22 Mnenhy/0.7.6.666 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
According to Dave Korn on 8/14/2009 7:11 AM:
>> a="`""`"
>>
>> is non-portable, but can always be replaced by the portable:
>>
>> a=`""`
>>
>> See why I don't like spurious "" around variable assignments?
>
> Ah, now I do. Ok, but is some nice clear list of where you should and
> shouldn't quote anywhere? As far as I can tell you have to memorize the
> entire bash manual and then infer what to do from all the overlapping sets of
> expansions and contexts and rules. Then you have to to the same for all the
> other shells we're supposed to support. Then you have to infer a set of
> lowest-common-denominator rules from all of that.
I think it's as simple as:
if you are doing variable assignment, there is no word splitting, so you
only need quotes if it would otherwise look like multiple words:
a=$1
b="$1 $2"
if you are doing case statements, there is no word splitting, so you only
need quotes if it would otherwise look like multiple words:
case $1 in
case " $1 " in
if you are doing `` which needs embedded quoting, then it is only safe to
do it as variable assignment (where `` looks like a single word, without
needing outer ""):
a=`echo "$1 $2"`
pretty much every where else, all $ expansions need double quotes if you
want to avoid word splitting (but using $ expansions to hide tool names is
one case where you DO want word splitting):
ECHO='printf %s\n'
$ECHO "$1"
And beyond that, it's just lots of practice. I agree that it often feels
like you have to memorize loads of information to write portable shell,
but at least these public reviews catch a lot of the pitfalls.
- --
Don't work too hard, make some time for fun as well!
Eric Blake address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkqFYVAACgkQ84KuGfSFAYBIRwCgxRt0p2lnFnSfQOHl0TR1puou
rPoAoJsTLkaB4QMg6ZcTsD2bKqNWftfQ
=wagC
-----END PGP SIGNATURE-----
- Re: [PATCH, take 3][cygwin|mingw] Control where win32 DLLs get installed., (continued)
- Re: [PATCH, take 3][cygwin|mingw] Control where win32 DLLs get installed., Ralf Wildenhues, 2009/08/13
- Re: [PATCH, take 3][cygwin|mingw] Control where win32 DLLs get installed., Dave Korn, 2009/08/13
- Re: [PATCH, take 3][cygwin|mingw] Control where win32 DLLs get installed., Dave Korn, 2009/08/13
- Re: [PATCH, take 3][cygwin|mingw] Control where win32 DLLs get installed., Ralf Wildenhues, 2009/08/14
- Re: [PATCH, take 3][cygwin|mingw] Control where win32 DLLs get installed., Dave Korn, 2009/08/14
- Re: [PATCH, take 3][cygwin|mingw] Control where win32 DLLs get installed., Eric Blake, 2009/08/14
- Re: [PATCH, take 3][cygwin|mingw] Control where win32 DLLs get installed., Dave Korn, 2009/08/14
- Re: [PATCH, take 3][cygwin|mingw] Control where win32 DLLs get installed.,
Eric Blake <=
- Re: [PATCH, take 3][cygwin|mingw] Control where win32 DLLs get installed., Dave Korn, 2009/08/14
- Re: [PATCH, take 3][cygwin|mingw] Control where win32 DLLs get installed., Ralf Wildenhues, 2009/08/15
- Re: [PATCH, take 3][cygwin|mingw] Control where win32 DLLs get installed., Dave Korn, 2009/08/15
- Re: [PATCH, take 3][cygwin|mingw] Control where win32 DLLs get installed., Ralf Wildenhues, 2009/08/15
- Re: [PATCH, take 3][cygwin|mingw] Control where win32 DLLs get installed., Dave Korn, 2009/08/15
Re: [PATCH, take 3][cygwin|mingw] Control where win32 DLLs get installed., Dave Korn, 2009/08/13
Re: [PATCH, take 3][cygwin|mingw] Control where win32 DLLs get installed., Peter Rosin, 2009/08/13