#include "VCBackend.h"
#include "Buffer.h"
+#include "DispatchResult.h"
#include "LyX.h"
#include "FuncRequest.h"
#include "support/TempFile.h"
#include <fstream>
+#include <iomanip>
+#include <sstream>
using namespace std;
using namespace lyx::support;
LYXERR(Debug::LYXVC, "doVCCommandCall: " << cmd);
Systemcall one;
support::PathChanger p(path);
- return one.startscript(Systemcall::Wait, cmd, string(), false);
+ return one.startscript(Systemcall::Wait, cmd, string(), string(), false);
}
LYXERR(Debug::LYXVC, "LyXVC::RCS: scanMaster: " << master_);
ifstream ifs(master_.toFilesystemEncoding().c_str());
+ // limit the size of strings we read to avoid memory problems
+ ifs >> setw(65636);
string token;
bool read_enough = false;
bool RCS::checkInEnabled()
{
- return owner_ && !owner_->isReadonly();
+ return owner_ && !owner_->hasReadonlyFlag();
}
bool RCS::checkOutEnabled()
{
- return owner_ && owner_->isReadonly();
+ return owner_ && owner_->hasReadonlyFlag();
}
return rev_date_cache_;
case LyXVC::Time:
return rev_time_cache_;
- default: ;
+ default:
+ break;
}
return string();
+ quoteName(onlyFileName(owner_->absFileName()))
+ " > " + quoteName(tmpf.toFilesystemEncoding()),
FileName(owner_->filePath()));
+ tmpf.refresh();
if (tmpf.isFileEmpty())
return false;
if (contains(line, tmpf)) {
// Ok extract the fields.
smatch sm;
-
- regex_match(line, sm, reg);
+ if (!regex_match(line, sm, reg)) {
+ LYXERR(Debug::LYXVC, "\t Cannot parse line. Skipping.");
+ continue;
+ }
//sm[0]; // whole matched string
//sm[1]; // filename
return rev_date_cache_;
case LyXVC::Time:
return rev_time_cache_;
- default: ;
+ default:
+ break;
}
}
return string();
doVCCommandWithOutput("cvs update -p -r" + rev + ' '
+ getTarget(File),
FileName(owner_->filePath()), tmpf);
+ tmpf.refresh();
if (tmpf.isFileEmpty())
return false;
+ " > " + quoteName(tmpf.toFilesystemEncoding()),
FileName(owner_->filePath()));
- // Lock error messages go unfortunately on stderr and are unreachible this way.
+ // Lock error messages go unfortunately on stderr and are unreachable this way.
ifstream ifs(tmpf.toFilesystemEncoding().c_str());
string line;
while (ifs) {
return rev_date_cache_;
case LyXVC::Time:
return rev_time_cache_;
- default: ;
-
+ default:
+ break;
}
return string();
+ quoteName(onlyFileName(owner_->absFileName()))
+ " > " + quoteName(tmpf.toFilesystemEncoding()),
FileName(owner_->filePath()));
+ tmpf.refresh();
if (tmpf.isFileEmpty())
return false;
quoteName(fname) + " > " +
quoteName(tmpf.toFilesystemEncoding()),
file.onlyPath());
+ tmpf.refresh();
bool found = !tmpf.isFileEmpty();
LYXERR(Debug::LYXVC, "GIT control: " << (found ? "enabled" : "disabled"));
return found ? file : FileName();
return rev_date_cache_;
case LyXVC::Time:
return rev_time_cache_;
- default: ;
-
+ default:
+ break;
}
return string();
+ quoteName(onlyFileName(owner_->absFileName()))
+ " > " + quoteName(tmpf.toFilesystemEncoding()),
FileName(owner_->filePath()));
+ tmpf.refresh();
if (tmpf.isFileEmpty())
return false;
bool GIT::toggleReadOnlyEnabled()
{
- return false;
+ return true;
}