- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/runtime/doc/eval.txt vim-7.3.000+hg~ee53a39d5896~bri/runtime/doc/eval.txt 
              
              
                
                  | old | new |  |  
                          | 6143 | 6143 | keymap                  Compiled with 'keymap' support. |  
                          | 6144 | 6144 | langmap                 Compiled with 'langmap' support. |  
                          | 6145 | 6145 | libcall                 Compiled with |libcall()| support. |  
                        | 6146 |  | linebreak               Compiled with 'linebreak', 'breakat'  and 'showbreak' |  
                        | 6147 |  | support. |  
                        |  | 6146 | linebreak               Compiled with 'linebreak', 'breakat', 'showbreak' and |  
                        |  | 6147 | 'breakindent' support. |  
                          | 6148 | 6148 | lispindent              Compiled with support for lisp indenting. |  
                          | 6149 | 6149 | listcmds                Compiled with commands for the buffer list |:files| |  
                          | 6150 | 6150 | and the argument list |arglist|. |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/runtime/doc/options.txt vim-7.3.000+hg~ee53a39d5896~bri/runtime/doc/options.txt 
              
              
                
                  | old | new |  |  
                          | 1165 | 1165 | break if 'linebreak' is on.  Only works for ASCII and also for 8-bit |  
                          | 1166 | 1166 | characters when 'encoding' is an 8-bit encoding. |  
                          | 1167 | 1167 |  |  
                          |  | 1168 |  |  
                          |  | 1169 | *'breakindent'* *'bri'* |  
                          |  | 1170 | 'breakindent' 'bri'     boolean (default off) |  
                          |  | 1171 | local to window |  
                          |  | 1172 | {not in Vi} |  
                          |  | 1173 | {not available when compiled without the |+linebreak| |  
                          |  | 1174 | feature} |  
                          |  | 1175 | Every wrapped line will continue visually indented (same amount of |  
                          |  | 1176 | space as the beginning of that line), thus preserving horizontal blocks |  
                          |  | 1177 | of text. |  
                          |  | 1178 |  |  
                          |  | 1179 | *'breakindentmin'* *'brimin'* |  
                          |  | 1180 | 'breakindentmin' 'brimin' number (default 20) |  
                          |  | 1181 | local to window |  
                          |  | 1182 | {not in Vi} |  
                          |  | 1183 | {not available when compiled without the |+linebreak| |  
                          |  | 1184 | feature} |  
                          |  | 1185 | Minimum text width that will be kept after applying 'breakindent', |  
                          |  | 1186 | even if the resulting text should normally be narrower. This prevents |  
                          |  | 1187 | text indented almost to the right window border oocupying lot of |  
                          |  | 1188 | vertical space when broken. |  
                          |  | 1189 |  |  
                          |  | 1190 | *'breakindentshift'* *'brishift'* |  
                          |  | 1191 | 'breakindentshift' 'brishift' number (default 20) |  
                          |  | 1192 | local to window |  
                          |  | 1193 | {not in Vi} |  
                          |  | 1194 | {not available when compiled without the |+linebreak| |  
                          |  | 1195 | feature} |  
                          |  | 1196 | After applying 'breakindent', wrapped line beginning will be shift by |  
                          |  | 1197 | given number of characters. It permits dynamic French paragraph |  
                          |  | 1198 | indentation (negative) or emphasizing the line continuation |  
                          |  | 1199 | (positive). |  
                          |  | 1200 |  |  
                          | 1168 | 1201 | *'browsedir'* *'bsdir'* |  
                          | 1169 | 1202 | 'browsedir' 'bsdir'     string  (default: "last") |  
                          | 1170 | 1203 | global |  
                  | … | … |  |  
                          | 4409 | 4442 | {not in Vi} |  
                          | 4410 | 4443 | {not available when compiled without the |+linebreak| |  
                          | 4411 | 4444 | feature} |  
                        | 4412 |  | If on Vim will wrap long lines at a character in 'breakat' rather |  
                        |  | 4445 | If on, Vim will wrap long lines at a character in 'breakat' rather |  
                          | 4413 | 4446 | than at the last character that fits on the screen.  Unlike |  
                          | 4414 | 4447 | 'wrapmargin' and 'textwidth', this does not insert <EOL>s in the file, |  
                        | 4415 |  | it only affects the way the file is displayed, not its contents.  The |  
                        | 4416 |  | value of 'showbreak' is used to put in front of wrapped lines. |  
                        | 4417 |  | This option is not used when the 'wrap' option is off or 'list' is on. |  
                        |  | 4448 | it only affects the way the file is displayed, not its contents. |  
                        |  | 4449 | If 'breakindent' is set, line is visually indented. Then, the value |  
                        |  | 4450 | of 'showbreak' is used to put in front of wrapped lines. This option |  
                        |  | 4451 | is not used when the 'wrap' option is off or 'list' is on. |  
                          | 4418 | 4452 | Note that <Tab> characters after an <EOL> are mostly not displayed |  
                          | 4419 | 4453 | with the right amount of white space. |  
                          | 4420 | 4454 |  |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/runtime/doc/tags vim-7.3.000+hg~ee53a39d5896~bri/runtime/doc/tags 
              
              
                
                  | old | new |  |  
                          | 90 | 90 | 'bl'    options.txt     /*'bl'* |  
                          | 91 | 91 | 'bomb'  options.txt     /*'bomb'* |  
                          | 92 | 92 | 'breakat'       options.txt     /*'breakat'* |  
                          |  | 93 | 'breakindent'   options.txt     /*'breakindent'* |  
                          |  | 94 | 'breakindentmin'        options.txt     /*'breakindentmin'* |  
                          |  | 95 | 'breakindentshift'      options.txt     /*'breakindentshift'* |  
                          |  | 96 | 'bri'   options.txt     /*'bri'* |  
                          |  | 97 | 'brimin'        options.txt     /*'brimin'* |  
                          |  | 98 | 'brishift'      options.txt     /*'brishift'* |  
                          | 93 | 99 | 'brk'   options.txt     /*'brk'* |  
                          | 94 | 100 | 'browsedir'     options.txt     /*'browsedir'* |  
                          | 95 | 101 | 'bs'    options.txt     /*'bs'* |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/runtime/optwin.vim vim-7.3.000+hg~ee53a39d5896~bri/runtime/optwin.vim 
              
              
                
                  | old | new |  |  
                          | 329 | 329 | call append("$", "linebreak\twrap long lines at a character in 'breakat'") |  
                          | 330 | 330 | call append("$", "\t(local to window)") |  
                          | 331 | 331 | call <SID>BinOptionL("lbr") |  
                          |  | 332 | call append("$", "breakindent\tpreserve indentation in wrapped text") |  
                          |  | 333 | call append("$", "\t(local to window)") |  
                          |  | 334 | call <SID>BinOptionL("bri") |  
                          |  | 335 | call append("$", "breakindentmin\tminimum text width after indent in 'breakindent'") |  
                          |  | 336 | call append("$", "\t(local to window)") |  
                          |  | 337 | call <SID>OptionL("brimin") |  
                          |  | 338 | call append("$", "breakindentshift\tshift beginning of 'breakindent'ed line by this number of characters (negative left)") |  
                          |  | 339 | call append("$", "\t(local to window)") |  
                          |  | 340 | call <SID>OptionL("brishift") |  
                          | 332 | 341 | call append("$", "breakat\twhich characters might cause a line break") |  
                          | 333 | 342 | call <SID>OptionG("brk", &brk) |  
                          | 334 | 343 | call append("$", "showbreak\tstring to put before wrapped screen lines") |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/src/edit.c vim-7.3.000+hg~ee53a39d5896~bri/src/edit.c 
              
              
                
                  | old | new |  |  
                          | 394 | 394 | if (startln) |  
                          | 395 | 395 | Insstart.col = 0; |  
                          | 396 | 396 | } |  
                        | 397 |  | Insstart_textlen = (colnr_T)linetabsize(ml_get_curline() ); |  
                        |  | 397 | Insstart_textlen = (colnr_T)linetabsize(ml_get_curline(), Insstart.lnum); |  
                          | 398 | 398 | Insstart_blank_vcol = MAXCOL; |  
                          | 399 | 399 | if (!did_ai) |  
                          | 400 | 400 | ai_col = 0; |  
                  | … | … |  |  
                          | 1852 | 1852 | else |  
                          | 1853 | 1853 | #endif |  
                          | 1854 | 1854 | ++new_cursor_col; |  
                        | 1855 |  | vcol += lbr_chartabsize(ptr + new_cursor_col, (colnr_T)vcol ); |  
                        |  | 1855 | vcol += lbr_chartabsize(ptr + new_cursor_col, (colnr_T)vcol, curwin->w_cursor.lnum); |  
                          | 1856 | 1856 | } |  
                          | 1857 | 1857 | vcol = last_vcol; |  
                          | 1858 | 1858 |  |  
                  | … | … |  |  
                          | 6424 | 6424 | ins_need_undo = FALSE; |  
                          | 6425 | 6425 | } |  
                          | 6426 | 6426 | Insstart = curwin->w_cursor;    /* new insertion starts here */ |  
                        | 6427 |  | Insstart_textlen = (colnr_T)linetabsize(ml_get_curline() ); |  
                        |  | 6427 | Insstart_textlen = (colnr_T)linetabsize(ml_get_curline(), curwin->w_cursor.lnum); |  
                          | 6428 | 6428 | ai_col = 0; |  
                          | 6429 | 6429 | #ifdef FEAT_VREPLACE |  
                          | 6430 | 6430 | if (State & VREPLACE_FLAG) |  
                  | … | … |  |  
                          | 6783 | 6783 | for (;;) |  
                          | 6784 | 6784 | { |  
                          | 6785 | 6785 | coladvance(v - width); |  
                        | 6786 |  | /* getviscol() is slow, skip it when 'showbreak' is empty and |  
                        | 6787 |  | * there are no multi-byte characters */ |  
                        | 6788 |  | if ((*p_sbr == NUL |  
                        |  | 6786 | /* getviscol() is slow, skip it when 'showbreak' is empty, |  
                        |  | 6787 | * 'breakindent' is not set and there are no multi-byte |  
                        |  | 6788 | * characters */ |  
                        |  | 6789 | if ((*p_sbr == NUL && !curwin->w_p_bri |  
                          | 6789 | 6790 | #  ifdef FEAT_MBYTE |  
                          | 6790 | 6791 | && !has_mbyte |  
                          | 6791 | 6792 | #  endif |  
                  | … | … |  |  
                          | 9421 | 9422 | getvcol(curwin, &fpos, &vcol, NULL, NULL); |  
                          | 9422 | 9423 | getvcol(curwin, cursor, &want_vcol, NULL, NULL); |  
                          | 9423 | 9424 |  |  
                        | 9424 |  | /* Use as many TABs as possible.  Beware of ' showbreak' and |  
                        |  | 9425 | /* Use as many TABs as possible.  Beware of 'breakindent', 'showbreak' and |  
                          | 9425 | 9426 | * 'linebreak' adding extra virtual columns. */ |  
                          | 9426 | 9427 | while (vim_iswhite(*ptr)) |  
                          | 9427 | 9428 | { |  
                        | 9428 |  | i = lbr_chartabsize((char_u *)"\t", vcol ); |  
                        |  | 9429 | i = lbr_chartabsize((char_u *)"\t", vcol, cursor->lnum); |  
                          | 9429 | 9430 | if (vcol + i > want_vcol) |  
                          | 9430 | 9431 | break; |  
                          | 9431 | 9432 | if (*ptr != TAB) |  
                  | … | … |  |  
                          | 9451 | 9452 | /* Skip over the spaces we need. */ |  
                          | 9452 | 9453 | while (vcol < want_vcol && *ptr == ' ') |  
                          | 9453 | 9454 | { |  
                        | 9454 |  | vcol += lbr_chartabsize(ptr, vcol ); |  
                        |  | 9455 | vcol += lbr_chartabsize(ptr, vcol, cursor->lnum); |  
                          | 9455 | 9456 | ++ptr; |  
                          | 9456 | 9457 | ++repl_off; |  
                          | 9457 | 9458 | } |  
                  | … | … |  |  
                          | 9702 | 9703 | while ((colnr_T)temp < curwin->w_virtcol && *ptr != NUL) |  
                          | 9703 | 9704 | { |  
                          | 9704 | 9705 | prev_ptr = ptr; |  
                        | 9705 |  | temp += lbr_chartabsize_adv(&ptr, (colnr_T)temp ); |  
                        |  | 9706 | temp += lbr_chartabsize_adv(&ptr, (colnr_T)temp, lnum); |  
                          | 9706 | 9707 | } |  
                          | 9707 | 9708 | if ((colnr_T)temp > curwin->w_virtcol) |  
                          | 9708 | 9709 | ptr = prev_ptr; |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/src/eval.c vim-7.3.000+hg~ee53a39d5896~bri/src/eval.c 
              
              
                
                  | old | new |  |  
                          | 16857 | 16857 |  |  
                          | 16858 | 16858 | if (argvars[1].v_type != VAR_UNKNOWN) |  
                          | 16859 | 16859 | col = get_tv_number(&argvars[1]); |  
                        | 16860 |  |  |  
                        | 16861 |  | rettv->vval.v_number = (varnumber_T)(linetabsize_col(col, s) - col); |  
                        |  | 16860 | /* |  
                        |  | 16861 | * FIXME: passing 0 as 3rd argument to linetabsize_col, instead of real line number; |  
                        |  | 16862 | * (can we get it from here somehow?); might give incorrect result with breakindent! |  
                        |  | 16863 | */ |  
                        |  | 16864 | rettv->vval.v_number = (varnumber_T)(linetabsize_col(col, s, 0) - col); |  
                          | 16862 | 16865 | } |  
                          | 16863 | 16866 |  |  
                          | 16864 | 16867 | /* |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/src/ex_cmds.c vim-7.3.000+hg~ee53a39d5896~bri/src/ex_cmds.c 
              
              
                
                  | old | new |  |  
                          | 266 | 266 | ; |  
                          | 267 | 267 | save = *last; |  
                          | 268 | 268 | *last = NUL; |  
                        | 269 |  | len = linetabsize(line );            /* get line length */ |  
                        |  | 269 | len = linetabsize(line, curwin->w_cursor.lnum); /* get line length */ |  
                          | 270 | 270 | if (has_tab != NULL)                /* check for embedded TAB */ |  
                          | 271 | 271 | *has_tab = (vim_strrchr(first, TAB) != NULL); |  
                          | 272 | 272 | *last = save; |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/src/getchar.c vim-7.3.000+hg~ee53a39d5896~bri/src/getchar.c 
              
              
                
                  | old | new |  |  
                          | 2602 | 2602 | if (!vim_iswhite(ptr[col])) |  
                          | 2603 | 2603 | curwin->w_wcol = vcol; |  
                          | 2604 | 2604 | vcol += lbr_chartabsize(ptr + col, |  
                        | 2605 |  | (colnr_T)vcol ); |  
                        |  | 2605 | (colnr_T)vcol, curwin->w_cursor.lnum); |  
                          | 2606 | 2606 | #ifdef FEAT_MBYTE |  
                          | 2607 | 2607 | if (has_mbyte) |  
                          | 2608 | 2608 | col += (*mb_ptr2len)(ptr + col); |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/src/gui_beval.c vim-7.3.000+hg~ee53a39d5896~bri/src/gui_beval.c 
              
              
                
                  | old | new |  |  
                          | 335 | 335 | { |  
                          | 336 | 336 | /* Not past end of the file. */ |  
                          | 337 | 337 | lbuf = ml_get_buf(wp->w_buffer, lnum, FALSE); |  
                        | 338 |  | if (col <= win_linetabsize(wp, lbuf, (colnr_T)MAXCOL )) |  
                        |  | 338 | if (col <= win_linetabsize(wp, lbuf, (colnr_T)MAXCOL, lnum)) |  
                          | 339 | 339 | { |  
                          | 340 | 340 | /* Not past end of line. */ |  
                          | 341 | 341 | if (getword) |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/src/charset.c vim-7.3.000+hg~ee53a39d5896~bri/src/charset.c 
              
              
                
                  | old | new |  |  
                          | 846 | 846 | * taking into account the size of a tab. |  
                          | 847 | 847 | */ |  
                          | 848 | 848 | int |  
                        | 849 |  | linetabsize(s ) |  
                        |  | 849 | linetabsize(s, lnum) |  
                          | 850 | 850 | char_u      *s; |  
                          |  | 851 | linenr_T    lnum; |  
                          | 851 | 852 | { |  
                        | 852 |  | return linetabsize_col(0, s ); |  
                        |  | 853 | return linetabsize_col(0, s, lnum); |  
                          | 853 | 854 | } |  
                          | 854 | 855 |  |  
                          | 855 | 856 | /* |  
                          | 856 | 857 | * Like linetabsize(), but starting at column "startcol". |  
                          | 857 | 858 | */ |  
                          | 858 | 859 | int |  
                        | 859 |  | linetabsize_col(startcol, s ) |  
                        |  | 860 | linetabsize_col(startcol, s, lnum) |  
                          | 860 | 861 | int         startcol; |  
                          | 861 | 862 | char_u      *s; |  
                          |  | 863 | linenr_T    lnum; |  
                          | 862 | 864 | { |  
                          | 863 | 865 | colnr_T     col = startcol; |  
                          | 864 | 866 |  |  
                          | 865 | 867 | while (*s != NUL) |  
                        | 866 |  | col += lbr_chartabsize_adv(&s, col ); |  
                        |  | 868 | col += lbr_chartabsize_adv(&s, col, lnum); |  
                          | 867 | 869 | return (int)col; |  
                          | 868 | 870 | } |  
                          | 869 | 871 |  |  
                  | … | … |  |  
                          | 871 | 873 | * Like linetabsize(), but for a given window instead of the current one. |  
                          | 872 | 874 | */ |  
                          | 873 | 875 | int |  
                        | 874 |  | win_linetabsize(wp, p, len ) |  
                        |  | 876 | win_linetabsize(wp, p, len, lnum) |  
                          | 875 | 877 | win_T       *wp; |  
                          | 876 | 878 | char_u      *p; |  
                          | 877 | 879 | colnr_T     len; |  
                          |  | 880 | linenr_T    lnum; |  
                          | 878 | 881 | { |  
                          | 879 | 882 | colnr_T     col = 0; |  
                          | 880 | 883 | char_u      *s; |  
                          | 881 | 884 |  |  
                          | 882 | 885 | for (s = p; *s != NUL && (len == MAXCOL || s < p + len); mb_ptr_adv(s)) |  
                        | 883 |  | col += win_lbr_chartabsize(wp, s, col, NULL ); |  
                        |  | 886 | col += win_lbr_chartabsize(wp, s, col, NULL, lnum); |  
                          | 884 | 887 | return (int)col; |  
                          | 885 | 888 | } |  
                          | 886 | 889 |  |  
                  | … | … |  |  
                          | 1009 | 1012 | * like chartabsize(), but also check for line breaks on the screen |  
                          | 1010 | 1013 | */ |  
                          | 1011 | 1014 | int |  
                        | 1012 |  | lbr_chartabsize(s, col ) |  
                        |  | 1015 | lbr_chartabsize(s, col, lnum) |  
                          | 1013 | 1016 | unsigned char       *s; |  
                          | 1014 | 1017 | colnr_T             col; |  
                          |  | 1018 | linenr_T            lnum; |  
                          | 1015 | 1019 | { |  
                          | 1016 | 1020 | #ifdef FEAT_LINEBREAK |  
                        | 1017 |  | if (!curwin->w_p_lbr && *p_sbr == NUL ) |  
                        |  | 1021 | if (!curwin->w_p_lbr && *p_sbr == NUL && !curwin->w_p_bri) |  
                          | 1018 | 1022 | { |  
                          | 1019 | 1023 | #endif |  
                          | 1020 | 1024 | #ifdef FEAT_MBYTE |  
                  | … | … |  |  
                          | 1024 | 1028 | RET_WIN_BUF_CHARTABSIZE(curwin, curbuf, s, col) |  
                          | 1025 | 1029 | #ifdef FEAT_LINEBREAK |  
                          | 1026 | 1030 | } |  
                        | 1027 |  | return win_lbr_chartabsize(curwin, s, col, NULL ); |  
                        |  | 1031 | return win_lbr_chartabsize(curwin, s, col, NULL, lnum); |  
                          | 1028 | 1032 | #endif |  
                          | 1029 | 1033 | } |  
                          | 1030 | 1034 |  |  
                  | … | … |  |  
                          | 1032 | 1036 | * Call lbr_chartabsize() and advance the pointer. |  
                          | 1033 | 1037 | */ |  
                          | 1034 | 1038 | int |  
                        | 1035 |  | lbr_chartabsize_adv(s, col ) |  
                        |  | 1039 | lbr_chartabsize_adv(s, col, lnum) |  
                          | 1036 | 1040 | char_u      **s; |  
                          | 1037 | 1041 | colnr_T     col; |  
                          |  | 1042 | linenr_T    lnum; |  
                          | 1038 | 1043 | { |  
                          | 1039 | 1044 | int         retval; |  
                          | 1040 | 1045 |  |  
                        | 1041 |  | retval = lbr_chartabsize(*s, col ); |  
                        |  | 1046 | retval = lbr_chartabsize(*s, col, lnum); |  
                          | 1042 | 1047 | mb_ptr_adv(*s); |  
                          | 1043 | 1048 | return retval; |  
                          | 1044 | 1049 | } |  
                  | … | … |  |  
                          | 1049 | 1054 | * If "headp" not NULL, set *headp to the size of what we for 'showbreak' |  
                          | 1050 | 1055 | * string at start of line.  Warning: *headp is only set if it's a non-zero |  
                          | 1051 | 1056 | * value, init to 0 before calling. |  
                          |  | 1057 | * |  
                          |  | 1058 | * linenr argument needed if in visual highlighting and breakindent=on, then |  
                          |  | 1059 | * the line calculated is not current; if 0, normal functionality is preserved. |  
                          | 1052 | 1060 | */ |  
                          | 1053 | 1061 | int |  
                        | 1054 |  | win_lbr_chartabsize(wp, s, col, headp ) |  
                        |  | 1062 | win_lbr_chartabsize(wp, s, col, headp, lnum) |  
                          | 1055 | 1063 | win_T       *wp; |  
                          | 1056 | 1064 | char_u      *s; |  
                          | 1057 | 1065 | colnr_T     col; |  
                          | 1058 | 1066 | int         *headp UNUSED; |  
                          |  | 1067 | linenr_T    lnum; |  
                          | 1059 | 1068 | { |  
                          | 1060 | 1069 | #ifdef FEAT_LINEBREAK |  
                          | 1061 | 1070 | int         c; |  
                  | … | … |  |  
                          | 1074 | 1083 | int         n; |  
                          | 1075 | 1084 |  |  
                          | 1076 | 1085 | /* |  
                        | 1077 |  | * No 'linebreak' and 'showbreak' : return quickly. |  
                        |  | 1086 | * No 'linebreak' and 'showbreak' and 'breakindent': return quickly. |  
                          | 1078 | 1087 | */ |  
                        | 1079 |  | if (!wp->w_p_lbr && *p_sbr == NUL) |  
                        |  | 1088 | if (!wp->w_p_lbr && !wp->w_p_bri && *p_sbr == NUL) |  
                          | 1080 | 1089 | #endif |  
                          | 1081 | 1090 | { |  
                          | 1082 | 1091 | #ifdef FEAT_MBYTE |  
                  | … | … |  |  
                          | 1151 | 1160 | # endif |  
                          | 1152 | 1161 |  |  
                          | 1153 | 1162 | /* |  
                        | 1154 |  | * May have to add something for 'showbreak' string at start of line |  
                        |  | 1163 | * May have to add something for 'breakindent' and/or 'showbreak' |  
                        |  | 1164 | * string at start of line. |  
                          | 1155 | 1165 | * Set *headp to the size of what we add. |  
                          | 1156 | 1166 | */ |  
                          | 1157 | 1167 | added = 0; |  
                        | 1158 |  | if ( *p_sbr != NUL&& wp->w_p_wrap && col != 0) |  
                        |  | 1168 | if ((*p_sbr != NUL || wp->w_p_bri) && wp->w_p_wrap && col != 0) |  
                          | 1159 | 1169 | { |  
                          | 1160 | 1170 | numberextra = win_col_off(wp); |  
                          | 1161 | 1171 | col += numberextra + mb_added; |  
                  | … | … |  |  
                          | 1168 | 1178 | } |  
                          | 1169 | 1179 | if (col == 0 || col + size > (colnr_T)W_WIDTH(wp)) |  
                          | 1170 | 1180 | { |  
                        | 1171 |  | added = vim_strsize(p_sbr); |  
                        |  | 1181 | added = 0; |  
                        |  | 1182 | if (*p_sbr != NUL) |  
                        |  | 1183 | added += vim_strsize(p_sbr); |  
                        |  | 1184 | if (wp->w_p_bri) |  
                        |  | 1185 | added += get_breakindent_win(wp,lnum); |  
                        |  | 1186 |  |  
                          | 1172 | 1187 | if (tab_corr) |  
                          | 1173 | 1188 | size += (added / wp->w_buffer->b_p_ts) * wp->w_buffer->b_p_ts; |  
                          | 1174 | 1189 | else |  
                  | … | … |  |  
                          | 1276 | 1291 |  |  
                          | 1277 | 1292 | /* |  
                          | 1278 | 1293 | * This function is used very often, do some speed optimizations. |  
                        | 1279 |  | * When 'list', 'linebreak' and 'showbreak' are not set use a simple loop. |  
                        |  | 1294 | * When 'list', 'linebreak', 'showbreak' and 'breakindent' are not set |  
                        |  | 1295 | * use a simple loop. |  
                          | 1280 | 1296 | * Also use this when 'list' is set but tabs take their normal size. |  
                          | 1281 | 1297 | */ |  
                          | 1282 | 1298 | if ((!wp->w_p_list || lcs_tab1 != NUL) |  
                          | 1283 | 1299 | #ifdef FEAT_LINEBREAK |  
                        | 1284 |  | && !wp->w_p_lbr && *p_sbr == NUL  |  
                        |  | 1300 | && !wp->w_p_lbr && *p_sbr == NUL && !wp->w_p_bri |  
                          | 1285 | 1301 | #endif |  
                          | 1286 | 1302 | ) |  
                          | 1287 | 1303 | { |  
                  | … | … |  |  
                          | 1343 | 1359 | { |  
                          | 1344 | 1360 | /* A tab gets expanded, depending on the current column */ |  
                          | 1345 | 1361 | head = 0; |  
                        | 1346 |  | incr = win_lbr_chartabsize(wp, ptr, vcol, &head ); |  
                        |  | 1362 | incr = win_lbr_chartabsize(wp, ptr, vcol, &head, pos->lnum); |  
                          | 1347 | 1363 | /* make sure we don't go past the end of the line */ |  
                          | 1348 | 1364 | if (*ptr == NUL) |  
                          | 1349 | 1365 | { |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/src/misc1.c vim-7.3.000+hg~ee53a39d5896~bri/src/misc1.c 
              
              
                
                  | old | new |  |  
                          | 451 | 451 | return (int)col; |  
                          | 452 | 452 | } |  
                          | 453 | 453 |  |  
                          |  | 454 | #ifdef FEAT_LINEBREAK |  
                          |  | 455 | /* |  
                          |  | 456 | * Return appropriate space number for breakindent, taking influencing |  
                          |  | 457 | * parameters into account. Window must be specified, since it is not |  
                          |  | 458 | * necessarily always the current one. If lnum==0, current line is calculated, |  
                          |  | 459 | * specified line otherwise. |  
                          |  | 460 | */ |  
                          |  | 461 | int |  
                          |  | 462 | get_breakindent_win (wp,lnum) |  
                          |  | 463 | win_T*      wp; |  
                          |  | 464 | linenr_T    lnum; |  
                          |  | 465 | { |  
                          |  | 466 | int bri; |  
                          |  | 467 | /* window width minus barren space, i.e. what rests for text */ |  
                          |  | 468 | const int eff_wwidth = W_WIDTH(wp) |  
                          |  | 469 | - (wp->w_p_nu && !vim_strchr(p_cpo,CPO_NUMCOL)?number_width(wp):0); |  
                          |  | 470 | /* - (*p_sbr == NUL ? 0 : vim_strsize(p_sbr)); */ |  
                          |  | 471 |  |  
                          |  | 472 | bri = get_indent_buf(wp->w_buffer,lnum?lnum:wp->w_cursor.lnum) + wp->w_p_brishift; |  
                          |  | 473 |  |  
                          |  | 474 | /* if numbering and 'c' in 'cpoptions', cancel it out effectively */ |  
                          |  | 475 | /* (this could be replaced by an equivalent call to win_col_off2()) */ |  
                          |  | 476 | if (curwin->w_p_nu && vim_strchr(p_cpo, CPO_NUMCOL)) |  
                          |  | 477 | bri += number_width(wp); |  
                          |  | 478 |  |  
                          |  | 479 | /* never indent past left window margin */ |  
                          |  | 480 | if (bri < 0) |  
                          |  | 481 | bri = 0; |  
                          |  | 482 | /* always leave at least bri_min characters on the left, |  
                          |  | 483 | * if text width is sufficient */ |  
                          |  | 484 | else if (bri > eff_wwidth - wp->w_p_brimin) |  
                          |  | 485 | bri = eff_wwidth - wp->w_p_brimin < 0 ? 0 : eff_wwidth - wp->w_p_brimin; |  
                          |  | 486 |  |  
                          |  | 487 | return bri; |  
                          |  | 488 | } |  
                          |  | 489 | #endif |  
                          |  | 490 |  |  
                          |  | 491 |  |  
                          | 454 | 492 | #if defined(FEAT_CINDENT) || defined(FEAT_SMARTINDENT) |  
                          | 455 | 493 |  |  
                          | 456 | 494 | static int cin_is_cinword __ARGS((char_u *line)); |  
                  | … | … |  |  
                          | 1732 | 1770 | s = ml_get_buf(wp->w_buffer, lnum, FALSE); |  
                          | 1733 | 1771 | if (*s == NUL)              /* empty line */ |  
                          | 1734 | 1772 | return 1; |  
                        | 1735 |  | col = win_linetabsize(wp, s, (colnr_T)MAXCOL ); |  
                        |  | 1773 | col = win_linetabsize(wp, s, (colnr_T)MAXCOL, lnum); |  
                          | 1736 | 1774 |  |  
                          | 1737 | 1775 | /* |  
                          | 1738 | 1776 | * If list mode is on, then the '$' at the end of the line may take up one |  
                  | … | … |  |  
                          | 1788 | 1826 | col = 0; |  
                          | 1789 | 1827 | while (*s != NUL && --column >= 0) |  
                          | 1790 | 1828 | { |  
                        | 1791 |  | col += win_lbr_chartabsize(wp, s, (colnr_T)col, NULL ); |  
                        |  | 1829 | col += win_lbr_chartabsize(wp, s, (colnr_T)col, NULL, lnum); |  
                          | 1792 | 1830 | mb_ptr_adv(s); |  
                          | 1793 | 1831 | } |  
                          | 1794 | 1832 |  |  
                  | … | … |  |  
                          | 1800 | 1838 | * 'ts') -- webb. |  
                          | 1801 | 1839 | */ |  
                          | 1802 | 1840 | if (*s == TAB && (State & NORMAL) && (!wp->w_p_list || lcs_tab1)) |  
                        | 1803 |  | col += win_lbr_chartabsize(wp, s, (colnr_T)col, NULL ) - 1; |  
                        |  | 1841 | col += win_lbr_chartabsize(wp, s, (colnr_T)col, NULL, lnum) - 1; |  
                          | 1804 | 1842 |  |  
                          | 1805 | 1843 | /* |  
                          | 1806 | 1844 | * Add column offset for 'number', 'relativenumber', 'foldcolumn', etc. |  
                  | … | … |  |  
                          | 8316 | 8354 | amount = 0; |  
                          | 8317 | 8355 | while (*that && col) |  
                          | 8318 | 8356 | { |  
                        | 8319 |  | amount += lbr_chartabsize_adv(&that, (colnr_T)amount ); |  
                        |  | 8357 | amount += lbr_chartabsize_adv(&that, (colnr_T)amount, pos->lnum); |  
                          | 8320 | 8358 | col--; |  
                          | 8321 | 8359 | } |  
                          | 8322 | 8360 |  |  
                  | … | … |  |  
                          | 8339 | 8377 |  |  
                          | 8340 | 8378 | while (vim_iswhite(*that)) |  
                          | 8341 | 8379 | { |  
                        | 8342 |  | amount += lbr_chartabsize(that, (colnr_T)amount ); |  
                        |  | 8380 | amount += lbr_chartabsize(that, (colnr_T)amount, pos->lnum); |  
                          | 8343 | 8381 | ++that; |  
                          | 8344 | 8382 | } |  
                          | 8345 | 8383 |  |  
                  | … | … |  |  
                          | 8378 | 8416 | --parencount; |  
                          | 8379 | 8417 | if (*that == '\\' && *(that+1) != NUL) |  
                          | 8380 | 8418 | amount += lbr_chartabsize_adv(&that, |  
                        | 8381 |  | (colnr_T)amount ); |  
                        |  | 8419 | (colnr_T)amount, pos->lnum); |  
                          | 8382 | 8420 | amount += lbr_chartabsize_adv(&that, |  
                        | 8383 |  | (colnr_T)amount ); |  
                        |  | 8421 | (colnr_T)amount, pos->lnum); |  
                          | 8384 | 8422 | } |  
                          | 8385 | 8423 | } |  
                          | 8386 | 8424 | while (vim_iswhite(*that)) |  
                          | 8387 | 8425 | { |  
                        | 8388 |  | amount += lbr_chartabsize(that, (colnr_T)amount ); |  
                        |  | 8426 | amount += lbr_chartabsize(that, (colnr_T)amount, pos->lnum); |  
                          | 8389 | 8427 | that++; |  
                          | 8390 | 8428 | } |  
                          | 8391 | 8429 | if (!*that || *that == ';') |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/src/misc2.c vim-7.3.000+hg~ee53a39d5896~bri/src/misc2.c 
              
              
                
                  | old | new |  |  
                          | 166 | 166 | #ifdef FEAT_VIRTUALEDIT |  
                          | 167 | 167 | if ((addspaces || finetune) && !VIsual_active) |  
                          | 168 | 168 | { |  
                        | 169 |  | curwin->w_curswant = linetabsize(line ) + one_more; |  
                        |  | 169 | curwin->w_curswant = linetabsize(line, pos->lnum) + one_more; |  
                          | 170 | 170 | if (curwin->w_curswant > 0) |  
                          | 171 | 171 | --curwin->w_curswant; |  
                          | 172 | 172 | } |  
                  | … | … |  |  
                          | 184 | 184 | # endif |  
                          | 185 | 185 | && wcol >= (colnr_T)width) |  
                          | 186 | 186 | { |  
                        | 187 |  | csize = linetabsize(line ); |  
                        |  | 187 | csize = linetabsize(line, pos->lnum); |  
                          | 188 | 188 | if (csize > 0) |  
                          | 189 | 189 | csize--; |  
                          | 190 | 190 |  |  
                  | … | … |  |  
                          | 206 | 206 | { |  
                          | 207 | 207 | /* Count a tab for what it's worth (if list mode not on) */ |  
                          | 208 | 208 | #ifdef FEAT_LINEBREAK |  
                        | 209 |  | csize = win_lbr_chartabsize(curwin, ptr, col, &head ); |  
                        |  | 209 | csize = win_lbr_chartabsize(curwin, ptr, col, &head, pos->lnum); |  
                          | 210 | 210 | mb_ptr_adv(ptr); |  
                          | 211 | 211 | #else |  
                        | 212 |  | csize = lbr_chartabsize_adv(&ptr, col ); |  
                        |  | 212 | csize = lbr_chartabsize_adv(&ptr, col, pos->lnum); |  
                          | 213 | 213 | #endif |  
                          | 214 | 214 | col += csize; |  
                          | 215 | 215 | } |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/src/normal.c vim-7.3.000+hg~ee53a39d5896~bri/src/normal.c 
              
              
                
                  | old | new |  |  
                          | 4398 | 4398 | int         dir; |  
                          | 4399 | 4399 | long        dist; |  
                          | 4400 | 4400 | { |  
                        | 4401 |  | int         linelen = linetabsize(ml_get_curline() ); |  
                        |  | 4401 | int         linelen = linetabsize(ml_get_curline(), curwin->w_cursor.lnum); |  
                          | 4402 | 4402 | int         retval = OK; |  
                          | 4403 | 4403 | int         atend = FALSE; |  
                          | 4404 | 4404 | int         n; |  
                  | … | … |  |  
                          | 4471 | 4471 | (void)hasFolding(curwin->w_cursor.lnum, |  
                          | 4472 | 4472 | &curwin->w_cursor.lnum, NULL); |  
                          | 4473 | 4473 | #endif |  
                        | 4474 |  | linelen = linetabsize(ml_get_curline() ); |  
                        |  | 4474 | linelen = linetabsize(ml_get_curline(), curwin->w_cursor.lnum); |  
                          | 4475 | 4475 | if (linelen > width1) |  
                          | 4476 | 4476 | curwin->w_curswant += (((linelen - width1 - 1) / width2) |  
                          | 4477 | 4477 | + 1) * width2; |  
 
- 
        
        Pouze v vim-7.3.000+hg~ee53a39d5896~bri/src: objects
diff -ru vim-7.3.000+hg~ee53a39d5896/src/ops.c vim-7.3.000+hg~ee53a39d5896~bri/src/ops.c 
              
              
                
                  | old | new |  |  
                          | 428 | 428 | } |  
                          | 429 | 429 | for ( ; vim_iswhite(*bd.textstart); ) |  
                          | 430 | 430 | { |  
                        | 431 |  | incr = lbr_chartabsize_adv(&bd.textstart, (colnr_T)(bd.start_vcol) ); |  
                        |  | 431 | incr = lbr_chartabsize_adv(&bd.textstart, (colnr_T)(bd.start_vcol), curwin->w_cursor.lnum); |  
                          | 432 | 432 | total += incr; |  
                          | 433 | 433 | bd.start_vcol += incr; |  
                          | 434 | 434 | } |  
                  | … | … |  |  
                          | 488 | 488 |  |  
                          | 489 | 489 | while (vim_iswhite(*non_white)) |  
                          | 490 | 490 | { |  
                        | 491 |  | incr = lbr_chartabsize_adv(&non_white, non_white_col ); |  
                        |  | 491 | incr = lbr_chartabsize_adv(&non_white, non_white_col, curwin->w_cursor.lnum); |  
                          | 492 | 492 | non_white_col += incr; |  
                          | 493 | 493 | } |  
                          | 494 | 494 |  |  
                  | … | … |  |  
                          | 513 | 513 | verbatim_copy_width -= bd.start_char_vcols; |  
                          | 514 | 514 | while (verbatim_copy_width < destination_col) |  
                          | 515 | 515 | { |  
                        | 516 |  | incr = lbr_chartabsize(verbatim_copy_end, verbatim_copy_width ); |  
                        |  | 516 | incr = lbr_chartabsize(verbatim_copy_end, verbatim_copy_width, curwin->w_cursor.lnum); |  
                          | 517 | 517 | if (verbatim_copy_width + incr > destination_col) |  
                          | 518 | 518 | break; |  
                          | 519 | 519 | verbatim_copy_width += incr; |  
                  | … | … |  |  
                          | 3527 | 3527 | for (ptr = oldp; vcol < col && *ptr; ) |  
                          | 3528 | 3528 | { |  
                          | 3529 | 3529 | /* Count a tab for what it's worth (if list mode not on) */ |  
                        | 3530 |  | incr = lbr_chartabsize_adv(&ptr, (colnr_T)vcol ); |  
                        |  | 3530 | incr = lbr_chartabsize_adv(&ptr, (colnr_T)vcol, lnum); |  
                          | 3531 | 3531 | vcol += incr; |  
                          | 3532 | 3532 | } |  
                          | 3533 | 3533 | bd.textcol = (colnr_T)(ptr - oldp); |  
                  | … | … |  |  
                          | 3561 | 3561 | /* calculate number of spaces required to fill right side of block*/ |  
                          | 3562 | 3562 | spaces = y_width + 1; |  
                          | 3563 | 3563 | for (j = 0; j < yanklen; j++) |  
                        | 3564 |  | spaces -= lbr_chartabsize(&y_array[i][j], 0 ); |  
                        |  | 3564 | spaces -= lbr_chartabsize(&y_array[i][j], 0, lnum); |  
                          | 3565 | 3565 | if (spaces < 0) |  
                          | 3566 | 3566 | spaces = 0; |  
                          | 3567 | 3567 |  |  
                  | … | … |  |  
                          | 4917 | 4917 | while (bdp->start_vcol < oap->start_vcol && *pstart) |  
                          | 4918 | 4918 | { |  
                          | 4919 | 4919 | /* Count a tab for what it's worth (if list mode not on) */ |  
                        | 4920 |  | incr = lbr_chartabsize(pstart, (colnr_T)bdp->start_vcol ); |  
                        |  | 4920 | incr = lbr_chartabsize(pstart, (colnr_T)bdp->start_vcol, lnum); |  
                          | 4921 | 4921 | bdp->start_vcol += incr; |  
                          | 4922 | 4922 | #ifdef FEAT_VISUALEXTRA |  
                          | 4923 | 4923 | if (vim_iswhite(*pstart)) |  
                  | … | … |  |  
                          | 4986 | 4986 | { |  
                          | 4987 | 4987 | /* Count a tab for what it's worth (if list mode not on) */ |  
                          | 4988 | 4988 | prev_pend = pend; |  
                        | 4989 |  | incr = lbr_chartabsize_adv(&pend, (colnr_T)bdp->end_vcol ); |  
                        |  | 4989 | incr = lbr_chartabsize_adv(&pend, (colnr_T)bdp->end_vcol, lnum); |  
                          | 4990 | 4990 | bdp->end_vcol += incr; |  
                          | 4991 | 4991 | } |  
                          | 4992 | 4992 | if (bdp->end_vcol <= oap->end_vcol |  
                  | … | … |  |  
                          | 6476 | 6476 | validate_virtcol(); |  
                          | 6477 | 6477 | col_print(buf1, sizeof(buf1), (int)curwin->w_cursor.col + 1, |  
                          | 6478 | 6478 | (int)curwin->w_virtcol + 1); |  
                        | 6479 |  | col_print(buf2, sizeof(buf2), (int)STRLEN(p), linetabsize(p )); |  
                        |  | 6479 | col_print(buf2, sizeof(buf2), (int)STRLEN(p), linetabsize(p, curwin->w_cursor.lnum)); |  
                          | 6480 | 6480 |  |  
                          | 6481 | 6481 | if (char_count_cursor == byte_count_cursor |  
                          | 6482 | 6482 | && char_count == byte_count) |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/src/option.c vim-7.3.000+hg~ee53a39d5896~bri/src/option.c 
              
              
                
                  | old | new |  |  
                          | 190 | 190 | #ifdef FEAT_ARABIC |  
                          | 191 | 191 | # define PV_ARAB        OPT_WIN(WV_ARAB) |  
                          | 192 | 192 | #endif |  
                          |  | 193 | #ifdef FEAT_LINEBREAK |  
                          |  | 194 | # define PV_BRI         OPT_WIN(WV_BRI) |  
                          |  | 195 | # define PV_BRIMIN      OPT_WIN(WV_BRIMIN) |  
                          |  | 196 | # define PV_BRISHIFT    OPT_WIN(WV_BRISHIFT) |  
                          |  | 197 | #endif |  
                          | 193 | 198 | #ifdef FEAT_DIFF |  
                          | 194 | 199 | # define PV_DIFF        OPT_WIN(WV_DIFF) |  
                          | 195 | 200 | #endif |  
                  | … | … |  |  
                          | 650 | 655 | {(char_u *)0L, (char_u *)0L} |  
                          | 651 | 656 | #endif |  
                          | 652 | 657 | SCRIPTID_INIT}, |  
                          |  | 658 | {"breakindent",   "bri",  P_BOOL|P_VI_DEF|P_VIM|P_RWIN, |  
                          |  | 659 | #ifdef FEAT_LINEBREAK |  
                          |  | 660 | (char_u *)VAR_WIN, PV_BRI, |  
                          |  | 661 | {(char_u *)FALSE, (char_u *)0L} |  
                          |  | 662 | #else |  
                          |  | 663 | (char_u *)NULL, PV_NONE, |  
                          |  | 664 | {(char_u *)0L, (char_u *)0L} |  
                          |  | 665 | #endif |  
                          |  | 666 | SCRIPTID_INIT}, |  
                          |  | 667 | {"breakindentmin", "brimin", P_NUM|P_VI_DEF|P_VIM|P_RWIN, |  
                          |  | 668 | #ifdef FEAT_LINEBREAK |  
                          |  | 669 | (char_u *)VAR_WIN, PV_BRIMIN, |  
                          |  | 670 | {(char_u *)20L, (char_u *)20L} |  
                          |  | 671 | #else |  
                          |  | 672 | (char_u *)NULL, PV_NONE, |  
                          |  | 673 | {(char_u *)0L, (char_u *)0L} |  
                          |  | 674 | #endif |  
                          |  | 675 | SCRIPTID_INIT}, |  
                          |  | 676 | {"breakindentshift", "brishift", P_NUM|P_VI_DEF|P_VIM|P_RWIN, |  
                          |  | 677 | #ifdef FEAT_LINEBREAK |  
                          |  | 678 | (char_u *)VAR_WIN, PV_BRISHIFT, |  
                          |  | 679 | {(char_u *)0L, (char_u *)0L} |  
                          |  | 680 | #else |  
                          |  | 681 | (char_u *)NULL, PV_NONE, |  
                          |  | 682 | {(char_u *)0L, (char_u *)0L} |  
                          |  | 683 | #endif |  
                          |  | 684 | SCRIPTID_INIT}, |  
                          | 653 | 685 | {"browsedir",   "bsdir",P_STRING|P_VI_DEF, |  
                          | 654 | 686 | #ifdef FEAT_BROWSE |  
                          | 655 | 687 | (char_u *)&p_bsdir, PV_NONE, |  
                  | … | … |  |  
                          | 8334 | 8366 | } |  
                          | 8335 | 8367 | curwin->w_nrwidth_line_count = 0; |  
                          | 8336 | 8368 | } |  
                          |  | 8369 |  |  
                          |  | 8370 | /* 'breakindentmin' must be positive */ |  
                          |  | 8371 | else if (pp == &curwin->w_p_brimin) |  
                          |  | 8372 | { |  
                          |  | 8373 | if (curwin->w_p_brimin < 1) |  
                          |  | 8374 | { |  
                          |  | 8375 | errmsg = e_positive; |  
                          |  | 8376 | curwin->w_p_brimin = 1; |  
                          |  | 8377 | } |  
                          |  | 8378 | } |  
                          | 8337 | 8379 | #endif |  
                          | 8338 | 8380 |  |  
                          | 8339 | 8381 | else if (pp == &curbuf->b_p_tw) |  
                  | … | … |  |  
                          | 9563 | 9605 | case PV_WRAP:   return (char_u *)&(curwin->w_p_wrap); |  
                          | 9564 | 9606 | #ifdef FEAT_LINEBREAK |  
                          | 9565 | 9607 | case PV_LBR:    return (char_u *)&(curwin->w_p_lbr); |  
                          |  | 9608 | case PV_BRI:    return (char_u *)&(curwin->w_p_bri); |  
                          |  | 9609 | case PV_BRIMIN: return (char_u *)&(curwin->w_p_brimin); |  
                          |  | 9610 | case PV_BRISHIFT: return (char_u *)&(curwin->w_p_brishift); |  
                          | 9566 | 9611 | #endif |  
                          | 9567 | 9612 | #ifdef FEAT_SCROLLBIND |  
                          | 9568 | 9613 | case PV_SCBIND: return (char_u *)&(curwin->w_p_scb); |  
                  | … | … |  |  
                          | 9752 | 9797 | to->wo_wrap = from->wo_wrap; |  
                          | 9753 | 9798 | #ifdef FEAT_LINEBREAK |  
                          | 9754 | 9799 | to->wo_lbr = from->wo_lbr; |  
                          |  | 9800 | to->wo_bri = from->wo_bri; |  
                          |  | 9801 | to->wo_brimin = from->wo_brimin; |  
                          | 9755 | 9802 | #endif |  
                          | 9756 | 9803 | #ifdef FEAT_SCROLLBIND |  
                          | 9757 | 9804 | to->wo_scb = from->wo_scb; |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/src/option.h vim-7.3.000+hg~ee53a39d5896~bri/src/option.h 
              
              
                
                  | old | new |  |  
                          | 1039 | 1039 | #ifdef FEAT_CURSORBIND |  
                          | 1040 | 1040 | , WV_CRBIND |  
                          | 1041 | 1041 | #endif |  
                          |  | 1042 | #ifdef FEAT_LINEBREAK |  
                          |  | 1043 | , WV_BRI |  
                          |  | 1044 | , WV_BRIMIN |  
                          |  | 1045 | , WV_BRISHIFT |  
                          |  | 1046 | #endif |  
                          | 1042 | 1047 | #ifdef FEAT_DIFF |  
                          | 1043 | 1048 | , WV_DIFF |  
                          | 1044 | 1049 | #endif |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/src/proto/charset.pro vim-7.3.000+hg~ee53a39d5896~bri/src/proto/charset.pro 
              
              
                
                  | old | new |  |  
                          | 14 | 14 | int vim_strsize __ARGS((char_u *s)); |  
                          | 15 | 15 | int vim_strnsize __ARGS((char_u *s, int len)); |  
                          | 16 | 16 | int chartabsize __ARGS((char_u *p, colnr_T col)); |  
                        | 17 |  | int linetabsize __ARGS((char_u *s )); |  
                        | 18 |  | int linetabsize_col __ARGS((int startcol, char_u *s )); |  
                        | 19 |  | int win_linetabsize __ARGS((win_T *wp, char_u *p, colnr_T len )); |  
                        |  | 17 | int linetabsize __ARGS((char_u *s, linenr_T lnum)); |  
                        |  | 18 | int linetabsize_col __ARGS((int startcol, char_u *s, linenr_T lnum)); |  
                        |  | 19 | int win_linetabsize __ARGS((win_T *wp, char_u *p, colnr_T len, linenr_T lnum)); |  
                          | 20 | 20 | int vim_isIDc __ARGS((int c)); |  
                          | 21 | 21 | int vim_iswordc __ARGS((int c)); |  
                          | 22 | 22 | int vim_iswordp __ARGS((char_u *p)); |  
                  | … | … |  |  
                          | 25 | 25 | int vim_isfilec_or_wc __ARGS((int c)); |  
                          | 26 | 26 | int vim_isprintc __ARGS((int c)); |  
                          | 27 | 27 | int vim_isprintc_strict __ARGS((int c)); |  
                        | 28 |  | int lbr_chartabsize __ARGS((unsigned char *s, colnr_T col )); |  
                        | 29 |  | int lbr_chartabsize_adv __ARGS((char_u **s, colnr_T col )); |  
                        | 30 |  | int win_lbr_chartabsize __ARGS((win_T *wp, char_u *s, colnr_T col, int *headp )); |  
                        |  | 28 | int lbr_chartabsize __ARGS((unsigned char *s, colnr_T col, linenr_T lnum)); |  
                        |  | 29 | int lbr_chartabsize_adv __ARGS((char_u **s, colnr_T col, linenr_T lnum)); |  
                        |  | 30 | int win_lbr_chartabsize __ARGS((win_T *wp, char_u *s, colnr_T col, int *headp, linenr_T lnum)); |  
                          | 31 | 31 | int in_win_border __ARGS((win_T *wp, colnr_T vcol)); |  
                          | 32 | 32 | void getvcol __ARGS((win_T *wp, pos_T *pos, colnr_T *start, colnr_T *cursor, colnr_T *end)); |  
                          | 33 | 33 | colnr_T getvcol_nolist __ARGS((pos_T *posp)); |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/src/proto/misc1.pro vim-7.3.000+hg~ee53a39d5896~bri/src/proto/misc1.pro 
              
              
                
                  | old | new |  |  
                          | 5 | 5 | int get_indent_str __ARGS((char_u *ptr, int ts)); |  
                          | 6 | 6 | int set_indent __ARGS((int size, int flags)); |  
                          | 7 | 7 | int get_number_indent __ARGS((linenr_T lnum)); |  
                          |  | 8 | int get_breakindent_win __ARGS((win_T *wp, linenr_T lnum)); |  
                          | 8 | 9 | int open_line __ARGS((int dir, int flags, int old_indent)); |  
                          | 9 | 10 | int get_leader_len __ARGS((char_u *line, char_u **flags, int backward)); |  
                          | 10 | 11 | int plines __ARGS((linenr_T lnum)); |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/src/regexp.c vim-7.3.000+hg~ee53a39d5896~bri/src/regexp.c 
              
              
                
                  | old | new |  |  
                          | 4035 | 4035 | if (top.col == MAXCOL || bot.col == MAXCOL) |  
                          | 4036 | 4036 | end = MAXCOL; |  
                          | 4037 | 4037 | cols = win_linetabsize(wp, |  
                        | 4038 |  | regline, (colnr_T)(reginput - regline) ); |  
                        |  | 4038 | regline, (colnr_T)(reginput - regline), reglnum + reg_firstlnum); |  
                          | 4039 | 4039 | if (cols < start || cols > end - (*p_sel == 'e')) |  
                          | 4040 | 4040 | status = RA_NOMATCH; |  
                          | 4041 | 4041 | } |  
                  | … | … |  |  
                          | 4059 | 4059 | case RE_VCOL: |  
                          | 4060 | 4060 | if (!re_num_cmp((long_u)win_linetabsize( |  
                          | 4061 | 4061 | reg_win == NULL ? curwin : reg_win, |  
                        | 4062 |  | regline, (colnr_T)(reginput - regline) ) + 1, scan)) |  
                        |  | 4062 | regline, (colnr_T)(reginput - regline), reglnum + reg_firstlnum ) + 1, scan)) |  
                          | 4063 | 4063 | status = RA_NOMATCH; |  
                          | 4064 | 4064 | break; |  
                          | 4065 | 4065 |  |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/src/screen.c vim-7.3.000+hg~ee53a39d5896~bri/src/screen.c 
              
              
                
                  | old | new |  |  
                          | 2802 | 2802 | # define WL_SIGN        WL_FOLD         /* column for signs */ |  
                          | 2803 | 2803 | #endif |  
                          | 2804 | 2804 | #define WL_NR           WL_SIGN + 1     /* line number */ |  
                          |  | 2805 | #ifdef FEAT_LINEBREAK |  
                          |  | 2806 | # define WL_BRI         WL_NR + 1       /* 'breakindent' */ |  
                          |  | 2807 | #else |  
                          |  | 2808 | # define WL_BRI         WL_NR |  
                          |  | 2809 | #endif |  
                          | 2805 | 2810 | #if defined(FEAT_LINEBREAK) || defined(FEAT_DIFF) |  
                        | 2806 |  | # define WL_SBR         WL_ NR+ 1       /* 'showbreak' or 'diff' */ |  
                        |  | 2811 | # define WL_SBR         WL_BRI + 1      /* 'showbreak' or 'diff' */ |  
                          | 2807 | 2812 | #else |  
                        | 2808 |  | # define WL_SBR         WL_ NR |  
                        |  | 2813 | # define WL_SBR         WL_BRI |  
                          | 2809 | 2814 | #endif |  
                          | 2810 | 2815 | #define WL_LINE         WL_SBR + 1      /* text in the line */ |  
                          | 2811 | 2816 | int         draw_state = WL_START;  /* what to draw next */ |  
                  | … | … |  |  
                          | 3133 | 3138 | #endif |  
                          | 3134 | 3139 | while (vcol < v && *ptr != NUL) |  
                          | 3135 | 3140 | { |  
                        | 3136 |  | c = win_lbr_chartabsize(wp, ptr, (colnr_T)vcol, NULL ); |  
                        |  | 3141 | c = win_lbr_chartabsize(wp, ptr, (colnr_T)vcol, NULL, lnum); |  
                          | 3137 | 3142 | vcol += c; |  
                          | 3138 | 3143 | #ifdef FEAT_MBYTE |  
                          | 3139 | 3144 | prev_ptr = ptr; |  
                  | … | … |  |  
                          | 3503 | 3508 | } |  
                          | 3504 | 3509 | } |  
                          | 3505 | 3510 |  |  
                          |  | 3511 | #ifdef FEAT_LINEBREAK |  
                          |  | 3512 | /* draw 'breakindent': indent wrapped text accordingly */ |  
                          |  | 3513 | if (draw_state == WL_BRI -1 && n_extra == 0){ |  
                          |  | 3514 | draw_state = WL_BRI; |  
                          |  | 3515 | # ifdef FEAT_DIFF |  
                          |  | 3516 | /* FIXME: handle (filler_todo > 0): or modify showbreak so that ---- lines are shorter by the amount needed? */ |  
                          |  | 3517 | # endif |  
                          |  | 3518 | if (wp->w_p_bri && row != startrow){ /* FIXME: what is startrow? Don't we need it as well?? */ |  
                          |  | 3519 | p_extra = NUL; |  
                          |  | 3520 | c_extra = ' '; |  
                          |  | 3521 | n_extra = get_breakindent_win(wp,lnum); |  
                          |  | 3522 | char_attr = 0; /* was: hl_attr(HLF_AT); */ |  
                          |  | 3523 | /* FIXME: why do we need to adjust vcol if showbreak does not?? */ |  
                          |  | 3524 | // vcol += n_extra; |  
                          |  | 3525 | /* FIXME: is this relevant here? copied shamelessly from showbreak */ |  
                          |  | 3526 | /* Correct end of highlighted area for 'breakindent', |  
                          |  | 3527 | * required when 'linebreak' is also set. */ |  
                          |  | 3528 | if (tocol == vcol) |  
                          |  | 3529 | tocol += n_extra; |  
                          |  | 3530 | } |  
                          |  | 3531 | } |  
                          |  | 3532 | #endif |  
                          |  | 3533 |  |  
                          |  | 3534 |  |  
                          | 3506 | 3535 | #if defined(FEAT_LINEBREAK) || defined(FEAT_DIFF) |  
                          | 3507 | 3536 | if (draw_state == WL_SBR - 1 && n_extra == 0) |  
                          | 3508 | 3537 | { |  
                  | … | … |  |  
                          | 4209 | 4238 | # ifdef FEAT_MBYTE |  
                          | 4210 | 4239 | has_mbyte ? mb_l : |  
                          | 4211 | 4240 | # endif |  
                        | 4212 |  | 1), (colnr_T)vcol, NULL ) - 1; |  
                        |  | 4241 | 1), (colnr_T)vcol, NULL, lnum) - 1; |  
                          | 4213 | 4242 | c_extra = ' '; |  
                          | 4214 | 4243 | if (vim_iswhite(c)) |  
                          | 4215 | 4244 | c = ' '; |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/src/structs.h vim-7.3.000+hg~ee53a39d5896~bri/src/structs.h 
              
              
                
                  | old | new |  |  
                          | 133 | 133 | int         wo_arab; |  
                          | 134 | 134 | # define w_p_arab w_onebuf_opt.wo_arab  /* 'arabic' */ |  
                          | 135 | 135 | #endif |  
                          |  | 136 | #ifdef FEAT_LINEBREAK |  
                          |  | 137 | int         wo_bri; |  
                          |  | 138 | # define w_p_bri w_onebuf_opt.wo_bri    /* 'breakindent' */ |  
                          |  | 139 | long        wo_brimin; |  
                          |  | 140 | # define w_p_brimin w_onebuf_opt.wo_brimin /* 'breakindentmin' */ |  
                          |  | 141 | long        wo_brishift; |  
                          |  | 142 | # define w_p_brishift w_onebuf_opt.wo_brishift /* 'breakindentshift' */ |  
                          |  | 143 | #endif |  
                          | 136 | 144 | #ifdef FEAT_DIFF |  
                          | 137 | 145 | int         wo_diff; |  
                          | 138 | 146 | # define w_p_diff w_onebuf_opt.wo_diff  /* 'diff' */ |  
 
- 
        
        diff -ru vim-7.3.000+hg~ee53a39d5896/src/ui.c vim-7.3.000+hg~ee53a39d5896~bri/src/ui.c 
              
              
                
                  | old | new |  |  
                          | 3066 | 3066 | start = ptr = ml_get_buf(wp->w_buffer, lnum, FALSE); |  
                          | 3067 | 3067 | while (count <= vcol && *ptr != NUL) |  
                          | 3068 | 3068 | { |  
                        | 3069 |  | count += win_lbr_chartabsize(wp, ptr, count, NULL ); |  
                        |  | 3069 | count += win_lbr_chartabsize(wp, ptr, count, NULL, lnum); |  
                          | 3070 | 3070 | mb_ptr_adv(ptr); |  
                          | 3071 | 3071 | } |  
                          | 3072 | 3072 | return (int)(ptr - start); |