]> git.lyx.org Git - lyx.git/blobdiff - src/vc-backend.C
redraw fix 1.
[lyx.git] / src / vc-backend.C
index c2d022344eb29f5ea48665ab146d1c54c01a7f28..671afdd36ce28df069c27aa8270ee5480802449f 100644 (file)
@@ -8,28 +8,37 @@
 #include "debug.h"
 #include "buffer.h"
 #include "BufferView.h"
-#include "LyXView.h"
+#include "frontends/LyXView.h"
 #include "lyxfunc.h"
 
 #include "support/FileInfo.h"
-#include "support/LRegex.h"
-#include "support/LSubstring.h"
 #include "support/path.h"
 #include "support/filetools.h"
 #include "support/lstrings.h"
+#include "support/systemcall.h"
+
+#include <boost/regex.hpp>
 
 #include <fstream>
 
+#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 boost::smatch;
 
 int VCS::doVCCommand(string const & cmd, string const & path)
 {
        lyxerr[Debug::LYXVC] << "doVCCommand: " << cmd << endl;
-        Systemcalls one;
+       Systemcall one;
        Path p(path);
-       int const ret = one.startscript(Systemcalls::System, cmd);
+       int const ret = one.startscript(Systemcall::Wait, cmd);
        return ret;
 }
 
@@ -69,9 +78,9 @@ string const RCS::find_file(string const & file)
 }
 
 
-void RCS::retrive(string const & file)
+void RCS::retrieve(string const & file)
 {
-       lyxerr[Debug::LYXVC] << "LyXVC::RCS: retrive.\n\t" << file << endl;
+       lyxerr[Debug::LYXVC] << "LyXVC::RCS: retrieve.\n\t" << file << endl;
        VCS::doVCCommand("co -q -r \""
                         + file + "\"",
                         string());
@@ -128,7 +137,7 @@ void RCS::scanMaster()
                                        break;
                                }
                        } while (!contains(tmpt, ";"));
-                       
+
                } else if (token == "comment") {
                        // we don't need to read any further than this.
                        read_enough = true;
@@ -239,18 +248,18 @@ void CVS::scanMaster()
        string tmpf = "/" + OnlyFilename(file_) + "/";
        lyxerr[Debug::LYXVC] << "\tlooking for `" << tmpf << "'" << endl;
        string line;
-       LRegex reg("/(.*)/(.*)/(.*)/(.*)/(.*)");
+       regex reg("/(.*)/(.*)/(.*)/(.*)/(.*)");
        while (getline(ifs, line)) {
                lyxerr[Debug::LYXVC] << "\t  line: " << line << endl;
                if (contains(line, tmpf)) {
                        // Ok extract the fields.
-                       LRegex::SubMatches const & sm = reg.exec(line);
+                       smatch sm;
+                       regex_match(line, sm, reg);
+
                        //sm[0]; // whole matched string
                        //sm[1]; // filename
-                       version_ = LSubstring(line, sm[2].first,
-                                             sm[2].second);
-                       string file_date = LSubstring(line, sm[3].first,
-                                                     sm[3].second);
+                       version_ = sm[2];
+                       string file_date = sm[3];
                        //sm[4]; // options
                        //sm[5]; // tag or tagdate
                        FileInfo fi(file_);
@@ -305,7 +314,7 @@ void CVS::revert()
        // Reverts to the version in CVS repository and
        // gets the updated version from the repository.
        string const fil = OnlyFilename(owner_->fileName());
-       
+
        doVCCommand("rm -f \"" + fil + "\"; cvs update \"" + fil + "\"",
                    owner_->filePath());
        owner_->markLyxClean();