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) with ESMTP id EAA05399 for ; Fri, 31 May 1996 04:58:59 +1000 (EST) Received: (from list@localhost) by euclid.skiles.gatech.edu (8.7.3/8.7.3) id OAA27851; Thu, 30 May 1996 14:41:38 -0400 (EDT) Resent-Date: Thu, 30 May 1996 14:41:38 -0400 (EDT) From: Zoltan Hidvegi Message-Id: <199605301841.UAA31727@bolyai.cs.elte.hu> Subject: Re: execcmd() reordering To: hzoli@cs.elte.hu (Zoltan Hidvegi) Date: Thu, 30 May 1996 20:41:49 +0200 (MET DST) Cc: pws@ifh.de, zsh-workers@math.gatech.edu In-Reply-To: <199605301800.UAA31169@bolyai.cs.elte.hu> from Zoltan Hidvegi at "May 30, 96 08:00:50 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: application/pgp; format=text; x-action=sign Content-Transfer-Encoding: 7bit Resent-Message-ID: <"BIzVQ1.0.5p6.XlUhn"@euclid> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/1233 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu -----BEGIN PGP SIGNED MESSAGE----- I wrote: > Also makecline can be simplified after that patch. To be more exact, it must be simplified. Otherwise '' arguments will be removed from external commands. Here is the patch. Zoltan *** Src/exec.c 1996/05/30 18:20:46 2.30 --- Src/exec.c 1996/05/30 18:35:28 *************** *** 823,862 **** char ** makecline(LinkList list) { - int ct = 0; LinkNode node; char **argv, **ptr; if (isset(XTRACE)) { if (!doneps4) fprintf(stderr, "%s", (prompt4) ? prompt4 : ""); - for (node = firstnode(list); node; incnode(node), ct++); - ptr = argv = 2 + (char **) ncalloc((ct + 4) * sizeof(char *)); ! for (node = firstnode(list); node; incnode(node)) ! if (*(char *)getdata(node)) { ! *ptr++ = (char *)getdata(node); ! untokenize(getdata(node)); ! fputs(getdata(node), stderr); ! if (nextnode(node)) ! fputc(' ', stderr); ! } ! *ptr = NULL; fputc('\n', stderr); fflush(stderr); - return (argv); } else { - for (node = firstnode(list); node; incnode(node), ct++); - ptr = argv = 2 + (char **) ncalloc((ct + 4) * sizeof(char *)); - for (node = firstnode(list); node; incnode(node)) ! if (*(char *)getdata(node)) { ! *ptr++ = (char *)getdata(node); ! untokenize(getdata(node)); ! } ! *ptr = NULL; ! return (argv); } } /* untokenize the command line and remove null arguments */ --- 823,852 ---- char ** makecline(LinkList list) { LinkNode node; char **argv, **ptr; + /* A bigger argv is necessary for executing scripts */ + ptr = + argv = 2 + (char **) ncalloc((countlinknodes(list) + 4) * sizeof(char *)); if (isset(XTRACE)) { if (!doneps4) fprintf(stderr, "%s", (prompt4) ? prompt4 : ""); ! for (node = firstnode(list); node; incnode(node)) { ! *ptr++ = (char *)getdata(node); ! zputs(getdata(node), stderr); ! if (nextnode(node)) ! fputc(' ', stderr); ! } fputc('\n', stderr); fflush(stderr); } else { for (node = firstnode(list); node; incnode(node)) ! *ptr++ = (char *)getdata(node); } + *ptr = NULL; + return (argv); } /* untokenize the command line and remove null arguments */ -----BEGIN PGP SIGNATURE----- Version: 2.6.3i Charset: noconv iQCVAwUBMa3r2wupSCiLN749AQHGXQP7Bi2xELzwgagpJzVLwRj+TMXpsOPk7w2H eEpI/cH+YmAEmYBl1AFUvYGWR8Mfb5avzD88FV6A/EO0WpoDMsGpNvErPQjQRzuc svFnYY7aRzKPvDCZPBX4Z27DqeTvI81YMTE5BQ6OcAKPRHJB6vDXXjTLlQM+On/9 kRhNFreCjR4= =WG5V -----END PGP SIGNATURE-----