# HG changeset patch # User Christian Brabandt # Date 1473597905 -7200 # Node ID 4669440016f2b9f86815215333b015dd6309608e # Parent 44eb2e61735ef7c1e3d33f9ece109658e48b21bd commit https://github.com/vim/vim/commit/4930a76a0357f76a829eafe4985d04cf3ce0e9e0 Author: Bram Moolenaar Date: Sun Sep 11 14:39:53 2016 +0200 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. diff --git a/src/buffer.c b/src/buffer.c --- 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 --- 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 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2362, +/**/ 2361, /**/ 2360,