- do {
-
- newname = bump_name_once (newname, '-');
- /* XXX build path safely */
- newpath = _session.session_directory().midi_path().to_string() +"/"+ newname + ".mid";
+ /* get a new name for the MIDI file we're going to write to
+ */
+
+ do {
+ newname = bump_name_once (newname, '-');
+ newpath = Glib::build_filename (_session.session_directory().midi_path(), newname + ".mid");
+
+ } while (Glib::file_test (newpath, Glib::FILE_TEST_EXISTS));
+ } else {
+ /* caller must check for pre-existing file */
+ newpath = path;
+ }