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.

Raspunde prin e-mail lui