From 1a7e9dd959ee890db18b1ea341868e04b8630139 Mon Sep 17 00:00:00 2001 From: SteveMcNeill Date: Sun, 15 Oct 2023 01:24:34 -0400 Subject: [PATCH 1/2] Fix to Mod and \ in CONST As per the sample code below: Const a = 5 Mod 2.8 Const b = 5 \ 2.8 Print a; "="; 5 Mod 2.8 Print b; "="; 5 \ 2.8 Old output was wrong. Patch should make the CONST values the same as what QB64 normally generates for us. --- source/qb64pe.bas | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/qb64pe.bas b/source/qb64pe.bas index 54b2611e5..5aff8e45f 100644 --- a/source/qb64pe.bas +++ b/source/qb64pe.bas @@ -24634,19 +24634,19 @@ FUNCTION EvaluateNumbers$ (p, num() AS STRING) EXIT FUNCTION END IF CASE "\" - IF FIX(VAL(num(2))) = 0 THEN + IF VAL(num(2)) = 0 THEN EvaluateNumbers$ = "ERROR - Division By Zero" EXIT FUNCTION END IF - n1 = VAL(num(1)) \ FIX(VAL(num(2))) + n1 = VAL(num(1)) \ VAL(num(2)) CASE "MOD" - IF FIX(VAL(num(2))) = 0 THEN + IF VAL(num(2)) = 0 THEN EvaluateNumbers$ = "ERROR - Division By Zero" EXIT FUNCTION END IF - n1 = VAL(num(1)) MOD FIX(VAL(num(2))) + n1 = VAL(num(1)) MOD VAL(num(2)) CASE "+": n1 = VAL(num(1)) + VAL(num(2)) CASE "-": From 669e20fdeadae39f5a6fcb6caa9072d61bf32a3f Mon Sep 17 00:00:00 2001 From: SteveMcNeill Date: Sun, 15 Oct 2023 02:43:44 -0400 Subject: [PATCH 2/2] Fix to IDE blowing up from last fix --- source/qb64pe.bas | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/source/qb64pe.bas b/source/qb64pe.bas index 5aff8e45f..f0eea334a 100644 --- a/source/qb64pe.bas +++ b/source/qb64pe.bas @@ -24634,20 +24634,17 @@ FUNCTION EvaluateNumbers$ (p, num() AS STRING) EXIT FUNCTION END IF CASE "\" - IF VAL(num(2)) = 0 THEN + IF _ROUND(VAL(num(2))) = 0 THEN EvaluateNumbers$ = "ERROR - Division By Zero" EXIT FUNCTION END IF - - n1 = VAL(num(1)) \ VAL(num(2)) + n1 = VAL(num(1)) \ _ROUND(VAL(num(2))) CASE "MOD" - IF VAL(num(2)) = 0 THEN + IF _ROUND(VAL(num(2))) = 0 THEN EvaluateNumbers$ = "ERROR - Division By Zero" EXIT FUNCTION END IF - - n1 = VAL(num(1)) MOD VAL(num(2)) - + n1 = VAL(num(1)) MOD _ROUND(VAL(num(2))) CASE "+": n1 = VAL(num(1)) + VAL(num(2)) CASE "-": n1 = VAL(num(1)) - VAL(num(2))