diff options
author | Bram Moolenaar <bram@vim.org> | 2010-05-30 16:55:22 +0200 |
---|---|---|
committer | Bram Moolenaar <bram@vim.org> | 2010-05-30 16:55:22 +0200 |
commit | 185268fc1737c242cac4c0e8d8c7de6316500a74 (patch) | |
tree | c8f3711b22fb049e3ac4e5ddf57b4cd330ca0061 | |
parent | 1bed7a6892c79088c43113693dcac2bff613fb75 (diff) | |
download | vim-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.c | 14 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 9 insertions, 7 deletions
@@ -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, |