From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from euclid.skiles.gatech.edu (list@euclid.skiles.gatech.edu [130.207.146.50]) by melb.werple.net.au (8.7.5/8.7.3/2) with ESMTP id HAA27230 for ; Fri, 21 Jun 1996 07:05:01 +1000 (EST) Received: (from list@localhost) by euclid.skiles.gatech.edu (8.7.3/8.7.3) id QAA18355; Thu, 20 Jun 1996 16:58:02 -0400 (EDT) Resent-Date: Thu, 20 Jun 1996 16:58:02 -0400 (EDT) From: Zoltan Hidvegi Message-Id: <199606202057.WAA19049@bolyai.cs.elte.hu> Subject: Re: zsh beta21 bug?: exec =() To: becker@atria.com Date: Thu, 20 Jun 1996 22:57:58 +0200 (MET DST) Cc: zsh-workers@math.gatech.edu In-Reply-To: <9606201847.AA13914@phobos> from "Paul H. Becker" at "Jun 20, 96 02:47:58 pm" Organization: Dept. of Comp. Sci., Eotvos University, Budapest, Hungary Phone: (36 1)2669833 ext: 2667, home phone: (36 1) 2752368 X-Mailer: ELM [version 2.4ME+ PL16 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Resent-Message-ID: <"YX7AD1.0.cU4.QjRon"@euclid> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/1389 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu > > This worked with all previous beta version of zsh, but fails > with beta 21... > > % cat ztest > > exec 3< =(ls -C) > while read line <&3 > do > echo "line = $line" > done > exec 3<&- > > % zsh-2.6b21 ztest > ztest: parse error [2] > ztest: 3: bad file number [3] I think that < =(...) is useless since it is really the same as < <(...). But now I see that it can be useful sometimes so the patch below enables it again. But the above script can be rewritten: coproc ls -C while read -p line do echo "line = $line" done Zoltan *** Src/parse.c 1996/06/20 20:31:54 2.12 --- Src/parse.c 1996/06/20 20:39:58 *************** *** 1225,1231 **** if (toks[0] == Outang && toks[1] == Inpar) /* > >(...) */ fn->type = OUTPIPE; ! else if ((toks[0] == Inang || toks[0] == Equals) && toks[1] == Inpar) YYERRORV; break; --- 1225,1231 ---- if (toks[0] == Outang && toks[1] == Inpar) /* > >(...) */ fn->type = OUTPIPE; ! else if (toks[0] == Inang && toks[1] == Inpar) YYERRORV; break; *************** *** 1233,1239 **** if (toks[0] == Inang && toks[1] == Inpar) /* < <(...) */ fn->type = INPIPE; ! else if ((toks[0] == Outang || toks[0] == Equals) && toks[1] == Inpar) YYERRORV; break; case READWRITE: --- 1233,1239 ---- if (toks[0] == Inang && toks[1] == Inpar) /* < <(...) */ fn->type = INPIPE; ! else if (toks[0] == Outang && toks[1] == Inpar) YYERRORV; break; case READWRITE: