about summary refs log tree commit diff
path: root/Completion/Core/_expand
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>1999-12-06 11:39:12 +0000
committerTanaka Akira <akr@users.sourceforge.net>1999-12-06 11:39:12 +0000
commitbb93d135ba484cd423ae71b1686c63ac2c1c654f (patch)
treeea3a27c4f3a5855eb3c176ad322c2d9e225e9d9d /Completion/Core/_expand
parentfb5a1bc4dce28016a61eb11033bfb9a23ea74b5e (diff)
downloadzsh-bb93d135ba484cd423ae71b1686c63ac2c1c654f.tar.gz
zsh-bb93d135ba484cd423ae71b1686c63ac2c1c654f.tar.xz
zsh-bb93d135ba484cd423ae71b1686c63ac2c1c654f.zip
zsh-workers/8911
Diffstat (limited to 'Completion/Core/_expand')
-rw-r--r--Completion/Core/_expand49
1 files changed, 28 insertions, 21 deletions
diff --git a/Completion/Core/_expand b/Completion/Core/_expand
index 7598b6f88..471ad370e 100644
--- a/Completion/Core/_expand
+++ b/Completion/Core/_expand
@@ -84,8 +84,6 @@ fi
 
 exp=( "${(@)${(@)${(@q)exp}//\\\\=/=}/#=/\\=}" )
 
-_setup original expansions all-expansions
-
 # We have expansions, should we menucomplete them?
 
 if [[ -z "$menu" ]]; then
@@ -95,16 +93,20 @@ if [[ -z "$menu" ]]; then
   # probably also adding the original string.
 
   if [[ -z "$compstate[insert]" ]]; then
+    _setup all-expansions
     compadd -U -V all-expansions -Q - "$exp[@]"
   else
-    [[ -n "$orig" && "$orig" != *last* ]] &&
-        compadd "$expl[@]" -UQ -V original - "$word"
-
-    compadd -UQ -V _expand - "$exp"
-
-    [[ -n "$orig" && "$orig" = *last* ]] &&
-        compadd "$expl[@]" -UQ -V original - "$word"
+    if [[ -n "$orig" && "$orig" != *last* ]]; then
+      _setup original
+      compadd "$expl[@]" -UQ -V original - "$word"
+    fi
+    _setup expansions
+    compadd -UQ -V expansions - "$exp"
 
+    if [[ -n "$orig" && "$orig" = *last* ]]; then
+      _setup original
+      compadd "$expl[@]" -UQ -V original - "$word"
+    fi
     compstate[insert]=menu
   fi
 else
@@ -115,24 +117,29 @@ else
   # Now add the expansion string, probably also adding the original
   # and/or the string containing all expanded string.
 
-  [[ -n "$orig" && "$orig" != *last* ]] &&
-      compadd "$expl[@]" -UQ -V original - "$word"
-
-  [[ $#exp -ne 1 && "$menu" = *last* && "$menu" != *only* ]] &&
-      compadd "$expl2[@]" -UQ -V all-expansions - "$exp"
-
+  if [[ -n "$orig" && "$orig" != *last* ]]; then
+    _setup original
+    compadd "$expl[@]" -UQ -V original - "$word"
+  fi
+  if [[ $#exp -ne 1 && "$menu" = *last* && "$menu" != *only* ]]; then
+    _setup all-expansions
+    compadd "$expl2[@]" -UQ -V all-expansions - "$exp"
+  fi
+  _setup expansions
   if [[ -z "$prompt" ]]; then
     compadd -UQ $group expansions - "$exp[@]"
   else
     compadd -UQ -X "${prompt//\\%o/$word}" \
             $group expansions - "$exp[@]"
   fi
-  [[ $#exp -ne 1 && "$menu" != *last* && "$menu" != *only* ]] &&
-      compadd "$expl2[@]" -UQ -V all-expansions - "$exp"
-
-  [[ -n "$orig" && "$orig" = *last* ]] &&
-      compadd "$expl[@]" -UQ -V original - "$word"
-
+  if [[ $#exp -ne 1 && "$menu" != *last* && "$menu" != *only* ]]; then
+    _setup all-expansions
+    compadd "$expl2[@]" -UQ -V all-expansions - "$exp"
+  fi
+  if [[ -n "$orig" && "$orig" = *last* ]]; then
+    _setup original
+    compadd "$expl[@]" -UQ -V original - "$word"
+  fi
   compstate[insert]=menu
 fi