Glib::ustring session_name;
Glib::ustring session_path;
Glib::ustring template_name;
+ Glib::ustring legal_session_folder_name;
int response;
-
+
begin:
response = Gtk::RESPONSE_NONE;
if (response == Gtk::RESPONSE_OK) {
session_name = new_session_dialog->session_name();
-
+
if (session_name.empty()) {
response = Gtk::RESPONSE_NONE;
goto try_again;
session_name = Glib::path_get_basename (session_name);
} else {
-
+
session_path = new_session_dialog->session_folder();
}
case NewSessionDialog::NewPage: /* nominally the "new" session creator, but could be in use for an old session */
should_be_new = true;
-
+
+ legal_session_folder_name = legalize_for_path (session_name);
+
//XXX This is needed because session constructor wants a
//non-existant path. hopefully this will be fixed at some point.
-
- session_path = Glib::build_filename (session_path, session_name);
+
+ session_path = Glib::build_filename (session_path, legal_session_folder_name);
if (Glib::file_test (session_path, Glib::FileTest (G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))) {
/* proper save: use _statefile_suffix (.ardour in English) */
xml_path = _path;
- xml_path += snapshot_name;
+ xml_path += legalize_for_path (snapshot_name);
xml_path += _statefile_suffix;
/* make a backup copy of the old file */
/* pending save: use _pending_suffix (.pending in English) */
xml_path = _path;
- xml_path += snapshot_name;
+ xml_path += legalize_for_path (snapshot_name);
xml_path += _pending_suffix;
}
string tmp_path;
tmp_path = _path;
- tmp_path += snapshot_name;
+ tmp_path += legalize_for_path (snapshot_name);
tmp_path += ".tmp";
// cerr << "actually writing state to " << xml_path << endl;
/* check for leftover pending state from a crashed capture attempt */
xmlpath = _path;
- xmlpath += snapshot_name;
+ xmlpath += legalize_for_path (snapshot_name);
xmlpath += _pending_suffix;
if (Glib::file_test (xmlpath, Glib::FILE_TEST_EXISTS)) {
snapshot_name = _current_snapshot_name;
}
- xml_path = _path + snapshot_name + ".history";
+ xml_path = _path + legalize_for_path (snapshot_name) + ".history";
bak_path = xml_path + ".bak";
}
/* read xml */
- xmlpath = _path + snapshot_name + ".history";
+ xmlpath = _path + legalize_for_path (snapshot_name) + ".history";
cerr << string_compose(_("Loading history from '%1'."), xmlpath) << endmsg;
if (!Glib::file_test (xmlpath, Glib::FILE_TEST_EXISTS)) {