Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: PATCH: Update _bind_addresses to work with new ifconfig output (and old).

On 10 December 2011 21:14, Danek Duvall <duvall@xxxxxxxxxxxxxx> wrote:
> On Sat, Dec 10, 2011 at 08:32:52PM +0100, Mikael Magnusson wrote:
>> diff --git a/Completion/Unix/Type/_bind_addresses b/Completion/Unix/Type/_bind_addresses
>> index 606de3f..cbe7be2 100644
>> --- a/Completion/Unix/Type/_bind_addresses
>> +++ b/Completion/Unix/Type/_bind_addresses
>> @@ -11,5 +11,5 @@ case $OSTYPE in
>>    linux*) ;&
>>    *)
>>      _wanted bind-addresses expl 'bind address' compadd "$@" - \
>> -      ${${${(M)${(f)"$(ifconfig -a)"}:#*addr:*}##*addr:}%% *}
>> +      ${${${(M)${(f)"$(ifconfig -a)"}:#*inet*}##*inet (addr:)(#c0,1)}%% *}
>>  esac
> If you put a space after "inet" and before the star, it'll work when you
> have ipv6 addresses (at least on Solaris, whose ifconfig has the new output
> you show).  Otherwise, you get "inet6" as a completion, which is a bit
> silly.  Of course, you don't get the actual ipv6 addresses, but that's
> probably not a big priority yet.

Thanks, I've updated the patch. Does it complete ipv6 addresses if you
add 6(#c0,1) after the second inet instead?
${${${(M)${(f)"$(ifconfig -a)"}:#*inet*}##*inet6(#c0,1) (addr:)(#c0,1)}%% *}
But maybe if it's an inet6 it should also be surrounded by [], I'm not
super familiar with ipv6 and what programs expect since I don't use
it. At least ssh(1) mentions that you can do so in the contexts that
this completer is used in from _ssh. I do have access to a host with
ipv6 addresses, and those have a /64 or so without a space at the end
too, I guess that would have to be removed too then. Is it the same
with the new output? (That host has the old output).

Mikael Magnusson

Messages sorted by: Reverse Date, Date, Thread, Author