From 8f84a055c88c2c271abe9cf86e998a3e5d0a4ced Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 3 Jun 2018 12:49:44 +0200 Subject: Expand datatype of literal nodes in serd_env_expand_node --- src/env.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/env.c') diff --git a/src/env.c b/src/env.c index 66457df8..f0d0705c 100644 --- a/src/env.c +++ b/src/env.c @@ -205,8 +205,20 @@ SerdNode* serd_env_expand_node(const SerdEnv* env, const SerdNode* node) { switch (node->type) { - case SERD_LITERAL: - break; + case SERD_LITERAL: { + const SerdNode* const short_datatype = serd_node_datatype(node); + if (short_datatype) { + SerdNode* const datatype = serd_env_expand_node(env, short_datatype); + if (datatype) { + SerdNode* ret = serd_new_literal(serd_node_string_view(node), + serd_node_string_view(datatype), + SERD_EMPTY_STRING()); + serd_node_free(datatype); + return ret; + } + } + return NULL; + } case SERD_URI: return serd_new_resolved_uri(serd_node_string_view(node), env->base_uri); case SERD_CURIE: { -- cgit v1.2.1