summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2010-02-03 17:43:07 +0100
committerBram Moolenaar <Bram@vim.org>2010-02-03 17:43:07 +0100
commit6427c608e7faac67417be39ce9a6ce752d17a71a (patch)
treeb92308ea731aed92a5d64dd1173f10c9f7152ea8
parent990bb661a16eb654012eb855e4d17293bc272526 (diff)
downloadvim-git-6427c608e7faac67417be39ce9a6ce752d17a71a.tar.gz
updated for version 7.2.355v7.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)
-rw-r--r--src/move.c11
-rw-r--r--src/version.c2
2 files changed, 8 insertions, 5 deletions
diff --git a/src/move.c b/src/move.c
index 26ff3bf4d..ad1f4d617 100644
--- a/src/move.c
+++ b/src/move.c
@@ -889,6 +889,7 @@ validate_cursor_col()
{
colnr_T off;
colnr_T col;
+ int width;
validate_virtcol();
if (!(curwin->w_valid & VALID_WCOL))
@@ -896,15 +897,14 @@ validate_cursor_col()
col = curwin->w_virtcol;
off = curwin_col_off();
col += off;
+ width = W_WIDTH(curwin) - off + curwin_col_off2();
/* long line wrapping, adjust curwin->w_wrow */
if (curwin->w_p_wrap
&& col >= (colnr_T)W_WIDTH(curwin)
- && W_WIDTH(curwin) - off + curwin_col_off2() > 0)
- {
- col -= W_WIDTH(curwin);
- col = col % (W_WIDTH(curwin) - off + curwin_col_off2());
- }
+ && width > 0)
+ /* use same formula as what is used in curs_columns() */
+ col -= ((col - W_WIDTH(curwin)) / width + 1) * width;
if (col > (int)curwin->w_leftcol)
col -= curwin->w_leftcol;
else
@@ -1041,6 +1041,7 @@ curs_columns(scroll)
/* long line wrapping, adjust curwin->w_wrow */
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;
curwin->w_wcol -= n * width;
curwin->w_wrow += n;
diff --git a/src/version.c b/src/version.c
index bee0e2a15..91ae2ec9b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -682,6 +682,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 355,
+/**/
354,
/**/
353,