Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm
Precedence: bulk
X-No-Archive: yes
List-Id: Zsh Workers List <zsh-workers.zsh.org>
List-Post: <mailto:zsh-workers@zsh.org>
List-Help: <mailto:zsh-workers-help@zsh.org>
X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on f.primenet.com.au
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
	T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no
	version=3.4.0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=date:from:to:subject:message-id:mime-version:content-type
         :content-disposition:user-agent;
        bh=VVavKJV8NJxo5ctmxLJ39eqYuLGz71x1LG8rj9nf8I0=;
        b=G7H38MvhOlDez2yIIBngFv5MBCpo5KgG8lmtGTNe5zLlh3K1Sy0R+0nLuRaNxbN2Qt
         vso5fPgp44v7uI+y7RmN/nZXBkGn/14ZWafzrkxiqFFQQG3BC1yqIFpkPWtTkI6AplwK
         9vD+50EQtzviCTKMnyODNa4lLdTMDGaxebBEVULq6+9TPTgNNneuPK1hdUTlX07k1vvL
         JJI+Rz/JHRaOCjSurQLzyJp4lKB80QuYU6UeB35ab3oGIHhtjuKYSjQRrv33KIS80QsU
         kogY3g+SiXN7P70IqLLkpArS03jespOtu41cKq/eK+ygz2p364xWk+sDWC9e4xGUsIz9
         iyaQ==
X-Received: by 10.60.62.243 with SMTP id b19mr21821767oes.28.1452452518698;
        Sun, 10 Jan 2016 11:01:58 -0800 (PST)
Date: Sun, 10 Jan 2016 13:01:57 -0600
From: Matthew Martin <phy1729@gmail.com>
To: zsh-workers@zsh.org
Subject: [patch] _init_d add OpenBSD bits
Message-ID: <20160110190157.GA4187@CptOrmolo.darkstar>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.5.24 (2015-08-30)
X-Seq: zsh-workers 37544

Add a block to complete OpenBSD rc.d scripts. Thanks to llua for
pointing out (M).

Should flags also be a function so it can be overridden?


diff --git a/Completion/Unix/Command/_init_d b/Completion/Unix/Command/_init_d
index bbf62fc..0fd4cc1 100644
--- a/Completion/Unix/Command/_init_d
+++ b/Completion/Unix/Command/_init_d
@@ -41,6 +41,23 @@ if [[ $OSTYPE = freebsd* ]]; then
 
     return 0
   }
+elif [[ $OSTYPE = openbsd* ]]; then
+  (( $+functions[_init_d_fullpath] )) ||
+  _init_d_fullpath() {
+    echo /etc/rc.d/$1
+    return 0
+  }
+
+  (( $+functions[_init_d_get_cmds] )) ||
+  _init_d_get_cmds() {
+    local -a cmds disabled
+
+    cmds=(start stop reload restart check)
+    disabled=(${${${(M)${(f)"$(< $script)"}:#rc_(${(~j:|:)cmds})=NO}#rc_}%=NO})
+    echo ${cmds:|disabled}
+  }
+
+  flags=('-d[print debug information]' '-f[forcibly start the daemon]')
 else
   (( $+functions[_init_d_fullpath] )) ||
   _init_d_fullpath() {
@@ -90,4 +107,4 @@ cmds=( $(_init_d_get_cmds) ) || return
 (( $#cmds )) || zstyle -a ":completion:${curcontext}:commands" commands cmds ||
     cmds=(start stop)
 
-_sub_commands $cmds
+_arguments -s -A "-*" $flags "*:init.d command:_sub_commands $cmds"

