patch 9.0.1957: termcap options should change when setting keyprotocol

Problem:  termcap options should change on keyprotocol setting
Solution: Apply termcap entries when 'keyprotocol' changes

When the 'keyprotocol' option was set after startup (including in a
user's .vimrc) the termcap entries associated with the matching protocol
were not applied. Thus, setting the option has no affect.

When 'keyprotocol' is changed it should also update the termcap entries.

closes: #13211

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Gregory Anders <greg@gpanders.com>
diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim
index fc81cec..ccaefc5 100644
--- a/src/testdir/test_options.vim
+++ b/src/testdir/test_options.vim
@@ -1861,4 +1861,18 @@
   call delete('Xoutput_bin')
 endfunc
 
+func Test_set_keyprotocol()
+  CheckNotGui
+
+  let term = &term
+  set term=ansi
+  call assert_equal('', &t_TI)
+
+  " Setting 'keyprotocol' should affect terminal codes without needing to
+  " reset 'term'
+  set keyprotocol+=ansi:kitty
+  call assert_equal("\<Esc>[=1;1u", &t_TI)
+  let &term = term
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab