patch 8.0.1172: when E734 is given option is still set
Problem: When E734 is given option is still set.
Solution: Assign NULL to "s". (Christian Brabandt)
diff --git a/src/eval.c b/src/eval.c
index 8b1ceae..8670e12 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1704,7 +1704,10 @@
&stringval, opt_flags);
if ((opt_type == 1 && *op == '.')
|| (opt_type == 0 && *op != '.'))
+ {
EMSG2(_(e_letwrong), op);
+ s = NULL; /* don't set the value */
+ }
else
{
if (opt_type == 1) /* number */
diff --git a/src/testdir/test_assign.vim b/src/testdir/test_assign.vim
index efc9d08..317d458 100644
--- a/src/testdir/test_assign.vim
+++ b/src/testdir/test_assign.vim
@@ -29,3 +29,17 @@
let &t_xx = ""
call assert_fails('let x = &t_xx', 'E15')
endfunc
+
+func Test_let_option_error()
+ let _w = &tw
+ let &tw = 80
+ call assert_fails('let &tw .= 1', 'E734')
+ call assert_equal(80, &tw)
+ let &tw = _w
+
+ let _w = &fillchars
+ let &fillchars = "vert:|"
+ call assert_fails('let &fillchars += "diff:-"', 'E734')
+ call assert_equal("vert:|", &fillchars)
+ let &fillchars = _w
+endfunc
diff --git a/src/version.c b/src/version.c
index 925a6cd..6e3f90a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1172,
+/**/
1171,
/**/
1170,