template_name = load_template;
}
- session_name = basename_nosuffix (ARDOUR_COMMAND_LINE::session_name);
session_path = ARDOUR_COMMAND_LINE::session_name;
if (!session_path.empty()) {
+
if (Glib::file_test (session_path.c_str(), Glib::FILE_TEST_EXISTS)) {
+
+ session_name = basename_nosuffix (ARDOUR_COMMAND_LINE::session_name);
+
if (Glib::file_test (session_path.c_str(), Glib::FILE_TEST_IS_REGULAR)) {
/* session/snapshot file, change path to be dir */
session_path = Glib::path_get_dirname (session_path);
}
+ } else {
+
+ /* session (file or folder) does not exist ... did the
+ * user give us a path or just a name?
+ */
+
+ if (session_path.find (G_DIR_SEPARATOR) == string::npos) {
+ /* user gave session name with no path info, use
+ default session folder.
+ */
+ session_name = ARDOUR_COMMAND_LINE::session_name;
+ session_path = Glib::build_filename (Config->get_default_session_parent_dir (), session_name);
+ } else {
+ session_name = basename_nosuffix (ARDOUR_COMMAND_LINE::session_name);
+ }
}
}