Patch 7.3.750
Problem:    The justify macro does not always work correctly.
Solution:   Fix off-by-one error (James McCoy)
Files:      runtime/macros/justify.vim


*** ../vim-7.3.749/runtime/macros/justify.vim   2010-08-15 21:57:19.000000000 
+0200
--- runtime/macros/justify.vim  2012-12-05 16:58:40.000000000 +0100
***************
*** 1,4 ****
! " Function to left and rigt align text.
  "
  " Written by: Preben "Peppe" Guldberg <[email protected]>
  " Created:    980806 14:13 (or around that time anyway)
--- 1,4 ----
! " Function to left and right align text.
  "
  " Written by: Preben "Peppe" Guldberg <[email protected]>
  " Created:    980806 14:13 (or around that time anyway)
***************
*** 256,273 ****
        let str = substitute(str, '\s\+$', '', '')
        let str = substitute(str, '^\s\+', '', '')
        let str = substitute(str, '\s\+', ' ', 'g')
!       " Use substitute() hack to get strlen in characters instead of bytes
!       let str_n = strlen(substitute(str, '.', 'x', 'g'))
  
        " Possible addition of space after punctuation
        if exists("join_str")
            let str = substitute(str, join_str, '\1 ', 'g')
        endif
!       let join_n = strlen(substitute(str, '.', 'x', 'g')) - str_n
  
        " Can extraspaces be added?
        " Note that str_n may be less than strlen(str) [joinspaces above]
!       if strlen(substitute(str, '.', 'x', 'g')) < tw - indent_n && str_n > 0
            " How many spaces should be added
            let s_add = tw - str_n - indent_n - join_n
            let s_nr  = strlen(substitute(str, '\S', '', 'g') ) - join_n
--- 256,272 ----
        let str = substitute(str, '\s\+$', '', '')
        let str = substitute(str, '^\s\+', '', '')
        let str = substitute(str, '\s\+', ' ', 'g')
!       let str_n = strdisplaywidth(str)
  
        " Possible addition of space after punctuation
        if exists("join_str")
            let str = substitute(str, join_str, '\1 ', 'g')
        endif
!       let join_n = strdisplaywidth(str) - str_n
  
        " Can extraspaces be added?
        " Note that str_n may be less than strlen(str) [joinspaces above]
!       if strdisplaywidth(str) <= tw - indent_n && str_n > 0
            " How many spaces should be added
            let s_add = tw - str_n - indent_n - join_n
            let s_nr  = strlen(substitute(str, '\S', '', 'g') ) - join_n
*** ../vim-7.3.749/src/version.c        2012-12-05 16:30:03.000000000 +0100
--- src/version.c       2012-12-05 17:01:02.000000000 +0100
***************
*** 727,728 ****
--- 727,730 ----
  {   /* Add new patch number below this line */
+ /**/
+     750,
  /**/

-- 
To be rich is not the end, but only a change of worries.

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