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 -- [email protected] -- 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    ///

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui