diff options
Diffstat (limited to 'src/yelp-window.c')
-rw-r--r-- | src/yelp-window.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/yelp-window.c b/src/yelp-window.c index d436f24e..401e0599 100644 --- a/src/yelp-window.c +++ b/src/yelp-window.c @@ -1849,14 +1849,21 @@ html_uri_selected_cb (YelpHtml *html, gboolean handled, gpointer user_data) { + gchar *new_uri = uri; YelpWindow *window = YELP_WINDOW (user_data); debug_print (DB_FUNCTION, "entering\n"); debug_print (DB_ARG, " uri = \"%s\"\n", uri); + if (g_str_has_prefix (uri, "xref:")) + new_uri = g_strconcat (window->priv->base_uri, "#", uri + 5, NULL); + if (!handled) { - yelp_window_load (window, uri); + yelp_window_load (window, new_uri); } + + if (new_uri != uri) + g_free (new_uri); } static gboolean |