]> granicus.if.org Git - vim/commitdiff
updated for version 7.2.355 v7.2.355
authorBram Moolenaar <Bram@vim.org>
Wed, 3 Feb 2010 16:43:07 +0000 (17:43 +0100)
committerBram Moolenaar <Bram@vim.org>
Wed, 3 Feb 2010 16:43:07 +0000 (17:43 +0100)
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)

src/move.c
src/version.c

index 26ff3bf4d610c3510e70d3ac81a425ad45f5a2b6..ad1f4d617bffcd5dbfab60900cd295f0af67e5ef 100644 (file)
@@ -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;
index bee0e2a15f38e48fb73ba19db5040d62630881d2..91ae2ec9beef29beebaea734035c5f78cd8b69cd 100644 (file)
@@ -681,6 +681,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    355,
 /**/
     354,
 /**/