comparison src/evalvars.c @ 23679:e8c379b20765 v8.2.2381

patch 8.2.2381: Vim9: divide by zero does not abort expression execution Commit: https://github.com/vim/vim/commit/c5f59fab23820454f060562927ddc1397f9d479a Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jan 21 12:34:14 2021 +0100 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 https://github.com/vim/vim/issues/7704)
author Bram Moolenaar <Bram@vim.org>
date Thu, 21 Jan 2021 12:45:05 +0100
parents f8f460738aaa
children cd06cc37f53f
comparison
equal deleted inserted replaced
23678:8548a27908be 23679:e8c379b20765
1408 switch (*op) 1408 switch (*op)
1409 { 1409 {
1410 case '+': n = numval + n; break; 1410 case '+': n = numval + n; break;
1411 case '-': n = numval - n; break; 1411 case '-': n = numval - n; break;
1412 case '*': n = numval * n; break; 1412 case '*': n = numval * n; break;
1413 case '/': n = (long)num_divide(numval, n); break; 1413 case '/': n = (long)num_divide(numval, n,
1414 case '%': n = (long)num_modulus(numval, n); break; 1414 &failed); break;
1415 case '%': n = (long)num_modulus(numval, n,
1416 &failed); break;
1415 } 1417 }
1416 } 1418 }
1417 else if (opt_type == gov_string 1419 else if (opt_type == gov_string
1418 && stringval != NULL && s != NULL) 1420 && stringval != NULL && s != NULL)
1419 { 1421 {