diff --git a/src/version.c b/src/version.c index c220a409e..2b6f6a88e 100644 --- a/src/version.c +++ b/src/version.c @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2382, /**/ 2381, /**/ diff --git a/src/vim9execute.c b/src/vim9execute.c index b1bc28263..59a0982b3 100644 --- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -2951,17 +2951,19 @@ call_def_function( else #endif { + int failed = FALSE; + switch (iptr->isn_arg.op.op_type) { case EXPR_MULT: n1 = n1 * n2; break; - case EXPR_DIV: n1 = num_divide(n1, n2); - if (n2 == 0) + case EXPR_DIV: n1 = num_divide(n1, n2, &failed); + if (failed) goto on_error; break; case EXPR_SUB: n1 = n1 - n2; break; case EXPR_ADD: n1 = n1 + n2; break; - default: n1 = num_modulus(n1, n2); - if (n2 == 0) + default: n1 = num_modulus(n1, n2, &failed); + if (failed) goto on_error; break; }