]> granicus.if.org Git - vim/commitdiff
updated for version 7.2.441 v7.2.441
authorBram Moolenaar <Bram@vim.org>
Sun, 30 May 2010 14:55:22 +0000 (16:55 +0200)
committerBram Moolenaar <Bram@vim.org>
Sun, 30 May 2010 14:55:22 +0000 (16:55 +0200)
Problem:    When using ":earlier" undo information may be wrong.
Solution:   When changing alternate branches also adjust b_u_oldhead.

src/undo.c
src/version.c

index 852ed6b6f4a013ed88138098d958f85259abeced..39af55b54eb9b4e7e22827fc56d8149a7cf3c644 100644 (file)
@@ -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 */
index ca7cccf1510ea977ca767b225c952fb1f1cb497d..a552719df1d9aa55c3cc4a7028d66ef5e82e2b95 100644 (file)
@@ -681,6 +681,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    441,
 /**/
     440,
 /**/