summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2001-04-02 11:05:27 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2001-04-02 11:05:27 +0000
commit4d58238a0aac0aa46f9cc396fd0e7e9590495ebb (patch)
tree52a637d656e20b03edfae467954b1ce94c8f1f41
parent881e049f31197c6c1810709314cc6ea695c7d9bf (diff)
downloadzsh-4d58238a0aac0aa46f9cc396fd0e7e9590495ebb.tar.gz
zsh-4d58238a0aac0aa46f9cc396fd0e7e9590495ebb.zip
moved from Completion/Core/_all_matches
-rw-r--r--Completion/Base/Completer/_all_matches43
1 files changed, 43 insertions, 0 deletions
diff --git a/Completion/Base/Completer/_all_matches b/Completion/Base/Completer/_all_matches
new file mode 100644
index 000000000..f33d78040
--- /dev/null
+++ b/Completion/Base/Completer/_all_matches
@@ -0,0 +1,43 @@
+#autoload
+
+_all_matches() {
+ local old
+
+ zstyle -s ":completion:${curcontext}:" old-matches old
+
+ if [[ "$old" = (only|true|yes|1|on) ]]; then
+
+ if [[ -n "$compstate[old_list]" ]]; then
+ compstate[insert]=all
+ compstate[old_list]=keep
+ return 0
+ fi
+
+ [[ "$old" = *only* ]] && return 1
+ fi
+
+ (( $comppostfuncs[(I)_all_matches_end] )) ||
+ comppostfuncs=( "$comppostfuncs[@]" _all_matches_end )
+
+ _all_matches_context=":completion:${curcontext}:"
+
+ return 1
+}
+
+_all_matches_end() {
+ local not
+
+ zstyle -s "$_all_matches_context" avoid-completer not ||
+ not=( _expand _old_list _correct _approximate )
+
+ if [[ "$compstate[nmatches]" -gt 1 && $not[(I)(|_)$_completer] -eq 0 ]]; then
+ local expl
+
+ _description all-matches expl 'all matches'
+ compadd "$expl[@]" -C
+ fi
+
+ unset _all_matches_context
+}
+
+_all_matches "$@"