Can't say whether this is the right fix, just a small nit: I prefer putting the && at the start of the line.
On Thu, 23 Sept 2021 at 09:01, Christian Brabandt <[email protected]> wrote: > > On Mi, 22 Sep 2021, Christian Brabandt wrote: > > > > > On Mi, 22 Sep 2021, Yegappan Lakshmanan wrote: > > > > > Hi Christian, > > > > > > On Fri, Sep 3, 2021 at 11:14 AM Christian Brabandt <[email protected]> > wrote: > > > > > > > > > > > > On Fr, 03 Sep 2021, Bram Moolenaar wrote: > > > > > > > > > > > > > > > > Thanks for creating this test. > > > > > > > There is another check for n_extra becoming negative, and if I > comment it > > > > > > > out no test fails. > > > > > > > Perhaps you can manage to write a test for that one too? > > > > > > > This is in line 1215 of src/drawline.c > > > > > > > > > > > > > > > > > > I created a test that exercises this line. But I ran into some > bugs. > > > > > > If you source the following script: > > > > > > > > > > > > > ------------------------------------------------------------------------------------- > > > > > > 10new > > > > > > 20vnew > > > > > > call setline(1, repeat('aa ', 200)) > > > > > > setlocal breakindent breakindentopt=shift:4 linebreak > showbreak=>> > > > > > > setlocal number > > > > > > set cpo+=n > > > > > > normal 12gj > > > > > > redraw! > > > > > > normal $ > > > > > > redraw! > > > > > > > ------------------------------------------------------------------------------------- > > > > > > > > > > > > You will see that the cursor is positioned a few characters > before the end > > > > > > of the line and it cannot be moved to the end of the line. Also, > if you move > > > > > > the cursor to the left by pressing "h" quite a few times (to > cause the > > > > > > screen > > > > > > to scroll down), you will see the cursor can be positioned on the > > > > > > 'showbreak' characters. > > > > > > > > > > It looks like this happens because the " >>" in the first line is > not > > > > > counted, thus when w_skipcol is non-zero. It's also strange that > there > > > > > is a space before ">>". Perhaps Christian knows what needs to > change to > > > > > fix this. > > > > > > > > I'll have a look. > > > > > > > > > > Should I open a Github issue to track this? > > > > Hi Yegappan, > > you can. I just don't have much spare time to debug such screen-logic. > > I found that time yesterday. I think the following patch should fix it. > However I am not completely sure that this is the best way to do it. I > also need some more time to thoroughly test it. I will do this later and > submit a proper PR with your testcase. > > diff --git a/src/charset.c b/src/charset.c > index fcaeedf75..953319af5 100644 > --- a/src/charset.c > +++ b/src/charset.c > @@ -1090,6 +1090,16 @@ win_lbr_chartabsize( > colnr_T sbrlen = 0; > int numberwidth = win_col_off(wp); > > + // long line that does not fit in the window > + // need to adjust for leading sbr value > + if (wp->w_skipcol && > + wp->w_p_wrap && > + col >= wp->w_skipcol && > + *sbr != NUL && > + col <= wp->w_skipcol + wp->w_width > + - win_col_off(wp) - MB_CHARLEN(sbr)) > + col -= (colnr_T)MB_CHARLEN(sbr); > + > numberextra = numberwidth; > col += numberextra + mb_added; > if (col >= (colnr_T)wp->w_width) > > > Best, > Christian > > -- > -- > 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/20210923070105.GB3729843%40256bit.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/CAOTLq6rfgj0wrAwd5tVdUuuKV2dcor%2BVxgV2ifU-hXE9_ETzAw%40mail.gmail.com.
