changeset 33029:c7591e326ded v9.0.1806

patch 9.0.1806: Vim9: bogus error on export Commit: https://github.com/vim/vim/commit/90c27b28032ea2b42718f8933f877a8bca2821ef Author: LemonBoy <thatlemon@gmail.com> Date: Sun Aug 27 19:28:15 2023 +0200 patch 9.0.1806: Vim9: bogus error on export Problem: Vim9: bogus error on export Solution: Don't error out when the export command is not executed closes: #12912 closes: #12930 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: LemonBoy <thatlemon@gmail.com>
author Christian Brabandt <cb@256bit.org>
date Sun, 27 Aug 2023 19:45:02 +0200
parents 50dfac4adf91
children 18898964ce7d
files src/ex_docmd.c src/testdir/test_vim9_import.vim src/version.c
diffstat 3 files changed, 14 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2586,8 +2586,8 @@ do_one_cmd(
 
 #ifdef FEAT_EVAL
     // A command will reset "is_export" when exporting an item.  If it is still
-    // set something went wrong.
-    if (is_export)
+    // set something went wrong or the command was never executed.
+    if (!ea.skip && is_export)
     {
 	if (errormsg == NULL)
 	    errormsg = _(e_export_with_invalid_argument);
--- a/src/testdir/test_vim9_import.vim
+++ b/src/testdir/test_vim9_import.vim
@@ -2919,5 +2919,15 @@ def Test_vim9_import_symlink()
   endif
 enddef
 
+def Test_export_in_conditional_block()
+  var lines =<< trim END
+      vim9script
+      if exists('this_will_fail')
+        export var MyVar = "hello"
+      endif
+  END
+  v9.CheckScriptSuccess(lines)
+enddef
+
 
 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1806,
+/**/
     1805,
 /**/
     1804,