about summary refs log tree commit diff
path: root/Completion/Core/_main_complete
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>1999-12-14 10:14:51 +0000
committerTanaka Akira <akr@users.sourceforge.net>1999-12-14 10:14:51 +0000
commit259b64d0d75fc6c014609fc790f6ce671206f0b5 (patch)
treef06b1ffedc79cc3bf0a17dd3f91df4bc339a1e96 /Completion/Core/_main_complete
parent8cb0bdc6a089e3ca58af81dffe4695b45a4cc04e (diff)
downloadzsh-259b64d0d75fc6c014609fc790f6ce671206f0b5.tar.gz
zsh-259b64d0d75fc6c014609fc790f6ce671206f0b5.tar.xz
zsh-259b64d0d75fc6c014609fc790f6ce671206f0b5.zip
zsh-workers/9035
Diffstat (limited to 'Completion/Core/_main_complete')
-rw-r--r--Completion/Core/_main_complete163
1 files changed, 83 insertions, 80 deletions
diff --git a/Completion/Core/_main_complete b/Completion/Core/_main_complete
index 285413726..7b2721e0b 100644
--- a/Completion/Core/_main_complete
+++ b/Completion/Core/_main_complete
@@ -69,79 +69,66 @@ for comp; do
   fi
 done
 
-# See which tags were or were not used.
-
-_used_tags=( "${(@)_tried_tags:#${(j:|:)~${(@)_failed_tags//\[/\\[}//\]/\\]}}" )
-_unused_tags=( "${(@)_offered_tags:#${(j:|:)~${(@)_used_tags//\[/\\[}//\]/\\]}}" )
-
-# Now call the post-functions.
-
-for post in "$comppostfuncs[@]"; do
-  "$post"
-done
-comppostfuncs=()
-
-_lastdescr=( "\`${(@)^_lastdescr:#}'" )
-
-[[ _last_nmatches -ge 0 && _last_nmatches -ne compstate[nmatches] ]] &&
-    _menu_style=( "$_last_menu_style[@]" "$_menu_style[@]" )
-
-if [[ "$compstate[insert]" = "$_saved_insert" ]]; then
-  if [[ -n "$_menu_style[(r)(yes|true|1|on)]" ||
-        ( -n "$_menu_style[(r)auto*]" &&
-          "$compstate[insert]" = automenu ) ]]; then
-    compstate[insert]=menu
-  elif [[ -n "$_menu_style[(r)auto*]" &&
-          "$compstate[insert]" != automenu ]]; then
-    compstate[insert]=automenu-unambiguous
-  elif [[ -n "$_menu_style[(r)(no|false|0|off)]" ]]; then
-    compstate[insert]=unambiguous
-  elif [[ -n "$_def_menu_style[(r)(yes|true|1|on)]" ||
-        ( -n "$_def_menu_style[(r)auto*]" &&
-          "$compstate[insert]" = automenu ) ]]; then
-    compstate[insert]=menu
-  elif [[ -n "$_def_menu_style[(r)auto*]" &&
-          "$compstate[insert]" != automenu ]]; then
-    compstate[insert]=automenu-unambiguous
-  elif [[ -n "$_def_menu_style[(r)(no|false|0|off)]" ]]; then
-    compstate[insert]=unambiguous
+if (( $compstate[nmatches] )); then
+  [[ _last_nmatches -ge 0 && _last_nmatches -ne compstate[nmatches] ]] &&
+      _menu_style=( "$_last_menu_style[@]" "$_menu_style[@]" )
+
+  if [[ "$compstate[insert]" = "$_saved_insert" ]]; then
+    if [[ -n "$_menu_style[(r)(yes|true|1|on)]" ||
+          ( -n "$_menu_style[(r)auto*]" &&
+            "$compstate[insert]" = automenu ) ]]; then
+      compstate[insert]=menu
+    elif [[ -n "$_menu_style[(r)auto*]" &&
+            "$compstate[insert]" != automenu ]]; then
+      compstate[insert]=automenu-unambiguous
+    elif [[ -n "$_menu_style[(r)(no|false|0|off)]" ]]; then
+      compstate[insert]=unambiguous
+    elif [[ -n "$_def_menu_style[(r)(yes|true|1|on)]" ||
+          ( -n "$_def_menu_style[(r)auto*]" &&
+            "$compstate[insert]" = automenu ) ]]; then
+      compstate[insert]=menu
+    elif [[ -n "$_def_menu_style[(r)auto*]" &&
+            "$compstate[insert]" != automenu ]]; then
+      compstate[insert]=automenu-unambiguous
+    elif [[ -n "$_def_menu_style[(r)(no|false|0|off)]" ]]; then
+      compstate[insert]=unambiguous
+    fi
   fi
-fi
-
-_menu_style=( "$_menu_style[@]" "$_def_menu_style[@]" )
-
-if [[ "$compstate[insert]" = *menu ]]; then
-  if [[ -n "$_menu_style[(r)no-select*]" ]]; then
-    unset SELECTMIN
-  else
-    sel=( "${(@M)_menu_style:#select*}" )
 
-    if (( $# )); then
-      local min=9999999 i num
-
-      for i in "$sel[@]"; do
-        if [[ "$i" = *\=* ]]; then
-	  num="${i#*\=}"
-	  [[ num -lt 0 ]] && num=0
-	else
-	  num=0
-	fi
-	[[ num -lt min ]] && min="$num"
-
-	(( min )) || break
-      done
-
-      SELECTMIN="$min"
+  _menu_style=( "$_menu_style[@]" "$_def_menu_style[@]" )
+
+  if [[ "$compstate[insert]" = *menu ]]; then
+    if [[ -n "$_menu_style[(r)no-select*]" ]]; then
+      unset SELECTMIN
+    else
+      sel=( "${(@M)_menu_style:#select*}" )
+
+      if (( $# )); then
+        local min=9999999 i num
+
+        for i in "$sel[@]"; do
+          if [[ "$i" = *\=* ]]; then
+  	    num="${i#*\=}"
+  	    [[ num -lt 0 ]] && num=0
+  	  else
+  	    num=0
+  	  fi
+  	  [[ num -lt min ]] && min="$num"
+  
+	  (( min )) || break
+        done
+
+        SELECTMIN="$min"
+      fi
     fi
   fi
-fi
-
-if [[ compstate[nmatches] -eq 0 &&
-      compstate[matcher] -eq compstate[total_matchers] &&
-      $#_lastdescr -ne 0 ]] &&
-   zstyle -s ":completion${curcontext}:warnings" format format; then
+elif [[ compstate[matcher] -eq compstate[total_matchers] &&
+        $#_lastdescr -ne 0 ]] &&
+     zstyle -s ":completion${curcontext}:warnings" format format; then
   local str
 
+  _lastdescr=( "\`${(@)^_lastdescr:#}'" )
+
   compstate[list]='list force'
   compstate[insert]=''
 
@@ -155,18 +142,34 @@ if [[ compstate[nmatches] -eq 0 &&
   compadd -UX "$format" -n ''
 fi
 
-_lastcomp=( "${(@kv)compstate}" )
-_lastcomp[completer]="$comp"
-_lastcomp[prefix]="$PREFIX"
-_lastcomp[suffix]="$SUFFIX"
-_lastcomp[iprefix]="$IPREFIX"
-_lastcomp[isuffix]="$ISUFFIX"
-_lastcomp[qiprefix]="$QIPREFIX"
-_lastcomp[qisuffix]="$QISUFFIX"
-_lastcomp[offered_tags]="${(j.:.)_offered_tags}"
-_lastcomp[tried_tags]="${(j.:.)_tried_tags}"
-_lastcomp[failed_tags]="${(j.:.)_failed_tags}"
-_lastcomp[unused_tags]="${(j.:.)_unused_tags}"
-_lastcomp[used_tags]="${(j.:.)_used_tags}"
+if [[ compstate[matcher] -eq compstate[total_matchers] ||
+      compstate[nmatches] -ne 0 ]]; then
+
+  # See which tags were or were not used.
+
+  _used_tags=( "${(@)_tried_tags:#${(j:|:)~${(@)_failed_tags//\[/\\[}//\]/\\]}}" )
+  _unused_tags=( "${(@)_offered_tags:#${(j:|:)~${(@)_used_tags//\[/\\[}//\]/\\]}}" )
+
+  # Now call the post-functions.
+
+  for post in "$comppostfuncs[@]"; do
+    "$post"
+  done
+  comppostfuncs=()
+
+  _lastcomp=( "${(@kv)compstate}" )
+  _lastcomp[completer]="$comp"
+  _lastcomp[prefix]="$PREFIX"
+  _lastcomp[suffix]="$SUFFIX"
+  _lastcomp[iprefix]="$IPREFIX"
+  _lastcomp[isuffix]="$ISUFFIX"
+  _lastcomp[qiprefix]="$QIPREFIX"
+  _lastcomp[qisuffix]="$QISUFFIX"
+  _lastcomp[offered_tags]="${(j.:.)_offered_tags}"
+  _lastcomp[tried_tags]="${(j.:.)_tried_tags}"
+  _lastcomp[failed_tags]="${(j.:.)_failed_tags}"
+  _lastcomp[unused_tags]="${(j.:.)_unused_tags}"
+  _lastcomp[used_tags]="${(j.:.)_used_tags}"
+fi
 
 return ret