From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27798 invoked from network); 26 Apr 2001 13:55:44 -0000 Received: from sunsite.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 26 Apr 2001 13:55:44 -0000 Received: (qmail 28835 invoked by alias); 26 Apr 2001 13:55:38 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 14112 Received: (qmail 28815 invoked from network); 26 Apr 2001 13:55:36 -0000 Sender: kiddleo Message-ID: <3AE828D4.A2EC6AEE@u.genie.co.uk> Date: Thu, 26 Apr 2001 14:55:32 +0100 From: Oliver Kiddle X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.2.15 i686) X-Accept-Language: en MIME-Version: 1.0 To: zsh-workers@sunsite.dk Subject: Re: problem with _arguments exclusion lists Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit --- Sven Wischnowsky wrote: > Oliver Kiddle wrote: > > > [[ -n "$PREFIX$SUFFIX" ]] > > In the case you described next: If the word to complete is empty I > want > it to both display the message and complete options. I noticed that > only when I had implemented (before, we were discussing only two > cases: > message *or* options). But if the word is empty, and the pattern matches, it does offer both message and options. I think this check should come before the _message and an empty $PREFIX$SUFFIX should prevent the failed return. Like this: [[ -n $PREFIX$SUFFIX && "$PREFIX$SUFFIX" != $~1 ]] && return 1 The completion for vncserver (patch below) could use this so that it offers display numbers before the initial `:' is typed. When, in the first message you say `the new behaviour of completing options if the action returns non-zero', I would have said that the behaviour was to be not claiming to complete the message when actions return non-zero so that completing other things, like options isn't blocked. > No, -w (now -W since I swapped them), makes it complete options > regardless of the return value of the action. What you're seeing > here > is the new default behaviour of trying to complete options if the > action returns non-zero. Oh. I thought it was going to not complete single letter options unless it had -W and -s and always complete long options. So how do I get _pine to work properly (use of _guard for _pine also in the patch): valid pine -cr4 produces an error message so pine -r offers other single letter options including -c pine -c should offer -conf, -character-set etc but not other single letter options like -r. It should also offer numbers. I thought the _arguments -W option was going to allow it to offer single letter options like -r for any command which allows options between an option and its argument where they are all in the same word. So -W wouldn't be used for pine and the -r option wouldn't be offered between -c and its number argument. > I was hoping for something short, but still alluding to `matching', > in > case we come up with other kinds of tests by which we want to > `guard'. > But maybe those could then be integrated into _guard and selected via > options or something. It can always be renamed if we think of a better name or change it's behaviour. Oliver Index: Completion/Base/Utility/.distfiles =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/Base/Utility/.distfiles,v retrieving revision 1.1 diff -u -r1.1 .distfiles --- Completion/Base/Utility/.distfiles 2001/04/02 12:42:44 1.1 +++ Completion/Base/Utility/.distfiles 2001/04/26 13:52:06 @@ -2,7 +2,7 @@ .distfiles _alternative _call_program _nothing _sub_commands _arg_compile _combination _regex_arguments _values -_arguments _contexts _retrieve_cache +_arguments _contexts _retrieve_cache _guard _cache_invalid _describe _sep_parts _call_function _multi_parts _store_cache ' Index: Completion/Unix/Command/_pine =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/Unix/Command/_pine,v retrieving revision 1.1 diff -u -r1.1 _pine --- Completion/Unix/Command/_pine 2001/04/13 18:42:15 1.1 +++ Completion/Unix/Command/_pine 2001/04/26 13:52:06 @@ -31,11 +31,11 @@ "($opts $idx -url)-attach_and_delete[go to composer, attach file, delete when finished]:file:_files" \ "($opts $idx $send)-url[open the given URL]:url:->url" \ "($opts $send)-f+[specify mailbox to load]:mailbox: _mailboxes" \ - "($opts $send)-c+[specify context to apply to -f arg]:number" \ + "($opts $send)-c+[specify context to apply to -f arg]:number:_guard '[0-9]#'" \ "($opts $send)-sort[specify sort order of folder]:sort order:(${(j: :)sortorder})" \ "($opts $send)-i[go directly to index, bypassing main menu]" \ "($opts $send)-I+[specify initial keystrokes to be executed]:keystrokes" \ - "($opts $send)-n+[entry in index to begin on]:number" \ + "($opts $send)-n+[entry in index to begin on]:number:_guard '[0-9]#'" \ "($opts $send)-o[open first folder read-only]" \ "(-F -h)-r[restricted - can only send mail to oneself]" \ "(${opts#-F})-k[force use of function keys]" \ Index: Completion/X/Command/.distfiles =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/X/Command/.distfiles,v retrieving revision 1.1 diff -u -r1.1 .distfiles --- Completion/X/Command/.distfiles 2001/04/02 12:43:42 1.1 +++ Completion/X/Command/.distfiles 2001/04/26 13:52:06 @@ -1,5 +1,5 @@ DISTFILES_SRC=' .distfiles _gv _netscape _xauth _xfig _xrdb _xterm _xwit -_nedit _x_utils _xdvi _xmodmap _xset _xv +_nedit _vnc _x_utils _xdvi _xmodmap _xset _xv ' Index: Completion/X/Command/_vnc =================================================================== RCS file: _vnc diff -N _vnc --- /dev/null Mon Dec 11 17:26:27 2000 +++ _vnc Thu Apr 26 06:52:06 2001 @@ -0,0 +1,32 @@ +#compdef vncserver vncviewer + +local displays args +displays=( ~/.vnc/$HOST:?.pid(N:r:t:s/$HOST//) ) +displays=( \\${^displays} ) + +case $service in + vncserver) + # currently lacking Xvnc arguments + _arguments \ + - start \ + '-name:desktop name:_x_name' \ + '-geometry:geometry:(1600x1200 1280x1024 1152x864 1024x768 800x600 640x480)' \ + '-depth:pixel depth:(8 16 24 32)' \ + '-pixelformat:pixel format' \ + '1::display number:_guard ":[0-9]#"' \ + - kill \ + "-kill:display number:($displays)" \ + - help \ + '-help' + ;; + vncviewer) + # should allow list for -encodings + _xt_arguments -shared -viewonly -fullscreen -bgr233 -owncmap -truecolour \ + '-encodings:encodings:(copyrect hextile corre rre raw)' \ + '-depth:depth' \ + '-passwd:file:_files' \ + '(1)-listen:display number' \ + '(-listen)1::display:_x_display' + ;; +esac +