summaryrefslogtreecommitdiff
path: root/libs/pbd/copyfile.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2007-01-04 19:12:55 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2007-01-04 19:12:55 +0000
commit119dc86f6fb8d5100ed49930fa9ff73c6322fa34 (patch)
tree352ce436c0daa19daeeb147540faaca9a6412e3b /libs/pbd/copyfile.cc
parent588910d8d7ff7698eaa02421775ee4b358cc13c1 (diff)
copy older versions of the session file, fix up ardev to work again using %VERSION%
git-svn-id: svn://localhost/ardour2/trunk@1268 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/pbd/copyfile.cc')
-rw-r--r--libs/pbd/copyfile.cc38
1 files changed, 38 insertions, 0 deletions
diff --git a/libs/pbd/copyfile.cc b/libs/pbd/copyfile.cc
new file mode 100644
index 0000000000..d36ecef58a
--- /dev/null
+++ b/libs/pbd/copyfile.cc
@@ -0,0 +1,38 @@
+#include <fstream>
+#include <unistd.h>
+
+#include <pbd/copyfile.h>
+#include <pbd/error.h>
+#include <pbd/compose.h>
+
+#include "i18n.h"
+
+using namespace PBD;
+using namespace std;
+
+int
+PBD::copy_file (Glib::ustring from, Glib::ustring to)
+{
+ ifstream in (from.c_str());
+ ofstream out (to.c_str());
+
+ if (!in) {
+ error << string_compose (_("Could not open %1 for copy"), from) << endmsg;
+ return -1;
+ }
+
+ if (!out) {
+ error << string_compose (_("Could not open %1 as copy"), to) << endmsg;
+ return -1;
+ }
+
+ out << in.rdbuf();
+
+ if (!in || !out) {
+ error << string_compose (_("Could not copy existing file %1 to %2"), from, to) << endmsg;
+ unlink (to.c_str());
+ return -1;
+ }
+
+ return 0;
+}