summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Unix/Command/_sh17
-rw-r--r--Completion/Unix/Command/_zsh8
2 files changed, 9 insertions, 16 deletions
diff --git a/Completion/Unix/Command/_sh b/Completion/Unix/Command/_sh
index 1b5112212..2afb46621 100644
--- a/Completion/Unix/Command/_sh
+++ b/Completion/Unix/Command/_sh
@@ -1,13 +1,4 @@
-#compdef sh ksh bash zsh csh tcsh rc
-
-if [[ $service == zsh ]]; then
-  # try a bit harder
-  if [[ ${words[CURRENT-1]} == -o ]]; then
-    _options
-    # no other possibilities
-    return
-  fi
-fi
+#compdef sh ksh bash csh tcsh rc
 
 if (( CURRENT == ${words[(i)-c]} + 1 )); then
   _cmdstring
@@ -21,9 +12,3 @@ else
   fi
   _default
 fi
-
-local ret=$?
-
-[[ $service == zsh ]] && _arguments -S -s -- && ret=0
-
-return ret
diff --git a/Completion/Unix/Command/_zsh b/Completion/Unix/Command/_zsh
new file mode 100644
index 000000000..3b6d7ad4f
--- /dev/null
+++ b/Completion/Unix/Command/_zsh
@@ -0,0 +1,8 @@
+#compdef zsh
+
+_arguments -S -s : \
+  '*-o+[set named option]:option:_options' \
+  '*+o+[unset named option]:option:_options' \
+  '(1 -)-c[run a command]:command:_cmdstring' \
+  '(-)1:script file:_files' \
+  '*:command arguments' --