mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.2.2485: when sourcing a script again the script version isn't reset
Problem: When sourcing a script again the script version isn't reset. Solution: Set sn_version to one when sourcing a script again. Clear sn_save_cpo properly. (closes #7608)
This commit is contained in:
@@ -1319,6 +1319,9 @@ do_source(
|
||||
}
|
||||
// imports can be redefined once
|
||||
mark_imports_for_reload(sid);
|
||||
|
||||
// reset version, "vim9script" may have been added or removed.
|
||||
si->sn_version = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1457,7 +1460,7 @@ almosttheend:
|
||||
if (si->sn_save_cpo != NULL)
|
||||
{
|
||||
set_option_value((char_u *)"cpo", 0L, si->sn_save_cpo, 0);
|
||||
CLEAR_POINTER(si->sn_save_cpo);
|
||||
VIM_CLEAR(si->sn_save_cpo);
|
||||
}
|
||||
|
||||
restore_funccal();
|
||||
|
@@ -2207,7 +2207,7 @@ def Test_while_loop()
|
||||
assert_equal('1_3_', result)
|
||||
|
||||
var s = ''
|
||||
while s == 'x' #{comment
|
||||
while s == 'x' #{comment}
|
||||
endwhile
|
||||
enddef
|
||||
|
||||
@@ -3155,6 +3155,19 @@ def Test_restoring_cpo()
|
||||
delete('Xsourced')
|
||||
delete('Xclose')
|
||||
delete('Xdone')
|
||||
|
||||
writefile(['vim9script'], 'XanotherScript')
|
||||
set cpo=aABceFsMny>
|
||||
edit XanotherScript
|
||||
so %
|
||||
assert_equal('aABceFsMny>', &cpo)
|
||||
:1del
|
||||
w
|
||||
so %
|
||||
assert_equal('aABceFsMny>', &cpo)
|
||||
|
||||
delete('XanotherScript')
|
||||
set cpo&vim
|
||||
enddef
|
||||
|
||||
|
||||
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
2485,
|
||||
/**/
|
||||
2484,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user