fix merge conflict with master
[ardour.git] / libs / pbd / clear_dir.cc
index 1966605af69ac848d7b63b4ed5e57f3710015910..2f9c7b772d4f618b24c773796ba83e52cfa80af0 100644 (file)
@@ -1,10 +1,40 @@
-#include <string>
+/*
+    Copyright (C) 2012 Paul Davis 
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#ifdef COMPILER_MSVC
+#include <io.h>      // Microsoft's nearest equivalent to <unistd.h>
+using PBD::readdir;
+using PBD::opendir;
+using PBD::closedir;
+#else
 #include <dirent.h>
 #include <unistd.h>
+#endif
+
+#include <string>
 #include <sys/stat.h>
 #include <errno.h>
 #include <string.h>
 
+#include <glib/gstdio.h>
+#include <glibmm/miscutils.h>
+
 #include "pbd/error.h"
 #include "pbd/compose.h"
 #include "pbd/clear_dir.h"
@@ -35,12 +65,8 @@ PBD::clear_directory (const string& dir, size_t* size, vector<string>* paths)
                         continue;
                 }
                 
-                string fullpath;
+                string fullpath = Glib::build_filename (dir, dentry->d_name);
 
-                fullpath = dir;
-                fullpath += '/';
-                fullpath += dentry->d_name;
-                
                 if (::stat (fullpath.c_str(), &statbuf)) {
                         continue;
                 }
@@ -49,7 +75,7 @@ PBD::clear_directory (const string& dir, size_t* size, vector<string>* paths)
                         continue;
                 }
                 
-                if (::unlink (fullpath.c_str())) {
+                if (::g_unlink (fullpath.c_str())) {
                         error << string_compose (_("cannot remove file %1 (%2)"), fullpath, strerror (errno))
                               << endmsg;
                         ret = 1;