From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5502 invoked from network); 2 Oct 1997 16:18:55 -0000 Received: from math.gatech.edu (list@130.207.146.50) by ns1.primenet.com.au with SMTP; 2 Oct 1997 16:18:55 -0000 Received: (from list@localhost) by math.gatech.edu (8.8.5/8.8.5) id MAA03966; Thu, 2 Oct 1997 12:03:37 -0400 (EDT) Resent-Date: Thu, 2 Oct 1997 12:03:37 -0400 (EDT) Message-Id: <199710021604.SAA01708@hydra.ifh.de> To: zsh-workers@math.gatech.edu (Zsh hackers list) Subject: rcexpandparam bug Date: Thu, 02 Oct 1997 18:04:12 +0200 From: Peter Stephenson Resent-Message-ID: <"UL2qs1.0.vz.ONyCq"@math> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/3546 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu I've localised the rcexpandparam bug; unfortunately it's in the paramsubst() code where I don't know what anything means. In the long `if (isarr)' chunk, right at the start there is a test for no array value being set, with plan9 (rcexpandparam) not in operation. If that is true, something mysterious happens anyway and non-null (whatever `n' is) is passed back. If plan9 is set, there's a chunk later on which handles that: lots and lots of mysterious things happen, until at the end there is another `if plan9' test to see if it hasn't been unset: this two line chunk then returns null. That's causing the problem: this gets passed back by stringsubst() to prefork(), causing the latter to abort all further processing. The result is that in things like `=ls $*', the =ls doesn't get expanded if $* was null and rcexpandparam was set. I have no idea what to do about it. -- Peter Stephenson Tel: +49 33762 77366 WWW: http://www.ifh.de/~pws/ Fax: +49 33762 77413 Deutsches Elektronen-Synchrotron --- Institut fuer Hochenergiephysik Zeuthen DESY-IfH, Platanenallee 6, 15738 Zeuthen, Germany.