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/t/10state_putglyph.test b/src/libvterm/t/10state_putglyph.test
index 5665bce..6d5d56a 100644
--- a/src/libvterm/t/10state_putglyph.test
+++ b/src/libvterm/t/10state_putglyph.test
@@ -17,6 +17,12 @@
putglyph 0xc1 1 0,0
putglyph 0xe9 1 0,1
+!UTF-8 split writes
+RESET
+PUSH "\xC3"
+PUSH "\x81"
+ putglyph 0xc1 1 0,0
+
!UTF-8 wide char
# U+FF10 = 0xEF 0xBC 0x90 name: FULLWIDTH DIGIT ZERO
RESET
diff --git a/src/libvterm/t/25state_input.test b/src/libvterm/t/25state_input.test
index d54de83..a5119fb 100644
--- a/src/libvterm/t/25state_input.test
+++ b/src/libvterm/t/25state_input.test
@@ -130,3 +130,14 @@
output "\e[200~"
PASTE END
output "\e[201~"
+
+!Focus reporting disabled
+FOCUS IN
+FOCUS OUT
+
+!Focus reporting enabled
+PUSH "\e[?1004h"
+FOCUS IN
+ output "\e[I"
+FOCUS OUT
+ output "\e[O"
diff --git a/src/libvterm/t/26state_query.test b/src/libvterm/t/26state_query.test
index bfe8f69..3ace2d5 100644
--- a/src/libvterm/t/26state_query.test
+++ b/src/libvterm/t/26state_query.test
@@ -58,5 +58,5 @@
PUSH "\e F"
!Truncation on attempted buffer overflow
-PUSH "\e[6n" x 20
- output "\e[10;10R" x 7
+PUSH "\e[6n" x 30
+ output "\e[10;10R" x 24
diff --git a/src/libvterm/t/harness.c b/src/libvterm/t/harness.c
index 2ba77f0..e2c7295 100644
--- a/src/libvterm/t/harness.c
+++ b/src/libvterm/t/harness.c
@@ -233,6 +233,9 @@
case VTERM_VALUETYPE_COLOR:
printf("settermprop %d rgb(%d,%d,%d)\n", prop, val->color.red, val->color.green, val->color.blue);
return 1;
+
+ case VTERM_N_VALUETYPES:
+ return 0;
}
return 0;
@@ -316,6 +319,9 @@
case VTERM_ATTR_BACKGROUND:
state_pen.background = val->color;
break;
+
+ case VTERM_N_ATTRS:
+ return 0;
}
return 1;
@@ -651,6 +657,16 @@
goto abort_line;
}
+ else if(strstartswith(line, "FOCUS ")) {
+ char *linep = line + 6;
+ if(streq(linep, "IN"))
+ vterm_state_focus_in(state);
+ else if(streq(linep, "OUT"))
+ vterm_state_focus_out(state);
+ else
+ goto abort_line;
+ }
+
else if(strstartswith(line, "MOUSEMOVE ")) {
char *linep = line + 10;
int row, col, len;