summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2007-11-10 14:30:22 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2007-11-10 14:30:22 +0000
commitaa7e584ee80ca8a7107c7af59fd827a399ac93cd (patch)
tree37fddc71d3a7418e11994f29b2e4d835697c6575
parent50c2a44e71ad38d5f1daba65f2b5ea9a65d4cf40 (diff)
downloadzsh-aa7e584ee80ca8a7107c7af59fd827a399ac93cd.tar.gz
zsh-aa7e584ee80ca8a7107c7af59fd827a399ac93cd.zip
Mikael Magnusson, 24076; 24081: cancel argument processing after widget
calls with general arguments
-rw-r--r--ChangeLog8
-rw-r--r--Doc/Zsh/zle.yo4
-rw-r--r--Functions/Zle/backward-kill-word-match2
-rw-r--r--Functions/Zle/delete-whole-word-match4
-rw-r--r--Functions/Zle/kill-word-match2
5 files changed, 15 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 7a3502f92..e2dd2b900 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-11-10 Peter Stephenson <p.w.stephenson@ntlworld.com>
+
+ * Mikael Magnusson, 24076; 24081: Doc/Zsh/zle.yo,
+ Functions/Zle/backward-kill-word-match,
+ Functions/Zle/delete-whole-word-match,
+ Functions/Zle/kill-word-match: need to cancel option
+ processing with -- after widget calls with arguments.
+
2007-11-09 Wayne Davison <wayned@users.sourceforge.net>
* unposted: Completion/Unix/Command/_rsync: Added missing
diff --git a/Doc/Zsh/zle.yo b/Doc/Zsh/zle.yo
index cafb96e90..db4becd74 100644
--- a/Doc/Zsh/zle.yo
+++ b/Doc/Zsh/zle.yo
@@ -554,7 +554,9 @@ appears as if the top-level widget called by the user were still
active. With the option tt(-w), tt(WIDGET) and related parameters are set
to reflect the widget being executed by the tt(zle) call.
-Any further arguments will be passed to the widget. If it is a shell
+Any further arguments will be passed to the widget; note that as
+standard argument handling is performed, any general argument list
+should be preceded by tt(-)tt(-). If it is a shell
function, these are passed down as positional parameters; for builtin
widgets it is up to the widget in question what it does with them.
Currently arguments are only handled by the incremental-search commands,
diff --git a/Functions/Zle/backward-kill-word-match b/Functions/Zle/backward-kill-word-match
index 28f7e76ee..ded4db2b5 100644
--- a/Functions/Zle/backward-kill-word-match
+++ b/Functions/Zle/backward-kill-word-match
@@ -23,7 +23,7 @@ while (( count-- )); do
if [[ -n $done || $LASTWIDGET = *kill* ]]; then
CUTBUFFER="$word$CUTBUFFER"
else
- zle copy-region-as-kill "$word"
+ zle copy-region-as-kill -- "$word"
fi
LBUFFER=$matched_words[1]
else
diff --git a/Functions/Zle/delete-whole-word-match b/Functions/Zle/delete-whole-word-match
index 978b95ee7..6f1ba6697 100644
--- a/Functions/Zle/delete-whole-word-match
+++ b/Functions/Zle/delete-whole-word-match
@@ -9,7 +9,7 @@
# saved for future yanking in the normal way.
emulate -L zsh
-setopt extendedglob
+setopt extendedglob xtrace
local curcontext=:zle:$WIDGET
local -a matched_words
@@ -49,7 +49,7 @@ if [[ $WIDGET = *kill* ]]; then
if [[ $LASTWIDGET = *kill* ]]; then
CUTBUFFER="$CUTBUFFER$word"
else
- zle copy-region-as-kill "$word"
+ zle copy-region-as-kill -- "$word"
fi
fi
BUFFER="${BUFFER[1,pos1]}${BUFFER[pos2,-1]}"
diff --git a/Functions/Zle/kill-word-match b/Functions/Zle/kill-word-match
index 55e253dea..5fcaeb86c 100644
--- a/Functions/Zle/kill-word-match
+++ b/Functions/Zle/kill-word-match
@@ -22,7 +22,7 @@ while (( count-- )); do
if [[ -n $done || $LASTWIDGET = *kill* ]]; then
CUTBUFFER="$CUTBUFFER$word"
else
- zle copy-region-as-kill $word
+ zle copy-region-as-kill -- $word
fi
RBUFFER=${(j..)matched_words[6,7]}
else