X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fvc-backend.C;h=4b9218348e4d26d78f5ee36c457250cf04e4d1cd;hb=2e57f2ff0ae7cd4a6efbf634ffe6d2f4379d9cfc;hp=d72d6b34068bcb913815a28f3039a4314463ac46;hpb=c10dfd15cd79499dd23f161d8f1716c00a143e09;p=lyx.git diff --git a/src/vc-backend.C b/src/vc-backend.C index d72d6b3406..4b9218348e 100644 --- a/src/vc-backend.C +++ b/src/vc-backend.C @@ -1,15 +1,10 @@ #include -#ifdef __GNUG__ -#pragma implementation -#endif - #include "vc-backend.h" #include "debug.h" #include "buffer.h" -#include "BufferView.h" #include "frontends/LyXView.h" -#include "lyxfunc.h" +#include "funcrequest.h" #include "support/FileInfo.h" #include "support/path.h" @@ -21,6 +16,8 @@ #include +using namespace lyx::support; + #ifndef CXX_GLOBAL_CSTD using std::asctime; using std::gmtime; @@ -31,7 +28,13 @@ 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 + int VCS::doVCCommand(string const & cmd, string const & path) { @@ -82,7 +85,7 @@ void RCS::retrieve(string const & file) { lyxerr[Debug::LYXVC] << "LyXVC::RCS: retrieve.\n\t" << file << endl; VCS::doVCCommand("co -q -r \"" - + file + "\"", + + file + '"', string()); } @@ -99,7 +102,7 @@ void RCS::scanMaster() while (!read_enough && ifs >> token) { lyxerr[Debug::LYXVC] << "LyXVC::scanMaster: current lex text: `" - << token << "'" << endl; + << token << '\'' << endl; if (token.empty()) continue; @@ -157,17 +160,16 @@ void RCS::registrer(string const & msg) cmd += msg; cmd += "\" \""; cmd += OnlyFilename(owner_->fileName()); - cmd += "\""; + cmd += '"'; doVCCommand(cmd, owner_->filePath()); - owner_->getUser()->owner()->getLyXFunc().dispatch(LFUN_MENURELOAD); } void RCS::checkIn(string const & msg) { doVCCommand("ci -q -u -m\"" + msg + "\" \"" - + OnlyFilename(owner_->fileName()) + "\"", owner_->filePath()); - owner_->getUser()->owner()->getLyXFunc().dispatch(LFUN_MENURELOAD); + + OnlyFilename(owner_->fileName()) + '"', + owner_->filePath()); } @@ -175,19 +177,18 @@ void RCS::checkOut() { owner_->markClean(); doVCCommand("co -q -l \"" - + OnlyFilename(owner_->fileName()) + "\"", owner_->filePath()); - owner_->getUser()->owner()->getLyXFunc().dispatch(LFUN_MENURELOAD); + + OnlyFilename(owner_->fileName()) + '"', + owner_->filePath()); } void RCS::revert() { doVCCommand("co -f -u" + version() + " \"" - + OnlyFilename(owner_->fileName()) + "\"", owner_->filePath()); + + OnlyFilename(owner_->fileName()) + '"', + owner_->filePath()); // We ignore changes and just reload! owner_->markClean(); - owner_->getUser()->owner() - ->getLyXFunc().dispatch(LFUN_MENURELOAD); } @@ -195,7 +196,7 @@ void RCS::undoLast() { lyxerr[Debug::LYXVC] << "LyXVC: undoLast" << endl; doVCCommand("rcs -o" + version() + " \"" - + OnlyFilename(owner_->fileName()) + "\"", + + OnlyFilename(owner_->fileName()) + '"', owner_->filePath()); } @@ -203,7 +204,8 @@ void RCS::undoLast() void RCS::getLog(string const & tmpf) { doVCCommand("rlog \"" - + OnlyFilename(owner_->fileName()) + "\" > " + tmpf, owner_->filePath()); + + OnlyFilename(owner_->fileName()) + "\" > " + + tmpf, owner_->filePath()); } @@ -222,7 +224,7 @@ string const CVS::find_file(string const & file) string const dir = OnlyPath(file) + "/CVS/Entries"; string const tmpf = "/" + OnlyFilename(file) + "/"; lyxerr[Debug::LYXVC] << "LyXVC: checking in `" << dir - << "' for `" << tmpf << "'" << endl; + << "' for `" << tmpf << '\'' << endl; FileInfo const f(dir); if (f.readable()) { // Ok we are at least in a CVS dir. Parse the CVS/Entries @@ -246,20 +248,25 @@ void CVS::scanMaster() // Ok now we do the real scan... ifstream ifs(master_.c_str()); string tmpf = "/" + OnlyFilename(file_) + "/"; - lyxerr[Debug::LYXVC] << "\tlooking for `" << tmpf << "'" << endl; + lyxerr[Debug::LYXVC] << "\tlooking for `" << tmpf << '\'' << endl; string line; regex 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; - regex_match(line, sm, reg); +#else + cmatch sm; +#endif + regex_match(STRCONV(line), sm, reg); //sm[0]; // whole matched string //sm[1]; // filename - version_ = sm[2]; - string file_date = sm[3]; + version_ = STRCONV(sm.str(2)); + string const file_date = STRCONV(sm.str(3)); + //sm[4]; // options //sm[5]; // tag or tagdate FileInfo fi(file_); @@ -269,7 +276,7 @@ void CVS::scanMaster() lyxerr[Debug::LYXVC] << "Date in Entries: `" << file_date << "'\nModification date of file: `" - << mod_date << "'" << endl; + << mod_date << '\'' << endl; if (file_date == mod_date) { locker_ = "Unlocked"; vcstatus = UNLOCKED; @@ -288,17 +295,16 @@ void CVS::scanMaster() void CVS::registrer(string const & msg) { doVCCommand("cvs -q add -m \"" + msg + "\" \"" - + OnlyFilename(owner_->fileName()) + "\"", owner_->filePath()); - owner_->getUser()->owner()->getLyXFunc().dispatch(LFUN_MENURELOAD); + + OnlyFilename(owner_->fileName()) + '"', + owner_->filePath()); } void CVS::checkIn(string const & msg) { doVCCommand("cvs -q commit -m \"" + msg + "\" \"" - + OnlyFilename(owner_->fileName()) + "\"", + + OnlyFilename(owner_->fileName()) + '"', owner_->filePath()); - owner_->getUser()->owner()->getLyXFunc().dispatch(LFUN_MENURELOAD); } @@ -315,11 +321,9 @@ void CVS::revert() // gets the updated version from the repository. string const fil = OnlyFilename(owner_->fileName()); - doVCCommand("rm -f \"" + fil + "\"; cvs update \"" + fil + "\"", + doVCCommand("rm -f \"" + fil + "\"; cvs update \"" + fil + '"', owner_->filePath()); owner_->markClean(); - owner_->getUser()->owner() - ->getLyXFunc().dispatch(LFUN_MENURELOAD); }