From 1a65243606f3d99c019dade36123ad11dccb6331 Mon Sep 17 00:00:00 2001 From: Adrian Johnson <ajohnson@redneon.com> Date: Sun, 25 Nov 2018 08:21:39 +1030 Subject: [PATCH] Don't truncate long URLs in cairo hyperlinks --- plugin/pango/gvrender_pango.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plugin/pango/gvrender_pango.c b/plugin/pango/gvrender_pango.c index aec8f3a8f..b57304b42 100644 --- a/plugin/pango/gvrender_pango.c +++ b/plugin/pango/gvrender_pango.c @@ -219,7 +219,8 @@ static void cairogen_begin_anchor(GVJ_t *job, char *url, char *tooltip, char *ta obj_state_t *obj = job->obj; cairo_t *cr = (cairo_t *) job->context; double p0x, p0y, p1x, p1y; - char buf[300]; + char *buf; + size_t buf_len; if (url && obj->url_map_p) { p0x = obj->url_map_p[0].x; @@ -228,7 +229,9 @@ static void cairogen_begin_anchor(GVJ_t *job, char *url, char *tooltip, char *ta p1x = obj->url_map_p[1].x; p1y = -obj->url_map_p[1].y; cairo_user_to_device (cr, &p1x, &p1y); - snprintf(buf, sizeof(buf), "rect=[%f %f %f %f] uri='%s'", + buf_len = strlen(url) + 200; + buf = malloc(buf_len); + snprintf(buf, buf_len, "rect=[%f %f %f %f] uri='%s'", p0x, p0y, p1x - p0x, @@ -238,6 +241,7 @@ static void cairogen_begin_anchor(GVJ_t *job, char *url, char *tooltip, char *ta cairo_tag_begin (cr, CAIRO_TAG_LINK, buf); cairo_tag_end (cr, CAIRO_TAG_LINK); #endif + free(buf); } } -- 2.40.0