This series fixes the expansion issues with compgen reported by Jeroen Meijer a while ago in http://article.gmane.org/gmane.comp.version-control.git/201596 The problem is that the compgen Bash-builtin performs expansion on all words in the wordlist given to its -W option, breaking Git's completion script when e.g. refs or filenames contain expandable substrings. Since compgen has no option to turn off this expansion and we only use a small subset of compgen's functionality, this series replaces compgen in __gitcomp() and __gitcomp_nl() by some shell logic and a small awk script, respectively. Patches 1 and 2 are test enhancements and fixes, while 3 and 4 add new tests to make sure I don't break anything and to demonstrate the issues, respectively. The actual bugfixes are in patches 5 and 6. Finally, patch 7 is a cleanup made possible by patch 6 (could be squashed into 6). In the future we might want/need to fill COMPREPLY directly when completing a path in the <tree>:<path> notation instead using __gitcomp_nl() there, because paths can contain newlines, too. Compared to Felipe's series from yesterday, this series has more tests, more descriptive commit messages, and it's faster. However, it doesn't include his 1/5 (completion: get rid of empty COMPREPLY assignments). Footnote: check the patchlist below, and notice how format-patch put patches 4 and 5 into the same line. SZEDER Gábor (7): completion: make the 'basic' test more tester-friendly completion: fix args of run_completion() test helper completion: add tests for the __gitcomp_nl() completion helper function completion: add tests for invalid variable name among completion words completion: fix expansion issues in __gitcomp_nl() completion: fix expansion issue in __gitcomp() completion: remove the now unused __gitcomp_1() internal helper function contrib/completion/git-completion.bash | 57 ++++++++------- t/t9902-completion.sh | 123 ++++++++++++++++++++++++++++++--- 2 files changed, 147 insertions(+), 33 deletions(-) -- 1.8.0.220.g4d14ece -- 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