From 41d0052d19b44474b09b8066838c2479d9788d83 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sat, 9 Apr 2011 15:38:42 +0000 Subject: [PATCH] remove all use of access(2) (this was done a bit stupidly, we could have used g_access) git-svn-id: svn://localhost/ardour2/branches/3.0@9340 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/editor_export_audio.cc | 4 ++-- gtk2_ardour/export_range_markers_dialog.cc | 4 +++- libs/ardour/audiosource.cc | 2 +- libs/ardour/file_source.cc | 2 +- libs/ardour/session_state.cc | 16 +++------------- 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 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 +#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; -- 2.30.2