diff options
author | Taybin Rutkin <taybin@taybin.com> | 2006-12-01 17:37:08 +0000 |
---|---|---|
committer | Taybin Rutkin <taybin@taybin.com> | 2006-12-01 17:37:08 +0000 |
commit | 505d37a58f938db53286ac9c2f1ad32ef867a539 (patch) | |
tree | 2e1e7227b67f4a9b4f5843835f2ce901ff80b35b /libs/ardour/audio_library.cc | |
parent | cba911619631b935cf3cd316a80892fa6ea1c381 (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.cc | 15 |
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(); } |