diff options
author | nicm <nicm> | 2022-06-30 09:55:53 +0000 |
---|---|---|
committer | nicm <nicm> | 2022-06-30 09:55:53 +0000 |
commit | cdacc12ce305ad2f3e65e2a01328a988e3200b51 (patch) | |
tree | c886b2047969edb95bb711b7dccc9ee4fa29b5ec /screen.c | |
parent | b22edcf3a5e6271625141992c1a842d295c8b89f (diff) | |
download | rtmux-cdacc12ce305ad2f3e65e2a01328a988e3200b51.tar.gz rtmux-cdacc12ce305ad2f3e65e2a01328a988e3200b51.tar.bz2 rtmux-cdacc12ce305ad2f3e65e2a01328a988e3200b51.zip |
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.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -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); } |