diff options
-rw-r--r-- | src/buffer.c | 2 | ||||
-rw-r--r-- | src/testdir/test_statusline.vim | 7 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 11 insertions, 0 deletions
diff --git a/src/buffer.c b/src/buffer.c index 9856898789..4016822616 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -4617,6 +4617,8 @@ build_stl_str_hl( #endif if (vim_strchr(STL_ALL, *s) == NULL) { + if (*s == NUL) // can happen with "%0" + break; s++; continue; } diff --git a/src/testdir/test_statusline.vim b/src/testdir/test_statusline.vim index a829597655..23613bfed3 100644 --- a/src/testdir/test_statusline.vim +++ b/src/testdir/test_statusline.vim @@ -440,6 +440,13 @@ func Test_statusline() set splitbelow& endfunc +func Test_statusline_trailing_percent_zero() + " this was causing illegal memory access + set laststatus=2 stl=%!%0 + call assert_fails('redraw', 'E15: Invalid expression: "%0"') + set laststatus& stl& +endfunc + func Test_statusline_visual() func CallWordcount() call wordcount() diff --git a/src/version.c b/src/version.c index df02bb87b8..4ccbd537ab 100644 --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1143, +/**/ 1142, /**/ 1141, |