From fd916d654d9731b3515abf7bc1ac12bd3632b601 Mon Sep 17 00:00:00 2001 From: Christian Brabandt Date: Mon, 1 Nov 2021 22:44:33 +0000 Subject: [PATCH] patch 8.2.3569: error for :let when vimrc is Vim 9 script Problem: Error for :let when vimrc is Vim 9 script. Solution: Prepend :legacy in the code for converting arguments. (Christian Brabandt, closes #9068, closes #9077) --- src/os_win32.c | 11 +++++++---- src/version.c | 2 ++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/os_win32.c b/src/os_win32.c index 91bd18a8b3..73af6a1817 100644 --- a/src/os_win32.c +++ b/src/os_win32.c @@ -7768,11 +7768,14 @@ fix_arg_enc(void) // Also, unset wildignore to not be influenced by this option. // The arguments specified in command-line should be kept even if // encoding options were changed. - do_cmdline_cmd((char_u *)":let SaVe_ISF = &isf|set isf+=(,)"); - do_cmdline_cmd((char_u *)":let SaVe_WIG = &wig|set wig="); + // Use :legacy so that it also works when in Vim9 script. + do_cmdline_cmd((char_u *)":legacy let g:SaVe_ISF = &isf|set isf+=(,)"); + do_cmdline_cmd((char_u *)":legacy let g:SaVe_WIG = &wig|set wig="); alist_expand(fnum_list, used_alist_count); - do_cmdline_cmd((char_u *)":let &isf = SaVe_ISF|unlet SaVe_ISF"); - do_cmdline_cmd((char_u *)":let &wig = SaVe_WIG|unlet SaVe_WIG"); + do_cmdline_cmd( + (char_u *)":legacy let &isf = g:SaVe_ISF|unlet g:SaVe_ISF"); + do_cmdline_cmd( + (char_u *)":legacy let &wig = g:SaVe_WIG|unlet g:SaVe_WIG"); } // If wildcard expansion failed, we are editing the first file of the diff --git a/src/version.c b/src/version.c index c42cd2ad22..ea1a790ccc 100644 --- a/src/version.c +++ b/src/version.c @@ -757,6 +757,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 3569, /**/ 3568, /**/