about summary refs log tree commit diff
path: root/Completion/Unix/Command
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix/Command')
-rw-r--r--Completion/Unix/Command/_entr18
1 files changed, 16 insertions, 2 deletions
diff --git a/Completion/Unix/Command/_entr b/Completion/Unix/Command/_entr
index 8a830ae71..a8d43fc5e 100644
--- a/Completion/Unix/Command/_entr
+++ b/Completion/Unix/Command/_entr
@@ -1,9 +1,23 @@
 #compdef entr
 
+local curcontext="$curcontext" state state_descr line ret=1
+typeset -A opt_args
+
 _arguments -s -S \
   '-c[execute clear before invoking utility]' \
   '-d[track directories and exit if a new file is added]' \
   '-p[postpone first execution of the utility]' \
   '-r[reload a persistent child process]' \
-  '(-):command name:_command_names -e' \
-  '*::arguments:_normal'
+  '(*)-s[evaluate the first argument using interpreter specified by $SHELL]' \
+  '(-): :->command' \
+  '*::arguments:_normal' && ret=0
+
+if [[ -n $state ]]; then
+  if (( $+opt_args[-s] )); then
+    _cmdstring && ret=0
+  else
+    _command_names -e && ret=0
+  fi
+fi
+
+return ret