+/**
+ * \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 <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::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;
-
-#ifndef USE_INCLUDED_STRING
-using boost::smatch;
-#else
-using boost::cmatch;
-#endif
+using std::string;
+using std::ifstream;
int VCS::doVCCommand(string const & cmd, string const & path)
}
-void VCS::reload()
-{
- owner_->getUser()->reload();
- /* Watch out ! We have deleted ourselves here
- * via the ->reload() !
- */
-}
-
-
RCS::RCS(string const & m)
{
master_ = m;
// nothing
} else if (contains(token, "locks")) {
// get locker here
- if (contains(token, ";")) {
+ if (contains(token, ';')) {
locker_ = "Unlocked";
vcstatus = UNLOCKED;
continue;
vcstatus = LOCKED;
break;
}
- } while (!contains(tmpt, ";"));
+ } while (!contains(tmpt, ';'));
} else if (token == "comment") {
// we don't need to read any further than this.
cmd += OnlyFilename(owner_->fileName());
cmd += '"';
doVCCommand(cmd, owner_->filePath());
- reload();
}
doVCCommand("ci -q -u -m\"" + msg + "\" \""
+ OnlyFilename(owner_->fileName()) + '"',
owner_->filePath());
- reload();
}
doVCCommand("co -q -l \""
+ OnlyFilename(owner_->fileName()) + '"',
owner_->filePath());
- reload();
}
owner_->filePath());
// We ignore changes and just reload!
owner_->markClean();
- reload();
}
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
doVCCommand("cvs -q add -m \"" + msg + "\" \""
+ OnlyFilename(owner_->fileName()) + '"',
owner_->filePath());
- reload();
}
doVCCommand("cvs -q commit -m \"" + msg + "\" \""
+ OnlyFilename(owner_->fileName()) + '"',
owner_->filePath());
- reload();
}
doVCCommand("rm -f \"" + fil + "\"; cvs update \"" + fil + '"',
owner_->filePath());
owner_->markClean();
- reload();
}