# HG changeset patch # User Bram Moolenaar # Date 1408909189 -7200 # Node ID e60327caf9095d5ec067a5ab47bf4a69c0f58580 # Parent 81b36b9462f03118efd83b414d49fd5aabd6b7d0 updated for version 7.4.417 Problem: After splitting a window and setting 'breakindent' the default minimum with is not respected. Solution: Call briopt_check() when copying options to a new window. diff --git a/src/option.c b/src/option.c --- a/src/option.c +++ b/src/option.c @@ -3097,6 +3097,9 @@ static void fill_breakat_flags __ARGS((v static int opt_strings_flags __ARGS((char_u *val, char **values, unsigned *flagp, int list)); static int check_opt_strings __ARGS((char_u *val, char **values, int)); static int check_opt_wim __ARGS((void)); +#ifdef FEAT_LINEBREAK +static int briopt_check __ARGS((win_T *wp)); +#endif /* * Initialize the options, first part. @@ -5289,7 +5292,7 @@ didset_options() (void)check_cedit(); #endif #ifdef FEAT_LINEBREAK - briopt_check(); + briopt_check(curwin); #endif } @@ -5748,7 +5751,7 @@ did_set_string_option(opt_idx, varp, new /* 'breakindentopt' */ else if (varp == &curwin->w_p_briopt) { - if (briopt_check() == FAIL) + if (briopt_check(curwin) == FAIL) errmsg = e_invarg; } #endif @@ -10232,6 +10235,9 @@ win_copy_options(wp_from, wp_to) wp_to->w_farsi = wp_from->w_farsi; # endif # endif +#if defined(FEAT_LINEBREAK) + briopt_check(wp_to); +#endif } #endif @@ -12002,15 +12008,16 @@ find_mps_values(initc, findc, backwards, * This is called when 'breakindentopt' is changed and when a window is * initialized. */ - int -briopt_check() + static int +briopt_check(wp) + win_T *wp; { char_u *p; int bri_shift = 0; long bri_min = 20; int bri_sbr = FALSE; - p = curwin->w_p_briopt; + p = wp->w_p_briopt; while (*p != NUL) { if (STRNCMP(p, "shift:", 6) == 0 @@ -12035,9 +12042,9 @@ briopt_check() ++p; } - curwin->w_p_brishift = bri_shift; - curwin->w_p_brimin = bri_min; - curwin->w_p_brisbr = bri_sbr; + wp->w_p_brishift = bri_shift; + wp->w_p_brimin = bri_min; + wp->w_p_brisbr = bri_sbr; return OK; } diff --git a/src/proto/option.pro b/src/proto/option.pro --- a/src/proto/option.pro +++ b/src/proto/option.pro @@ -62,5 +62,4 @@ int check_ff_value __ARGS((char_u *p)); long get_sw_value __ARGS((buf_T *buf)); long get_sts_value __ARGS((void)); void find_mps_values __ARGS((int *initc, int *findc, int *backwards, int switchit)); -int briopt_check __ARGS((void)); /* vim: set ft=c : */ diff --git a/src/testdir/test_breakindent.in b/src/testdir/test_breakindent.in --- a/src/testdir/test_breakindent.in +++ b/src/testdir/test_breakindent.in @@ -27,6 +27,7 @@ STARTTEST : $put =g:line1 : wincmd p :endfu +:set briopt=min:0 :let g:test="Test 1: Simple breakindent" :let line1=ScreenChar(8) :call DoRecordScreen() diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 417, +/**/ 416, /**/ 415,