From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5865 invoked by alias); 21 Feb 2010 20:06:48 -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: 27739 Received: (qmail 10161 invoked from network); 21 Feb 2010 20:06:46 -0000 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS autolearn=ham version=3.2.5 Received-SPF: none (ns1.primenet.com.au: domain at bewatermyfriend.org does not designate permitted sender hosts) From: Frank Terbeck To: Bart Schaefer Cc: zsh-workers@zsh.org Subject: Re: PATCH: vcs_info: Set NO_warn_create_global option In-Reply-To: <100221092514.ZM24056@torch.brasslantern.com> (Bart Schaefer's message of "Sun, 21 Feb 2010 09:25:14 -0800") References: <1266764004-15068-1-git-send-email-ft@bewatermyfriend.org> <100221092514.ZM24056@torch.brasslantern.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) Date: Sun, 21 Feb 2010 21:06:35 +0100 Message-ID: <87d3zy8ib8.fsf@ft.bewatermyfriend.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Df-Sender: 430444 Bart Schaefer wrote: > On Feb 21, 3:53pm, Frank Terbeck wrote: >} >} zstyle -e ':vcs_info:git:*' \ >} check-for-changes 'estyle-cfc && reply=( true ) || reply=( false )' >} >} That however, welcomes me with this nice warning: >} VCS_INFO_get_data_git:49: array parameter reply created globally in function > >} So, there are three options: >} a) Get the big hammer and just disable `warn_create_global' in >} vcs_info. >} b) Use a smaller hammer, and create a wrapper function around zstyle >} for vcs_info, that disables the option locally. >} c) Disable `warn_create_global' in code executed by "zstyle -e". Or >} make `reply' and `REPLY' special in that case. Or whatever makes the >} most sense. > > There's another option > > b.5) Write the style like this: > > zstyle -e ':vcs_info:git:*' \ > check-for-changes 'typeset -g reply; \ > estyle-cfc && reply=( true ) || reply=( false )' Hm yeah. But I think it would be way more convenient to let the shell do that automatically, since at least here `reply' is supposed to be used. > Also, rather than (c) I might suggest > > d) Suppress warn_create_global for the parameters "reply" and "REPLY" > at all times. In fact it probably ought to be suppressed for STTY > and a few others in the "Parameters Used By The Shell" section of > the manual. I guess, you've seen the patch I set for "c)". That was easy enough. You're probably right that this should always apply to `reply', `REPLY' and the like. I don't know how to do that, though. Would you always have such parameters be available globally, even after an `unset'? Any ideas where to apply the leverage? Regards, Frank -- In protocol design, perfection has been reached not when there is nothing left to add, but when there is nothing left to take away. -- RFC 1925