To: vim-dev@vim.org Subject: Patch 7.2.441 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.2.441 Problem: When using ":earlier" undo information may be wrong. Solution: When changing alternate branches also adjust b_u_oldhead. Files: src/undo.c *** ../vim-7.2.440/src/undo.c 2008-02-13 15:21:29.000000000 +0100 --- src/undo.c 2010-05-30 16:52:47.000000000 +0200 *************** *** 242,248 **** } /* ! * save the line "lnum" (used by ":s" and "~" command) * The line is replaced, so the new bottom line is lnum + 1. */ int --- 242,248 ---- } /* ! * Save the line "lnum" (used by ":s" and "~" command). * The line is replaced, so the new bottom line is lnum + 1. */ int *************** *** 256,262 **** } /* ! * 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 --- 256,262 ---- } /* ! * 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,276 **** } /* ! * 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. */ --- 270,276 ---- } /* ! * 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,1001 **** --- 996,1003 ---- 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,1415 **** /* * ":undolist": List the leafs of the undo tree */ - /*ARGSUSED*/ void ex_undolist(eap) ! exarg_T *eap; { garray_T ga; u_header_T *uhp; --- 1408,1416 ---- /* * ":undolist": List the leafs of the undo tree */ void ex_undolist(eap) ! exarg_T *eap UNUSED; { garray_T ga; u_header_T *uhp; *************** *** 1529,1538 **** /* * ":undojoin": continue adding to the last entry list */ - /*ARGSUSED*/ void ex_undojoin(eap) ! exarg_T *eap; { if (curbuf->b_u_newhead == NULL) return; /* nothing changed before */ --- 1530,1538 ---- /* * ":undojoin": continue adding to the last entry list */ void ex_undojoin(eap) ! exarg_T *eap UNUSED; { if (curbuf->b_u_newhead == NULL) return; /* nothing changed before */ *** ../vim-7.2.440/src/version.c 2010-05-28 22:06:41.000000000 +0200 --- src/version.c 2010-05-30 16:53:56.000000000 +0200 *************** *** 683,684 **** --- 683,686 ---- { /* Add new patch number below this line */ + /**/ + 441, /**/ -- hundred-and-one symptoms of being an internet addict: 127. You bring your laptop and cellular phone to church. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ download, build and distribute -- http://www.A-A-P.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///