diff options
-rw-r--r-- | TODO | 4 | ||||
-rw-r--r-- | src/pluginlist.c | 20 |
2 files changed, 16 insertions, 8 deletions
@@ -0,0 +1,4 @@ +- Rewrite all the realloc nightmare stuff + +<remon> drobilla: slv2_port_get_default_value checks if a property is returned,and creates the result. But it calls slv2_property_free() even if the property == 0 !! +<remon> drobilla: (which causes a segfault) diff --git a/src/pluginlist.c b/src/pluginlist.c index cd83629..e379c7a 100644 --- a/src/pluginlist.c +++ b/src/pluginlist.c @@ -55,16 +55,20 @@ slv2_list_load_all(SLV2List list) { assert(list != NULL); - char* slv2_path = getenv("LV2_PATH"); - - if (!slv2_path) { - slv2_path = "~/.lv2:/usr/local/lib/lv2:usr/lib/lv2"; + const char* slv2_path = getenv("LV2_PATH"); + + if (slv2_path) { + slv2_list_load_path(list, slv2_path); + } else { + const char* const home = getenv("HOME"); + const char* const suffix = "/.lv2:/usr/local/lib/lv2:usr/lib/lv2"; + slv2_path = strjoin(home, suffix); - printf("$LV2_PATH is unset. Using default path %s\n", - slv2_path); - } + printf("$LV2_PATH is unset. Using default path %s\n", slv2_path); + slv2_list_load_path(list, slv2_path); - slv2_list_load_path(list, slv2_path); + free(slv2_path); + } } |