0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

updated for version 7.2.355

Problem:    Computing the cursor column in validate_cursor_col() is wrong when
            line numbers are used and 'n' is not in 'cpoptions', causing the
            popup menu to be positioned wrong.
Solution:   Correctly use the offset. (partly by Dominique Pelle)
This commit is contained in:
Bram Moolenaar
2010-02-03 17:43:07 +01:00
parent 990bb661a1
commit 6427c608e7
2 changed files with 8 additions and 5 deletions

View File

@@ -889,6 +889,7 @@ validate_cursor_col()
{ {
colnr_T off; colnr_T off;
colnr_T col; colnr_T col;
int width;
validate_virtcol(); validate_virtcol();
if (!(curwin->w_valid & VALID_WCOL)) if (!(curwin->w_valid & VALID_WCOL))
@@ -896,15 +897,14 @@ validate_cursor_col()
col = curwin->w_virtcol; col = curwin->w_virtcol;
off = curwin_col_off(); off = curwin_col_off();
col += off; col += off;
width = W_WIDTH(curwin) - off + curwin_col_off2();
/* long line wrapping, adjust curwin->w_wrow */ /* long line wrapping, adjust curwin->w_wrow */
if (curwin->w_p_wrap if (curwin->w_p_wrap
&& col >= (colnr_T)W_WIDTH(curwin) && col >= (colnr_T)W_WIDTH(curwin)
&& W_WIDTH(curwin) - off + curwin_col_off2() > 0) && width > 0)
{ /* use same formula as what is used in curs_columns() */
col -= W_WIDTH(curwin); col -= ((col - W_WIDTH(curwin)) / width + 1) * width;
col = col % (W_WIDTH(curwin) - off + curwin_col_off2());
}
if (col > (int)curwin->w_leftcol) if (col > (int)curwin->w_leftcol)
col -= curwin->w_leftcol; col -= curwin->w_leftcol;
else else
@@ -1041,6 +1041,7 @@ curs_columns(scroll)
/* long line wrapping, adjust curwin->w_wrow */ /* long line wrapping, adjust curwin->w_wrow */
if (curwin->w_wcol >= W_WIDTH(curwin)) if (curwin->w_wcol >= W_WIDTH(curwin))
{ {
/* this same formula is used in validate_cursor_col() */
n = (curwin->w_wcol - W_WIDTH(curwin)) / width + 1; n = (curwin->w_wcol - W_WIDTH(curwin)) / width + 1;
curwin->w_wcol -= n * width; curwin->w_wcol -= n * width;
curwin->w_wrow += n; curwin->w_wrow += n;

View File

@@ -681,6 +681,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
355,
/**/ /**/
354, 354,
/**/ /**/