diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/env.c | 16 |
1 files changed, 14 insertions, 2 deletions
@@ -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: { |