From 4f3447eba56896aaba1962be3aa2a1ce4081bf0a Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Thu, 4 Jan 2024 16:54:45 -0500 Subject: Show "err" on FP error, wait for CLR key. --- input.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'input.c') diff --git a/input.c b/input.c index ac706ae..82c1cd1 100644 --- a/input.c +++ b/input.c @@ -10,11 +10,13 @@ #include #include #include +#include char pending_op = 0; int making_number = 0; int base = 10; int quiet = 0; +int showing_err = 0; #define MAXIN 40 @@ -79,6 +81,12 @@ show_value() char commas[40], *cp, *dp; double v = value; + if(fetestexcept(FE_ALL_EXCEPT)) { + set_string("Err"); + showing_err = 1; + return; + } + if (base == 2) { int q = (long long)v & 0xffffffffL; @@ -226,10 +234,16 @@ key(char c) int v = c; /* printf("key_number 0x%x\n", v); */ + feclearexcept(FE_ALL_EXCEPT); + + if(showing_err && c != 27 && c != 'C') + return; + switch (c) { case 27: case 'C': + showing_err = 0; making_number = 0; iptr = 0; pending_op = 0; -- cgit v1.2.3