summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <bram@vim.org>2010-05-30 16:55:22 +0200
committerBram Moolenaar <bram@vim.org>2010-05-30 16:55:22 +0200
commit185268fc1737c242cac4c0e8d8c7de6316500a74 (patch)
treec8f3711b22fb049e3ac4e5ddf57b4cd330ca0061
parent1bed7a6892c79088c43113693dcac2bff613fb75 (diff)
downloadvim-185268fc1737c242cac4c0e8d8c7de6316500a74.tar.gz
updated for version 7.2.441v7.2.441
Problem: When using ":earlier" undo information may be wrong. Solution: When changing alternate branches also adjust b_u_oldhead.
-rw-r--r--src/undo.c14
-rw-r--r--src/version.c2
2 files changed, 9 insertions, 7 deletions
diff --git a/src/undo.c b/src/undo.c
index 852ed6b6..39af55b5 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -242,7 +242,7 @@ u_save(top, bot)
}
/*
- * save the line "lnum" (used by ":s" and "~" command)
+ * Save the line "lnum" (used by ":s" and "~" command).
* The line is replaced, so the new bottom line is lnum + 1.
*/
int
@@ -256,7 +256,7 @@ u_savesub(lnum)
}
/*
- * a new line is inserted before line "lnum" (used by :s command)
+ * A new line is inserted before line "lnum" (used by :s command).
* The line is inserted, so the new bottom line is lnum + 1.
*/
int
@@ -270,7 +270,7 @@ u_inssub(lnum)
}
/*
- * save the lines "lnum" - "lnum" + nlines (used by delete command)
+ * Save the lines "lnum" - "lnum" + nlines (used by delete command).
* The lines are deleted, so the new bottom line is lnum, unless the buffer
* becomes empty.
*/
@@ -996,6 +996,8 @@ undo_time(step, sec, absolute)
last->uh_alt_next = uhp;
uhp->uh_alt_prev = last;
+ if (curbuf->b_u_oldhead == uhp)
+ curbuf->b_u_oldhead = last;
uhp = last;
if (uhp->uh_next != NULL)
uhp->uh_next->uh_prev = uhp;
@@ -1406,10 +1408,9 @@ u_sync(force)
/*
* ":undolist": List the leafs of the undo tree
*/
-/*ARGSUSED*/
void
ex_undolist(eap)
- exarg_T *eap;
+ exarg_T *eap UNUSED;
{
garray_T ga;
u_header_T *uhp;
@@ -1529,10 +1530,9 @@ u_add_time(buf, buflen, tt)
/*
* ":undojoin": continue adding to the last entry list
*/
-/*ARGSUSED*/
void
ex_undojoin(eap)
- exarg_T *eap;
+ exarg_T *eap UNUSED;
{
if (curbuf->b_u_newhead == NULL)
return; /* nothing changed before */
diff --git a/src/version.c b/src/version.c
index ca7cccf1..a552719d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -682,6 +682,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 441,
+/**/
440,
/**/
439,