]> git.lyx.org Git - features.git/commitdiff
fix bug 416
authorJohn Levon <levon@movementarian.org>
Fri, 31 May 2002 01:14:53 +0000 (01:14 +0000)
committerJohn Levon <levon@movementarian.org>
Fri, 31 May 2002 01:14:53 +0000 (01:14 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@4308 a592a061-630c-0410-9148-cb99ea01b6c8

src/ChangeLog
src/lyxvc.C

index 91eb9b4d1f93e41227891b91e71c2ca78f27d268..16e6fa9cea6e3a067c978f9ce37afb90bcf158dc 100644 (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>
 
        * lyx_main.C (init): honor variables LYX_DIR_13x and
index 4ac6398c5f34350b19aa8708b5ac90cb2d64d3f8..a181ec96b4da783e6e44bc9ce16eef974a93c51e 100644 (file)
@@ -75,6 +75,16 @@ void LyXVC::buffer(Buffer * buf)
 
 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...
        if (!vcs) {
                string const cvs_entries = "CVS/Entries";
@@ -82,16 +92,16 @@ void LyXVC::registrer()
                if (IsFileReadable(cvs_entries)) {
                        lyxerr[Debug::LYXVC]
                                << "LyXVC: registering "
-                               << MakeDisplayPath(owner_->fileName())
+                               << MakeDisplayPath(filename)
                                << " with CVS" << endl;
-                       vcs = new CVS(cvs_entries, owner_->fileName());
+                       vcs = new CVS(cvs_entries, filename);
 
                } else {
                        lyxerr[Debug::LYXVC]
                                << "LyXVC: registering "
-                               << MakeDisplayPath(owner_->fileName())
+                               << MakeDisplayPath(filename)
                                << " with RCS" << endl;
-                       vcs = new RCS(owner_->fileName());
+                       vcs = new RCS(filename);
                }
 
                vcs->owner(owner_);
@@ -100,7 +110,7 @@ void LyXVC::registrer()
        // If the document is changed, we might want to save it
        if (!vcs->owner()->isLyxClean() &&
            Alert::askQuestion(_("Changes in document:"),
-                       MakeDisplayPath(vcs->owner()->fileName(), 50),
+                       MakeDisplayPath(filename, 50),
                        _("Save document and proceed?"))) {
                vcs->owner()->getUser()->owner()
                        ->getLyXFunc()->dispatch(LFUN_MENUWRITE);