summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-07-22 17:04:02 +0200
committerBram Moolenaar <Bram@vim.org>2017-07-22 17:04:02 +0200
commit825680f5f4ffed5d57fdb283dde5f0ad734605fc (patch)
treeddc79f2e8bd2be926d92b90111def111a25df5d1
parent8f84c3a8666cea04484ec93fa05386bf33f93f5a (diff)
patch 8.0.0743: the 'termsize' option can be set to an invalid valuev8.0.0743
Problem: The 'termsize' option can be set to an invalid value. Solution: Check the 'termsize' option to be valid.
-rw-r--r--src/option.c13
-rw-r--r--src/testdir/gen_opt_test.vim1
-rw-r--r--src/version.c2
3 files changed, 16 insertions, 0 deletions
diff --git a/src/option.c b/src/option.c
index 8e91fae74a..5247893714 100644
--- a/src/option.c
+++ b/src/option.c
@@ -7479,6 +7479,19 @@ did_set_string_option(
}
#endif
+#ifdef FEAT_TERMINAL
+ /* 'termsize' */
+ else if (varp == &curwin->w_p_tms)
+ {
+ if (*curwin->w_p_tms != NUL)
+ {
+ p = skipdigits(curwin->w_p_tms);
+ if (p == curwin->w_p_tms || *p != 'x' || *skipdigits(p + 1) != NUL)
+ errmsg = e_invarg;
+ }
+ }
+#endif
+
/* Options that are a list of flags. */
else
{
diff --git a/src/testdir/gen_opt_test.vim b/src/testdir/gen_opt_test.vim
index 019c757df9..128a918147 100644
--- a/src/testdir/gen_opt_test.vim
+++ b/src/testdir/gen_opt_test.vim
@@ -124,6 +124,7 @@ let test_values = {
\ 'switchbuf': [['', 'useopen', 'split,newtab'], ['xxx']],
\ 'tagcase': [['smart', 'match'], ['', 'xxx', 'smart,match']],
\ 'term': [[], []],
+ \ 'termsize': [['', '24x80', '0x80', '32x0', '0x0'], ['xxx', '80', '8ax9', '24x80b']],
\ 'toolbar': [['', 'icons', 'text'], ['xxx']],
\ 'toolbariconsize': [['', 'tiny', 'huge'], ['xxx']],
\ 'ttymouse': [['', 'xterm'], ['xxx']],
diff --git a/src/version.c b/src/version.c
index b678ed92b8..da56b9a313 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 743,
+/**/
742,
/**/
741,