patch 8.2.2381: Vim9: divide by zero does not abort expression execution
Problem: Vim9: divide by zero does not abort expression execution.
Solution: Use a "failed" flag. (issue #7704)
diff --git a/src/evalvars.c b/src/evalvars.c
index 200fb8f..1799531 100644
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -1410,8 +1410,10 @@
case '+': n = numval + n; break;
case '-': n = numval - n; break;
case '*': n = numval * n; break;
- case '/': n = (long)num_divide(numval, n); break;
- case '%': n = (long)num_modulus(numval, n); break;
+ case '/': n = (long)num_divide(numval, n,
+ &failed); break;
+ case '%': n = (long)num_modulus(numval, n,
+ &failed); break;
}
}
else if (opt_type == gov_string