0
0
mirror of https://github.com/vim/vim.git synced 2025-09-26 04:04:07 -04:00

updated for version 7.3.750

Problem:    The justify macro does not always work correctly.
Solution:   Fix off-by-one error (James McCoy)
This commit is contained in:
Bram Moolenaar
2012-12-05 17:03:22 +01:00
parent a54bf40017
commit 57e4ee4d38
2 changed files with 6 additions and 5 deletions

View File

@@ -1,4 +1,4 @@
" Function to left and rigt align text. " Function to left and right align text.
" "
" Written by: Preben "Peppe" Guldberg <c928400@student.dtu.dk> " Written by: Preben "Peppe" Guldberg <c928400@student.dtu.dk>
" Created: 980806 14:13 (or around that time anyway) " Created: 980806 14:13 (or around that time anyway)
@@ -256,18 +256,17 @@ function! Justify(...) range
let str = substitute(str, '\s\+$', '', '') let str = substitute(str, '\s\+$', '', '')
let str = substitute(str, '^\s\+', '', '') let str = substitute(str, '^\s\+', '', '')
let str = substitute(str, '\s\+', ' ', 'g') let str = substitute(str, '\s\+', ' ', 'g')
" Use substitute() hack to get strlen in characters instead of bytes let str_n = strdisplaywidth(str)
let str_n = strlen(substitute(str, '.', 'x', 'g'))
" Possible addition of space after punctuation " Possible addition of space after punctuation
if exists("join_str") if exists("join_str")
let str = substitute(str, join_str, '\1 ', 'g') let str = substitute(str, join_str, '\1 ', 'g')
endif endif
let join_n = strlen(substitute(str, '.', 'x', 'g')) - str_n let join_n = strdisplaywidth(str) - str_n
" Can extraspaces be added? " Can extraspaces be added?
" Note that str_n may be less than strlen(str) [joinspaces above] " Note that str_n may be less than strlen(str) [joinspaces above]
if strlen(substitute(str, '.', 'x', 'g')) < tw - indent_n && str_n > 0 if strdisplaywidth(str) <= tw - indent_n && str_n > 0
" How many spaces should be added " How many spaces should be added
let s_add = tw - str_n - indent_n - join_n let s_add = tw - str_n - indent_n - join_n
let s_nr = strlen(substitute(str, '\S', '', 'g') ) - join_n let s_nr = strlen(substitute(str, '\S', '', 'g') ) - join_n

View File

@@ -725,6 +725,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
750,
/**/ /**/
749, 749,
/**/ /**/