]> git.lyx.org Git - lyx.git/blobdiff - src/vc-backend.C
Small fixes noticed by Jean-Marc.
[lyx.git] / src / vc-backend.C
index 1d1b5b0732ee9e94b0966b78fe77ad0a9c362cdc..81efc9f6ce2a6a7c6e0c085ec47c82d81f6a599e 100644 (file)
@@ -5,7 +5,6 @@
 #endif
 
 #include <fstream>
-using std::ifstream;
 
 #include "vc-backend.h"
 #include "debug.h"
@@ -13,16 +12,20 @@ using std::ifstream;
 #include "support/LRegex.h"
 #include "support/LSubstring.h"
 #include "support/path.h"
+#include "support/filetools.h"
 #include "buffer.h"
 #include "LyXView.h"
 #include "lyxfunc.h"
 
+using std::endl;
+using std::ifstream;
+using std::getline;
 
-int VCS::doVCCommand(string const & cmd)
+int VCS::doVCCommand(string const & cmd, string const & path)
 {
        lyxerr[Debug::LYXVC] << "doVCCommand: " << cmd << endl;
         Systemcalls one;
-       Path p(owner_->filepath);
+       Path p(path);
        int ret = one.startscript(Systemcalls::System, cmd);
        return ret;
 }
@@ -35,7 +38,7 @@ RCS::RCS(string const & m)
 }
 
 
-string RCS::find_file(string const & file)
+string const RCS::find_file(string const & file)
 {
        string tmp(file);
        // Check if *,v exists.
@@ -63,6 +66,15 @@ string RCS::find_file(string const & file)
 }
 
 
+void RCS::retrive(string const & file)
+{
+       lyxerr[Debug::LYXVC] << "LyXVC::RCS: retrive.\n\t" << file << endl;
+       VCS::doVCCommand("co -q -r \""
+                        + file + "\"",
+                        string());
+}
+
+
 void RCS::scanMaster()
 {
        lyxerr[Debug::LYXVC] << "LyXVC::RCS: scanMaster." << endl;
@@ -95,7 +107,7 @@ void RCS::scanMaster()
                        // get locker here
                        if (contains(token, ";")) {
                                locker_ = "Unlocked";
-                               vcstat = UNLOCKED;
+                               vcstatus = UNLOCKED;
                                continue;
                        }
                        string tmpt, s1, s2;
@@ -107,7 +119,7 @@ void RCS::scanMaster()
                                // s2 is user, and s1 is version
                                if (s1 == version_) {
                                        locker_ = s2;
-                                       vcstat = LOCKED;
+                                       vcstatus = LOCKED;
                                        break;
                                }
                        } while (!contains(tmpt, ";"));
@@ -131,9 +143,9 @@ void RCS::registrer(string const & msg)
        string cmd = "ci -q -u -i -t-\"";
        cmd += msg;
        cmd += "\" \"";
-       cmd += OnlyFilename(owner_->getFileName());
+       cmd += OnlyFilename(owner_->fileName());
        cmd += "\"";
-       doVCCommand(cmd);
+       doVCCommand(cmd, owner_->filepath);
        owner_->getUser()->owner()->getLyXFunc()->Dispatch("buffer-reload");
 }
 
@@ -141,7 +153,7 @@ void RCS::registrer(string const & msg)
 void RCS::checkIn(string const & msg)
 {
        doVCCommand("ci -q -u -m\"" + msg + "\" \""
-                   + OnlyFilename(owner_->getFileName()) + "\"");
+                   + OnlyFilename(owner_->fileName()) + "\"", owner_->filepath);
        owner_->getUser()->owner()->getLyXFunc()->Dispatch("buffer-reload");
 }
 
@@ -150,7 +162,7 @@ void RCS::checkOut()
 {
        owner_->markLyxClean();
        doVCCommand("co -q -l \""
-                   + OnlyFilename(owner_->getFileName()) + "\"");
+                   + OnlyFilename(owner_->fileName()) + "\"", owner_->filepath);
        owner_->getUser()->owner()->getLyXFunc()->Dispatch("buffer-reload");
 }
 
@@ -158,7 +170,7 @@ void RCS::checkOut()
 void RCS::revert()
 {
        doVCCommand("co -f -u" + version() + " \""
-                   + OnlyFilename(owner_->getFileName()) + "\"");
+                   + OnlyFilename(owner_->fileName()) + "\"", owner_->filepath);
        // We ignore changes and just reload!
        owner_->markLyxClean();
        owner_->getUser()->owner()
@@ -170,14 +182,14 @@ void RCS::undoLast()
 {
        lyxerr[Debug::LYXVC] << "LyXVC: undoLast" << endl;
        doVCCommand("rcs -o" + version() + " \""
-                   + OnlyFilename(owner_->getFileName()) + "\"");
+                   + OnlyFilename(owner_->fileName()) + "\"", owner_->filepath);
 }
 
 
 void RCS::getLog(string const & tmpf)
 {
        doVCCommand("rlog \""
-                   + OnlyFilename(owner_->getFileName()) + "\" > " + tmpf);
+                   + OnlyFilename(owner_->fileName()) + "\" > " + tmpf, owner_->filepath);
 }
 
 
@@ -189,7 +201,7 @@ CVS::CVS(string const & m, string const & f)
 }
 
 
-string CVS::find_file(string const & file)
+string const CVS::find_file(string const & file)
 {
        // First we look for the CVS/Entries in the same dir
        // where we have file.
@@ -223,11 +235,11 @@ void CVS::scanMaster()
        string tmpf = "/" + OnlyFilename(file_) + "/";
        lyxerr[Debug::LYXVC] << "\tlooking for `" << tmpf << "'" << endl;
        string line;
+       LRegex reg("/(.*)/(.*)/(.*)/(.*)/(.*)");
        while(getline(ifs, line)) {
                lyxerr[Debug::LYXVC] << "\t  line: " << line << endl;
                if (contains(line, tmpf)) {
                        // Ok extract the fields.
-                       LRegex reg("/(.*)/(.*)/(.*)/(.*)/(.*)");
                        LRegex::SubMatches const & sm = reg.exec(line);
                        //sm[0]; // whole matched string
                        //sm[1]; // filename
@@ -247,21 +259,13 @@ void CVS::scanMaster()
                                << mod_date << "'" << endl;
                        if (file_date == mod_date) {
                                locker_ = "Unlocked";
-                               vcstat = UNLOCKED;
+                               vcstatus = UNLOCKED;
                        } else {
                                // Here we should also to some more checking
                                // to see if there are conflicts or not.
                                locker_ = "Locked";
-                               vcstat = LOCKED;
+                               vcstatus = LOCKED;
                        }
-#if 0                  
-                       for (LRegex::SubMatches::const_iterator cit = sm.begin();
-                            cit != sm.end(); ++cit) {
-                               if ((*cit).first != string::npos)
-                                       lyxerr << string(line, (*cit).first,
-                                                        (*cit).second) << endl;
-                       }
-#endif
                        break;
                }
        }
@@ -270,19 +274,24 @@ void CVS::scanMaster()
 
 void CVS::registrer(string const & msg)
 {
-       // cvs add
+       doVCCommand("cvs -q add -m \"" + msg + "\" \""
+                   + OnlyFilename(owner_->fileName()) + "\"", owner_->filepath);
+       owner_->getUser()->owner()->getLyXFunc()->Dispatch("buffer-reload");
 }
 
 
 void CVS::checkIn(string const & msg)
 {
-       // cvs commit
+       doVCCommand("cvs -q commit -m \"" + msg + "\" \""
+                   + OnlyFilename(owner_->fileName()) + "\"", owner_->filepath);
+       owner_->getUser()->owner()->getLyXFunc()->Dispatch("buffer-reload");
 }
 
 
 void CVS::checkOut()
 {
-       // cvs update
+       // cvs update or perhaps for cvs this should be a noop
+       lyxerr << "Sorry not implemented." << endl;
 }
 
 
@@ -290,7 +299,8 @@ void CVS::revert()
 {
        // not sure how to do this...
        // rm file
-       // cvs update  
+       // cvs update
+       lyxerr << "Sorry not implemented." << endl;
 }
 
 
@@ -299,9 +309,11 @@ void CVS::undoLast()
        // merge the current with the previous version
        // in a reverse patch kind of way, so that the
        // result is to revert the last changes.
+       lyxerr << "Sorry not implemented." << endl;
 }
 
 
 void CVS::getLog(string const &)
 {
+       lyxerr << "Sorry not implemented." << endl;
 }