patch 8.2.4943: changing 'switchbuf' may have no effect

Problem:    Changing 'switchbuf' may have no effect.
Solution:   Handle 'switchbuf' in didset_string_options(). (Sean Dewar,
            closes #10406)
diff --git a/src/optionstr.c b/src/optionstr.c
index 26dd551..73a5770 100644
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -125,6 +125,7 @@
 #if defined(FEAT_TOOLBAR) && defined(FEAT_GUI_GTK)
     (void)opt_strings_flags(p_tbis, p_tbis_values, &tbis_flags, FALSE);
 #endif
+    (void)opt_strings_flags(p_swb, p_swb_values, &swb_flags, TRUE);
 }
 
 #if defined(FEAT_EVAL)
diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim
index 8854ffd..0a53315 100644
--- a/src/testdir/test_options.vim
+++ b/src/testdir/test_options.vim
@@ -1299,4 +1299,15 @@
   set wildoptions=
 endfunc
 
+func Test_switchbuf_reset()
+  set switchbuf=useopen
+  sblast
+  call assert_equal(1, winnr('$'))
+  set all&
+  call assert_equal('', &switchbuf)
+  sblast
+  call assert_equal(2, winnr('$'))
+  only!
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index 480acfd..0ebc9cb 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4943,
+/**/
     4942,
 /**/
     4941,