From: David Kastrup Date: Thu, 11 Oct 2007 06:47:13 GMT Subject: Re: [PATCH] Fixing path quoting issues Message-ID: <854pgytafi.fsf@lola.goethe.zz> In-Reply-To: <470DC05A.8020209@viscovery.net> Johannes Sixt writes: > Jonathan del Strother schrieb: >> + cmt=`cat "$dotest/current"` > > This is ok, but... > >> + prev_head="`cat \"$dotest/prev_head\"`" > > ... there are shells out there in the wild that will get badly > confused by this sort of quoting and escaping. Butter use > > prev_head=$(cat "$dotest/prev_head") > > >> -VISUAL="$(pwd)/fake-editor.sh" >> +VISUAL="'$(pwd)/fake-editor.sh'" > > Huh? This looks very wrong. It is correct, modulo breaking when there are single quotes in the current path name. > What are the extra quotes needed for? Spaces in the current path name. > If they are really needed, isn't this a bug in > git-rebase--interactive.sh? No. > I question the usefulness of this patch. Why only fix breakage due > to spaces in the path? What about single-quotes, double-quotes? Double quotes would work. Single quotes wouldn't. You can do something like visualpath="$(pwd)" export visualpath VISUAL='"$visualpath/fake-editor.sh"' and this should work in all circumstances where VISUAL is interpreted as intended (which at the current point of time does not include git's C callers). > IMHO, it's not too much of a burden for developers to require "sane" > build directory paths. For a normal user, the only writable directories might be of the "C:\Programs and Data\User settings\Karl" variety. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum