1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-29 19:00:57 +02:00
zsh/Completion/Zsh/Function/_zsh-mime-handler
2010-11-25 15:43:14 +00:00

19 lines
719 B
Text

#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=(${(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