summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaun McCance <shaunm@gnome.org>2012-02-28 21:29:43 -0500
committerShaun McCance <shaunm@gnome.org>2012-02-28 21:30:23 -0500
commit57839d52cd6ca476b59f6bc8d0f44cbb90b3cc3c (patch)
tree7f83277ea91f8eba27525b5487f8d1a20293da08
parenta07d91065c83503bdcbe896091b5f826c50ebfbe (diff)
downloadyelp-57839d52cd6ca476b59f6bc8d0f44cbb90b3cc3c.tar.gz
Unbreak simple #fragment links, bug #671018
-rw-r--r--libyelp/yelp-view.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/libyelp/yelp-view.c b/libyelp/yelp-view.c
index 8593063b..69239fcd 100644
--- a/libyelp/yelp-view.c
+++ b/libyelp/yelp-view.c
@@ -1428,8 +1428,16 @@ view_navigation_requested (WebKitWebView *view,
YelpViewPrivate *priv = GET_PRIV (view);
YelpUri *uri;
- if (g_str_has_prefix (requri, BOGUS_URI))
+ if (priv->bogus_uri &&
+ g_str_has_prefix (requri, priv->bogus_uri) &&
+ requri[strlen(priv->bogus_uri)] == '#') {
+ gchar *tmp = g_strconcat("xref:", requri + strlen(priv->bogus_uri), NULL);
+ uri = yelp_uri_new_relative (priv->uri, tmp);
+ g_free (tmp);
+ }
+ else if (g_str_has_prefix (requri, BOGUS_URI)) {
uri = yelp_uri_new_relative (priv->uri, requri + BOGUS_URI_LEN);
+ }
else
uri = yelp_uri_new_relative (priv->uri, requri);