mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-17 15:01:40 +02:00
zcalc completion idiosyncracies with :!
This commit is contained in:
parent
627c7db0e5
commit
aadd07e05f
2 changed files with 8 additions and 10 deletions
|
@ -22,7 +22,7 @@ _zcalc_line_escapes() {
|
|||
_zcalc_line() {
|
||||
local expl
|
||||
|
||||
if [[ CURRENT -eq 1 && $words[1] != ":!"* ]]; then
|
||||
if [[ CURRENT -eq 1 && $words[1] != ":"(\\|)"!"* ]]; then
|
||||
local -a alts
|
||||
if [[ $words[1] = (|:*) ]]; then
|
||||
alts=("command-escapes:command escape:_zcalc_line_escapes")
|
||||
|
@ -35,15 +35,13 @@ _zcalc_line() {
|
|||
fi
|
||||
|
||||
case $words[1] in
|
||||
(":!"*)
|
||||
if [[ $words[1] = ":!" ]]; then
|
||||
(":"(\\|)"!"*)
|
||||
if [[ $words[1] = ":"(\\|)"!" && CURRENT -gt 1 ]]; then
|
||||
shift words
|
||||
(( CURRENT >1 && CURRENT-- ))
|
||||
(( CURRENT-- ))
|
||||
else
|
||||
words[1]=${words[1]##:\!}
|
||||
if (( CURRENT == 1 )); then
|
||||
compset -P ":\!"
|
||||
fi
|
||||
words[1]=${words[1]##:(\\|)\!}
|
||||
compset -P ':(\\|)!'
|
||||
fi
|
||||
_normal
|
||||
;;
|
||||
|
|
|
@ -179,9 +179,9 @@ while vared -cehp "${(%)ZCALCPROMPT}" line; do
|
|||
line="${${line##[[:blank:]]#}%%[[:blank:]]#}"
|
||||
case "$line" in
|
||||
# Escapes begin with a colon
|
||||
(:(\\|)!*)
|
||||
(:(\\|)\!*)
|
||||
# shell escape: handle completion's habit of quoting the !
|
||||
eval ${line##:\![[:blank:]]#}
|
||||
eval ${line##:(\\|)\![[:blank:]]#}
|
||||
line=
|
||||
continue
|
||||
;;
|
||||
|
|
Loading…
Reference in a new issue