summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Wilson <rjw@netsurf-browser.org>2006-06-27 18:47:33 +0000
committerRichard Wilson <rjw@netsurf-browser.org>2006-06-27 18:47:33 +0000
commitd45a56ba7f40280b880e09e6283a18b80372a862 (patch)
tree86b7a08a8a9becccbc506f653836e257023b62c5
parent645ff17ba4f3e8f6f7709a497845257fba39d384 (diff)
downloadnetsurf-d45a56ba7f40280b880e09e6283a18b80372a862.tar.gz
netsurf-d45a56ba7f40280b880e09e6283a18b80372a862.tar.bz2
Fix URL joining for fragments.
svn path=/trunk/netsurf/; revision=2658
-rw-r--r--utils/url.c10
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;
}