From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27195 invoked from network); 13 Jul 2000 08:57:52 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 13 Jul 2000 08:57:52 -0000 Received: (qmail 7685 invoked by alias); 13 Jul 2000 08:57:22 -0000 Mailing-List: contact zsh-users-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 3278 Received: (qmail 7678 invoked from network); 13 Jul 2000 08:57:22 -0000 Date: Thu, 13 Jul 2000 10:57:20 +0200 (MET DST) Message-Id: <200007130857.KAA25581@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-users@sunsite.auc.dk In-reply-to: Matt Armstrong's message of Wed, 12 Jul 2000 10:40:13 -0700 Subject: Re: _arguments question Matt Armstrong wrote: > I have this completion function that I have a question on: > > _p4_submit () { > _arguments \ > '(-i)-c[changelist#]:changelist #' \ > '(-c)-i[input from stddin]' \ > ':submit file:_files' > } > > I have made -i and -c mutually exclusive. How can I make all three > mutually exclusive? This command accepts only one of the three > possible arguments. To say that with either of the options, the argument may not be completed, you include either its number or a `:' in their exclusion lists (the `:' means that no argument at all may be completed after the option). To say that after the argument no option should be completed, there are at least two ways. Either you give it a exclusion list, too (`(-c -i):submit ...') or you use the -A option to _arguments: _arguments -A '' \ '(: -i)-c[changelist#]:changelist #' \ '(: -c)-i[input from stddin]' \ ':submit file:_files' The argument given to -A (the '' in the example) can be used to give a pattern matching strings that should be silently accepted and should not be considered to be normal arguments. E.g. if there may be other options than the ones described, you would use `-A "-*"' to say that any string starting with a hyphen should be ignored when trying to determine if a string on the line is an argument or something else. Bye Sven -- Sven Wischnowsky wischnow@informatik.hu-berlin.de