Patch 8.2.4501
Problem: With 'showbreak' set and after the end of the line the cursor
may be displayed in the wrong position.
Solution: Do not apply 'showbreak' after the end of the line. (closes #9884)
Files: src/charset.c, src/testdir/test_breakindent.vim,
src/testdir/dumps/Test_cursor_position_with_showbreak.dump
*** ../vim-8.2.4500/src/charset.c 2022-02-19 11:19:29.821776577 +0000
--- src/charset.c 2022-03-03 19:51:55.370125798 +0000
***************
*** 1037,1045 ****
* May have to add something for 'breakindent' and/or 'showbreak'
* string at start of line.
* Set *headp to the size of what we add.
*/
added = 0;
! sbr = get_showbreak_value(wp);
if ((*sbr != NUL || wp->w_p_bri) && wp->w_p_wrap && col != 0)
{
colnr_T sbrlen = 0;
--- 1037,1046 ----
* May have to add something for 'breakindent' and/or 'showbreak'
* string at start of line.
* Set *headp to the size of what we add.
+ * Do not use 'showbreak' at the NUL after the text.
*/
added = 0;
! sbr = c == NUL ? empty_option : get_showbreak_value(wp);
if ((*sbr != NUL || wp->w_p_bri) && wp->w_p_wrap && col != 0)
{
colnr_T sbrlen = 0;
*** ../vim-8.2.4500/src/testdir/test_breakindent.vim 2022-01-15
18:31:37.720587407 +0000
--- src/testdir/test_breakindent.vim 2022-03-03 19:48:43.346448245 +0000
***************
*** 8,13 ****
--- 8,14 ----
CheckOption breakindent
source view_util.vim
+ source screendump.vim
let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
***************
*** 849,854 ****
--- 850,876 ----
%bw!
endfunc
+ func Test_cursor_position_with_showbreak()
+ CheckScreendump
+
+ let lines =<< trim END
+ vim9script
+ &signcolumn = 'yes'
+ &showbreak = '+ '
+ var leftcol: number = win_getid()->getwininfo()->get(0,
{})->get('textoff')
+ repeat('x', &columns - leftcol - 1)->setline(1)
+ 'second line'->setline(2)
+ END
+ call writefile(lines, 'XscriptShowbreak')
+ let buf = RunVimInTerminal('-S XscriptShowbreak', #{rows: 6})
+
+ call term_sendkeys(buf, "AX")
+ call VerifyScreenDump(buf, 'Test_cursor_position_with_showbreak', {})
+
+ call StopVimInTerminal(buf)
+ call delete('XscriptShowbreak')
+ endfunc
+
func Test_no_spurious_match()
let s:input = printf('- y %s y %s', repeat('x', 50), repeat('x', 50))
call s:test_windows('setl breakindent breakindentopt=list:-1
formatlistpat=^- hls')
*** ../vim-8.2.4500/src/testdir/dumps/Test_cursor_position_with_showbreak.dump
2022-03-03 20:03:33.941102958 +0000
--- src/testdir/dumps/Test_cursor_position_with_showbreak.dump 2022-03-03
19:49:09.326402857 +0000
***************
*** 0 ****
--- 1,6 ----
+ | +0#0000e05#a8a8a8255@1|x+0#0000000#ffffff0@71|X
+ > +0#0000e05#a8a8a8255@1|s+0#0000000#ffffff0|e|c|o|n|d| |l|i|n|e| @61
+ |~+0#4040ff13&| @73
+ |~| @73
+ |~| @73
+ |-+2#0000000&@1| |I|N|S|E|R|T| |-@1| +0&&@44|1|,|7|4| @9|A|l@1|
*** ../vim-8.2.4500/src/version.c 2022-03-03 17:05:17.527121052 +0000
--- src/version.c 2022-03-03 19:42:06.539242407 +0000
***************
*** 756,757 ****
--- 756,759 ----
{ /* Add new patch number below this line */
+ /**/
+ 4501,
/**/
--
hundred-and-one symptoms of being an internet addict:
153. You find yourself staring at your "inbox" waiting for new e-mail
to arrive.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// \\\
\\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\\ 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].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/20220303200432.7910F1C0362%40moolenaar.net.