diff --git a/7.3.750 b/7.3.750 new file mode 100644 index 0000000..d6d70fe --- /dev/null +++ b/7.3.750 @@ -0,0 +1,83 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.750 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +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 + " Created: 980806 14:13 (or around that time anyway) +--- 1,4 ---- +! " Function to left and right align text. + " + " Written by: Preben "Peppe" Guldberg + " 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 -- Bram@Moolenaar.net -- 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 ///