about summary refs log tree commit diff
path: root/Completion/BSD/Command/_sysrc
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/BSD/Command/_sysrc')
-rw-r--r--Completion/BSD/Command/_sysrc10
1 files changed, 7 insertions, 3 deletions
diff --git a/Completion/BSD/Command/_sysrc b/Completion/BSD/Command/_sysrc
index 246d73bd3..f0c12a2be 100644
--- a/Completion/BSD/Command/_sysrc
+++ b/Completion/BSD/Command/_sysrc
@@ -44,9 +44,13 @@ _sysrc() {
     local k v opt
     if (( $+opt_args[lista--L] )); then
       _services && ret=0
-    elif [[ -prefix *=* ]]; then
-      # do you really want to go down this hole?
-      _message -e values value
+    elif compset -P 1 '*='; then
+      case $IPREFIX in
+	*_enable=) _wanted values expl value compadd YES NO && ret=0 ;;
+	*_program=) _files -g "*(-*)" && ret=0 ;;
+	*_interface(|s)=) _net_interfaces && ret=0 ;;
+	*) _message -e values value ;;
+      esac
     else
       if zstyle -T ":completion:${curcontext%:*}:values" verbose; then
         opt=d