aboutsummaryrefslogtreecommitdiffstats
path: root/src/serdi.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-01-25 16:14:02 +0000
committerDavid Robillard <d@drobilla.net>2011-01-25 16:14:02 +0000
commitda60fb781d5fcd4d0b3852cf9586d4f6ebed7dd9 (patch)
tree0bfce4c0c544b4765e5f1ff080af6b166e004835 /src/serdi.c
parente6b7791d17a630dc7d6d8387d627fc1d524425dc (diff)
downloadserd-da60fb781d5fcd4d0b3852cf9586d4f6ebed7dd9.tar.gz
serd-da60fb781d5fcd4d0b3852cf9586d4f6ebed7dd9.tar.bz2
serd-da60fb781d5fcd4d0b3852cf9586d4f6ebed7dd9.zip
Fix URI resolution of absolute URIs.
Better URI test coverage. git-svn-id: http://svn.drobilla.net/serd/trunk@64 490d8e77-9747-427b-9fa3-0b8f29cee8a0
Diffstat (limited to 'src/serdi.c')
-rw-r--r--src/serdi.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/src/serdi.c b/src/serdi.c
index 451905b8..467c3275 100644
--- a/src/serdi.c
+++ b/src/serdi.c
@@ -107,19 +107,13 @@ event_base(void* handle,
return false;
}
- if (!base_uri.scheme.len) { // URI has no scheme, resolve relative URI
- SerdURI abs_base_uri;
- if (!serd_uri_resolve(&base_uri, &state->base_uri, &abs_base_uri)) {
- fprintf(stderr, "error: failed to resolve new base URI\n");
- return false;
- }
- base_uri_node = serd_node_new_uri(&abs_base_uri, &base_uri);
- } else {
- SerdURI new_base_uri;
- base_uri_node = serd_node_new_uri(&base_uri, &new_base_uri);
- base_uri = new_base_uri;
+ SerdURI abs_base_uri;
+ if (!serd_uri_resolve(&base_uri, &state->base_uri, &abs_base_uri)) {
+ fprintf(stderr, "error: failed to resolve new base URI\n");
+ return false;
}
-
+ base_uri_node = serd_node_new_uri(&abs_base_uri, &base_uri);
+
state->base_uri_node = base_uri_node;
state->base_uri = base_uri;
serd_writer_set_base_uri(state->writer, &base_uri);