X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FMover.cpp;h=a901d98b0fa8fd025f13d26d4b1a93bfb412b5a5;hb=28be7d552f62cc02fa86d7f79201d089bfb2d7b5;hp=e0e41b837a595cc655a5786092bceb5ce3d55dbc;hpb=f630be890494c849981e4fb52ea4740506e92bed;p=lyx.git diff --git a/src/Mover.cpp b/src/Mover.cpp index e0e41b837a..a901d98b0f 100644 --- a/src/Mover.cpp +++ b/src/Mover.cpp @@ -12,83 +12,72 @@ #include "Mover.h" +#include "support/FileName.h" #include "support/filetools.h" #include "support/lstrings.h" -#include "support/lyxlib.h" -#include "support/systemcall.h" +#include "support/Systemcall.h" #include #include -using std::ios; -using std::string; +using namespace std; +using namespace lyx::support; namespace lyx { -using support::quoteName; -bool Mover::copy(support::FileName const & from, support::FileName const & to, - unsigned long int mode) const +bool Mover::copy(FileName const & from, FileName const & to) const { - return do_copy(from, to, to.absFilename(), mode); + return do_copy(from, to, to.absFileName()); } -bool Mover::do_copy(support::FileName const & from, support::FileName const & to, - string const &, unsigned long int mode) const +bool Mover::do_copy(FileName const & from, FileName const & to, + string const &) const { - return support::copy(from, to, mode); + return from.copyTo(to); } -bool Mover::rename(support::FileName const & from, - support::FileName const & to) const +bool Mover::rename(FileName const & from, + FileName const & to) const { - return do_rename(from, to, to.absFilename()); + return do_rename(from, to, to.absFileName()); } -bool Mover::do_rename(support::FileName const & from, support::FileName const & to, +bool Mover::do_rename(FileName const & from, FileName const & to, string const &) const { - return support::rename(from, to); + return from.moveTo(to); } -bool SpecialisedMover::do_copy(support::FileName const & from, support::FileName const & to, - string const & latex, unsigned long int mode) const +bool SpecialisedMover::do_copy(FileName const & from, FileName const & to, + string const & latex) const { if (command_.empty()) - return Mover::do_copy(from, to, latex, mode); - - if (mode != (unsigned long int)-1) { - std::ofstream ofs(to.toFilesystemEncoding().c_str(), ios::binary | ios::out | ios::trunc); - if (!ofs) - return false; - ofs.close(); - if (!support::chmod(to, mode)) - return false; - } - - string command = support::libScriptSearch(command_); - command = support::subst(command, "$$i", quoteName(from.toFilesystemEncoding())); - command = support::subst(command, "$$o", quoteName(to.toFilesystemEncoding())); - command = support::subst(command, "$$l", quoteName(latex)); - - support::Systemcall one; - return one.startscript(support::Systemcall::Wait, command) == 0; + return Mover::do_copy(from, to, latex); + + string command = command_; + command = subst(command, "$$i", quoteName(from.toFilesystemEncoding())); + command = subst(command, "$$o", quoteName(to.toFilesystemEncoding())); + command = subst(command, "$$l", quoteName(latex)); + + Systemcall one; + return one.startscript(Systemcall::Wait, command) == 0; } -bool SpecialisedMover::do_rename(support::FileName const & from, support::FileName const & to, +bool SpecialisedMover::do_rename(FileName const & from, FileName const & to, string const & latex) const { if (command_.empty()) return Mover::do_rename(from, to, latex); - if (!do_copy(from, to, latex, (unsigned long int)-1)) + if (!do_copy(from, to, latex)) return false; - return support::unlink(from) == 0; + return from.removeFile(); }