]> git.lyx.org Git - lyx.git/blobdiff - src/LyXFunc.cpp
VCS: Handle one boundary condition.
[lyx.git] / src / LyXFunc.cpp
index f69f5f88826ff0803202e9d6c55137e3a02f8992..fcb7020f407209a88a9d498e91eda17fcd552f3f 100644 (file)
@@ -246,18 +246,18 @@ void LyXFunc::gotoBookmark(unsigned int idx, bool openFile, bool switchToBuffer)
        LASSERT(!bm.filename.empty(), /**/);
        string const file = bm.filename.absFilename();
        // if the file is not opened, open it.
-       if (!theBufferList().exists(file)) {
+       if (!theBufferList().exists(bm.filename)) {
                if (openFile)
                        dispatch(FuncRequest(LFUN_FILE_OPEN, file));
                else
                        return;
        }
        // open may fail, so we need to test it again
-       if (!theBufferList().exists(file))
+       if (!theBufferList().exists(bm.filename))
                return;
 
        // if the current buffer is not that one, switch to it.
-       if (lyx_view_->buffer()->absFileName() != file) {
+       if (lyx_view_->buffer()->fileName() != bm.filename) {
                if (!switchToBuffer)
                        return;
                dispatch(FuncRequest(LFUN_BUFFER_SWITCH, file));
@@ -458,7 +458,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                break;
 
        case LFUN_VC_REGISTER:
-               enable = !buf->lyxvc().inUse();
+               enable = !buf->lyxvc().inUse() && !buf->isUnnamed();
                break;
        case LFUN_VC_CHECK_IN:
                enable = buf->lyxvc().checkInEnabled();
@@ -488,7 +488,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
        /*
        case LFUN_BUFFER_WRITE:
        case LFUN_BUFFER_WRITE_AS: {
-               Buffer * b = theBufferList().getBuffer(cmd.getArg(0));
+               Buffer * b = theBufferList().getBuffer(FileName(cmd.getArg(0)));
                enable = b && (b->isUnnamed() || !b->isClean());
                break;
        }
@@ -1037,7 +1037,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                // --- version control -------------------------------
                case LFUN_VC_REGISTER:
                        LASSERT(lyx_view_ && lyx_view_->buffer(), /**/);
-                       if (!ensureBufferClean(view()))
+                       if (!ensureBufferClean(view()) || lyx_view_->buffer()->isUnnamed())
                                break;
                        if (!lyx_view_->buffer()->lyxvc().inUse()) {
                                lyx_view_->buffer()->lyxvc().registrer();
@@ -1052,7 +1052,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                                break;
                        if (lyx_view_->buffer()->lyxvc().inUse()
                                        && !lyx_view_->buffer()->isReadonly()) {
-                               lyx_view_->buffer()->lyxvc().checkIn();
+                               setMessage(from_utf8(lyx_view_->buffer()->lyxvc().checkIn()));
                                reloadBuffer();
                        }
                        break;
@@ -1062,7 +1062,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        if (!ensureBufferClean(view()))
                                break;
                        if (lyx_view_->buffer()->lyxvc().inUse()) {
-                               lyx_view_->buffer()->lyxvc().checkOut();
+                               setMessage(from_utf8(lyx_view_->buffer()->lyxvc().checkOut()));
                                reloadBuffer();
                        }
                        break;
@@ -1109,8 +1109,8 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                                // and get full path
                                FileName const s = fileSearch(string(), changeExtension(file_name, ".lyx"), "lyx");
                                // Either change buffer or load the file
-                               if (theBufferList().exists(s.absFilename()))
-                                       buf = theBufferList().getBuffer(s.absFilename());
+                               if (theBufferList().exists(s))
+                                       buf = theBufferList().getBuffer(s);
                                else {
                                        buf = lyx_view_->loadDocument(s);
                                        loaded = true;
@@ -1266,8 +1266,8 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        view()->saveBookmark(false);
                        Buffer * child = 0;
                        bool parsed = false;
-                       if (theBufferList().exists(filename.absFilename())) {
-                               child = theBufferList().getBuffer(filename.absFilename());
+                       if (theBufferList().exists(filename)) {
+                               child = theBufferList().getBuffer(filename);
                        } else {
                                setMessage(bformat(_("Opening child document %1$s..."),
                                        makeDisplayPath(filename.absFilename())));