aboutsummaryrefslogtreecommitdiffstats
path: root/src/env.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2020-11-12 20:52:23 +0100
committerDavid Robillard <d@drobilla.net>2020-11-13 01:15:05 +0100
commitdddc46b13fa0379784c6369c656e37933ac623dc (patch)
tree31d09d623c11f49500b42e07566d066ab988dc59 /src/env.c
parentfebc0828f271aa06681081217ee3ab2649dbf13a (diff)
downloadserd-dddc46b13fa0379784c6369c656e37933ac623dc.tar.gz
serd-dddc46b13fa0379784c6369c656e37933ac623dc.tar.bz2
serd-dddc46b13fa0379784c6369c656e37933ac623dc.zip
Allow setting the base URI of an Env to NULL
Diffstat (limited to 'src/env.c')
-rw-r--r--src/env.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/env.c b/src/env.c
index 431fef41..ac081ee0 100644
--- a/src/env.c
+++ b/src/env.c
@@ -70,13 +70,17 @@ serd_env_get_base_uri(const SerdEnv* env,
return &env->base_uri_node;
}
-// TODO: Make env nonnull in next major release
SerdStatus
serd_env_set_base_uri(SerdEnv* env,
const SerdNode* uri)
{
- if (!env || !uri) {
+ if (!env || (uri && uri->type != SERD_URI)) {
return SERD_ERR_BAD_ARG;
+ } else if (!uri) {
+ serd_node_free(&env->base_uri_node);
+ env->base_uri_node = SERD_NODE_NULL;
+ env->base_uri = SERD_URI_NULL;
+ return SERD_SUCCESS;
}
// Resolve base URI and create a new node and URI for it