bool empty() const { return slices_.empty(); }
/// is this the end position?
bool atEnd() const { return slices_.empty(); }
+ /// is this the last possible position?
+ bool atLastPos() const { return pit() == lastpit() && pos() == lastpos(); }
//
// access to slice at tip
/// fix DocIterator in circumstances that should never happen.
/// \return true if the DocIterator was fixed.
bool fixIfBroken();
+ /// Repopulate the slices insets from bottom to top. Useful
+ /// for stable iterators or Undo data.
+ void sanitize();
/// find index of CursorSlice with &cell() == &cell (or -1 if not found)
int find(MathData const & cell) const;