about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>2000-03-15 09:36:27 +0000
committerTanaka Akira <akr@users.sourceforge.net>2000-03-15 09:36:27 +0000
commit05eb5d93b193379d8a4671f7a7121c4fc73ffeee (patch)
tree5b974ef5b357b1325a6e24ee035e27abe64c5c81
parent53f0102525def32c358ed52e0a92ee976c1e393c (diff)
downloadzsh-05eb5d93b193379d8a4671f7a7121c4fc73ffeee.tar.gz
zsh-05eb5d93b193379d8a4671f7a7121c4fc73ffeee.tar.xz
zsh-05eb5d93b193379d8a4671f7a7121c4fc73ffeee.zip
zsh-workers/10143
-rw-r--r--Src/init.c3
-rw-r--r--Src/math.c11
2 files changed, 11 insertions, 3 deletions
diff --git a/Src/init.c b/Src/init.c
index 288f95f1b..e59ff16a5 100644
--- a/Src/init.c
+++ b/Src/init.c
@@ -568,6 +568,9 @@ setupvals(void)
 
     init_eprog();
 
+    zero_mnumber.type = MN_INTEGER;
+    zero_mnumber.u.l = 0;
+
     getkeyptr = NULL;
 
     lineno = 1;
diff --git a/Src/math.c b/Src/math.c
index 7eec82e63..5b2357c74 100644
--- a/Src/math.c
+++ b/Src/math.c
@@ -37,6 +37,11 @@
 /**/
 int noeval;
  
+/* integer zero */
+
+/**/
+mnumber zero_mnumber;
+
 /* last input base we used */
 
 /**/
@@ -1018,13 +1023,13 @@ mathparse(int pc)
 	    push(yyval, NULL);
 	    break;
 	case ID:
-	    push(getnparam(yylval), yylval);
+	    push((noeval ? zero_mnumber : getnparam(yylval)), yylval);
 	    break;
 	case CID:
-	    push(getcvar(yylval), yylval);
+	    push((noeval ? zero_mnumber : getcvar(yylval)), yylval);
 	    break;
 	case FUNC:
-	    push(callmathfunc(yylval), yylval);
+	    push((noeval ? zero_mnumber : callmathfunc(yylval)), yylval);
 	    break;
 	case M_INPAR:
 	    mathparse(TOPPREC);