diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-05-16 18:06:15 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-05-16 18:06:15 +0100 |
commit | 60ae0e71490c97f2871a6344aca61cacf220f813 (patch) | |
tree | 0d121e2e77ddcdb1b5e37f5ca68d91d3dfdc899d | |
parent | 3c25a8617aad9860a1b179d40a183c638b3b70cc (diff) | |
download | vim-git-60ae0e71490c97f2871a6344aca61cacf220f813.tar.gz |
patch 8.2.4968: reading past end of the line when C-indentingv8.2.4968
Problem: Reading past end of the line when C-indenting.
Solution: Check for NUL.
-rw-r--r-- | src/cindent.c | 2 | ||||
-rw-r--r-- | src/testdir/test_cindent.vim | 7 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 10 insertions, 1 deletions
diff --git a/src/cindent.c b/src/cindent.c index ec88036eb..2d47e641b 100644 --- a/src/cindent.c +++ b/src/cindent.c @@ -89,7 +89,7 @@ skip_string(char_u *p) while (vim_isdigit(p[i - 1])) // '\000' ++i; } - if (p[i] == '\'') // check for trailing ' + if (p[i - 1] != NUL && p[i] == '\'') // check for trailing ' { p += i; continue; diff --git a/src/testdir/test_cindent.vim b/src/testdir/test_cindent.vim index dbd4aa006..c65a0dab3 100644 --- a/src/testdir/test_cindent.vim +++ b/src/testdir/test_cindent.vim @@ -5319,6 +5319,13 @@ func Test_cindent_change_multline() close! endfunc +" This was reading past the end of the line +func Test_cindent_check_funcdecl() + new + sil norm o0('\0=L + bwipe! +endfunc + func Test_cindent_scopedecls() new setl cindent ts=4 sw=4 diff --git a/src/version.c b/src/version.c index 6359e0304..7397e6fb7 100644 --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4968, +/**/ 4967, /**/ 4966, |