From 4930a76a0357f76a829eafe4985d04cf3ce0e9e0 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 11 Sep 2016 14:39:53 +0200 Subject: [PATCH] patch 7.4.2362 Problem: Illegal memory access with ":1@". (Dominique Pelle) Solution: Correct cursor column after setting the line number. Also avoid calling end_visual_mode() when not in Visual mode. --- src/buffer.c | 4 ++-- src/ex_docmd.c | 1 + src/version.c | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/buffer.c b/src/buffer.c index 55e200ab8..b013295f7 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -580,7 +580,7 @@ aucmd_abort: /* When closing the current buffer stop Visual mode before freeing * anything. */ - if (buf == curbuf + if (buf == curbuf && VIsual_active #if defined(EXITFREE) && !entered_free_all_mem #endif @@ -1389,7 +1389,7 @@ do_buffer( } /* When closing the current buffer stop Visual mode. */ - if (buf == curbuf) + if (buf == curbuf && VIsual_active) end_visual_mode(); /* diff --git a/src/ex_docmd.c b/src/ex_docmd.c index dc0a71e68..eef559506 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -9388,6 +9388,7 @@ ex_at(exarg_T *eap) int prev_len = typebuf.tb_len; curwin->w_cursor.lnum = eap->line2; + check_cursor_col(); #ifdef USE_ON_FLY_SCROLL dont_scroll = TRUE; /* disallow scrolling here */ diff --git a/src/version.c b/src/version.c index 9a6851e55..8a6062d76 100644 --- a/src/version.c +++ b/src/version.c @@ -763,6 +763,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2362, /**/ 2361, /**/ -- 2.50.1