X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxfunc.C;h=f6e54aa3faf682d4d37af6ac964aedb5cdc7c024;hb=3c851f1f7951f3a24b57826f3e580e4318b5e6c4;hp=6085a5bbe6174a52fb6a07b216f589d4d3305b7f;hpb=d20ac267545cc43ef9cffe21a3534f43ddb5d083;p=lyx.git diff --git a/src/lyxfunc.C b/src/lyxfunc.C index 6085a5bbe6..f6e54aa3fa 100644 --- a/src/lyxfunc.C +++ b/src/lyxfunc.C @@ -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,6 +146,9 @@ 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) @@ -154,30 +158,15 @@ bool getStatus(LCursor cursor, //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