Mercurial > vim
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 { |