From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20881 invoked by alias); 26 May 2011 16:05:53 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 29376 Received: (qmail 19274 invoked from network); 26 May 2011 16:05:40 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW, T_TO_NO_BRKTS_FREEMAIL autolearn=ham version=3.3.1 Received-SPF: pass (ns1.primenet.com.au: SPF record at _spf.google.com designates 209.85.215.171 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:subject:date:message-id:x-mailer :in-reply-to:references; bh=4F2WbRfPmA3M7TjPSN9qDllyXs76s+gC/LWEWA2oNIg=; b=rRsSSkM+uEe7n/jRnQ+2mGBmAL4ge+VR45v5xyJt/GBl9UHM6Wi9J8VAySfWgs5T6Z DZnDRHVrIUsIB/ruLhC+cn67gFV3b7oaFn3/XorzaXGkasONwielVmWf44oeg80TJLmM S96AOKvo007JjdrM3W1QxcVnqAJWpCAqeeEO0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:date:message-id:x-mailer:in-reply-to:references; b=YLTLDxYE8wuAH6K9kKXj9s/spBCWCEVP082ccbOfM4iezoLUps/D9JVCIZVjRs7RE4 zj7ti5HmpQS7sG3Gb7H9snHV9XH83aebGM6P5kHg7To9BP8ZU9iDTQeql5qKBFqNBUwF JeB6zzAsnrT2eueJb8ZIewMDedc8dpEEUhEGM= From: Mikael Magnusson To: zsh-workers@zsh.org Subject: PATCH: _initctl: only define helper functions once Date: Thu, 26 May 2011 18:05:23 +0200 Message-Id: <1306425923-6895-1-git-send-email-mikachu@gmail.com> X-Mailer: git-send-email 1.7.4-rc1 In-Reply-To: <20110526103606.0d7cd39a@pwslap01u.europe.root.pri> References: <20110526103606.0d7cd39a@pwslap01u.europe.root.pri> --- Completion/Unix/Command/_initctl | 69 ++++++++++++++++++++------------------ 1 files changed, 36 insertions(+), 33 deletions(-) diff --git a/Completion/Unix/Command/_initctl b/Completion/Unix/Command/_initctl index 08145b1..850064d 100644 --- a/Completion/Unix/Command/_initctl +++ b/Completion/Unix/Command/_initctl @@ -2,29 +2,6 @@ # Written by Bernhard Tittelbach # based on completion script by Mildred -local -a common_args -common_args=( - '--session[use D-Bus session bus to connect to init daemon (for testing)]' - '--system[talk via DBUS system bus instead of socket]' - '(-q --quiet)'{-q,--quiet}'[reduce output to errors only]' - '(-v --verbose)'{-v,--verbose}'[increase output to include informational messages]' - '--dest=[D-Bus name for init, defaults to com.ubuntu.Upstart]' - '--help[display help and exit]' - '--version[output version information and exit]' -) - -# don't overwrite work that we might have already done -if (( ${+_initctl_events_list} + ${+_initctl_eventargs_list} != 2 )); then - typeset -g -a -U _initctl_events_list _initctl_eventargs_list -fi - -# map each initctl function to a completion function -local -A cmd_completion_funcs -cmd_completion_funcs=( start startstop stop startstop restart startstop reload startstop show-config show-config status argjob emit emit check-config check-config ) - -# define fallback completion function -local cmd_completion_default=basic - # run show-config -e and if possible parse out all events and KEY= argumnts # otherwise provide some common values _initctl_fillarray_events_args () @@ -169,13 +146,39 @@ _initctl_check-config() '*::' } -# depending on which command was used, call different completion funtions -case $service in - initctl) - _arguments "${common_args[@]}" '*::Initctl Commands:_initctl_command' - ;; - start|stop|restart|reload|status) - _call_function ret _initctl_${cmd_completion_funcs[${service}]-${cmd_completion_default}} - ;; - *) return 1 ;; -esac +_initctl() +{ + local -a common_args + common_args=( + '--session[use D-Bus session bus to connect to init daemon (for testing)]' + '--system[talk via DBUS system bus instead of socket]' + '(-q --quiet)'{-q,--quiet}'[reduce output to errors only]' + '(-v --verbose)'{-v,--verbose}'[increase output to include informational messages]' + '--dest=[D-Bus name for init, defaults to com.ubuntu.Upstart]' + '--help[display help and exit]' + '--version[output version information and exit]' + ) + + # don't overwrite work that we might have already done + if (( ${+_initctl_events_list} + ${+_initctl_eventargs_list} != 2 )); then + typeset -g -a -U _initctl_events_list _initctl_eventargs_list + fi + + # map each initctl function to a completion function + local -A cmd_completion_funcs + cmd_completion_funcs=( start startstop stop startstop restart startstop reload startstop show-config show-config status argjob emit emit check-config check-config ) + + # define fallback completion function + local cmd_completion_default=basic + + # depending on which command was used, call different completion funtions + case $service in + initctl) + _arguments "${common_args[@]}" '*::Initctl Commands:_initctl_command' + ;; + start|stop|restart|reload|status) + _call_function ret _initctl_${cmd_completion_funcs[${service}]-${cmd_completion_default}} + ;; + *) return 1 ;; + esac +} -- 1.7.4-rc1