summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-07-08 12:25:36 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2014-07-08 12:25:36 -0400
commitb7f918bdb72f03a543498f89db126a6daf5c9773 (patch)
tree848e9d48bbcb9df3c891de29a87841ed71ed4454 /libs
parent66684c6690d43c8f3277e1b07e1d86b372cd5f3a (diff)
when merging external source files into session folder, if a collision occurs, use the original file suffix in conjunction with md5 hash
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/session.cc19
1 files changed, 12 insertions, 7 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 19a081e17b..65d9f59a58 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -36,17 +36,17 @@
#include <boost/algorithm/string/erase.hpp>
+#include "pbd/basename.h"
+#include "pbd/boost_debug.h"
+#include "pbd/convert.h"
#include "pbd/convert.h"
#include "pbd/error.h"
-#include "pbd/boost_debug.h"
-#include "pbd/stl_delete.h"
-#include "pbd/basename.h"
-#include "pbd/stacktrace.h"
#include "pbd/file_utils.h"
-#include "pbd/convert.h"
#include "pbd/md5.h"
-#include "pbd/unwind.h"
#include "pbd/search_path.h"
+#include "pbd/stacktrace.h"
+#include "pbd/stl_delete.h"
+#include "pbd/unwind.h"
#include "ardour/amp.h"
#include "ardour/analyser.h"
@@ -3481,8 +3481,13 @@ Session::new_audio_source_path_for_embedded (const std::string& path)
md5.digestString (path.c_str());
md5.writeToString ();
base = md5.digestChars;
+
+ string ext = get_suffix (path);
- /* XXX base needs suffix from path */
+ if (!ext.empty()) {
+ base += '.';
+ base += ext;
+ }
newpath = Glib::build_filename (sdir.sound_path(), base);