# HG changeset patch # User Bram Moolenaar # Date 1660658405 -7200 # Node ID beab53bb989e9db7b08c27c94271cbf4e5eae374 # Parent 2acb87ee55fc4bac6b94e51c0ac448c62a2b8f5b patch 9.0.0218: reading before the start of the line Commit: https://github.com/vim/vim/commit/e98c88c44c308edaea5994b8ad4363e65030968c Author: Bram Moolenaar Date: Tue Aug 16 14:51:53 2022 +0100 patch 9.0.0218: reading before the start of the line Problem: Reading before the start of the line. Solution: When displaying "$" check the column is not negative. diff --git a/src/edit.c b/src/edit.c --- a/src/edit.c +++ b/src/edit.c @@ -1746,8 +1746,9 @@ edit_unputchar(void) * Only works when cursor is in the line that changes. */ void -display_dollar(colnr_T col) +display_dollar(colnr_T col_arg) { + colnr_T col = col_arg < 0 ? 0 : col_arg; colnr_T save_col; if (!redrawing()) diff --git a/src/proto/edit.pro b/src/proto/edit.pro --- a/src/proto/edit.pro +++ b/src/proto/edit.pro @@ -5,7 +5,7 @@ void ins_redraw(int ready); void edit_putchar(int c, int highlight); void set_insstart(linenr_T lnum, int col); void edit_unputchar(void); -void display_dollar(colnr_T col); +void display_dollar(colnr_T col_arg); void undisplay_dollar(void); void truncate_spaces(char_u *line); void backspace_until_column(int col); diff --git a/src/testdir/test_cmdwin.vim b/src/testdir/test_cmdwin.vim --- a/src/testdir/test_cmdwin.vim +++ b/src/testdir/test_cmdwin.vim @@ -365,5 +365,13 @@ func Test_cant_open_cmdwin_in_cmdwin() call assert_match('E1292:', caught) endfunc +func Test_cmdwin_virtual_edit() + enew! + set ve=all cpo+=$ + silent normal q/s + + set ve= cpo-=$ +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -736,6 +736,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 218, +/**/ 217, /**/ 216,