summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/editor_export_audio.cc4
-rw-r--r--gtk2_ardour/export_range_markers_dialog.cc4
-rw-r--r--libs/ardour/audiosource.cc2
-rw-r--r--libs/ardour/file_source.cc2
-rw-r--r--libs/ardour/session_state.cc16
5 files changed, 10 insertions, 18 deletions
diff --git a/gtk2_ardour/editor_export_audio.cc b/gtk2_ardour/editor_export_audio.cc
index 7b77f19099..2eff80614e 100644
--- a/gtk2_ardour/editor_export_audio.cc
+++ b/gtk2_ardour/editor_export_audio.cc
@@ -221,7 +221,7 @@ Editor::write_region (string path, boost::shared_ptr<AudioRegion> region)
path = s;
- if (::access (path.c_str(), F_OK) != 0) {
+ if (!Glib::file_test (path, Glib::FILE_TEST_EXISTS)) {
break;
}
}
@@ -360,7 +360,7 @@ Editor::write_audio_range (AudioPlaylist& playlist, const ChanCount& count, list
legalize_for_path(playlist.name()).c_str(), cnt, n);
}
- if (::access (s, F_OK) != 0) {
+ if (!Glib::file_test (s, Glib::FILE_TEST_EXISTS)) {
break;
}
}
diff --git a/gtk2_ardour/export_range_markers_dialog.cc b/gtk2_ardour/export_range_markers_dialog.cc
index 774a956d9e..06f590758c 100644
--- a/gtk2_ardour/export_range_markers_dialog.cc
+++ b/gtk2_ardour/export_range_markers_dialog.cc
@@ -22,6 +22,8 @@
#include <sstream>
+#include "pbd/filesystem.h"
+
#include "ardour/audioengine.h"
#include "ardour/sndfile_helpers.h"
@@ -155,7 +157,7 @@ ExportRangeMarkersDialog::is_filepath_valid(string &filepath)
// directory needs to exist and be writable
string dirpath = Glib::path_get_dirname (filepath);
- if (::access (dirpath.c_str(), W_OK) != 0) {
+ if (!exists_and_writable (sys::path (dirpath))) {
string txt = _("Cannot write file in: ") + dirpath;
MessageDialog msg (*this, txt, false, MESSAGE_ERROR, BUTTONS_OK, true);
msg.run();
diff --git a/libs/ardour/audiosource.cc b/libs/ardour/audiosource.cc
index b993a093b5..ac98837183 100644
--- a/libs/ardour/audiosource.cc
+++ b/libs/ardour/audiosource.cc
@@ -197,7 +197,7 @@ AudioSource::rename_peakfile (string newpath)
string oldpath = peakpath;
- if (access (oldpath.c_str(), F_OK) == 0) {
+ if (Glib::file_test (oldpath, Glib::FILE_TEST_EXISTS)) {
if (rename (oldpath.c_str(), newpath.c_str()) != 0) {
error << string_compose (_("cannot rename peakfile for %1 from %2 to %3 (%4)"), _name, oldpath, newpath, strerror (errno)) << endmsg;
return -1;
diff --git a/libs/ardour/file_source.cc b/libs/ardour/file_source.cc
index 5522031d69..e6990aa487 100644
--- a/libs/ardour/file_source.cc
+++ b/libs/ardour/file_source.cc
@@ -191,7 +191,7 @@ FileSource::move_to_trash (const string& trash_dir_name)
snprintf (buf, sizeof (buf), "%s.%d", newpath.c_str(), version);
newpath_v = buf;
- while (access (newpath_v.c_str(), F_OK) == 0 && version < 999) {
+ while (Glib::file_test (newpath_v, Glib::FILE_TEST_EXISTS) && version < 999) {
snprintf (buf, sizeof (buf), "%s.%d", newpath.c_str(), ++version);
newpath_v = buf;
}
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index b5b713cbd4..616f19c50a 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -130,6 +130,7 @@ using namespace std;
using namespace ARDOUR;
using namespace PBD;
+
void
Session::first_stage_init (string fullpath, string snapshot_name)
{
@@ -151,11 +152,7 @@ Session::first_stage_init (string fullpath, string snapshot_name)
_path += G_DIR_SEPARATOR;
}
- if (Glib::file_test (_path, Glib::FILE_TEST_EXISTS) && ::access (_path.c_str(), W_OK)) {
- _writable = false;
- } else {
- _writable = true;
- }
+ _writable = exists_and_writable (sys::path (_path));
/* these two are just provisional settings. set_state()
will likely override them.
@@ -898,14 +895,7 @@ Session::load_state (string snapshot_name)
set_dirty();
- /* writable() really reflects the whole folder, but if for any
- reason the session state file can't be written to, still
- make us unwritable.
- */
-
- if (::access (xmlpath.to_string().c_str(), W_OK) != 0) {
- _writable = false;
- }
+ _writable = exists_and_writable (xmlpath);
if (!state_tree->read (xmlpath.to_string())) {
error << string_compose(_("Could not understand ardour file %1"), xmlpath.to_string()) << endmsg;