From f4b083327064c122945901736c19f381d3f67499 Mon Sep 17 00:00:00 2001 From: Bart Schaefer Date: Tue, 30 Apr 2013 00:18:13 -0700 Subject: 31353: fix handling of floating point in ternary --- ChangeLog | 2 ++ Src/math.c | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index b75195a5f..898aef16b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2013-04-29 Bart Schaefer + * 31353: Src/math.c: fix handling of floating point in ternary + * 31350: Src/init.c, Src/input.c, Src/signals.h, Src/utils.c, Src/Zle/zle_main.c: block SIGWINCH nearly all the time, except when about to calculate prompts or do synchronous read, so diff --git a/Src/math.c b/Src/math.c index a2462a32e..eae283d19 100644 --- a/Src/math.c +++ b/Src/math.c @@ -1459,7 +1459,8 @@ mathparse(int pc) case QUEST: if (stack[sp].val.type == MN_UNSET) stack[sp].val = getmathparam(stack + sp); - q = (stack[sp].val.type == MN_FLOAT) ? (zlong)stack[sp].val.u.d : + q = (stack[sp].val.type == MN_FLOAT) ? + (stack[sp].val.u.d == 0 ? 0 : 1) : stack[sp].val.u.l; if (!q) -- cgit 1.4.1