]> git.lyx.org Git - lyx.git/blobdiff - src/vc-backend.C
redraw fix 1.
[lyx.git] / src / vc-backend.C
index 33a59362cdfbf822f9be69165d476dce404b8af2..671afdd36ce28df069c27aa8270ee5480802449f 100644 (file)
@@ -8,27 +8,35 @@
 #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;
-        Systemcall one;
+       Systemcall one;
        Path p(path);
        int const ret = one.startscript(Systemcall::Wait, cmd);
        return ret;
@@ -129,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;
@@ -240,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_);
@@ -306,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();