if a user specifies just a session name (not path) and it does not exist, use the...
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 18 Jul 2019 16:17:05 +0000 (10:17 -0600)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 18 Jul 2019 16:53:34 +0000 (10:53 -0600)
gtk2_ardour/ardour_ui.cc

index 09912dc95e0d11cdb164485132dd6bfa94497b39..f9d09e34c91fe096f234ac117ace826363a548da 100644 (file)
@@ -3285,15 +3285,33 @@ ARDOUR_UI::get_session_parameters (bool quit_on_cancel, bool should_be_new, stri
                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);
+                       }
                }
        }