From aab05cd5ff13b39b755b2bced57ec42aee16dfb3 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 18 Jun 2022 19:35:37 +0800 Subject: [PATCH 1/2] vim-patch:8.2.5120: searching for quotes may go over the end of the line Problem: Searching for quotes may go over the end of the line. Solution: Check for running into the NUL. https://github.com/vim/vim/commit/2f074f4685897ab7212e25931eeeb0212292829f --- src/nvim/search.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/nvim/search.c b/src/nvim/search.c index d442a5aa87..1e862f10ec 100644 --- a/src/nvim/search.c +++ b/src/nvim/search.c @@ -4057,6 +4057,11 @@ bool current_quote(oparg_T *oap, long count, bool include, int quotechar) // Find out if we have a quote in the selection. while (i <= col_end) { + // check for going over the end of the line, which can happen if + // the line was changed after the Visual area was selected. + if (line[i] == NUL) { + break; + } if (line[i++] == quotechar) { selected_quote = true; break; From dc56b442d8ae81daea533c49ac381298cfa94e5b Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 18 Jun 2022 19:36:46 +0800 Subject: [PATCH 2/2] vim-patch:8.2.5121: interrupt test sometimes fails Problem: Interrupt test sometimes fails. Solution: Use a different file name. https://github.com/vim/vim/commit/8d6420631c2bd73dbc1939c4bf04ab7bb39cc263 Add a modeline to test_interrupt.vim. --- src/nvim/testdir/test_interrupt.vim | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/nvim/testdir/test_interrupt.vim b/src/nvim/testdir/test_interrupt.vim index 111752d16a..aa7f634302 100644 --- a/src/nvim/testdir/test_interrupt.vim +++ b/src/nvim/testdir/test_interrupt.vim @@ -13,15 +13,20 @@ func s:bufwritepost() endfunction func Test_interrupt() - new Xfile + new Xinterrupt let n = 0 try - au BufWritePre Xfile call s:bufwritepre() - au BufWritePost Xfile call s:bufwritepost() + au BufWritePre Xinterrupt call s:bufwritepre() + au BufWritePost Xinterrupt call s:bufwritepost() w! catch /^Vim:Interrupt$/ endtry call assert_equal(1, s:bufwritepre_called) call assert_equal(0, s:bufwritepost_called) - call assert_equal(0, filereadable('Xfile')) + call assert_equal(0, filereadable('Xinterrupt')) + + au! BufWritePre + au! BufWritePost endfunc + +" vim: shiftwidth=2 sts=2 expandtab