When using TAB completion (via expand-or-complete, and "setopt
globcomplete") on a partial hostname where alternatives with a common
suffix exist, the second invocation of TAB will insert some character(s)
that make it fail to complete afterwards.
% autoload -Uz compinit
% compinit
% echo "Host test-05827d88.foo.bar test-6cae9ce0.foo.bar" > ssh_config
% setopt globcomplete
With
% ssh -F ssh_config test-<TAB>
You will get:
% ssh -F ssh_config test-|.foo.bar
Pressing TAB again results in:
% ssh -F ssh_config test-|BR.foo.bar
The characters being inserted seem to come from the "bar".
With ".dot.com" at the end I am seeing "CM" being inserted.
With "Host test-05.dot.com test-6c.dot.com" however "D" is being
inserted.
And with a single TLD (i.e. "test-05827d88.com test-6cae9ce0.com") it
works.
In _ssh_hosts the following is used, which seems to be relevant, since
the inserted characters are uppercased:
    compadd -M 'm:{a-zA-Z}={A-Za-z} r:|.=* r:|=*' "$@" $config_hosts
zsh 5.2-dev-1, 062aeca.
Thanks,
Daniel.
Attachment:
signature.asc
Description: OpenPGP digital signature