## Patch 7.3.750

Expand Messages
• Patch 7.3.750 Problem: The justify macro does not always work correctly. Solution: Fix off-by-one error (James McCoy) Files:
Message 1 of 1 , Dec 5, 2012
• 0 Attachment
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 <c928400@...>
" Created: 980806 14:13 (or around that time anyway)
--- 1,4 ----
! " Function to left and right align text.
"
" Written by: Preben "Peppe" Guldberg <c928400@...>
" 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

" 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

" 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 -- Bram@... -- http://www.Moolenaar.net \\\