From: Bram Moolenaar Date: Fri, 1 Jul 2022 14:26:15 +0000 (+0100) Subject: patch 9.0.0017: accessing memory beyond the end of the line X-Git-Tag: v9.0.0017 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3d51ce18ab1be4f9f6061568a4e7fabf00b21794;p=thirdparty%2Fvim.git patch 9.0.0017: accessing memory beyond the end of the line Problem: Accessing memory beyond the end of the line. Solution: Stop Visual mode when closing a window. --- diff --git a/src/testdir/test_visual.vim b/src/testdir/test_visual.vim index c3230623b5..e965266540 100644 --- a/src/testdir/test_visual.vim +++ b/src/testdir/test_visual.vim @@ -1469,5 +1469,17 @@ func Test_visual_paste_clipboard() bwipe! endfunc +func Test_visual_area_adjusted_when_hiding() + " The Visual area ended after the end of the line after :hide + call setline(1, 'xxx') + vsplit Xfile + call setline(1, 'xxxxxxxx') + norm! $o + hid + norm! zW + bwipe! + bwipe! +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index 5b737e1bc6..5d10909135 100644 --- a/src/version.c +++ b/src/version.c @@ -735,6 +735,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 17, /**/ 16, /**/ diff --git a/src/window.c b/src/window.c index 992593bed9..c91ebbcfe5 100644 --- a/src/window.c +++ b/src/window.c @@ -2594,6 +2594,8 @@ win_close(win_T *win, int free_buf) */ if (wp->w_buffer != curbuf) { + reset_VIsual_and_resel(); // stop Visual mode + other_buffer = TRUE; win->w_closing = TRUE; apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);