X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fvc-backend.C;h=5fb8f6bb921d24fbd3c93246978a327cd4e8af48;hb=e7f4618bcce770369cf46335c2c7f0164b4b8857;hp=05ebb946039bc009720110b777025cbb5002b398;hpb=da3d159f7f39a27dc8b2c5d3ca2ee961f398f86f;p=lyx.git diff --git a/src/vc-backend.C b/src/vc-backend.C index 05ebb94603..5fb8f6bb92 100644 --- a/src/vc-backend.C +++ b/src/vc-backend.C @@ -25,16 +25,19 @@ #include -using lyx::support::AddName; -using lyx::support::AddPath; -using lyx::support::contains; -using lyx::support::OnlyFilename; -using lyx::support::OnlyPath; -using lyx::support::Path; -using lyx::support::QuoteName; -using lyx::support::rtrim; -using lyx::support::split; -using lyx::support::Systemcall; + +namespace lyx { + +using support::addName; +using support::addPath; +using support::contains; +using support::FileName; +using support::onlyFilename; +using support::onlyPath; +using support::quoteName; +using support::rtrim; +using support::split; +using support::Systemcall; using boost::regex; using boost::regex_match; @@ -57,50 +60,48 @@ int VCS::doVCCommand(string const & cmd, string const & path) { lyxerr[Debug::LYXVC] << "doVCCommand: " << cmd << endl; Systemcall one; - Path p(path); + support::Path p(path); int const ret = one.startscript(Systemcall::Wait, cmd); return ret; } -RCS::RCS(string const & m) +RCS::RCS(FileName const & m) { master_ = m; scanMaster(); } -string const RCS::find_file(string const & file) +FileName const RCS::find_file(FileName const & file) { - string tmp(file); // Check if *,v exists. - tmp += ",v"; + FileName tmp(file.absFilename() + ",v"); lyxerr[Debug::LYXVC] << "Checking if file is under rcs: " << tmp << endl; - if (fs::is_readable(tmp)) { + if (fs::is_readable(tmp.toFilesystemEncoding())) { lyxerr[Debug::LYXVC] << "Yes " << file << " is under rcs." << endl; return tmp; } else { // Check if RCS/*,v exists. - tmp = AddName(AddPath(OnlyPath(file), "RCS"), file); - tmp += ",v"; + tmp = FileName(addName(addPath(onlyPath(file.absFilename()), "RCS"), file.absFilename()) + ",v"); lyxerr[Debug::LYXVC] << "Checking if file is under rcs: " << tmp << endl; - if (fs::is_readable(tmp)) { + if (fs::is_readable(tmp.toFilesystemEncoding())) { lyxerr[Debug::LYXVC] << "Yes " << file << " it is under rcs."<< endl; return tmp; } } - return string(); + return FileName(); } -void RCS::retrieve(string const & file) +void RCS::retrieve(FileName const & file) { lyxerr[Debug::LYXVC] << "LyXVC::RCS: retrieve.\n\t" << file << endl; - VCS::doVCCommand("co -q -r " + QuoteName(file), + VCS::doVCCommand("co -q -r " + quoteName(file.toFilesystemEncoding()), string()); } @@ -109,7 +110,7 @@ void RCS::scanMaster() { lyxerr[Debug::LYXVC] << "LyXVC::RCS: scanMaster." << endl; - ifstream ifs(master_.c_str()); + ifstream ifs(master_.toFilesystemEncoding().c_str()); string token; bool read_enough = false; @@ -174,7 +175,7 @@ void RCS::registrer(string const & msg) string cmd = "ci -q -u -i -t-\""; cmd += msg; cmd += "\" "; - cmd += QuoteName(OnlyFilename(owner_->fileName())); + cmd += quoteName(onlyFilename(owner_->fileName())); doVCCommand(cmd, owner_->filePath()); } @@ -182,7 +183,7 @@ void RCS::registrer(string const & msg) void RCS::checkIn(string const & msg) { doVCCommand("ci -q -u -m\"" + msg + "\" " - + QuoteName(OnlyFilename(owner_->fileName())), + + quoteName(onlyFilename(owner_->fileName())), owner_->filePath()); } @@ -190,7 +191,7 @@ void RCS::checkIn(string const & msg) void RCS::checkOut() { owner_->markClean(); - doVCCommand("co -q -l " + QuoteName(OnlyFilename(owner_->fileName())), + doVCCommand("co -q -l " + quoteName(onlyFilename(owner_->fileName())), owner_->filePath()); } @@ -198,7 +199,7 @@ void RCS::checkOut() void RCS::revert() { doVCCommand("co -f -u" + version() + " " - + QuoteName(OnlyFilename(owner_->fileName())), + + quoteName(onlyFilename(owner_->fileName())), owner_->filePath()); // We ignore changes and just reload! owner_->markClean(); @@ -209,20 +210,20 @@ void RCS::undoLast() { lyxerr[Debug::LYXVC] << "LyXVC: undoLast" << endl; doVCCommand("rcs -o" + version() + " " - + QuoteName(OnlyFilename(owner_->fileName())), + + quoteName(onlyFilename(owner_->fileName())), owner_->filePath()); } -void RCS::getLog(string const & tmpf) +void RCS::getLog(FileName const & tmpf) { - doVCCommand("rlog " + QuoteName(OnlyFilename(owner_->fileName())) - + " > " + tmpf, + doVCCommand("rlog " + quoteName(onlyFilename(owner_->fileName())) + + " > " + tmpf.toFilesystemEncoding(), owner_->filePath()); } -CVS::CVS(string const & m, string const & f) +CVS::CVS(FileName const & m, FileName const & f) { master_ = m; file_ = f; @@ -230,26 +231,27 @@ CVS::CVS(string const & m, string const & f) } -string const CVS::find_file(string const & file) +FileName const CVS::find_file(FileName const & file) { // First we look for the CVS/Entries in the same dir // where we have file. - string const dir = OnlyPath(file) + "/CVS/Entries"; - string const tmpf = "/" + OnlyFilename(file) + "/"; + FileName const dir(onlyPath(file.absFilename()) + "/CVS/Entries"); + string const tmpf = '/' + onlyFilename(file.absFilename()) + '/'; lyxerr[Debug::LYXVC] << "LyXVC: checking in `" << dir << "' for `" << tmpf << '\'' << endl; - if (fs::is_readable(dir)) { + if (fs::is_readable(dir.toFilesystemEncoding())) { // Ok we are at least in a CVS dir. Parse the CVS/Entries // and see if we can find this file. We do a fast and // dirty parse here. - ifstream ifs(dir.c_str()); + ifstream ifs(dir.toFilesystemEncoding().c_str()); string line; while (getline(ifs, line)) { lyxerr[Debug::LYXVC] << "\tEntries: " << line << endl; - if (contains(line, tmpf)) return dir; + if (contains(line, tmpf)) + return dir; } } - return string(); + return FileName(); } @@ -258,8 +260,8 @@ void CVS::scanMaster() lyxerr[Debug::LYXVC] << "LyXVC::CVS: scanMaster. \n Checking: " << master_ << endl; // Ok now we do the real scan... - ifstream ifs(master_.c_str()); - string tmpf = "/" + OnlyFilename(file_) + "/"; + ifstream ifs(master_.toFilesystemEncoding().c_str()); + string tmpf = '/' + onlyFilename(file_.absFilename()) + '/'; lyxerr[Debug::LYXVC] << "\tlooking for `" << tmpf << '\'' << endl; string line; static regex const reg("/(.*)/(.*)/(.*)/(.*)/(.*)"); @@ -279,7 +281,7 @@ void CVS::scanMaster() //sm[4]; // options //sm[5]; // tag or tagdate // FIXME: must double check file is stattable/existing - time_t mod = fs::last_write_time(file_); + time_t mod = fs::last_write_time(file_.toFilesystemEncoding()); string mod_date = rtrim(asctime(gmtime(&mod)), "\n"); lyxerr[Debug::LYXVC] << "Date in Entries: `" << file_date @@ -303,7 +305,7 @@ void CVS::scanMaster() void CVS::registrer(string const & msg) { doVCCommand("cvs -q add -m \"" + msg + "\" " - + QuoteName(OnlyFilename(owner_->fileName())), + + quoteName(onlyFilename(owner_->fileName())), owner_->filePath()); } @@ -311,7 +313,7 @@ void CVS::registrer(string const & msg) void CVS::checkIn(string const & msg) { doVCCommand("cvs -q commit -m \"" + msg + "\" " - + QuoteName(OnlyFilename(owner_->fileName())), + + quoteName(onlyFilename(owner_->fileName())), owner_->filePath()); } @@ -327,7 +329,7 @@ void CVS::revert() { // Reverts to the version in CVS repository and // gets the updated version from the repository. - string const fil = QuoteName(OnlyFilename(owner_->fileName())); + string const fil = quoteName(onlyFilename(owner_->fileName())); doVCCommand("rm -f " + fil + "; cvs update " + fil, owner_->filePath()); @@ -344,9 +346,12 @@ void CVS::undoLast() } -void CVS::getLog(string const & tmpf) +void CVS::getLog(FileName const & tmpf) { - doVCCommand("cvs log " + QuoteName(OnlyFilename(owner_->fileName())) - + " > " + tmpf, + doVCCommand("cvs log " + quoteName(onlyFilename(owner_->fileName())) + + " > " + tmpf.toFilesystemEncoding(), owner_->filePath()); } + + +} // namespace lyx