summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Functions/Zle/keeper27
2 files changed, 20 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index c24084b1a..659aba150 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2013-10-27  Barton E. Schaefer  <schaefer@zsh.org>
 
+	* unposted (cf. users/18063): Functions/Zle/keeper: clean up
+	some syntax nits, add working link to old Unix Review article
+
 	* 31912: Src/exec.c: in closemn(), distinguish closing for >&-
 	from closing for a real redirect.  Fixes knock-on multios bug
 	introduced by workers/20666 way back in 2005.
diff --git a/Functions/Zle/keeper b/Functions/Zle/keeper
index c29b22d6f..a40125771 100644
--- a/Functions/Zle/keeper
+++ b/Functions/Zle/keeper
@@ -4,6 +4,9 @@
 # Shell Corner column on UnixReview.com in January 2005 at the URL
 # <http://www.unixreview.com/documents/s=9513/ur0501a/ur0501a.htm>
 #
+# Article still available on the Wayback Machine:
+# <http://web.archive.org/web/20050207041146/http://www.unixreview.com/documents/s=9513/ur0501a/ur0501a.htm>
+#
 # A few minor edits have been made to those functions for this file.  Key
 # bindings are commented out to avoid clashes with any existing bindings.
 ##
@@ -69,17 +72,21 @@ zstyle ':completion:expand-kept-result:*' completer _insert_kept
 # "_insert_kept".
 
 _expand_word_and_keep() {
-    function compadd() {
-        local -A args
-        zparseopts -E -A args J:
-        if [[ $args[-J] == all-expansions ]]
-        then
-            builtin compadd -A kept "$@"
-            kept=( ${(Q)${(z)kept}} )
-        fi
-        builtin compadd "$@"
+    {
+        function compadd {
+            local -A args
+            zparseopts -E -A args J:
+            if [[ $args[-J] == all-expansions ]]
+            then
+                builtin compadd -A kept "$@"
+                kept=( ${(Q)${(z)kept}} )
+            fi
+            builtin compadd "$@"
+        }
+        _expand_word
+    } always {
+        unfunction compadd
     }
-    { _expand_word } always { unfunction compadd }
 }
 
 zle -C _expand_word complete-word _expand_word_and_keep