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

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

 



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




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