X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxvc.C;h=835408913fea55f57274c2e2cb01f4e54d9aa795;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=9bc020831096bb12edfcfea4d898a194be9cc0f2;hpb=91de22ef340abbf1e9ba7d422bcd9024fa90d63f;p=lyx.git diff --git a/src/lyxvc.C b/src/lyxvc.C index 9bc0208310..835408913f 100644 --- a/src/lyxvc.C +++ b/src/lyxvc.C @@ -27,37 +27,45 @@ #include "support/lyxlib.h" -using namespace lyx::support; +namespace lyx { + +using support::bformat; +using support::FileName; +using support::isFileReadable; +using support::makeAbsPath; +using support::makeDisplayPath; +using support::tempName; using std::endl; +using std::string; using std::pair; +namespace Alert = frontend::Alert; + LyXVC::LyXVC() { - vcs = 0; owner_ = 0; } +// for the sake of boost::scoped_ptr LyXVC::~LyXVC() -{ - delete vcs; -} +{} -bool LyXVC::file_found_hook(string const & fn) +bool LyXVC::file_found_hook(FileName const & fn) { - string found_file; + FileName found_file; // Check if file is under RCS if (!(found_file = RCS::find_file(fn)).empty()) { - vcs = new RCS(found_file); + vcs.reset(new RCS(found_file)); vcs->owner(owner_); return true; } // Check if file is under CVS if (!(found_file = CVS::find_file(fn)).empty()) { - vcs = new CVS(found_file, fn); + vcs.reset(new CVS(found_file, fn)); vcs->owner(owner_); return true; } @@ -66,7 +74,7 @@ bool LyXVC::file_found_hook(string const & fn) } -bool LyXVC::file_not_found_hook(string const & fn) +bool LyXVC::file_not_found_hook(FileName const & fn) { // Check if file is under RCS if (!RCS::find_file(fn).empty()) @@ -85,40 +93,40 @@ void LyXVC::buffer(Buffer * buf) void LyXVC::registrer() { - string const filename = owner_->fileName(); + FileName const filename(owner_->fileName()); // there must be a file to save - if (!IsFileReadable(filename)) { + if (!isFileReadable(filename)) { Alert::error(_("Document not saved"), _("You must save the document " - "before it can be registered.")); + "before it can be registered.")); return; } // it is very likely here that the vcs is not created yet... if (!vcs) { - string const cvs_entries = "CVS/Entries"; + FileName const cvs_entries(makeAbsPath("CVS/Entries")); - if (IsFileReadable(cvs_entries)) { + if (isFileReadable(cvs_entries)) { lyxerr[Debug::LYXVC] << "LyXVC: registering " - << MakeDisplayPath(filename) + << to_utf8(makeDisplayPath(filename.absFilename())) << " with CVS" << endl; - vcs = new CVS(cvs_entries, filename); + vcs.reset(new CVS(cvs_entries, filename)); } else { lyxerr[Debug::LYXVC] << "LyXVC: registering " - << MakeDisplayPath(filename) + << to_utf8(makeDisplayPath(filename.absFilename())) << " with RCS" << endl; - vcs = new RCS(filename); + vcs.reset(new RCS(filename)); } vcs->owner(owner_); } lyxerr[Debug::LYXVC] << "LyXVC: registrer" << endl; - pair tmp = + pair tmp = Alert::askForText(_("LyX VC: Initial description"), _("(no initial description)")); if (!tmp.first || tmp.second.empty()) { @@ -127,7 +135,7 @@ void LyXVC::registrer() return; } - vcs->registrer(tmp.second); + vcs->registrer(to_utf8(tmp.second)); } @@ -135,12 +143,12 @@ void LyXVC::checkIn() { lyxerr[Debug::LYXVC] << "LyXVC: checkIn" << endl; - pair tmp = Alert::askForText(_("LyX VC: Log Message")); + pair tmp = Alert::askForText(_("LyX VC: Log Message")); if (tmp.first) { if (tmp.second.empty()) { tmp.second = _("(no log message)"); } - vcs->checkIn(tmp.second); + vcs->checkIn(to_utf8(tmp.second)); } else { lyxerr[Debug::LYXVC] << "LyXVC: user cancelled" << endl; } @@ -159,10 +167,10 @@ void LyXVC::revert() { lyxerr[Debug::LYXVC] << "LyXVC: revert" << endl; - string const file = MakeDisplayPath(owner_->fileName(), 20); - string text = bformat(_("Reverting to the stored version of the " + docstring const file = makeDisplayPath(owner_->fileName(), 20); + docstring text = bformat(_("Reverting to the stored version of the " "document %1$s will lose all current changes.\n\n" - "Do you want to revert to the saved version?"), file); + "Do you want to revert to the saved version?"), file); int const ret = Alert::prompt(_("Revert to stored version of document?"), text, 0, 1, _("&Revert"), _("&Cancel")); @@ -221,8 +229,16 @@ string const LyXVC::getLogFile() const if (!vcs) return string(); - string tmpf = tempName(string(), "lyxvclog"); + FileName const tmpf(tempName(FileName(), "lyxvclog")); + if (tmpf.empty()) { + lyxerr[Debug::LYXVC] << "Could not generate logfile " + << tmpf << endl; + return string(); + } lyxerr[Debug::LYXVC] << "Generating logfile " << tmpf << endl; vcs->getLog(tmpf); - return tmpf; + return tmpf.absFilename(); } + + +} // namespace lyx