]> granicus.if.org Git - vim/commitdiff
updated for version 7.4.352 v7.4.352
authorBram Moolenaar <Bram@vim.org>
Wed, 2 Jul 2014 17:37:42 +0000 (19:37 +0200)
committerBram Moolenaar <Bram@vim.org>
Wed, 2 Jul 2014 17:37:42 +0000 (19:37 +0200)
Problem:    With 'linebreak' a tab causes a missing line break.
Solution:   Count a tab for what it's worth also for shorter lines.
            (Christian Brabandt)

src/charset.c
src/version.c

index 1ffaf467beb100d0fad9be53b08e0d6f4dc589d7..0b9f4b8d7730c11e8f6399db44139f30d563ae79 100644 (file)
@@ -1078,6 +1078,7 @@ win_lbr_chartabsize(wp, line, s, col, headp)
     int                c;
     int                size;
     colnr_T    col2;
+    colnr_T    col_adj = 0; /* col + screen size of tab */
     colnr_T    colmax;
     int                added;
 # ifdef FEAT_MBYTE
@@ -1109,6 +1110,8 @@ win_lbr_chartabsize(wp, line, s, col, headp)
      */
     size = win_chartabsize(wp, s, col);
     c = *s;
+    if (tab_corr)
+       col_adj = size - 1;
 
     /*
      * If 'linebreak' set check at a blank before a non-blank if the line
@@ -1130,12 +1133,13 @@ win_lbr_chartabsize(wp, line, s, col, headp)
         */
        numberextra = win_col_off(wp);
        col2 = col;
-       colmax = (colnr_T)(W_WIDTH(wp) - numberextra);
+       colmax = (colnr_T)(W_WIDTH(wp) - numberextra - col_adj);
        if (col >= colmax)
        {
-           n = colmax + win_col_off2(wp);
+           colmax += col_adj;
+           n = colmax +  win_col_off2(wp);
            if (n > 0)
-               colmax += (((col - colmax) / n) + 1) * n;
+               colmax += (((col - colmax) / n) + 1) * n - col_adj;
        }
 
        for (;;)
@@ -1152,7 +1156,7 @@ win_lbr_chartabsize(wp, line, s, col, headp)
            col2 += win_chartabsize(wp, s, col2);
            if (col2 >= colmax)         /* doesn't fit */
            {
-               size = colmax - col;
+               size = colmax - col + col_adj;
                tab_corr = FALSE;
                break;
            }
index 94f16b3c829e6f0ed7d09c606da9f1a8e5d71c05..2fd9dfb4935585488c55439a636a90b5f59a1b00 100644 (file)
@@ -734,6 +734,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    352,
 /**/
     351,
 /**/