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/include/vterm.h b/src/libvterm/include/vterm.h
index df8e968..662125f 100644
--- a/src/libvterm/include/vterm.h
+++ b/src/libvterm/include/vterm.h
@@ -96,7 +96,9 @@
VTERM_VALUETYPE_BOOL = 1,
VTERM_VALUETYPE_INT,
VTERM_VALUETYPE_STRING,
- VTERM_VALUETYPE_COLOR
+ VTERM_VALUETYPE_COLOR,
+
+ VTERM_N_VALUETYPES
} VTermValueType;
typedef union {
@@ -116,7 +118,9 @@
VTERM_ATTR_STRIKE, /* bool: 9, 29 */
VTERM_ATTR_FONT, /* number: 10-19 */
VTERM_ATTR_FOREGROUND, /* color: 30-39 90-97 */
- VTERM_ATTR_BACKGROUND /* color: 40-49 100-107 */
+ VTERM_ATTR_BACKGROUND, /* color: 40-49 100-107 */
+
+ VTERM_N_ATTRS
} VTermAttr;
typedef enum {
@@ -129,20 +133,26 @@
VTERM_PROP_REVERSE, /* bool */
VTERM_PROP_CURSORSHAPE, /* number */
VTERM_PROP_MOUSE, /* number */
- VTERM_PROP_CURSORCOLOR /* string */
+ VTERM_PROP_CURSORCOLOR, /* string */
+
+ VTERM_N_PROPS
} VTermProp;
enum {
VTERM_PROP_CURSORSHAPE_BLOCK = 1,
VTERM_PROP_CURSORSHAPE_UNDERLINE,
- VTERM_PROP_CURSORSHAPE_BAR_LEFT
+ VTERM_PROP_CURSORSHAPE_BAR_LEFT,
+
+ VTERM_N_PROP_CURSORSHAPES
};
enum {
VTERM_PROP_MOUSE_NONE = 0,
VTERM_PROP_MOUSE_CLICK,
VTERM_PROP_MOUSE_DRAG,
- VTERM_PROP_MOUSE_MOVE
+ VTERM_PROP_MOUSE_MOVE,
+
+ VTERM_N_PROP_MOUSES
};
typedef struct {
@@ -213,8 +223,8 @@
*
* Don't confuse this with the final byte of the CSI escape; 'a' in this case.
*/
-#define CSI_ARG_FLAG_MORE (1<<30)
-#define CSI_ARG_MASK (~(1<<30))
+#define CSI_ARG_FLAG_MORE (1U<<31)
+#define CSI_ARG_MASK (~(1U<<31))
#define CSI_ARG_HAS_MORE(a) ((a) & CSI_ARG_FLAG_MORE)
#define CSI_ARG(a) ((a) & CSI_ARG_MASK)
@@ -293,6 +303,8 @@
void vterm_state_set_bold_highbright(VTermState *state, int bold_is_highbright);
int vterm_state_get_penattr(const VTermState *state, VTermAttr attr, VTermValue *val);
int vterm_state_set_termprop(VTermState *state, VTermProp prop, VTermValue *val);
+void vterm_state_focus_in(VTermState *state);
+void vterm_state_focus_out(VTermState *state);
const VTermLineInfo *vterm_state_get_lineinfo(const VTermState *state, int row);
/* ------------
@@ -357,7 +369,9 @@
VTERM_DAMAGE_CELL, /* every cell */
VTERM_DAMAGE_ROW, /* entire rows */
VTERM_DAMAGE_SCREEN, /* entire screen */
- VTERM_DAMAGE_SCROLL /* entire screen + scrollrect */
+ VTERM_DAMAGE_SCROLL, /* entire screen + scrollrect */
+
+ VTERM_N_DAMAGES
} VTermDamageSize;
/* Invoke the relevant callbacks to update the screen. */
@@ -384,7 +398,9 @@
VTERM_ATTR_STRIKE_MASK = 1 << 5,
VTERM_ATTR_FONT_MASK = 1 << 6,
VTERM_ATTR_FOREGROUND_MASK = 1 << 7,
- VTERM_ATTR_BACKGROUND_MASK = 1 << 8
+ VTERM_ATTR_BACKGROUND_MASK = 1 << 8,
+
+ VTERM_ALL_ATTRS_MASK = (1 << 9) - 1
} VTermAttrMask;
int vterm_screen_get_attrs_extent(const VTermScreen *screen, VTermRect *extent, VTermPos pos, VTermAttrMask attrs);