To: vim_dev@googlegroups.com
Subject: Patch 7.3.395
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
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<Del> 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<Del> 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 ///