Merge pull request #33519 from zeertzjq/vim-9.1.1314

vim-patch:9.1.{1314,1318}: max allowed string width too small
This commit is contained in:
zeertzjq
2025-04-19 07:22:39 +08:00
committed by GitHub
5 changed files with 13 additions and 10 deletions

View File

@@ -7395,7 +7395,8 @@ printf({fmt}, {expr1} ...) *printf()*
< 1.41
You will get an overflow error |E1510|, when the field-width
or precision will result in a string longer than 6400 chars.
or precision will result in a string longer than 1 MB
(1024*1024 = 1048576) chars.
*E1500*
You cannot mix positional and non-positional arguments: >vim

View File

@@ -6720,7 +6720,8 @@ function vim.fn.prevnonblank(lnum) end
--- < 1.41
---
--- You will get an overflow error |E1510|, when the field-width
--- or precision will result in a string longer than 6400 chars.
--- or precision will result in a string longer than 1 MB
--- (1024*1024 = 1048576) chars.
---
--- *E1500*
--- You cannot mix positional and non-positional arguments: >vim

View File

@@ -8169,7 +8169,8 @@ M.funcs = {
< 1.41
You will get an overflow error |E1510|, when the field-width
or precision will result in a string longer than 6400 chars.
or precision will result in a string longer than 1 MB
(1024*1024 = 1048576) chars.
*E1500*
You cannot mix positional and non-positional arguments: >vim

View File

@@ -1027,7 +1027,7 @@ static void format_overflow_error(const char *pstart)
xfree(argcopy);
}
enum { MAX_ALLOWED_STRING_WIDTH = 6400, };
enum { MAX_ALLOWED_STRING_WIDTH = 1048576, }; // 1MiB
static int get_unsigned_int(const char *pstart, const char **p, unsigned *uj, bool overflow_err)
{

View File

@@ -334,13 +334,13 @@ func Test_printf_pos_errors()
call CheckLegacyAndVim9Failure(["call printf('%1$*123456789$.*987654321$d', 5)"], "E1510:")
call CheckLegacyAndVim9Failure(["call printf('%123456789$*1$.*987654321$d', 5)"], "E1510:")
call CheckLegacyAndVim9Failure(["call printf('%1$*2$.*1$d', 5, 9999)"], "E1510:")
call CheckLegacyAndVim9Failure(["call printf('%1$*1$.*2$d', 5, 9999)"], "E1510:")
call CheckLegacyAndVim9Failure(["call printf('%2$*3$.*1$d', 5, 9123, 9321)"], "E1510:")
call CheckLegacyAndVim9Failure(["call printf('%1$*2$.*3$d', 5, 9123, 9321)"], "E1510:")
call CheckLegacyAndVim9Failure(["call printf('%2$*1$.*3$d', 5, 9123, 9312)"], "E1510:")
call CheckLegacyAndVim9Failure(["call printf('%1$*2$.*1$d', 5, 9999999)"], "E1510:")
call CheckLegacyAndVim9Failure(["call printf('%1$*1$.*2$d', 5, 9999999)"], "E1510:")
call CheckLegacyAndVim9Failure(["call printf('%2$*3$.*1$d', 5, 9999123, 9999321)"], "E1510:")
call CheckLegacyAndVim9Failure(["call printf('%1$*2$.*3$d', 5, 9999123, 9999321)"], "E1510:")
call CheckLegacyAndVim9Failure(["call printf('%2$*1$.*3$d', 5, 9999123, 9999312)"], "E1510:")
call CheckLegacyAndVim9Failure(["call printf('%1$*2$d', 5, 9999)"], "E1510:")
call CheckLegacyAndVim9Failure(["call printf('%1$*2$d', 5, 9999999)"], "E1510:")
endfunc
func Test_printf_pos_64bit()