summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2015-07-12 15:02:38 +0200
committerBram Moolenaar <Bram@vim.org>2015-07-12 15:02:38 +0200
commit3ec326198029d5a59413b3b8b33dbc9c06c4f28b (patch)
treea0d5847ead9364f345efacc6f830a1b5638aaae9
parentae2fe73abc954b8fd3dbd7994daa8e31e6690bd0 (diff)
downloadvim-git-3ec326198029d5a59413b3b8b33dbc9c06c4f28b.tar.gz
patch 7.4.779v7.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.
-rw-r--r--src/ops.c6
-rw-r--r--src/version.c2
2 files changed, 7 insertions, 1 deletions
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
@@ -742,6 +742,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 779,
+/**/
778,
/**/
777,