Patch 9.0.0143
Problem:    Cursor positioned after virtual text in empty line.
Solution:   Keep cursor in the first column. (closes #10786)
Files:      src/charset.c, src/testdir/test_textprop.vim,
            src/testdir/dumps/Test_prop_inserts_text_1.dump,
            src/testdir/dumps/Test_prop_inserts_text_2.dump,
            src/testdir/dumps/Test_prop_inserts_text_3.dump,
            src/testdir/dumps/Test_prop_inserts_text_4.dump


*** ../vim-9.0.0142/src/charset.c       2022-08-05 11:45:13.846878240 +0100
--- src/charset.c       2022-08-05 13:06:23.587455338 +0100
***************
*** 1127,1133 ****
      size = win_chartabsize(wp, s, vcol);
  
  # ifdef FEAT_PROP_POPUP
!     if (cts->cts_has_prop_with_text)
      {
        int         i;
        int         col = (int)(s - line);
--- 1127,1133 ----
      size = win_chartabsize(wp, s, vcol);
  
  # ifdef FEAT_PROP_POPUP
!     if (cts->cts_has_prop_with_text && *line != NUL)
      {
        int         i;
        int         col = (int)(s - line);
*** ../vim-9.0.0142/src/testdir/test_textprop.vim       2022-08-04 
15:03:16.253142105 +0100
--- src/testdir/test_textprop.vim       2022-08-05 13:02:49.980154222 +0100
***************
*** 2221,2226 ****
--- 2221,2229 ----
        call setline(2, 'prepost')
        call prop_type_add('multibyte', #{highlight: 'Visual'})
        call prop_add(2, 4, #{type: 'multibyte', text: 'söme和平téxt'})
+ 
+       call setline(3, '')
+       call prop_add(3, 1, #{type: 'someprop', text: 'empty line'})
    END
    call writefile(lines, 'XscriptPropsWithText')
    let buf = RunVimInTerminal('-S XscriptPropsWithText', #{rows: 6, cols: 60})
***************
*** 2229,2234 ****
--- 2232,2243 ----
    call term_sendkeys(buf, ":set signcolumn=yes\<CR>")
    call VerifyScreenDump(buf, 'Test_prop_inserts_text_2', {})
  
+   call term_sendkeys(buf, "2G$")
+   call VerifyScreenDump(buf, 'Test_prop_inserts_text_3', {})
+ 
+   call term_sendkeys(buf, "3G")
+   call VerifyScreenDump(buf, 'Test_prop_inserts_text_4', {})
+ 
    call StopVimInTerminal(buf)
    call delete('XscriptPropsWithText')
  endfunc
*** ../vim-9.0.0142/src/testdir/dumps/Test_prop_inserts_text_1.dump     
2022-08-01 16:50:58.869575285 +0100
--- src/testdir/dumps/Test_prop_inserts_text_1.dump     2022-08-05 
13:03:23.412044700 +0100
***************
*** 1,6 ****
  |i+0&#ffffff0|n|s|e|r|t| |s|o|m|e| |t|e|x|t| |S+0#ffffff16#e000002|O|M|E| 
|h+0#0000000#ffffff0|e|r|e| |a|n|d| |o|t|h|e|r| |t|e|x|t| 
|O+0&#ffff4012|T|H|E|R| |t+0&#ffffff0|h|e|r|e| |a|n|d| |s|o
  |m|e| |m|o|r|e| |t|e|x|t| |a|f|t|e|r| |M+0&#5fd7ff255|O|R|E| 
|w+0&#ffffff0|r|a|p@1|i|n>g| @27
  |p|r|e|s+0&#e0e0e08|ö|m|e|和*&|平|t+&|é|x|t|p+0&#ffffff0|o|s|t| @40
  |~+0#4040ff13&| @58
- |~| @58
  | +0#0000000&@41|1|,|7|6|-|9|2| @6|A|l@1| 
--- 1,6 ----
  |i+0&#ffffff0|n|s|e|r|t| |s|o|m|e| |t|e|x|t| |S+0#ffffff16#e000002|O|M|E| 
|h+0#0000000#ffffff0|e|r|e| |a|n|d| |o|t|h|e|r| |t|e|x|t| 
|O+0&#ffff4012|T|H|E|R| |t+0&#ffffff0|h|e|r|e| |a|n|d| |s|o
  |m|e| |m|o|r|e| |t|e|x|t| |a|f|t|e|r| |M+0&#5fd7ff255|O|R|E| 
|w+0&#ffffff0|r|a|p@1|i|n>g| @27
  |p|r|e|s+0&#e0e0e08|ö|m|e|和*&|平|t+&|é|x|t|p+0&#ffffff0|o|s|t| @40
+ |e+0#ffffff16#e000002|m|p|t|y| |l|i|n|e| +0#0000000#ffffff0@49
  |~+0#4040ff13&| @58
  | +0#0000000&@41|1|,|7|6|-|9|2| @6|A|l@1| 
*** ../vim-9.0.0142/src/testdir/dumps/Test_prop_inserts_text_2.dump     
2022-08-01 16:50:58.869575285 +0100
--- src/testdir/dumps/Test_prop_inserts_text_2.dump     2022-08-05 
13:03:24.472041228 +0100
***************
*** 1,6 ****
  | +0#0000e05#a8a8a8255@1|i+0#0000000#ffffff0|n|s|e|r|t| |s|o|m|e| |t|e|x|t| 
|S+0#ffffff16#e000002|O|M|E| |h+0#0000000#ffffff0|e|r|e| |a|n|d| |o|t|h|e|r| 
|t|e|x|t| |O+0&#ffff4012|T|H|E|R| |t+0&#ffffff0|h|e|r|e| |a|n|d| 
  | +0#0000e05#a8a8a8255@1|s+0#0000000#ffffff0|o|m|e| |m|o|r|e| |t|e|x|t| 
|a|f|t|e|r| |M+0&#5fd7ff255|O|R|E| |w+0&#ffffff0|r|a|p@1|i|n>g| @23
  | 
+0#0000e05#a8a8a8255@1|p+0#0000000#ffffff0|r|e|s+0&#e0e0e08|ö|m|e|和*&|平|t+&|é|x|t|p+0&#ffffff0|o|s|t|
 @38
  |~+0#4040ff13&| @58
- |~| @58
  | +0#0000000&@41|1|,|7|6|-|9|2| @6|A|l@1| 
--- 1,6 ----
  | +0#0000e05#a8a8a8255@1|i+0#0000000#ffffff0|n|s|e|r|t| |s|o|m|e| |t|e|x|t| 
|S+0#ffffff16#e000002|O|M|E| |h+0#0000000#ffffff0|e|r|e| |a|n|d| |o|t|h|e|r| 
|t|e|x|t| |O+0&#ffff4012|T|H|E|R| |t+0&#ffffff0|h|e|r|e| |a|n|d| 
  | +0#0000e05#a8a8a8255@1|s+0#0000000#ffffff0|o|m|e| |m|o|r|e| |t|e|x|t| 
|a|f|t|e|r| |M+0&#5fd7ff255|O|R|E| |w+0&#ffffff0|r|a|p@1|i|n>g| @23
  | 
+0#0000e05#a8a8a8255@1|p+0#0000000#ffffff0|r|e|s+0&#e0e0e08|ö|m|e|和*&|平|t+&|é|x|t|p+0&#ffffff0|o|s|t|
 @38
+ | +0#0000e05#a8a8a8255@1|e+0#ffffff16#e000002|m|p|t|y| |l|i|n|e| 
+0#0000000#ffffff0@47
  |~+0#4040ff13&| @58
  | +0#0000000&@41|1|,|7|6|-|9|2| @6|A|l@1| 
*** ../vim-9.0.0142/src/testdir/dumps/Test_prop_inserts_text_3.dump     
2022-08-05 13:06:39.571403119 +0100
--- src/testdir/dumps/Test_prop_inserts_text_3.dump     2022-08-05 
13:03:25.536037743 +0100
***************
*** 0 ****
--- 1,6 ----
+ | +0#0000e05#a8a8a8255@1|i+0#0000000#ffffff0|n|s|e|r|t| |s|o|m|e| |t|e|x|t| 
|S+0#ffffff16#e000002|O|M|E| |h+0#0000000#ffffff0|e|r|e| |a|n|d| |o|t|h|e|r| 
|t|e|x|t| |O+0&#ffff4012|T|H|E|R| |t+0&#ffffff0|h|e|r|e| |a|n|d| 
+ | +0#0000e05#a8a8a8255@1|s+0#0000000#ffffff0|o|m|e| |m|o|r|e| |t|e|x|t| 
|a|f|t|e|r| |M+0&#5fd7ff255|O|R|E| |w+0&#ffffff0|r|a|p@1|i|n|g| @23
+ | 
+0#0000e05#a8a8a8255@1|p+0#0000000#ffffff0|r|e|s+0&#e0e0e08|ö|m|e|和*&|平|t+&|é|x|t|p+0&#ffffff0|o|s>t|
 @38
+ | +0#0000e05#a8a8a8255@1|e+0#ffffff16#e000002|m|p|t|y| |l|i|n|e| 
+0#0000000#ffffff0@47
+ |~+0#4040ff13&| @58
+ | +0#0000000&@41|2|,|7|-|1|9| @7|A|l@1| 
*** ../vim-9.0.0142/src/testdir/dumps/Test_prop_inserts_text_4.dump     
2022-08-05 13:06:39.575403104 +0100
--- src/testdir/dumps/Test_prop_inserts_text_4.dump     2022-08-05 
13:03:26.684033982 +0100
***************
*** 0 ****
--- 1,6 ----
+ | +0#0000e05#a8a8a8255@1|i+0#0000000#ffffff0|n|s|e|r|t| |s|o|m|e| |t|e|x|t| 
|S+0#ffffff16#e000002|O|M|E| |h+0#0000000#ffffff0|e|r|e| |a|n|d| |o|t|h|e|r| 
|t|e|x|t| |O+0&#ffff4012|T|H|E|R| |t+0&#ffffff0|h|e|r|e| |a|n|d| 
+ | +0#0000e05#a8a8a8255@1|s+0#0000000#ffffff0|o|m|e| |m|o|r|e| |t|e|x|t| 
|a|f|t|e|r| |M+0&#5fd7ff255|O|R|E| |w+0&#ffffff0|r|a|p@1|i|n|g| @23
+ | 
+0#0000e05#a8a8a8255@1|p+0#0000000#ffffff0|r|e|s+0&#e0e0e08|ö|m|e|和*&|平|t+&|é|x|t|p+0&#ffffff0|o|s|t|
 @38
+ | +0#0000e05#a8a8a8255@1>e+0#ffffff16#e000002|m|p|t|y| |l|i|n|e| 
+0#0000000#ffffff0@47
+ |~+0#4040ff13&| @58
+ | +0#0000000&@41|3|,|0|-|1| @8|A|l@1| 
*** ../vim-9.0.0142/src/version.c       2022-08-05 11:45:13.846878240 +0100
--- src/version.c       2022-08-05 13:03:18.884059530 +0100
***************
*** 737,738 ****
--- 737,740 ----
  {   /* Add new patch number below this line */
+ /**/
+     143,
  /**/

-- 
If you're sending someone Styrofoam, what do you pack it in?

 /// 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/20220805120752.8FD1C1C0EC3%40moolenaar.net.

Raspunde prin e-mail lui