To: vim_dev@googlegroups.com Subject: Patch 7.3.395 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.3.395 (after 7.3.251) Problem: "dv?bar" in the last line deletes too much and breaks undo. Solution: Only adjust the cursor position when it's after the last line of the buffer. Add a test. (Christian Brabandt) Files: src/ops.c, src/testdir/test43.in, src/testdir/test43.ok *** ../vim-7.3.394/src/ops.c 2011-09-21 17:33:49.000000000 +0200 --- src/ops.c 2012-01-10 13:28:05.000000000 +0100 *************** *** 1961,1968 **** /* Special case: gH deletes the last line. */ del_lines(1L, FALSE); curwin->w_cursor = curpos; /* restore curwin->w_cursor */ ! if (curwin->w_cursor.lnum > 1) ! --curwin->w_cursor.lnum; } else { --- 1962,1969 ---- /* Special case: gH deletes the last line. */ del_lines(1L, FALSE); curwin->w_cursor = curpos; /* restore curwin->w_cursor */ ! if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count) ! curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count; } else { *************** *** 4434,4440 **** #endif /* ! * implementation of the format operator 'gq' */ void op_format(oap, keep_cursor) --- 4435,4441 ---- #endif /* ! * Implementation of the format operator 'gq'. */ void op_format(oap, keep_cursor) *** ../vim-7.3.394/src/testdir/test43.in 2010-08-15 21:57:29.000000000 +0200 --- src/testdir/test43.in 2012-01-10 13:41:13.000000000 +0100 *************** *** 13,19 **** x:set magic /\v(a)(b)\2\1\1/e x/\V[ab]\(\[xy]\)\1 ! x:?^1?,$w! test.out :qa! ENDTEST --- 13,23 ---- x:set magic /\v(a)(b)\2\1\1/e x/\V[ab]\(\[xy]\)\1 ! x:$ ! :set undolevels=100 ! dv?bar? ! Yup:" ! :?^1?,$w! test.out :qa! ENDTEST *************** *** 25,27 **** --- 29,33 ---- 6 x ^aa$ x 7 (a)(b) abbaa 8 axx [ab]xx + 9 foobar + *** ../vim-7.3.394/src/testdir/test43.ok 2010-08-15 21:57:29.000000000 +0200 --- src/testdir/test43.ok 2012-01-10 13:42:39.000000000 +0100 *************** *** 6,8 **** --- 6,11 ---- 6 x aa$ x 7 (a)(b) abba 8 axx ab]xx + 9 foobar + 9 foo + *** ../vim-7.3.394/src/version.c 2012-01-10 12:42:05.000000000 +0100 --- src/version.c 2012-01-10 13:30:40.000000000 +0100 *************** *** 716,717 **** --- 716,719 ---- { /* Add new patch number below this line */ + /**/ + 395, /**/ -- The Law, in its majestic equality, forbids the rich, as well as the poor, to sleep under the bridges, to beg in the streets, and to steal bread. -- Anatole France /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///