set_dirty();
- _writable = exists_and_writable (xmlpath);
+ _writable = exists_and_writable (xmlpath) && exists_and_writable(Glib::path_get_dirname(xmlpath));
if (!state_tree->read (xmlpath)) {
error << string_compose(_("Could not understand session file %1"), xmlpath) << endmsg;
p += (*i).path;
if (next != session_dirs.end()) {
- p += ':';
+ p += G_SEARCHPATH_SEPARATOR;
} else {
break;
}
audio_path += sdir.sound_path();
if (nexti != session_dirs.end()) {
- audio_path += ':';
+ audio_path += G_SEARCHPATH_SEPARATOR;
}
i = nexti;
midi_path += sdir.midi_path();
if (nexti != session_dirs.end()) {
- midi_path += ':';
+ midi_path += G_SEARCHPATH_SEPARATOR;
}
i = nexti;
_current_snapshot_name = new_name;
_name = new_name;
+ /* re-add directory separator - reverse hack to oldstr above */
+ if (_path[_path.length()-1] != G_DIR_SEPARATOR) {
+ _path += G_DIR_SEPARATOR;
+ }
+
set_dirty ();
/* save state again to get everything just right */