On Fri, Sep 28, 2012 at 12:23:47PM -0700, Junio C Hamano wrote: > >> > @@ -57,7 +57,7 @@ run_completion () > >> > test_completion () > >> > { > >> > test $# -gt 1 && echo "$2" > expected > >> > - run_completion "$@" && > >> > + run_completion $1 && > >> > test_cmp expected out > >> > } > >> > >> I can understand the other three hunks, but this one is fishy. > >> Shouldn't "$1" be inside a pair of dq? I.e. > >> > >> + run_completion "$1" && > > > > No. $1 holds all words on the command line. If it was between a pair > > of dq, then the whole command line would be passed to the completion > > script as a single word. > > And these "words" can be split at $IFS boundaries without any > issues? IOW, nobody would ever want to make words array in the > run_completion function to ['git' 'foo bar' 'baz']? It might be simpler to just convert test_completion into the test_completion_long I added in my series; the latter takes the expected output on stdin, leaving the actual arguments free to represent the real command-line. E.g., your example would become: test_completion git "foo bar" baz <<-\EOF ... expected output ... EOF -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html