Re: [PATCH 00/11] completion: general cleanups
- From
Manlio Perillo <manlio.perillo@gmail.com>
- Date
- Apr 27, 2013, 15:40 UTC
- Message-ID
- <517BF167.7090300@gmail.com>
- In-Reply-To
- <CAMP44s3h43S=A7+QEWuv0iefxbXyKZsiJ2QMdc-XiouoO3yYng@mail.gmail.com>
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Il 27/04/2013 15:07, Felipe Contreras ha scritto:
Show 46 quoted lines
> [...]
> 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.
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?
Regards Manlio -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAlF78WcACgkQscQJ24LbaUSjzgCfWq26RMqFLgGU9B8C0mb+Wogu A5IAnjKpupGbdOZAKtYZkglYKSmbqtqK =iTzW -----END PGP SIGNATURE-----