]> git.lyx.org Git - lyx.git/blobdiff - src/vc-backend.C
Add GTK bibitem dialog
[lyx.git] / src / vc-backend.C
index 414c8e4d9f27999afd24d80ace91dfef3116df33..d58ea5e62420398c0a712ffaf780d63f1209a1cc 100644 (file)
 #include "debug.h"
 #include "buffer.h"
 
-#include "support/FileInfo.h"
 #include "support/path.h"
 #include "support/filetools.h"
+#include "support/fs_extras.h"
 #include "support/lstrings.h"
 #include "support/systemcall.h"
 
+#include <boost/filesystem/operations.hpp>
 #include <boost/regex.hpp>
 
 #include <fstream>
 using lyx::support::AddName;
 using lyx::support::AddPath;
 using lyx::support::contains;
-using lyx::support::FileInfo;
 using lyx::support::OnlyFilename;
 using lyx::support::OnlyPath;
 using lyx::support::Path;
+using lyx::support::QuoteName;
 using lyx::support::rtrim;
 using lyx::support::split;
 using lyx::support::Systemcall;
@@ -49,6 +50,8 @@ using std::getline;
 using std::string;
 using std::ifstream;
 
+namespace fs = boost::filesystem;
+
 
 int VCS::doVCCommand(string const & cmd, string const & path)
 {
@@ -72,10 +75,9 @@ string const RCS::find_file(string const & file)
        string tmp(file);
        // Check if *,v exists.
        tmp += ",v";
-       FileInfo f;
        lyxerr[Debug::LYXVC] << "Checking if file is under rcs: "
                             << tmp << endl;
-       if (f.newFile(tmp).readable()) {
+       if (fs::is_readable(tmp)) {
                lyxerr[Debug::LYXVC] << "Yes " << file
                                     << " is under rcs." << endl;
                return tmp;
@@ -85,7 +87,7 @@ string const RCS::find_file(string const & file)
                tmp += ",v";
                lyxerr[Debug::LYXVC] << "Checking if file is under rcs: "
                                     << tmp << endl;
-               if (f.newFile(tmp).readable()) {
+               if (fs::is_readable(tmp)) {
                        lyxerr[Debug::LYXVC] << "Yes " << file
                                             << " it is under rcs."<< endl;
                        return tmp;
@@ -98,8 +100,7 @@ string const RCS::find_file(string const & file)
 void RCS::retrieve(string const & file)
 {
        lyxerr[Debug::LYXVC] << "LyXVC::RCS: retrieve.\n\t" << file << endl;
-       VCS::doVCCommand("co -q -r \""
-                        + file + '"',
+       VCS::doVCCommand("co -q -r " + QuoteName(file),
                         string());
 }
 
@@ -134,7 +135,7 @@ void RCS::scanMaster()
                        // nothing
                } else if (contains(token, "locks")) {
                        // get locker here
-                       if (contains(token, ";")) {
+                       if (contains(token, ';')) {
                                locker_ = "Unlocked";
                                vcstatus = UNLOCKED;
                                continue;
@@ -153,7 +154,7 @@ void RCS::scanMaster()
                                        vcstatus = LOCKED;
                                        break;
                                }
-                       } while (!contains(tmpt, ";"));
+                       } while (!contains(tmpt, ';'));
 
                } else if (token == "comment") {
                        // we don't need to read any further than this.
@@ -172,17 +173,16 @@ void RCS::registrer(string const & msg)
 {
        string cmd = "ci -q -u -i -t-\"";
        cmd += msg;
-       cmd += "\" \"";
-       cmd += OnlyFilename(owner_->fileName());
-       cmd += '"';
+       cmd += "\" ";
+       cmd += QuoteName(OnlyFilename(owner_->fileName()));
        doVCCommand(cmd, owner_->filePath());
 }
 
 
 void RCS::checkIn(string const & msg)
 {
-       doVCCommand("ci -q -u -m\"" + msg + "\" \""
-                   + OnlyFilename(owner_->fileName()) + '"',
+       doVCCommand("ci -q -u -m\"" + msg + "\" "
+                   + QuoteName(OnlyFilename(owner_->fileName())),
                    owner_->filePath());
 }
 
@@ -190,16 +190,15 @@ void RCS::checkIn(string const & msg)
 void RCS::checkOut()
 {
        owner_->markClean();
-       doVCCommand("co -q -l \""
-                   + OnlyFilename(owner_->fileName()) + '"',
+       doVCCommand("co -q -l " + QuoteName(OnlyFilename(owner_->fileName())),
                    owner_->filePath());
 }
 
 
 void RCS::revert()
 {
-       doVCCommand("co -f -u" + version() + " \""
-                   + OnlyFilename(owner_->fileName()) + '"',
+       doVCCommand("co -f -u" + version() + " "
+                   + QuoteName(OnlyFilename(owner_->fileName())),
                    owner_->filePath());
        // We ignore changes and just reload!
        owner_->markClean();
@@ -209,17 +208,17 @@ void RCS::revert()
 void RCS::undoLast()
 {
        lyxerr[Debug::LYXVC] << "LyXVC: undoLast" << endl;
-       doVCCommand("rcs -o" + version() + " \""
-                   + OnlyFilename(owner_->fileName()) + '"',
+       doVCCommand("rcs -o" + version() + " "
+                   + QuoteName(OnlyFilename(owner_->fileName())),
                    owner_->filePath());
 }
 
 
 void RCS::getLog(string const & tmpf)
 {
-       doVCCommand("rlog \""
-                   + OnlyFilename(owner_->fileName()) + "\" > "
-                   + tmpf, owner_->filePath());
+       doVCCommand("rlog " + QuoteName(OnlyFilename(owner_->fileName()))
+                   + " > " + tmpf,
+                   owner_->filePath());
 }
 
 
@@ -239,8 +238,7 @@ string const CVS::find_file(string const & file)
        string const tmpf = "/" + OnlyFilename(file) + "/";
        lyxerr[Debug::LYXVC] << "LyXVC: checking in `" << dir
                             << "' for `" << tmpf << '\'' << endl;
-       FileInfo const f(dir);
-       if (f.readable()) {
+       if (fs::is_readable(dir)) {
                // Ok we are at least in a CVS dir. Parse the CVS/Entries
                // and see if we can find this file. We do a fast and
                // dirty parse here.
@@ -280,9 +278,8 @@ void CVS::scanMaster()
 
                        //sm[4]; // options
                        //sm[5]; // tag or tagdate
-                       FileInfo fi(file_);
                        // FIXME: must double check file is stattable/existing
-                       time_t mod = fi.getModificationTime();
+                       time_t mod = fs::last_write_time(file_);
                        string mod_date = rtrim(asctime(gmtime(&mod)), "\n");
                        lyxerr[Debug::LYXVC]
                                <<  "Date in Entries: `" << file_date
@@ -305,16 +302,16 @@ void CVS::scanMaster()
 
 void CVS::registrer(string const & msg)
 {
-       doVCCommand("cvs -q add -m \"" + msg + "\" \""
-                   + OnlyFilename(owner_->fileName()) + '"',
+       doVCCommand("cvs -q add -m \"" + msg + "\" "
+                   + QuoteName(OnlyFilename(owner_->fileName())),
                    owner_->filePath());
 }
 
 
 void CVS::checkIn(string const & msg)
 {
-       doVCCommand("cvs -q commit -m \"" + msg + "\" \""
-                   + OnlyFilename(owner_->fileName()) + '"',
+       doVCCommand("cvs -q commit -m \"" + msg + "\" "
+                   + QuoteName(OnlyFilename(owner_->fileName())),
                    owner_->filePath());
 }
 
@@ -330,9 +327,9 @@ void CVS::revert()
 {
        // Reverts to the version in CVS repository and
        // gets the updated version from the repository.
-       string const fil = OnlyFilename(owner_->fileName());
+       string const fil = QuoteName(OnlyFilename(owner_->fileName()));
 
-       doVCCommand("rm -f \"" + fil + "\"; cvs update \"" + fil + '"',
+       doVCCommand("rm -f " + fil + "; cvs update " + fil,
                    owner_->filePath());
        owner_->markClean();
 }
@@ -349,7 +346,7 @@ void CVS::undoLast()
 
 void CVS::getLog(string const & tmpf)
 {
-       doVCCommand("cvs log \""
-                   + OnlyFilename(owner_->fileName()) + "\" > " + tmpf,
+       doVCCommand("cvs log " + QuoteName(OnlyFilename(owner_->fileName()))
+                   + " > " + tmpf,
                    owner_->filePath());
 }