Re: [PATCH] git-sh-setup.sh: make GIT_EDITOR/core.editor/VISUAL/EDITOR accept commands
- From
David Kastrup <dak@gnu.org>
- Date
- Aug 1, 2007, 23:55 UTC
- Message-ID
- <85wswex11h.fsf@lola.goethe.zz>
- In-Reply-To
- <7vy7gu3kuh.fsf@assigned-by-dhcp.cox.net>
Junio C Hamano <gitster@pobox.com> writes:
Show 15 quoted lines
> David Kastrup <dak@gnu.org> writes: > >> David Kastrup <dak@gnu.org> 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