From edd95566fd955e26853ef6b624cfd80eb04e4d6b Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 10 Jul 2014 08:16:27 -0400 Subject: [PATCH] do not call basename_nosuffix() before using matching_unsuffixed_filename_exists_in() because the latter does that call itself. As the code used to be, if we are testing for a candidate filename of aaa.bbb.ccc, the call strips .ccc and matching_... strips .bbb resulting in a match with aaa, which is not intended at all. --- libs/ardour/session.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 7d693a5b9f..035db144be 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -3914,7 +3914,6 @@ Session::audio_source_name_is_unique (const string& name, uint32_t chan) std::vector sdirs = source_search_path (DataType::AUDIO); vector::iterator i; uint32_t existing = 0; - string basename = PBD::basename_nosuffix (name); for (vector::const_iterator i = sdirs.begin(); i != sdirs.end(); ++i) { @@ -3926,7 +3925,7 @@ Session::audio_source_name_is_unique (const string& name, uint32_t chan) const string spath = *i; - if (matching_unsuffixed_filename_exists_in (spath, basename)) { + if (matching_unsuffixed_filename_exists_in (spath, name)) { existing++; break; } @@ -3948,7 +3947,7 @@ Session::audio_source_name_is_unique (const string& name, uint32_t chan) break; } } - + return (existing == 0); }