do not call basename_nosuffix() before using matching_unsuffixed_filename_exists_in...
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 10 Jul 2014 12:16:27 +0000 (08:16 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 10 Jul 2014 12:16:27 +0000 (08:16 -0400)
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

index f7dfbd6cbc32958edc72cf53e1f96a7b39e8c0f1..b7b5667d0663bfd960f84329a12d3d49a7009262 100644 (file)
@@ -3509,7 +3509,6 @@ Session::audio_source_name_is_unique (const string& name, uint32_t chan)
        std::vector<string> sdirs = source_search_path (DataType::AUDIO);
        vector<space_and_path>::iterator i;
        uint32_t existing = 0;
-       string basename = PBD::basename_nosuffix (name);
 
        for (vector<string>::const_iterator i = sdirs.begin(); i != sdirs.end(); ++i) {
                
@@ -3521,7 +3520,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;
                }
@@ -3543,7 +3542,7 @@ Session::audio_source_name_is_unique (const string& name, uint32_t chan)
                        break;
                }
        }
-       
+
        return (existing == 0);
 }