test-lib.sh: Add a test_set_editor function to safely set $VISUAL
In particular, this function correctly handles cases where the pwd contains spaces, quotes, and other troublesome metacharacters. Signed-off-by: Bryan Donlan <bdonlan@fushizen.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
065096c2b5
commit
02b3566003
@ -160,6 +160,22 @@ die () {
|
||||
|
||||
trap 'die' exit
|
||||
|
||||
# The semantics of the editor variables are that of invoking
|
||||
# sh -c "$EDITOR \"$@\"" files ...
|
||||
#
|
||||
# If our trash directory contains shell metacharacters, they will be
|
||||
# interpreted if we just set $EDITOR directly, so do a little dance with
|
||||
# environment variables to work around this.
|
||||
#
|
||||
# In particular, quoting isn't enough, as the path may contain the same quote
|
||||
# that we're using.
|
||||
test_set_editor () {
|
||||
FAKE_EDITOR="$1"
|
||||
export FAKE_EDITOR
|
||||
VISUAL='"$FAKE_EDITOR"'
|
||||
export VISUAL
|
||||
}
|
||||
|
||||
test_tick () {
|
||||
if test -z "${test_tick+set}"
|
||||
then
|
||||
|
Loading…
Reference in New Issue
Block a user