summaryrefslogtreecommitdiff
path: root/libs/ardour/audio_library.cc
diff options
context:
space:
mode:
authorTaybin Rutkin <taybin@taybin.com>2006-12-01 17:37:08 +0000
committerTaybin Rutkin <taybin@taybin.com>2006-12-01 17:37:08 +0000
commit505d37a58f938db53286ac9c2f1ad32ef867a539 (patch)
tree2e1e7227b67f4a9b4f5843835f2ce901ff80b35b /libs/ardour/audio_library.cc
parentcba911619631b935cf3cd316a80892fa6ea1c381 (diff)
Properly encode file URIs in the sfdb.
git-svn-id: svn://localhost/ardour2/trunk@1184 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/audio_library.cc')
-rw-r--r--libs/ardour/audio_library.cc15
1 files changed, 14 insertions, 1 deletions
diff --git a/libs/ardour/audio_library.cc b/libs/ardour/audio_library.cc
index 7a8414946c..92069d929f 100644
--- a/libs/ardour/audio_library.cc
+++ b/libs/ardour/audio_library.cc
@@ -19,6 +19,8 @@
#include <sstream>
+#include <libxml/uri.h>
+
#include <lrdf.h>
#include <pbd/compose.h>
@@ -59,8 +61,19 @@ AudioLibrary::save_changes ()
string
AudioLibrary::path2uri (string path)
{
+ xmlURI temp;
+ memset(&temp, 0, sizeof(temp));
+
+ xmlChar *cal = xmlCanonicPath((xmlChar*) path.c_str());
+ temp.path = (char *) cal;
+ xmlChar *ret = xmlSaveUri(&temp);
+ xmlFree(cal);
+
stringstream uri;
- uri << "file:" << path;
+ uri << "file:" << (const char*) ret;
+
+ xmlFree (ret);
+
return uri.str();
}