]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfunc.C
make "make distcheck" work
[lyx.git] / src / lyxfunc.C
index 69bcaf2ea3ecf79dcc5aa6b442816260c6f91300..f6e54aa3faf682d4d37af6ac964aedb5cdc7c024 100644 (file)
@@ -78,6 +78,7 @@
 #include "frontends/Menubar.h"
 #include "frontends/Toolbars.h"
 
+#include "support/environment.h"
 #include "support/filefilterlist.h"
 #include "support/filetools.h"
 #include "support/forkedcontr.h"
@@ -145,39 +146,27 @@ namespace {
 bool getStatus(LCursor cursor,
               FuncRequest const & cmd, FuncStatus & status)
 {
+       // Try to fix cursor in case it is broken.
+       cursor.fixIfBroken();
+
        // This is, of course, a mess. Better create a new doc iterator and use
        // this in Inset::getStatus. This might require an additional
        // BufferView * arg, though (which should be avoided)
        //LCursor safe = *this;
        bool res = false;
-       for ( ; cursor.size(); cursor.pop()) {
+       for ( ; cursor.depth(); cursor.pop()) {
                //lyxerr << "\nLCursor::getStatus: cmd: " << cmd << endl << *this << endl;
                DocIterator::idx_type & idx = cursor.idx();
                DocIterator::idx_type const lastidx = cursor.lastidx();
-
-               if (idx > lastidx) {
-                       lyxerr << "wrong idx " << idx << ", max is " << lastidx
-                               << ". Trying to correct this."  << endl;
-                       idx = lastidx;
-               }
+               BOOST_ASSERT(idx <= lastidx);
 
                DocIterator::pit_type & pit = cursor.pit();
                DocIterator::pit_type const lastpit = cursor.lastpit();
-
-               if (pit > lastpit) {
-                       lyxerr << "wrong par " << pit << ", max is " << lastpit
-                               << ". Trying to correct this."  << endl;
-                       pit = lastpit;
-               }
+               BOOST_ASSERT(pit <= lastpit);
 
                DocIterator::pos_type & pos = cursor.pos();
                DocIterator::pos_type const lastpos = cursor.lastpos();
-
-               if (pos > lastpos) {
-                       lyxerr << "wrong pos " << pos << ", max is " << lastpos
-                               << ". Trying to correct this."  << endl;
-                       pos = lastpos;
-               }
+               BOOST_ASSERT(pos <= lastpos);
 
                // The inset's getStatus() will return 'true' if it made
                // a definitive decision on whether it want to handle the
@@ -444,7 +433,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
 
        case LFUN_INSET_SETTINGS: {
                enable = false;
-               if (!cur.size())
+               if (!cur)
                        break;
                UpdatableInset * inset = cur.inset().asUpdatableInset();
                lyxerr << "inset: " << inset << endl;
@@ -547,7 +536,6 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
        case LFUN_GETNAME:
        case LFUN_NOTIFY:
        case LFUN_GOTOFILEROW:
-       case LFUN_GOTO_PARAGRAPH:
        case LFUN_DIALOG_SHOW_NEXT_INSET:
        case LFUN_DIALOG_HIDE:
        case LFUN_DIALOG_DISCONNECT_INSET:
@@ -1101,32 +1089,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        break;
                }
 
-               case LFUN_GOTO_PARAGRAPH: {
-                       istringstream is(argument);
-                       int id;
-                       is >> id;
-                       ParIterator par = owner->buffer()->getParFromID(id);
-                       if (par == owner->buffer()->par_iterator_end()) {
-                               lyxerr[Debug::INFO] << "No matching paragraph found! ["
-                                                               << id << ']' << endl;
-                               break;
-                       } else {
-                               lyxerr[Debug::INFO] << "Paragraph " << par->id()
-                                                               << " found." << endl;
-                       }
-
-                       // Set the cursor
-                       view()->setCursor(par, 0);
-
-                       view()->switchKeyMap();
-                       owner->view_state_changed();
-
-                       view()->center();
-                       // see BufferView_pimpl::center()
-                       view()->updateScrollbar();
-                       break;
-               }
-
                case LFUN_DIALOG_SHOW: {
                        string const name = cmd.getArg(0);
                        string data = trim(cmd.argument.substr(name.size()));