From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18528 invoked from network); 6 Sep 1999 11:24:14 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 6 Sep 1999 11:24:14 -0000 Received: (qmail 3784 invoked by alias); 6 Sep 1999 11:24:07 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 7662 Received: (qmail 3774 invoked from network); 6 Sep 1999 11:24:07 -0000 Date: Mon, 6 Sep 1999 13:24:02 +0200 (MET DST) Message-Id: <199909061124.NAA01969@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@sunsite.auc.dk Subject: PATCH: style-guide Forgot to mention the funcall stuff. Bye Sven --- Etc/completion-style-guide.old Mon Sep 6 13:23:16 1999 +++ Etc/completion-style-guide Mon Sep 6 13:22:50 1999 @@ -75,3 +75,24 @@ All this should make it look like a really good idea to just use the supplied `_arguments' function to complete options. +12) If at all possible, completion code for a command or a suite of + commands should go into only one file. If a command has sub-commands, + implementing aa state-machine might be a good idea. See the `_rpm' + and `_pbm' files for examples of different styles. Also see the + documentation for `_arguments' and `_values' for two functions + that may help you with this. +13) If a completion function generates completely different types of + completions (for example, because the comamnd has several + completely different modes), it should allow users to define + functions that separately override the behavior for these + different types. This can easily be achieved by using the + `funcall' utility function, as in: + + funcall ret _command_$subcommand && return ret + + This will try to call the function `_command_$subcommand' and if + it exists, it will be called and the completion function exits + with its exit status. After this call to `funcall' the completion + function would contain the code for the default way to generate + the matches. + See the `_rpm' and `_nslookup' files for examples. -- Sven Wischnowsky wischnow@informatik.hu-berlin.de