summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2014-08-24 21:39:49 +0200
committerBram Moolenaar <Bram@vim.org>2014-08-24 21:39:49 +0200
commit285ed7e049dc50c61672fb835752643bd01ed1ca (patch)
tree8bde91ff61712a04fcef9c3766f192206c2cdac2
parent95765089755c57d0d73252d4673c9d2deee337ff (diff)
downloadvim-git-285ed7e049dc50c61672fb835752643bd01ed1ca.tar.gz
updated for version 7.4.417v7.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.
-rw-r--r--src/option.c23
-rw-r--r--src/proto/option.pro1
-rw-r--r--src/testdir/test_breakindent.in1
-rw-r--r--src/version.c2
4 files changed, 18 insertions, 9 deletions
diff --git a/src/option.c b/src/option.c
index f928b3ba9..855539b58 100644
--- a/src/option.c
+++ b/src/option.c
@@ -3097,6 +3097,9 @@ static void fill_breakat_flags __ARGS((void));
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_value_alloced, oldval, errbuf,
/* '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, switchit)
* 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
index e426e6cfa..3da74e62d 100644
--- 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
index 79e25f79d..150c9430d 100644
--- 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
index 01b9082aa..ee2598d8b 100644
--- 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,