From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27230 invoked by alias); 23 Jan 2016 01:08:28 -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: 37734 Received: (qmail 19148 invoked from network); 23 Jan 2016 01:08:25 -0000 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 autolearn=ham autolearn_force=no version=3.4.0 Message-ID: <56A2D27A.1050807@inlv.org> Date: Sat, 23 Jan 2016 01:08:10 +0000 From: Martijn Dekker User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 MIME-Version: 1.0 To: zsh-workers@zsh.org Subject: Re: ${path[@]} in sh mode [was: Segfault with zsh 5.2] References: <87h9jujttm.fsf@gmail.com> <20151207135532.1a285c15@pwslap01u.europe.root.pri> <878u56jpob.fsf@gmail.com> <20151207143621.3cbbe7bd@pwslap01u.europe.root.pri> <56A28D28.3090701@inlv.org> <56A294F9.5020509@inlv.org> In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Mikael Magnusson schreef op 23-01-16 om 00:07: > On Fri, Jan 22, 2016 at 9:45 PM, Martijn Dekker wrote: >> Martijn Dekker schreef op 22-01-16 om 20:12: >>> Peter Stephenson schreef op 07-12-15 om 14:36: >>>> Change now pushed. >>> >>> Can the ${path[@]} array be disabled in sh mode? I just noticed that it >>> auto-syncs with the system $PATH. Lowercase "path" is a perfectly normal >>> variable name in other shells and is a common English word, so conflicts >>> that result in corruption of $PATH are not unlikely when running scripts >>> written using other shells. >> >> Never mind: it is disabled when zsh is launched as sh (but not when >> launched as zsh and then executing 'emulate sh'). So I suppose it was >> decided long before that disabling it post-launch is not feasible. Sorry >> for the noise. > > If you're in a function context, you can say 'typeset -h path' to hide > the specialness of $path and declare a new local of the same name. Eg, > one that isn't connected to PATH. It would be nice if that worked globally too, and even nicer if it were automatically done by 'emulate sh' (or ksh for that matter) and undone by 'emulate zsh'. But that might be non-trivial and the developers may have other priorities. - M.