From: Bram Moolenaar Date: Mon, 16 May 2022 17:06:15 +0000 (+0100) Subject: patch 8.2.4968: reading past end of the line when C-indenting X-Git-Tag: v8.2.4968 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=60ae0e71490c97f2871a6344aca61cacf220f813;p=vim patch 8.2.4968: reading past end of the line when C-indenting Problem: Reading past end of the line when C-indenting. Solution: Check for NUL. --- 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 @@ -746,6 +746,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 4968, /**/ 4967, /**/