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
commitbf7750ee4343d5a9eff0ae575b7d69a3ef93c69a (patch)
treee07f4aeef2e4f5228aeedeb0b40187b3d6838d0e
parent25728655ad961942d7f0e4121aca66df41041f09 (diff)
downloadvim-7-4-779.tar.gz
patch 7.4.779v7.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 8752477e..e8820517 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 016b25c1..f90e5093 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,