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)
diff --git a/src/scriptfile.c b/src/scriptfile.c
index c8a23d5..82ae42a 100644
--- a/src/scriptfile.c
+++ b/src/scriptfile.c
@@ -1319,6 +1319,9 @@
 	    }
 	// 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 @@
     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();
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 7f1e71d..42a0d61 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -2207,7 +2207,7 @@
   assert_equal('1_3_', result)
 
   var s = ''
-  while s == 'x' #{comment
+  while s == 'x' #{comment}
   endwhile
 enddef
 
@@ -3155,6 +3155,19 @@
   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
 
 
diff --git a/src/version.c b/src/version.c
index cbef3da..ca79c64 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2485,
+/**/
     2484,
 /**/
     2483,