From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16462 invoked from network); 9 Jul 2006 14:45:15 -0000 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,FORGED_RCVD_HELO autolearn=ham version=3.1.3 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by ns1.primenet.com.au with SMTP; 9 Jul 2006 14:45:15 -0000 Received-SPF: none (ns1.primenet.com.au: domain at sunsite.dk does not designate permitted sender hosts) Received: (qmail 1552 invoked from network); 9 Jul 2006 14:45:05 -0000 Received: from sunsite.dk (130.225.247.90) by a.mx.sunsite.dk with SMTP; 9 Jul 2006 14:45:05 -0000 Received: (qmail 9073 invoked by alias); 9 Jul 2006 14:45:02 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 22542 Received: (qmail 9060 invoked from network); 9 Jul 2006 14:45:01 -0000 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by sunsite.dk with SMTP; 9 Jul 2006 14:45:01 -0000 Received: (qmail 1055 invoked from network); 9 Jul 2006 14:45:01 -0000 Received: from mta08-winn.ispmail.ntl.com (HELO mtaout02-winn.ispmail.ntl.com) (81.103.221.48) by a.mx.sunsite.dk with SMTP; 9 Jul 2006 14:44:59 -0000 Received: from aamtaout01-winn.ispmail.ntl.com ([81.103.221.35]) by mtaout02-winn.ispmail.ntl.com with ESMTP id <20060709144458.MKDQ27023.mtaout02-winn.ispmail.ntl.com@aamtaout01-winn.ispmail.ntl.com> for ; Sun, 9 Jul 2006 15:44:58 +0100 Received: from pwslaptop.csr.com ([81.107.41.155]) by aamtaout01-winn.ispmail.ntl.com with ESMTP id <20060709144458.BVN29849.aamtaout01-winn.ispmail.ntl.com@pwslaptop.csr.com> for ; Sun, 9 Jul 2006 15:44:58 +0100 Received: from pwslaptop.csr.com (pwslaptop.csr.com [127.0.0.1]) by pwslaptop.csr.com (8.13.6/8.13.4) with ESMTP id k69EiqC7004974 for ; Sun, 9 Jul 2006 15:44:54 +0100 Message-Id: <200607091444.k69EiqC7004974@pwslaptop.csr.com> From: Peter Stephenson To: zsh-workers@sunsite.dk Subject: Re: BUG: cmdstack empty In-Reply-To: Message from Bart Schaefer of "Sat, 08 Jul 2006 10:58:10 PDT." <060708105810.ZM8725@torch.brasslantern.com> Date: Sun, 09 Jul 2006 15:44:52 +0100 Bart Schaefer wrote: > With the latest 4.3.2-dev-1 as of 2006-07-08: > > schaefer<509> foo() { > function> [[ 1 eq 2 ]] > zsh: condition expected: eq > BUG: cmdstack empty Index: Src/parse.c =================================================================== RCS file: /cvsroot/zsh/zsh/Src/parse.c,v retrieving revision 1.55 diff -u -r1.55 parse.c --- Src/parse.c 26 Jun 2006 10:04:09 -0000 1.55 +++ Src/parse.c 9 Jul 2006 14:44:24 -0000 @@ -1672,7 +1672,6 @@ lineno += oldlineno; ecnpats = onp; ecssub = oecssub; - cmdpop(); YYERROR(oecused); } yylex(); Index: Src/prompt.c =================================================================== RCS file: /cvsroot/zsh/zsh/Src/prompt.c,v retrieving revision 1.37 diff -u -r1.37 prompt.c --- Src/prompt.c 7 Mar 2006 21:31:30 -0000 1.37 +++ Src/prompt.c 9 Jul 2006 14:44:25 -0000 @@ -31,7 +31,7 @@ #include "prompt.pro" /* text attribute mask */ - + /**/ unsigned txtattrmask; @@ -41,7 +41,7 @@ mod_export unsigned txtchange; /* the command stack for use with %_ in prompts */ - + /**/ unsigned char *cmdstack; /**/ @@ -59,7 +59,7 @@ "cmdsubst", "mathsubst", "elif-then", "heredoc", "heredocd", "brace", "braceparam", "always", }; - + /* The buffer into which an expanded and metafied prompt is being written, * * and its size. */ @@ -1304,3 +1304,22 @@ } return 1; } + +/**/ +void +cmdpush(int cmdtok) +{ + if (cmdsp >= 0 && cmdsp < CMDSTACKSZ) + cmdstack[cmdsp++] = (unsigned char)cmdtok; +} + +/**/ +void +cmdpop(void) +{ + if (cmdsp <= 0) { + DPUTS(1, "BUG: cmdstack empty"); + fflush(stderr); + } else + cmdsp--; +} Index: Src/zsh.h =================================================================== RCS file: /cvsroot/zsh/zsh/Src/zsh.h,v retrieving revision 1.91 diff -u -r1.91 zsh.h --- Src/zsh.h 28 Jun 2006 13:12:55 -0000 1.91 +++ Src/zsh.h 9 Jul 2006 14:44:27 -0000 @@ -1768,20 +1768,6 @@ /****************************************/ #define CMDSTACKSZ 256 -#define cmdpush(X) do { \ - if (cmdsp >= 0 && cmdsp < CMDSTACKSZ) \ - cmdstack[cmdsp++]=(X); \ - } while (0) -#ifdef DEBUG -# define cmdpop() do { \ - if (cmdsp <= 0) { \ - fputs("BUG: cmdstack empty\n", stderr); \ - fflush(stderr); \ - } else cmdsp--; \ - } while (0) -#else -# define cmdpop() do { if (cmdsp > 0) cmdsp--; } while (0) -#endif #define CS_FOR 0 #define CS_WHILE 1 -- Peter Stephenson Web page now at http://homepage.ntlworld.com/p.w.stephenson/