57 lines
1.7 KiB
Diff
57 lines
1.7 KiB
Diff
From b3438131f4bff67d56243bac85371c03a86bf53b Mon Sep 17 00:00:00 2001
|
|
From: David Robillard <d@drobilla.net>
|
|
Date: Sun, 17 May 2020 20:49:46 +0200
|
|
Subject: [PATCH] Make lilv_world_get() use translations
|
|
|
|
---
|
|
NEWS | 6 ++++++
|
|
src/world.c | 20 ++++++++++++++++++++
|
|
wscript | 2 +-
|
|
3 files changed, 27 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/NEWS b/NEWS
|
|
index b2f881c..c1c06f7 100644
|
|
--- a/NEWS
|
|
+++ b/NEWS
|
|
@@ -1,3 +1,9 @@
|
|
+lilv (0.24.9) unstable;
|
|
+
|
|
+ * Make lilv_world_get() use translations
|
|
+
|
|
+ -- David Robillard <d@drobilla.net> Sun, 17 May 2020 18:44:04 +0000
|
|
+
|
|
lilv (0.24.8) stable;
|
|
|
|
* Allow passing strings for URIs in Python API when unambiguous
|
|
diff --git a/src/world.c b/src/world.c
|
|
index 22d165a..65cffd4 100644
|
|
--- a/src/world.c
|
|
+++ b/src/world.c
|
|
@@ -240,6 +240,26 @@ lilv_world_get(LilvWorld* world,
|
|
const LilvNode* predicate,
|
|
const LilvNode* object)
|
|
{
|
|
+ if (!object) {
|
|
+ // TODO: Improve performance (see lilv_plugin_get_one)
|
|
+ SordIter* stream = sord_search(world->model,
|
|
+ subject ? subject->node : NULL,
|
|
+ predicate ? predicate->node : NULL,
|
|
+ NULL,
|
|
+ NULL);
|
|
+
|
|
+ LilvNodes* nodes =
|
|
+ lilv_nodes_from_stream_objects(world, stream, SORD_OBJECT);
|
|
+
|
|
+ if (nodes) {
|
|
+ LilvNode* value = lilv_node_duplicate(lilv_nodes_get_first(nodes));
|
|
+ lilv_nodes_free(nodes);
|
|
+ return value;
|
|
+ }
|
|
+
|
|
+ return NULL;
|
|
+ }
|
|
+
|
|
SordNode* snode = sord_get(world->model,
|
|
subject ? subject->node : NULL,
|
|
predicate ? predicate->node : NULL,
|