diff options
author | Carlos Garcia Campos <cgarcia@igalia.com> | 2021-03-18 17:29:20 +0100 |
---|---|---|
committer | Javier Jardón <jjardon@gnome.org> | 2021-07-04 18:52:23 +0100 |
commit | 2bbc816bda0d60349d49a5b7ef9532490f80ab3b (patch) | |
tree | 679568f9dbc34b9385f76477008cb37c37fd30ac /libyelp/yelp-view.c | |
parent | 9aac62475dbb25d4352bc5d5a99d695492d3e3aa (diff) | |
download | yelp-2bbc816bda0d60349d49a5b7ef9532490f80ab3b.tar.gz |
Use GUri instead of SoupURI
This removes the direct dependency on libsoup, so that yelp doesn't need
to be migrated to libsoup3.
Diffstat (limited to 'libyelp/yelp-view.c')
-rw-r--r-- | libyelp/yelp-view.c | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/libyelp/yelp-view.c b/libyelp/yelp-view.c index b4ac84e1..1f10000c 100644 --- a/libyelp/yelp-view.c +++ b/libyelp/yelp-view.c @@ -1847,11 +1847,12 @@ view_clear_load (YelpView *view) static gchar* fix_docbook_uri (YelpUri *docbook_uri, YelpDocument* document) { - SoupURI *soup_uri; + GUri *uri; gchar *retval, *canonical; + const gchar *fragment; canonical = yelp_uri_get_canonical_uri (docbook_uri); - soup_uri = soup_uri_new (canonical); + uri = g_uri_parse (canonical, G_URI_FLAGS_ENCODED, NULL); g_free (canonical); /* We don't have actual page and frag IDs for DocBook. We just map IDs @@ -1859,19 +1860,32 @@ fix_docbook_uri (YelpUri *docbook_uri, YelpDocument* document) If someid is really the page ID, we just drop the frag reference. Otherwise, normal page views scroll past the link trail. */ - if (soup_uri->fragment && YELP_IS_DOCBOOK_DOCUMENT (document)) { + fragment = g_uri_get_fragment (uri); + if (fragment && YELP_IS_DOCBOOK_DOCUMENT (document)) { gchar *page_id = yelp_uri_get_page_id (docbook_uri); gchar *real_id = yelp_document_get_page_id (document, page_id); - if (g_str_equal (real_id, soup_uri->fragment)) - soup_uri_set_fragment (soup_uri, NULL); + if (g_str_equal (real_id, fragment)) { + GUri *modified; + + modified = g_uri_build (g_uri_get_flags (uri), + g_uri_get_scheme (uri), + g_uri_get_userinfo (uri), + g_uri_get_host (uri), + g_uri_get_port (uri), + g_uri_get_path (uri), + g_uri_get_query (uri), + NULL); + g_uri_unref (uri); + uri = modified; + } g_free (real_id); g_free (page_id); } - retval = soup_uri_to_string (soup_uri, FALSE); - soup_uri_free (soup_uri); + retval = g_uri_to_string (uri); + g_uri_unref (uri); return retval; } |