#include "support/Path.h"
#include "support/filetools.h"
-#include "support/fs_extras.h"
#include "support/lstrings.h"
#include "support/Systemcall.h"
-#include <boost/filesystem/operations.hpp>
#include <boost/regex.hpp>
#include <fstream>
using std::string;
using std::ifstream;
-namespace fs = boost::filesystem;
-
int VCS::doVCCommand(string const & cmd, FileName const & path)
{
LYXERR(Debug::LYXVC) << "doVCCommand: " << cmd << endl;
Systemcall one;
- support::Path p(path);
+ support::PathChanger p(path);
int const ret = one.startscript(Systemcall::Wait, cmd);
return ret;
}
+/////////////////////////////////////////////////////////////////////
+//
+// RCS
+//
+/////////////////////////////////////////////////////////////////////
+
RCS::RCS(FileName const & m)
{
master_ = m;
FileName tmp(file.absFilename() + ",v");
LYXERR(Debug::LYXVC) << "Checking if file is under rcs: "
<< tmp << endl;
- if (fs::is_readable(tmp.toFilesystemEncoding())) {
+ if (tmp.isReadable()) {
LYXERR(Debug::LYXVC) << "Yes " << file
<< " is under rcs." << endl;
return tmp;
- } else {
- // Check if RCS/*,v exists.
- 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.toFilesystemEncoding())) {
- LYXERR(Debug::LYXVC) << "Yes " << file
- << " it is under rcs."<< endl;
- return tmp;
- }
}
+
+ // Check if RCS/*,v exists.
+ tmp = FileName(addName(addPath(onlyPath(file.absFilename()), "RCS"), file.absFilename()) + ",v");
+ LYXERR(Debug::LYXVC) << "Checking if file is under rcs: "
+ << tmp << endl;
+ if (tmp.isReadable()) {
+ LYXERR(Debug::LYXVC) << "Yes " << file
+ << " it is under rcs."<< endl;
+ return tmp;
+ }
+
return FileName();
}
string cmd = "ci -q -u -i -t-\"";
cmd += msg;
cmd += "\" ";
- cmd += quoteName(onlyFilename(owner_->fileName()));
+ cmd += quoteName(onlyFilename(owner_->absFileName()));
doVCCommand(cmd, FileName(owner_->filePath()));
}
void RCS::checkIn(string const & msg)
{
doVCCommand("ci -q -u -m\"" + msg + "\" "
- + quoteName(onlyFilename(owner_->fileName())),
+ + quoteName(onlyFilename(owner_->absFileName())),
FileName(owner_->filePath()));
}
void RCS::checkOut()
{
owner_->markClean();
- doVCCommand("co -q -l " + quoteName(onlyFilename(owner_->fileName())),
+ doVCCommand("co -q -l " + quoteName(onlyFilename(owner_->absFileName())),
FileName(owner_->filePath()));
}
void RCS::revert()
{
doVCCommand("co -f -u" + version() + " "
- + quoteName(onlyFilename(owner_->fileName())),
+ + quoteName(onlyFilename(owner_->absFileName())),
FileName(owner_->filePath()));
// We ignore changes and just reload!
owner_->markClean();
{
LYXERR(Debug::LYXVC) << "LyXVC: undoLast" << endl;
doVCCommand("rcs -o" + version() + " "
- + quoteName(onlyFilename(owner_->fileName())),
+ + quoteName(onlyFilename(owner_->absFileName())),
FileName(owner_->filePath()));
}
void RCS::getLog(FileName const & tmpf)
{
- doVCCommand("rlog " + quoteName(onlyFilename(owner_->fileName()))
+ doVCCommand("rlog " + quoteName(onlyFilename(owner_->absFileName()))
+ " > " + tmpf.toFilesystemEncoding(),
FileName(owner_->filePath()));
}
+/////////////////////////////////////////////////////////////////////
+//
+// CVS
+//
+/////////////////////////////////////////////////////////////////////
+
CVS::CVS(FileName const & m, FileName const & f)
{
master_ = m;
string const tmpf = '/' + onlyFilename(file.absFilename()) + '/';
LYXERR(Debug::LYXVC) << "LyXVC: checking in `" << dir
<< "' for `" << tmpf << '\'' << endl;
- if (fs::is_readable(dir.toFilesystemEncoding())) {
+ if (dir.isReadable()) {
// 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.
//sm[4]; // options
//sm[5]; // tag or tagdate
// FIXME: must double check file is stattable/existing
- time_t mod = fs::last_write_time(file_.toFilesystemEncoding());
+ time_t mod = file_.lastModified();
string mod_date = rtrim(asctime(gmtime(&mod)), "\n");
LYXERR(Debug::LYXVC)
<< "Date in Entries: `" << file_date
void CVS::registrer(string const & msg)
{
doVCCommand("cvs -q add -m \"" + msg + "\" "
- + quoteName(onlyFilename(owner_->fileName())),
+ + quoteName(onlyFilename(owner_->absFileName())),
FileName(owner_->filePath()));
}
void CVS::checkIn(string const & msg)
{
doVCCommand("cvs -q commit -m \"" + msg + "\" "
- + quoteName(onlyFilename(owner_->fileName())),
+ + quoteName(onlyFilename(owner_->absFileName())),
FileName(owner_->filePath()));
}
{
// 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_->absFileName()));
doVCCommand("rm -f " + fil + "; cvs update " + fil,
FileName(owner_->filePath()));
void CVS::getLog(FileName const & tmpf)
{
- doVCCommand("cvs log " + quoteName(onlyFilename(owner_->fileName()))
+ doVCCommand("cvs log " + quoteName(onlyFilename(owner_->absFileName()))
+ " > " + tmpf.toFilesystemEncoding(),
FileName(owner_->filePath()));
}