]> git.lyx.org Git - lyx.git/blobdiff - src/vc-backend.C
- Link against qt-mt333.lib which is what the current qt3 cvs produces
[lyx.git] / src / vc-backend.C
index 3e58f9082a8cb8af64f18d319834b5b7a8b402d8..2fed252ac11e1c9ce9c68c961a1342c6b29ed1da 100644 (file)
@@ -1,38 +1,55 @@
+/**
+ * \file vc-backend.C
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Lars Gullik Bjønnes
+ *
+ * Full author contact details are available in file CREDITS.
+ */
+
 #include <config.h>
 
 #include "vc-backend.h"
 #include "debug.h"
 #include "buffer.h"
-#include "BufferView.h"
-#include "frontends/LyXView.h"
-#include "funcrequest.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::OnlyFilename;
+using lyx::support::OnlyPath;
+using lyx::support::Path;
+using lyx::support::rtrim;
+using lyx::support::split;
+using lyx::support::Systemcall;
+
+using boost::regex;
+using boost::regex_match;
+using boost::smatch;
+
 #ifndef CXX_GLOBAL_CSTD
 using std::asctime;
 using std::gmtime;
 #endif
 
 using std::endl;
-using std::ifstream;
 using std::getline;
-using boost::regex;
-using boost::regex_match;
+using std::string;
+using std::ifstream;
 
-#ifndef USE_INCLUDED_STRING
-using boost::smatch;
-#else
-using boost::cmatch;
-#endif
+namespace fs = boost::filesystem;
 
 
 int VCS::doVCCommand(string const & cmd, string const & path)
@@ -57,10 +74,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;
@@ -70,7 +86,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;
@@ -119,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;
@@ -138,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.
@@ -161,7 +177,6 @@ void RCS::registrer(string const & msg)
        cmd += OnlyFilename(owner_->fileName());
        cmd += '"';
        doVCCommand(cmd, owner_->filePath());
-       owner_->getUser()->owner()->dispatch(FuncRequest(LFUN_MENURELOAD));
 }
 
 
@@ -170,7 +185,6 @@ void RCS::checkIn(string const & msg)
        doVCCommand("ci -q -u -m\"" + msg + "\" \""
                    + OnlyFilename(owner_->fileName()) + '"',
                    owner_->filePath());
-       owner_->getUser()->owner()->dispatch(FuncRequest(LFUN_MENURELOAD));
 }
 
 
@@ -180,7 +194,6 @@ void RCS::checkOut()
        doVCCommand("co -q -l \""
                    + OnlyFilename(owner_->fileName()) + '"',
                    owner_->filePath());
-       owner_->getUser()->owner()->dispatch(FuncRequest(LFUN_MENURELOAD));
 }
 
 
@@ -191,7 +204,6 @@ void RCS::revert()
                    owner_->filePath());
        // We ignore changes and just reload!
        owner_->markClean();
-       owner_->getUser()->owner()->dispatch(FuncRequest(LFUN_MENURELOAD));
 }
 
 
@@ -228,8 +240,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.
@@ -253,28 +264,24 @@ void CVS::scanMaster()
        string tmpf = "/" + OnlyFilename(file_) + "/";
        lyxerr[Debug::LYXVC] << "\tlooking for `" << tmpf << '\'' << endl;
        string line;
-       regex reg("/(.*)/(.*)/(.*)/(.*)/(.*)");
+       static regex const reg("/(.*)/(.*)/(.*)/(.*)/(.*)");
        while (getline(ifs, line)) {
                lyxerr[Debug::LYXVC] << "\t  line: " << line << endl;
                if (contains(line, tmpf)) {
                        // Ok extract the fields.
-#ifndef USE_INCLUDED_STRING
                        smatch sm;
-#else
-                       cmatch sm;
-#endif
-                       regex_match(STRCONV(line), sm, reg);
+
+                       regex_match(line, sm, reg);
 
                        //sm[0]; // whole matched string
                        //sm[1]; // filename
-                       version_ = STRCONV(sm.str(2));
-                       string const file_date = STRCONV(sm.str(3));
+                       version_ = sm.str(2);
+                       string const file_date = sm.str(3);
 
                        //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
@@ -300,7 +307,6 @@ void CVS::registrer(string const & msg)
        doVCCommand("cvs -q add -m \"" + msg + "\" \""
                    + OnlyFilename(owner_->fileName()) + '"',
                    owner_->filePath());
-       owner_->getUser()->owner()->dispatch(FuncRequest(LFUN_MENURELOAD));
 }
 
 
@@ -309,7 +315,6 @@ void CVS::checkIn(string const & msg)
        doVCCommand("cvs -q commit -m \"" + msg + "\" \""
                    + OnlyFilename(owner_->fileName()) + '"',
                    owner_->filePath());
-       owner_->getUser()->owner()->dispatch(FuncRequest(LFUN_MENURELOAD));
 }
 
 
@@ -329,7 +334,6 @@ void CVS::revert()
        doVCCommand("rm -f \"" + fil + "\"; cvs update \"" + fil + '"',
                    owner_->filePath());
        owner_->markClean();
-       owner_->getUser()->owner()->dispatch(FuncRequest(LFUN_MENURELOAD));
 }