From 5cdca563f16eb03d53aca49258fe1ab67adf93f4 Mon Sep 17 00:00:00 2001
From: Dominik Behr <dbehr@chromium.org>
Date: Fri, 29 Apr 2016 17:55:38 -0700
Subject: [PATCH] libtsm: add OSC string callback

Signed-off-by: Dominik Behr <dbehr@chromium.org>
---
 docs/libtsm.sym |  1 +
 src/libtsm.h    |  9 +++++++++
 src/tsm_vte.c   | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 56 insertions(+)

diff --git a/docs/libtsm.sym b/docs/libtsm.sym
index 3593646..f6d438f 100644
--- a/docs/libtsm.sym
+++ b/docs/libtsm.sym
@@ -111,4 +111,5 @@ global:
 	tsm_vte_hard_reset;
 	tsm_vte_input;
 	tsm_vte_handle_keyboard;
+	tsm_vte_set_osc_cb;
 } LIBTSM_2;
diff --git a/src/libtsm.h b/src/libtsm.h
index 39dda26..d47e4f4 100644
--- a/src/libtsm.h
+++ b/src/libtsm.h
@@ -312,6 +312,15 @@ bool tsm_vte_handle_keyboard(struct tsm_vte *vte, uint32_t keysym,
 			     uint32_t ascii, unsigned int mods,
 			     uint32_t unicode);
 
+typedef void (*tsm_vte_osc_cb) (struct tsm_vte *vte,
+				const uint32_t *osc_string,
+				size_t osc_len,
+				void *data);
+
+void tsm_vte_set_osc_cb(struct tsm_vte *vte,
+			tsm_vte_osc_cb osc_cb,
+			void *data);
+
 /** @} */
 
 #ifdef __cplusplus
diff --git a/src/tsm_vte.c b/src/tsm_vte.c
index 70d34d9..17ed170 100644
--- a/src/tsm_vte.c
+++ b/src/tsm_vte.c
@@ -137,6 +137,8 @@ enum parser_action {
 #define FLAG_PREPEND_ESCAPE			0x00010000 /* Prepend escape character to next output */
 #define FLAG_TITE_INHIBIT_MODE			0x00020000 /* Prevent switching to alternate screen buffer */
 
+#define OSC_SIZE_INC	1024
+
 struct vte_saved_state {
 	unsigned int cursor_x;
 	unsigned int cursor_y;
@@ -181,6 +183,12 @@ struct tsm_vte {
 	struct vte_saved_state saved_state;
 	unsigned int alt_cursor_x;
 	unsigned int alt_cursor_y;
+
+	uint32_t *osc_string;
+	size_t osc_size;
+	size_t osc_pos;
+	tsm_vte_osc_cb osc_cb;
+	void *osc_cb_data;
 };
 
 enum vte_color {
@@ -388,6 +396,8 @@ int tsm_vte_new(struct tsm_vte **out, struct tsm_screen *con,
 	vte->def_attr.fccode = COLOR_FOREGROUND;
 	vte->def_attr.bccode = COLOR_BACKGROUND;
 	to_rgb(vte, &vte->def_attr);
+	vte->osc_string = NULL;
+	vte->osc_cb_data = NULL;
 
 	ret = tsm_utf8_mach_new(&vte->mach);
 	if (ret)
@@ -427,6 +437,10 @@ void tsm_vte_unref(struct tsm_vte *vte)
 	llog_debug(vte, "destroying vte object");
 	tsm_screen_unref(vte->con);
 	tsm_utf8_mach_free(vte->mach);
+	if (vte->osc_string) {
+		free(vte->osc_string);
+		vte->osc_string = NULL;
+	}
 	free(vte);
 }
 
@@ -1809,10 +1823,33 @@ static void do_action(struct tsm_vte *vte, uint32_t data, int action)
 		case ACTION_DCS_END:
 			break;
 		case ACTION_OSC_START:
+			if (!vte->osc_string) {
+				vte->osc_string = malloc(sizeof(*vte->osc_string) * OSC_SIZE_INC);
+				vte->osc_size = vte->osc_string ? OSC_SIZE_INC : 0;
+			}
+			vte->osc_pos = 0;
 			break;
 		case ACTION_OSC_COLLECT:
+			if (vte->osc_string) {
+				if (vte->osc_pos < vte->osc_size) {
+					vte->osc_string[vte->osc_pos] = data;
+					vte->osc_pos++;
+				}
+				if (vte->osc_pos >= vte->osc_size) {
+					uint32_t *tmp = realloc(vte->osc_string, sizeof(*tmp) * (vte->osc_size + OSC_SIZE_INC));
+					if (tmp) {
+						vte->osc_size += OSC_SIZE_INC;
+						vte->osc_string = tmp;
+					} else {
+						llog_warning(vte, "out of memory for OSC string");
+					}
+				}
+			}
 			break;
 		case ACTION_OSC_END:
+			if (vte->osc_cb && vte->osc_string && vte->osc_pos) {
+				vte->osc_cb(vte, vte->osc_string, vte->osc_pos, vte->osc_cb_data);
+			}
 			break;
 		default:
 			llog_warn(vte, "invalid action %d", action);
@@ -2790,3 +2827,12 @@ bool tsm_vte_handle_keyboard(struct tsm_vte *vte, uint32_t keysym,
 	vte->flags &= ~FLAG_PREPEND_ESCAPE;
 	return false;
 }
+
+SHL_EXPORT
+void tsm_vte_set_osc_cb(struct tsm_vte *vte,
+			tsm_vte_osc_cb osc_cb,
+			void *data)
+{
+	vte->osc_cb = osc_cb;
+	vte->osc_cb_data = data;
+}
-- 
2.8.0.rc3.226.g39d4020

