patch 8.0.1577: virtual replace test fails on MS-Windows

Problem:    Virtual replace test fails on MS-Windows.
Solution:   Make adding a termcap entry work for a builtin terminal.
            Restore terminal keys in a better way.
diff --git a/src/term.c b/src/term.c
index 5e7aeec..622491f 100644
--- a/src/term.c
+++ b/src/term.c
@@ -2278,6 +2278,7 @@
 	    if (termp->bt_string != NULL)	/* found it */
 	    {
 		key = TERMCAP2KEY(name[0], name[1]);
+		++termp;
 		while (termp->bt_entry != (int)KS_NAME)
 		{
 		    if ((int)termp->bt_entry == key)
diff --git a/src/testdir/test_visual.vim b/src/testdir/test_visual.vim
index 9d0458c..e08883d 100644
--- a/src/testdir/test_visual.vim
+++ b/src/testdir/test_visual.vim
@@ -157,6 +157,8 @@
 
 " Test Virtual replace mode.
 func Test_virtual_replace()
+  let save_t_kD = &t_kD
+  let save_t_kb = &t_kb
   exe "set t_kD=\<C-V>x7f t_kb=\<C-V>x08"
   enew!
   exe "normal a\nabcdefghi\njk\tlmn\n    opq	rst\n\<C-D>uvwxyz"
@@ -186,7 +188,9 @@
   call assert_equal(['AB......CDEFGHI.Jkl',
 	      \ 'AB	IJKLMNO	QRst'], getline(12, 13))
   enew!
-  set noai bs&vim t_kD&vim t_kb&vim
+  set noai bs&vim
+  let &t_kD = save_t_kD
+  let &t_kb = save_t_kb
 endfunc
 
 " Test Virtual replace mode.
diff --git a/src/version.c b/src/version.c
index 65b5d2d..8cc867f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -767,6 +767,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1577,
+/**/
     1576,
 /**/
     1575,