about summary refs log tree commit diff
path: root/Completion/User/_perldoc
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>1999-09-16 16:23:27 +0000
committerTanaka Akira <akr@users.sourceforge.net>1999-09-16 16:23:27 +0000
commit7cfb3626e5d78b632e5b62c200fdd906cf62c108 (patch)
tree5fc3c02692177559c98bf9ca1f42ed3ad5e4af2c /Completion/User/_perldoc
parent2218c5e75d4fdd9b688d3cbe1329e690a660936e (diff)
downloadzsh-7cfb3626e5d78b632e5b62c200fdd906cf62c108.tar.gz
zsh-7cfb3626e5d78b632e5b62c200fdd906cf62c108.tar.xz
zsh-7cfb3626e5d78b632e5b62c200fdd906cf62c108.zip
zsh-workers/7871
Diffstat (limited to 'Completion/User/_perldoc')
-rw-r--r--Completion/User/_perldoc35
1 files changed, 19 insertions, 16 deletions
diff --git a/Completion/User/_perldoc b/Completion/User/_perldoc
index d15650448..acd772b00 100644
--- a/Completion/User/_perldoc
+++ b/Completion/User/_perldoc
@@ -1,23 +1,26 @@
 #compdef perldoc
 #
-#
 # _perldoc - zsh completion function for perldoc
 #
 # Adam Spiers <adam@spiers.net>
 #
-# Behaviour should be roughly equivalent to:
-# compctl -k perl_modules -k perl_basepods -f 
-#           -x 'c[-1,-f]' -k perl_funcs --
-#	  + -k man_pages
-#     perldoc
 
-if [[ $CURRENT -eq 3 && $words[2] == '-f' ]]; then
-  _perl_builtin_funcs
-elif [[ $CURRENT -eq 3 && $words[2] == '-q' ]]; then
-  zle -R "I can't read your mind!"
-  return 1
-else
-  _perl_modules
-  _perl_basepods
-  _path_files -/ -g '*.(pod|pm)'
-fi
+_perldoc () {
+    _arguments -s \
+        '-h:help:' \
+        '(-q)-f:Perl built-in function:_perl_builtin_funcs:*:' \
+        '(-f)-q:Perl FAQ keyword:' \
+        '*:Perl pod pages:_perl_pods'
+}
+
+_perl_pods () {
+    local nm="$compstate[nmatches]"
+
+   _perl_modules
+   _perl_basepods
+   _path_files -J 'Perl modules and .pods' -/ -g '*.(pod|pm)'
+
+    [[ nm -ne "$compstate[nmatches]" ]]
+}
+
+_perldoc "$@"