about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2000-05-03 14:44:01 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2000-05-03 14:44:01 +0000
commitaa0381bd2b64ad6ea1e24110c1c2ec6773f9288e (patch)
treef9b2e23776f0510c2cb771bb882d5731b0a3b289
parent17e79c01575b26e28e5f978d99cff250a6d9e63b (diff)
downloadzsh-aa0381bd2b64ad6ea1e24110c1c2ec6773f9288e.tar.gz
zsh-aa0381bd2b64ad6ea1e24110c1c2ec6773f9288e.tar.xz
zsh-aa0381bd2b64ad6ea1e24110c1c2ec6773f9288e.zip
allow `-' in exclusion lists for _arguments, to avoid completing all options (11121)
-rw-r--r--ChangeLog6
-rw-r--r--Completion/User/_fakeroot3
-rw-r--r--Completion/User/_rlogin2
-rw-r--r--Completion/User/_ssh2
-rw-r--r--Completion/User/_sudo28
-rw-r--r--Completion/User/_xargs12
-rw-r--r--Completion/X/_xutils3
-rw-r--r--Doc/Zsh/compsys.yo5
-rw-r--r--Src/Zle/computil.c7
9 files changed, 44 insertions, 24 deletions
diff --git a/ChangeLog b/ChangeLog
index 9a7757b7a..d0d96c532 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2000-05-03  Sven Wischnowsky  <wischnow@informatik.hu-berlin.de>
 
+	* 11121: Completion/User/_fakeroot, Completion/User/_rlogin,
+ 	Completion/User/_ssh, Completion/User/_sudo,
+ 	Completion/User/_xargs, Completion/X/_xutils, Doc/Zsh/compsys.yo,
+ 	Src/Zle/computil.c: allow `-' in exclusion lists for _arguments,
+ 	to avoid completing all options
+	
 	* 11117: Doc/Zsh/expn.yo, Src/hist.c: fix for the (z) flag: report
  	partial word (like `"foo', without a closing quote); mention in
  	manual that (z) is handled lately
diff --git a/Completion/User/_fakeroot b/Completion/User/_fakeroot
index 64e259d3d..bb9655a85 100644
--- a/Completion/User/_fakeroot
+++ b/Completion/User/_fakeroot
@@ -2,5 +2,6 @@
 
 _arguments \
        '--lib[alternate wrapper library]:wrapper library:_files' \
-       '--faked[alternate faked binary]:fake binary:_command_names' \
+       '--faked[alternate faked binary]:fake binary: _command_names -e' \
+       '(-):command name: _command_names -e'  \
        '*::arguments: _normal'
diff --git a/Completion/User/_rlogin b/Completion/User/_rlogin
index 2509bd79c..abc6f116e 100644
--- a/Completion/User/_rlogin
+++ b/Completion/User/_rlogin
@@ -17,7 +17,7 @@ _rlogin () {
       '-n[ignore stdin]' \
       '-l[specify login user name]:login as:_rlogin_users' \
       ':remote host name:_rlogin_hosts' \
-      ':command: _command_names -e' \
+      '(-):command: _command_names -e' \
       '*::command:->command' && ret=0
 
     if [[ -n "$state" ]]; then
diff --git a/Completion/User/_ssh b/Completion/User/_ssh
index 04ee5f2e2..986dec0c0 100644
--- a/Completion/User/_ssh
+++ b/Completion/User/_ssh
@@ -18,7 +18,7 @@ _ssh () {
   ssh|slogin)
     args=(
       ':remote host name:->userhost'
-      ':command: _command_names -e'
+      '(-):command: _command_names -e'
       '*::args:->command'
     )
     ;&
diff --git a/Completion/User/_sudo b/Completion/User/_sudo
index cfa8172fb..2b5a5cb7d 100644
--- a/Completion/User/_sudo
+++ b/Completion/User/_sudo
@@ -1,15 +1,19 @@
 #compdef sudo
 
 _arguments \
-        '-V[show version]' \
-        '-l[list commands]' \
-        '-h[show help]' \
-        '-v[validate timestamp file]' \
-        '-k[remove timestamp file]' \
-        '-b[run command in background]' \
-        '-r:Kerberos realm:' \
-        '-p:prompt:' \
-        '-u:user name:_users' \
-        '-s[run SHELL]' \
-        '-H[set HOME environment variable]' \
-        '*::command and arguments:_normal'
+       '-V[show version]' \
+       '-l[list allowed commands]' \
+       '-L[list options from Default section]' \
+       '-h[show help]' \
+       '-v[validate user timestamp]' \
+       '-k[invalidate user timestamp]' \
+       '-K[remove user timestamp]' \
+       '-b[run command in background]' \
+       '-r[Kerberos realm]:Kerberos realm:' \
+       '-p[password prompt]:password prompt:' \
+       '-u[user name]:user name:_users' \
+       '-s[run SHELL]' \
+       '-H[set HOME environment variable]' \
+       '-S[read password from stdin]' \
+       '(-):command name: _command_names -e'  \
+       '*::arguments: _normal'
diff --git a/Completion/User/_xargs b/Completion/User/_xargs
index 71aff222f..8b9291227 100644
--- a/Completion/User/_xargs
+++ b/Completion/User/_xargs
@@ -3,9 +3,11 @@
 _arguments \
   -{p,t,x} \
   -{e-,E}':end-of-file string:' \
-  -{i-,I}':replacement string for lines:' \
-  -{l-,L}':number of input lines:' \
-  '-n:maximum number of arguments:' \
+  '(-x -I)-i-:replacement string for lines:' \
+  '(-x -i)-I:replacement string for lines:' \
+  '(-n -L -x)-l-:number of input lines:' \
+  '(-n -l)-L:number of input lines:' \
+  '(-l -L)-n:maximum number of arguments:' \
   '-s:maximum command line length:' \
-  ':command: _command_names -e' \
-  '*::args:_normal'
+  '(-):command: _command_names -e' \
+  '*::args: _normal'
diff --git a/Completion/X/_xutils b/Completion/X/_xutils
index c0d94a998..17100c033 100644
--- a/Completion/X/_xutils
+++ b/Completion/X/_xutils
@@ -107,7 +107,8 @@ xon)
     '-screen:screen number:' \
     '-user:remote user name:_users' \
     ':remote host:_hosts' \
-    '*:command::command:_normal'
+    '(-):command: _command_names -e' \
+    '*:command: _normal'
   ;;
 xsetroot)
   _x_arguments \
diff --git a/Doc/Zsh/compsys.yo b/Doc/Zsh/compsys.yo
index 7df485767..b3402d664 100644
--- a/Doc/Zsh/compsys.yo
+++ b/Doc/Zsh/compsys.yo
@@ -2925,9 +2925,10 @@ argument will not be offered as possible completions if the option
 the argument described by the specification will not be offered if the
 option tt(-foo) is on the line. Also, the list may contain a single
 star as one of its elements to specify that the description for the
-rest arguments should not be used and it may contain a colon to
+rest arguments should not be used, a colon to
 specify that the descriptions for all normal (non-option-) arguments
-should not be used.
+should not be used and a hyphen to specify that the descriptions for
+all options should not be used.
 
 In each of the cases above, the var(action) says how the possible
 completions should be generated. In cases where only one of a fixed
diff --git a/Src/Zle/computil.c b/Src/Zle/computil.c
index 1846bc62f..77887a03e 100644
--- a/Src/Zle/computil.c
+++ b/Src/Zle/computil.c
@@ -1040,7 +1040,12 @@ ca_inactive(Cadef d, char **xor, int cur)
 	    }
 	    if (x[0] == ':' && !x[1])
 		d->argsactive = 0;
-	    else if (x[0] == '*' && !x[1]) {
+	    else if (x[0] == '-' && !x[1]) {
+		Caopt p;
+
+		for (p = d->opts; p; p = p->next)
+		    p->active = 0;
+	    } else if (x[0] == '*' && !x[1]) {
 		if (d->rest)
 		    d->rest->active = 0;
 	    } else if (x[0] >= '0' && x[0] <= '9') {