On Sat, Apr 27, 2013 at 10:40 AM, Manlio Perillo <manlio.perillo@xxxxxxxxx> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Il 27/04/2013 15:07, Felipe Contreras ha scritto: >> [...] >> This should do the trick. No? >> >> --- a/contrib/completion/git-completion.bash >> +++ b/contrib/completion/git-completion.bash >> @@ -262,16 +262,17 @@ __git_ls_files_helper () >> # If provided, only files within the specified directory are listed. >> # Sub directories are never recursed. Path must have a trailing >> # slash. >> +# 3. Compat mode; set to enable. >> __git_index_files () >> { >> - local dir="$(__gitdir)" root="${2-.}" file >> + local dir="$(__gitdir)" root="${2-.}" file old="${3-}" >> >> if [ -d "$dir" ]; then >> __git_ls_files_helper "$root" "$1" | >> while read -r file; do >> case "$file" in >> - ?*/*) echo "${file%%/*}/" ;; >> - *) echo "$file " ;; >> + ?*/*) echo "${file%%/*}${old:+/}" ;; >> + *) echo "${file}${old:+ }" ;; >> esac >> done | sort | uniq >> fi >> @@ -480,7 +481,7 @@ __git_complete_revlist_file () >> # The exception is --committable, which finds the files appropriate commit. >> __git_complete_index_file () >> { >> - local pfx="" cur_="$cur" >> + local pfx="" cur_="$cur" old >> >> case "$cur_" in >> ?*/*) >> @@ -490,7 +491,8 @@ __git_complete_index_file () >> ;; >> esac >> >> - __gitcomp_nl "$(__git_index_files "$1" "$pfx")" "$pfx" "$cur_" "" >> + compopt -o filenames +o nospace 2> /dev/null || old=1 >> + __gitcomp_nl "$(__git_index_files "$1" "$pfx" "$old")" "$pfx" "$cur_" "" >> } >> >> __git_complete_file () >> > > I like the idea (but I have not tested it), however compopt is called > two times, for each completion. Why two times? > Maybe we can test for `-o filenames` support when script is loaded, > where currently there is a Bash version check, and set a global variable? Yeah, that's the way bash-completion used to do it. But I wonder if we should be worrying about this at this point, even bash-completion dropped support for bash < 4 more than two years ago, and even debian stable is at 4.1. http://anonscm.debian.org/gitweb/?p=bash-completion/bash-completion.git;a=commitdiff;h=f1b3be235722d1ea51160acf50120eb88995a5b7 Cheers. -- Felipe Contreras -- 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