comparison src/ex_getln.c @ 32098:39f4126d2a0d v9.0.1380

patch 9.0.1380: CTRL-X on 2**64 subtracts two Commit: https://github.com/vim/vim/commit/5fb78c3fa5c996c08a65431d698bd2c251eef5c7 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Mar 4 20:47:39 2023 +0000 patch 9.0.1380: CTRL-X on 2**64 subtracts two Problem: CTRL-X on 2**64 subtracts two. (James McCoy) Solution: Correct computation for large number. (closes https://github.com/vim/vim/issues/12103)
author Bram Moolenaar <Bram@vim.org>
date Sat, 04 Mar 2023 22:00:03 +0100
parents ca6bc7c04163
children a5b5d8df5763
comparison
equal deleted inserted replaced
32097:79439f353fa0 32098:39f4126d2a0d
4336 varnumber_T num; 4336 varnumber_T num;
4337 4337
4338 *str = skipwhite(*str); 4338 *str = skipwhite(*str);
4339 if (**str == '-' || vim_isdigit(**str)) // parse "from" part of range 4339 if (**str == '-' || vim_isdigit(**str)) // parse "from" part of range
4340 { 4340 {
4341 vim_str2nr(*str, NULL, &len, 0, &num, NULL, 0, FALSE); 4341 vim_str2nr(*str, NULL, &len, 0, &num, NULL, 0, FALSE, NULL);
4342 *str += len; 4342 *str += len;
4343 *num1 = (int)num; 4343 *num1 = (int)num;
4344 first = TRUE; 4344 first = TRUE;
4345 } 4345 }
4346 *str = skipwhite(*str); 4346 *str = skipwhite(*str);
4347 if (**str == ',') // parse "to" part of range 4347 if (**str == ',') // parse "to" part of range
4348 { 4348 {
4349 *str = skipwhite(*str + 1); 4349 *str = skipwhite(*str + 1);
4350 vim_str2nr(*str, NULL, &len, 0, &num, NULL, 0, FALSE); 4350 vim_str2nr(*str, NULL, &len, 0, &num, NULL, 0, FALSE, NULL);
4351 if (len > 0) 4351 if (len > 0)
4352 { 4352 {
4353 *num2 = (int)num; 4353 *num2 = (int)num;
4354 *str = skipwhite(*str + len); 4354 *str = skipwhite(*str + len);
4355 } 4355 }