fix bug 416

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@4308 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
John Levon 2002-05-31 01:14:53 +00:00
parent 57f3258dde
commit c2b8469578
2 changed files with 20 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2002-05-31 John Levon <moz@compsoc.man.ac.uk>
* lyxvc.C: fix bug 416 (make sure buffer is saved before
attempt to register it with a VCS)
2002-05-30 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr> 2002-05-30 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
* lyx_main.C (init): honor variables LYX_DIR_13x and * lyx_main.C (init): honor variables LYX_DIR_13x and

View File

@ -75,6 +75,16 @@ void LyXVC::buffer(Buffer * buf)
void LyXVC::registrer() void LyXVC::registrer()
{ {
string const filename = owner_->fileName();
// there must be a file to save
if (!IsFileReadable(filename)) {
Alert::alert(_("File not saved"),
_("You must save the file"),
_("before it can be registered."));
return;
}
// it is very likely here that the vcs is not created yet... // it is very likely here that the vcs is not created yet...
if (!vcs) { if (!vcs) {
string const cvs_entries = "CVS/Entries"; string const cvs_entries = "CVS/Entries";
@ -82,16 +92,16 @@ void LyXVC::registrer()
if (IsFileReadable(cvs_entries)) { if (IsFileReadable(cvs_entries)) {
lyxerr[Debug::LYXVC] lyxerr[Debug::LYXVC]
<< "LyXVC: registering " << "LyXVC: registering "
<< MakeDisplayPath(owner_->fileName()) << MakeDisplayPath(filename)
<< " with CVS" << endl; << " with CVS" << endl;
vcs = new CVS(cvs_entries, owner_->fileName()); vcs = new CVS(cvs_entries, filename);
} else { } else {
lyxerr[Debug::LYXVC] lyxerr[Debug::LYXVC]
<< "LyXVC: registering " << "LyXVC: registering "
<< MakeDisplayPath(owner_->fileName()) << MakeDisplayPath(filename)
<< " with RCS" << endl; << " with RCS" << endl;
vcs = new RCS(owner_->fileName()); vcs = new RCS(filename);
} }
vcs->owner(owner_); vcs->owner(owner_);
@ -100,7 +110,7 @@ void LyXVC::registrer()
// If the document is changed, we might want to save it // If the document is changed, we might want to save it
if (!vcs->owner()->isLyxClean() && if (!vcs->owner()->isLyxClean() &&
Alert::askQuestion(_("Changes in document:"), Alert::askQuestion(_("Changes in document:"),
MakeDisplayPath(vcs->owner()->fileName(), 50), MakeDisplayPath(filename, 50),
_("Save document and proceed?"))) { _("Save document and proceed?"))) {
vcs->owner()->getUser()->owner() vcs->owner()->getUser()->owner()
->getLyXFunc()->dispatch(LFUN_MENUWRITE); ->getLyXFunc()->dispatch(LFUN_MENUWRITE);