patch 8.0.1639: libvterm code lags behind master

Problem:    Libvterm code lags behind master.
Solution:   Sync to head, solve merge problems.
diff --git a/src/libvterm/bin/unterm.c b/src/libvterm/bin/unterm.c
index b8fe37c..3af2ecf 100644
--- a/src/libvterm/bin/unterm.c
+++ b/src/libvterm/bin/unterm.c
@@ -95,8 +95,8 @@
             sgr[sgri++] = 90 + (index - 8);
           else {
             sgr[sgri++] = 38;
-            sgr[sgri++] = 5 | (1<<31);
-            sgr[sgri++] = index | (1<<31);
+            sgr[sgri++] = 5 | CSI_ARG_FLAG_MORE;
+            sgr[sgri++] = index | CSI_ARG_FLAG_MORE;
           }
         }
 
@@ -112,8 +112,8 @@
             sgr[sgri++] = 100 + (index - 8);
           else {
             sgr[sgri++] = 48;
-            sgr[sgri++] = 5 | (1<<31);
-            sgr[sgri++] = index | (1<<31);
+            sgr[sgri++] = 5 | CSI_ARG_FLAG_MORE;
+            sgr[sgri++] = index | CSI_ARG_FLAG_MORE;
           }
         }
 
@@ -125,9 +125,9 @@
 	  int i;
 	  for(i = 0; i < sgri; i++)
 	    printf(!i               ? "%d" :
-		sgr[i] & (1<<31) ? ":%d" :
+		CSI_ARG_HAS_MORE(sgr[i]) ? ":%d" :
 		";%d",
-		sgr[i] & ~(1<<31));
+		CSI_ARG(sgr[i]));
 	}
         printf("m");
       }
@@ -283,5 +283,6 @@
   close(fd);
 
   vterm_free(vt);
+
   return 0;
 }
diff --git a/src/libvterm/bin/vterm-ctrl.c b/src/libvterm/bin/vterm-ctrl.c
index 2568ee6..e43297c 100644
--- a/src/libvterm/bin/vterm-ctrl.c
+++ b/src/libvterm/bin/vterm-ctrl.c
@@ -53,6 +53,7 @@
   "curblink [off|on|query]",
   "curshape [block|under|bar|query]",
   "mouse [off|click|clickdrag|motion]",
+  "reportfocus [off|on|query]",
   "altscreen [off|on|query]",
   "bracketpaste [off|on|query]",
   "icontitle [STR]",
@@ -81,9 +82,9 @@
   return ret;
 }
 
-static void await_c1(int c1)
+static void await_c1(unsigned char c1)
 {
-  int c;
+  unsigned char c;
 
   /* await CSI - 8bit or 2byte 7bit form */
   int in_esc = FALSE;
@@ -340,6 +341,9 @@
         printf("\x1b[?1003h"); break;
       }
     }
+    else if(streq(arg, "reportfocus")) {
+      do_dec_mode(1004, getboolq(&argi, argc, argv), "reportfocus");
+    }
     else if(streq(arg, "altscreen")) {
       do_dec_mode(1049, getboolq(&argi, argc, argv), "altscreen");
     }
diff --git a/src/libvterm/bin/vterm-dump.c b/src/libvterm/bin/vterm-dump.c
index 84a957a..9d0edf4 100644
--- a/src/libvterm/bin/vterm-dump.c
+++ b/src/libvterm/bin/vterm-dump.c
@@ -227,5 +227,6 @@
 
   close(fd);
   vterm_free(vt);
+
   return 0;
 }