Patch 8.0.0380
Problem: With 'linebreak' set and 'breakat' includes ">" a double-wide
character results in "<<" displayed.
Solution: Check for the character not to be replaced. (Ozaki Kiichi,
closes #1456)
Files: src/screen.c, src/testdir/test_listlbr_utf8.vim
*** ../vim-8.0.0379/src/screen.c 2017-02-23 14:55:55.602643421 +0100
--- src/screen.c 2017-02-26 19:16:23.503358032 +0100
***************
*** 4189,4194 ****
--- 4189,4196 ----
}
else
{
+ int c0;
+
if (p_extra_free != NULL)
{
vim_free(p_extra_free);
***************
*** 4197,4203 ****
/*
* Get a character from the line itself.
*/
! c = *ptr;
#ifdef FEAT_MBYTE
if (has_mbyte)
{
--- 4199,4205 ----
/*
* Get a character from the line itself.
*/
! c0 = c = *ptr;
#ifdef FEAT_MBYTE
if (has_mbyte)
{
***************
*** 4214,4220 ****
/* Overlong encoded ASCII or ASCII with composing char
* is displayed normally, except a NUL. */
if (mb_c < 0x80)
! c = mb_c;
mb_utf8 = TRUE;
/* At start of the line we can have a composing char.
--- 4216,4222 ----
/* Overlong encoded ASCII or ASCII with composing char
* is displayed normally, except a NUL. */
if (mb_c < 0x80)
! c0 = c = mb_c;
mb_utf8 = TRUE;
/* At start of the line we can have a composing char.
***************
*** 4538,4544 ****
/*
* Found last space before word: check for line break.
*/
! if (wp->w_p_lbr && vim_isbreak(c) && !vim_isbreak(*ptr))
{
# ifdef FEAT_MBYTE
int mb_off = has_mbyte ? (*mb_head_off)(line, ptr - 1) : 0;
--- 4540,4547 ----
/*
* Found last space before word: check for line break.
*/
! if (wp->w_p_lbr && c0 == c
! && vim_isbreak(c) && !vim_isbreak(*ptr))
{
# ifdef FEAT_MBYTE
int mb_off = has_mbyte ? (*mb_head_off)(line, ptr - 1) : 0;
*** ../vim-8.0.0379/src/testdir/test_listlbr_utf8.vim 2017-02-05
21:14:26.743355267 +0100
--- src/testdir/test_listlbr_utf8.vim 2017-02-26 19:12:34.960813861 +0100
***************
*** 193,195 ****
--- 193,222 ----
call s:compare_lines(expect, lines)
call s:close_windows()
endfunc
+
+ func Test_illegal_byte_and_breakat()
+ call s:test_windows("setl sbr= brk+=<")
+ vert resize 18
+ call setline(1, repeat("\x80", 6))
+ redraw!
+ let lines = s:screen_lines([1, 2], winwidth(0))
+ let expect = [
+ \ "<80><80><80><80><8",
+ \ "0><80> ",
+ \ ]
+ call s:compare_lines(expect, lines)
+ call s:close_windows('setl brk&vim')
+ endfunc
+
+ func Test_multibyte_wrap_and_breakat()
+ call s:test_windows("setl sbr= brk+=>")
+ call setline(1, repeat('a', 17) . repeat('あ', 2))
+ redraw!
+ let lines = s:screen_lines([1, 2], winwidth(0))
+ let expect = [
+ \ "aaaaaaaaaaaaaaaaaあ>",
+ \ "あ ",
+ \ ]
+ call s:compare_lines(expect, lines)
+ call s:close_windows('setl brk&vim')
+ endfunc
*** ../vim-8.0.0379/src/version.c 2017-02-26 19:09:01.398217128 +0100
--- src/version.c 2017-02-26 19:17:48.814813913 +0100
***************
*** 766,767 ****
--- 766,769 ----
{ /* Add new patch number below this line */
+ /**/
+ 380,
/**/
--
If Pacman had affected us as kids we'd be running around in dark rooms,
munching pills and listening to repetitive music.
-- Marcus Brigstocke
/// 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.