Skip to content

Commit 8b4c2e0

Browse files
szedergitster
authored andcommitted
completion: don't return with error from __gitcomp_file_direct()
In __gitcomp_file_direct() we tell Bash that it should handle our possible completion words as filenames with the following piece of cleverness: # use a hack to enable file mode in bash < 4 compopt -o filenames +o nospace 2>/dev/null || compgen -f /non-existing-dir/ > /dev/null Unfortunately, this makes this function always return with error when it is not invoked in real completion, but e.g. in tests of 't9902-completion.sh': - First the 'compopt' line errors out - either because in Bash v3.x there is no such command, - or because in Bash v4.x it complains about "not currently executing completion function", - then 'compgen' just silently returns with error because of the non-existing directory. Since __gitcomp_file_direct() is now the last command executed in __git_complete_index_file(), that function returns with error as well, which prevents it from being invoked in tests directly as is, and would require extra steps in test to hide its error code. So let's make sure that __gitcomp_file_direct() doesn't return with error, because in the tests coming in the following patch we do want to exercise __git_complete_index_file() directly, __gitcomp_file() contains the same construct, and thus it, too, always returns with error. Update that function accordingly as well. While at it, also remove the space from between the redirection operator and the filename in both functions. Signed-off-by: SZEDER Gábor <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 7b00342 commit 8b4c2e0

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

contrib/completion/git-completion.bash

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,8 @@ __gitcomp_file_direct ()
420420

421421
# use a hack to enable file mode in bash < 4
422422
compopt -o filenames +o nospace 2>/dev/null ||
423-
compgen -f /non-existing-dir/ > /dev/null
423+
compgen -f /non-existing-dir/ >/dev/null ||
424+
true
424425
}
425426

426427
# Generates completion reply with compgen from newline-separated possible
@@ -442,7 +443,8 @@ __gitcomp_file ()
442443

443444
# use a hack to enable file mode in bash < 4
444445
compopt -o filenames +o nospace 2>/dev/null ||
445-
compgen -f /non-existing-dir/ > /dev/null
446+
compgen -f /non-existing-dir/ >/dev/null ||
447+
true
446448
}
447449

448450
# Execute 'git ls-files', unless the --committable option is specified, in

0 commit comments

Comments
 (0)