From: Bram Moolenaar Date: Sun, 12 Jul 2015 13:02:38 +0000 (+0200) Subject: patch 7.4.779 X-Git-Tag: v7.4.779 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3ec326198029d5a59413b3b8b33dbc9c06c4f28b;p=vim patch 7.4.779 Problem: Using CTRL-A in a line without a number moves the cursor. May cause a crash when at the start of the line. (Urtica Dioica) Solution: Do not move the cursor if no number was changed. --- diff --git a/src/ops.c b/src/ops.c index 8752477e3..e88205171 100644 --- a/src/ops.c +++ b/src/ops.c @@ -5404,6 +5404,7 @@ do_addsub(command, Prenum1, g_cmd) int lnum = curwin->w_cursor.lnum; int lnume = curwin->w_cursor.lnum; int startcol; + int did_change = FALSE; dohex = (vim_strchr(curbuf->b_p_nf, 'x') != NULL); /* "heX" */ dooct = (vim_strchr(curbuf->b_p_nf, 'o') != NULL); /* "Octal" */ @@ -5547,6 +5548,7 @@ do_addsub(command, Prenum1, g_cmd) #endif } curwin->w_cursor.col = col; + did_change = TRUE; (void)del_char(FALSE); ins_char(firstdigit); } @@ -5619,6 +5621,7 @@ do_addsub(command, Prenum1, g_cmd) * Delete the old number. */ curwin->w_cursor.col = col; + did_change = TRUE; todel = length; c = gchar_cursor(); @@ -5713,7 +5716,8 @@ do_addsub(command, Prenum1, g_cmd) RLADDSUBFIX(ptr); #endif } - --curwin->w_cursor.col; + if (did_change && curwin->w_cursor.col > 0) + --curwin->w_cursor.col; return OK; } diff --git a/src/version.c b/src/version.c index 016b25c1d..f90e50930 100644 --- a/src/version.c +++ b/src/version.c @@ -741,6 +741,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 779, /**/ 778, /**/