#include "debug.h"
#include "buffer.h"
-#include "support/FileInfo.h"
#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 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::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;
using std::endl;
using std::getline;
-
+using std::string;
using std::ifstream;
-using boost::regex;
-using boost::regex_match;
-
-#ifndef USE_INCLUDED_STRING
-using boost::smatch;
-#else
-using boost::cmatch;
-#endif
+namespace fs = boost::filesystem;
int VCS::doVCCommand(string const & cmd, string const & path)
string tmp(file);
// Check if *,v exists.
tmp += ",v";
- FileInfo f;
lyxerr[Debug::LYXVC] << "Checking if file is under rcs: "
<< tmp << endl;
- if (f.newFile(tmp).readable()) {
+ if (fs::is_readable(tmp)) {
lyxerr[Debug::LYXVC] << "Yes " << file
<< " is under rcs." << endl;
return tmp;
tmp += ",v";
lyxerr[Debug::LYXVC] << "Checking if file is under rcs: "
<< tmp << endl;
- if (f.newFile(tmp).readable()) {
+ if (fs::is_readable(tmp)) {
lyxerr[Debug::LYXVC] << "Yes " << file
<< " it is under rcs."<< endl;
return tmp;
// 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.
string const tmpf = "/" + OnlyFilename(file) + "/";
lyxerr[Debug::LYXVC] << "LyXVC: checking in `" << dir
<< "' for `" << tmpf << '\'' << endl;
- FileInfo const f(dir);
- if (f.readable()) {
+ if (fs::is_readable(dir)) {
// 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.
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
- FileInfo fi(file_);
// FIXME: must double check file is stattable/existing
- time_t mod = fi.getModificationTime();
+ time_t mod = fs::last_write_time(file_);
string mod_date = rtrim(asctime(gmtime(&mod)), "\n");
lyxerr[Debug::LYXVC]
<< "Date in Entries: `" << file_date