aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--serd/serd.h15
-rw-r--r--src/node.c11
2 files changed, 18 insertions, 8 deletions
diff --git a/serd/serd.h b/serd/serd.h
index 7a7d0bb3..98064bac 100644
--- a/serd/serd.h
+++ b/serd/serd.h
@@ -190,19 +190,20 @@ SERD_API
SerdNode
serd_node_copy(const SerdNode* node);
-/** Create a new node by resolving @a uri_node into a new node and parsed URI.
- * This is a basic wrapper of serd_node_new_uri which first parses @a uri_node.
- * @param uri_node The URI node to parse, resolve, and serialise.
- * @param base Base URI to resolve @a uri_node against (or NULL).
- * @param out (Output) set to the parsing of the new URI (i.e. points only to
- * memory owned by the new returned node).
- */
+/** Simple wrapper for serd_node_new_uri to resolve a URI node. */
SERD_API
SerdNode
serd_node_new_uri_from_node(const SerdNode* uri_node,
const SerdURI* base,
SerdURI* out);
+/** Simple wrapper for serd_node_new_uri to resolve a URI string. */
+SERD_API
+SerdNode
+serd_node_new_uri_from_string(const uint8_t* str,
+ const SerdURI* base,
+ SerdURI* out);
+
/** Create a new node by serialising @a uri into a new string.
* @param uri The URI to parse and serialise.
* @param base Base URI to resolve @a uri against (or NULL for no resolution).
diff --git a/src/node.c b/src/node.c
index 005e9a01..1cf24891 100644
--- a/src/node.c
+++ b/src/node.c
@@ -76,9 +76,18 @@ serd_node_new_uri_from_node(const SerdNode* uri_node,
const SerdURI* base,
SerdURI* out)
{
+ return serd_node_new_uri_from_string(uri_node->buf, base, out);
+}
+
+SERD_API
+SerdNode
+serd_node_new_uri_from_string(const uint8_t* str,
+ const SerdURI* base,
+ SerdURI* out)
+{
// Parse (possibly relative) URI
SerdURI uri;
- if (serd_uri_parse(uri_node->buf, &uri)) {
+ if (serd_uri_parse(str, &uri)) {
return serd_node_new_uri(&uri, base, out);
}
return SERD_NODE_NULL;