From: David Kastrup Date: Wed, 01 Aug 2007 23:55:38 GMT Subject: Re: [PATCH] git-sh-setup.sh: make GIT_EDITOR/core.editor/VISUAL/EDITOR accept commands Message-ID: <85wswex11h.fsf@lola.goethe.zz> In-Reply-To: <7vy7gu3kuh.fsf@assigned-by-dhcp.cox.net> Junio C Hamano writes: > David Kastrup writes: > >> David Kastrup writes: >> >>> The previous code only allowed specifying a single executable rather >>> than a complete command like "emacsclient --alternate-editor vi" in >> >> Oops, won't apply cleanly. I found that I had already made a >> different (trivial) patch previously. Let me try again and fold that >> patch in manually. > > It is not just "won't apply". What if GIT_DIR had spaces (which > is fine) and single-quotes in it? Wouldn't it percolate down to > $@ because it becomes the leading directory of the temporary > file name? And you quote '"$@"' and eval it, now what happens? The eval removes the outer single quotes and then evaluates the remaining "$@" which leaves the original argument structure completely intact: What got passed into git_editor as 3 arguments will remain as 3 arguments, and even multiple embedded spaces in one argument will get preserved perfectly. If you don't believe me, throw whatever you want at it. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum