summaryrefslogtreecommitdiffstats
path: root/screen.c
diff options
context:
space:
mode:
authornicm <nicm>2022-06-30 09:55:53 +0000
committernicm <nicm>2022-06-30 09:55:53 +0000
commitcdacc12ce305ad2f3e65e2a01328a988e3200b51 (patch)
treec886b2047969edb95bb711b7dccc9ee4fa29b5ec /screen.c
parentb22edcf3a5e6271625141992c1a842d295c8b89f (diff)
Add support for OSC 8 hyperlinks (a VTE extension now supported by other
terminals such as iTerm2). Originally written by me then extended and completed by first Will Noble and later Jeff Chiang. GitHub issues 911, 2621, 2890, 3240.
Diffstat (limited to 'screen.c')
-rw-r--r--screen.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/screen.c b/screen.c
index 87b3330a..09326b2d 100644
--- a/screen.c
+++ b/screen.c
@@ -90,6 +90,7 @@ screen_init(struct screen *s, u_int sx, u_int sy, u_int hlimit)
s->sel = NULL;
s->write_list = NULL;
+ s->hyperlinks = NULL;
screen_reinit(s);
}
@@ -119,6 +120,17 @@ screen_reinit(struct screen *s)
screen_clear_selection(s);
screen_free_titles(s);
+ screen_reset_hyperlinks(s);
+}
+
+/* Reset hyperlinks of a screen. */
+void
+screen_reset_hyperlinks(struct screen *s)
+{
+ if (s->hyperlinks == NULL)
+ s->hyperlinks = hyperlinks_init();
+ else
+ hyperlinks_reset(s->hyperlinks);
}
/* Destroy a screen. */
@@ -137,6 +149,8 @@ screen_free(struct screen *s)
grid_destroy(s->saved_grid);
grid_destroy(s->grid);
+ if (s->hyperlinks != NULL)
+ hyperlinks_free(s->hyperlinks);
screen_free_titles(s);
}