Patch 7.4.1491
Problem:    Visual-block shift breaks multi-byte characters.
Solution:   Compute column differently. (Yasuhiro Matsumoto) Add a test.
Files:      src/ops.c, src/testdir/test_visual.vim, src/testdir/Make_all.mak


*** ../vim-7.4.1490/src/ops.c   2016-01-30 19:39:45.281838574 +0100
--- src/ops.c   2016-03-05 17:13:01.555097191 +0100
***************
*** 410,416 ****
        {
  #ifdef FEAT_MBYTE
            if (has_mbyte)
!               bd.textstart += (*mb_ptr2len)(bd.textstart);
            else
  #endif
                ++bd.textstart;
--- 410,424 ----
        {
  #ifdef FEAT_MBYTE
            if (has_mbyte)
!           {
!               if ((*mb_ptr2len)(bd.textstart) == 1)
!                   ++bd.textstart;
!               else
!               {
!                   ws_vcol = 0;
!                   bd.startspaces = 0;
!               }
!           }
            else
  #endif
                ++bd.textstart;
*** ../vim-7.4.1490/src/testdir/test_visual.vim 2016-03-05 17:24:48.907733298 
+0100
--- src/testdir/test_visual.vim 2016-03-05 17:21:52.697566126 +0100
***************
*** 0 ****
--- 1,19 ----
+ " Tests for Visual mode
+ if !has('multi_byte')
+   finish
+ endif
+ set encoding=utf-8
+ scriptencoding utf-8
+ 
+ if !has('visual')
+   finish
+ endif
+ 
+ func Test_block_shift_multibyte()
+   split
+   call setline(1, ['xヹxxx', 'ヹxxx'])
+   exe "normal 1G0l\<C-V>jl>"
+   call assert_equal('x         ヹxxx', getline(1))
+   call assert_equal(' ヹxxx', getline(2))
+   q!
+ endfunc
*** ../vim-7.4.1490/src/testdir/Make_all.mak    2016-03-04 22:12:07.448524475 
+0100
--- src/testdir/Make_all.mak    2016-03-05 17:21:09.194019169 +0100
***************
*** 184,189 ****
--- 184,190 ----
            test_syntax.res \
            test_viminfo.res \
            test_viml.res \
+           test_visual.res \
            test_alot.res
  
  
*** ../vim-7.4.1490/src/version.c       2016-03-04 23:08:21.908818684 +0100
--- src/version.c       2016-03-05 17:22:31.389163192 +0100
***************
*** 745,746 ****
--- 745,748 ----
  {   /* Add new patch number below this line */
+ /**/
+     1491,
  /**/

-- 
"You're fired." (1980)
"You're laid off." (1985)
"You're downsized." (1990)
"You're rightsized." (1992)
                                (Scott Adams - The Dilbert principle)

 /// 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

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui