diff options
| author | Peter Stephenson <pws@users.sourceforge.net> | 2010-11-25 15:43:14 +0000 |
|---|---|---|
| committer | Peter Stephenson <pws@users.sourceforge.net> | 2010-11-25 15:43:14 +0000 |
| commit | 2b361ad11671444831fef3b04bd610c26c2e19e9 (patch) | |
| tree | b10e67651fa3deebb5b24e175e351e5289676df1 /Completion/Zsh | |
| parent | 28434: make ${NAME:OFFSET} always use zero-offset (diff) | |
| download | zsh-2b361ad11671444831fef3b04bd610c26c2e19e9.tar zsh-2b361ad11671444831fef3b04bd610c26c2e19e9.tar.gz zsh-2b361ad11671444831fef3b04bd610c26c2e19e9.tar.bz2 zsh-2b361ad11671444831fef3b04bd610c26c2e19e9.tar.lz zsh-2b361ad11671444831fef3b04bd610c26c2e19e9.tar.xz zsh-2b361ad11671444831fef3b04bd610c26c2e19e9.tar.zst zsh-2b361ad11671444831fef3b04bd610c26c2e19e9.zip | |
users/15580: fix MIME handler completion on fallthrough
Diffstat (limited to 'Completion/Zsh')
| -rw-r--r-- | Completion/Zsh/Function/_zsh-mime-handler | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/Completion/Zsh/Function/_zsh-mime-handler b/Completion/Zsh/Function/_zsh-mime-handler index c11e5aba9..000be2b5c 100644 --- a/Completion/Zsh/Function/_zsh-mime-handler +++ b/Completion/Zsh/Function/_zsh-mime-handler @@ -1,9 +1,19 @@ #compdef zsh-mime-handler +# Given that the handler is likely to change the start of the command +# line, we'll try to maintain the position from the end of the words +# array. Hence for example CURRENT gets decremented by one if the +# handler drops off the start. +integer end_offset=$(( ${#words} - CURRENT )) + # zsh-mime-handler -l is supposed to print out the command line # with quoting to turn it into a full executable line. So # we need to use shell splitting to turn it into words and # then unquoting on those words. -words=(${(Q)${(z)"$(zsh-mime-handler -l ${words[2,-1]})"}}) +words=(${(z)"$(zsh-mime-handler -l "${(@)words[2,-1]}")"}) +# Careful unquoting: we need to keep a '' as a separate word. +words=("${(@Q)words}") + +(( CURRENT = ${#words} - end_offset )) _normal |
