diff options
author | Richard Wilson <rjw@netsurf-browser.org> | 2006-06-27 18:47:33 +0000 |
---|---|---|
committer | Richard Wilson <rjw@netsurf-browser.org> | 2006-06-27 18:47:33 +0000 |
commit | d45a56ba7f40280b880e09e6283a18b80372a862 (patch) | |
tree | 86b7a08a8a9becccbc506f653836e257023b62c5 | |
parent | 645ff17ba4f3e8f6f7709a497845257fba39d384 (diff) | |
download | netsurf-d45a56ba7f40280b880e09e6283a18b80372a862.tar.gz netsurf-d45a56ba7f40280b880e09e6283a18b80372a862.tar.bz2 |
Fix URL joining for fragments.
svn path=/trunk/netsurf/; revision=2658
-rw-r--r-- | utils/url.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/utils/url.c b/utils/url.c index 3feaf2e4b..0b7d92fd5 100644 --- a/utils/url.c +++ b/utils/url.c @@ -240,7 +240,6 @@ url_func_result url_join(const char *rel, const char *base, char **result) *fragment = 0; int scheme_len = 0, authority_len = 0, path_len = 0, query_len = 0, fragment_len = 0; - regmatch_t base_match[10]; regmatch_t rel_match[10]; regmatch_t up_match[3]; @@ -250,6 +249,8 @@ url_func_result url_join(const char *rel, const char *base, char **result) (*result) = 0; assert(base); + + fprintf(stderr, "base:%s\nrel:%s\n", base, rel); /* break down the base url */ status = url_get_components(base, &components); @@ -286,12 +287,11 @@ url_func_result url_join(const char *rel, const char *base, char **result) rel_match[URL_RE_SCHEME].rm_so == -1 && rel_match[URL_RE_AUTHORITY].rm_so == -1 && rel_match[URL_RE_QUERY].rm_so == -1) { - if (base_match[URL_RE_QUERY].rm_so != -1) { + if (components.query) { /* normally the base query is discarded, but this is a * "reference to the current document", so keep it */ - query = base + base_match[URL_RE_QUERY].rm_so; - query_len = base_match[URL_RE_QUERY].rm_eo - - base_match[URL_RE_QUERY].rm_so; + query = components.query; + query_len = strlen(components.query); } goto step7; } |