X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxvc.C;h=835408913fea55f57274c2e2cb01f4e54d9aa795;hb=cd4033aef3a3f1efdb5a676b8bab3d367f53a830;hp=220d7c2491381332f1d573c523cf95e14bc749f2;hpb=9bc730abdb60f9c7959f7d2bba5601e023983c23;p=lyx.git diff --git a/src/lyxvc.C b/src/lyxvc.C index 220d7c2491..835408913f 100644 --- a/src/lyxvc.C +++ b/src/lyxvc.C @@ -1,3 +1,18 @@ +/** + * \file lyxvc.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author Lars Gullik Bjønnes + * \author Jean-Marc Lasgouttes + * \author Angus Leeming + * \author John Levon + * \author André Pönitz + * \author Allan Rae + * + * Full author contact details are available in file CREDITS. + */ + #include #include "lyxvc.h" @@ -5,47 +20,52 @@ #include "debug.h" #include "buffer.h" #include "gettext.h" -#include "funcrequest.h" #include "frontends/Alert.h" -#include "frontends/LyXView.h" #include "support/filetools.h" #include "support/lyxlib.h" -#include -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; } @@ -54,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()) @@ -73,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()) { @@ -115,7 +135,7 @@ void LyXVC::registrer() return; } - vcs->registrer(tmp.second); + vcs->registrer(to_utf8(tmp.second)); } @@ -123,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; } @@ -147,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")); @@ -209,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