Re: [PATCH 00/11] completion: general cleanups

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-----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.

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-----
--
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




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]