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-10-14 15:05:40 +0000
committerTanaka Akira <akr@users.sourceforge.net>1999-10-14 15:05:40 +0000
commit9597b7505ab1cf64c246b4a32e14b0602c36b1b2 (patch)
tree97583fa3e3b2c9bcdc3d1f2dfa2baed17d0924c5 /Completion/Core/_main_complete
parentc0482994a91094dc8e89bddefdeabf36829e9eea (diff)
downloadzsh-9597b7505ab1cf64c246b4a32e14b0602c36b1b2.tar.gz
zsh-9597b7505ab1cf64c246b4a32e14b0602c36b1b2.tar.xz
zsh-9597b7505ab1cf64c246b4a32e14b0602c36b1b2.zip
manual/8249
Diffstat (limited to 'Completion/Core/_main_complete')
-rw-r--r--Completion/Core/_main_complete20
1 files changed, 20 insertions, 0 deletions
diff --git a/Completion/Core/_main_complete b/Completion/Core/_main_complete
index 330eb9161..4496f5bda 100644
--- a/Completion/Core/_main_complete
+++ b/Completion/Core/_main_complete
@@ -24,6 +24,8 @@
 
 local comp ret=1 _compskip
 
+typeset -U _lastdescr
+
 setopt localoptions nullglob rcexpandparam
 unsetopt markdirs globsubst shwordsplit nounset ksharrays
 
@@ -56,6 +58,24 @@ for post in "$comppostfuncs[@]"; do
 done
 comppostfuncs=()
 
+_lastdescr=( "\`${(@)^_lastdescr:#}'" )
+if [[ compstate[nmatches] -eq 0 &&
+      -n "$compconfig[warning_format]" && $#_lastdescr -ne 0 ]]; then
+  local str
+
+  compstate[list]=list
+  compstate[force_list]=yes
+  compstate[insert]=''
+
+  case $#_lastdescr in
+  1) str="$_lastdescr[1]";;
+  2) str="$_lastdescr[1] or $_lastdescr[2]";;
+  *) str="${(j:, :)_lastdescr[1,-2]}, or $_lastdescr[-1]";;
+  esac
+
+  compadd -UX "${compconfig[warning_format]//\\%d/$str}" -n ''
+fi
+
 [[ "$compconfig[last_prompt]" = always ]] && compstate[last_prompt]=yes
 
 _lastcomp=( "${(@kv)compstate}" )