]> git.lyx.org Git - lyx.git/blobdiff - src/DocIterator.cpp
Rename the minted 'lang' external template option as 'language'
[lyx.git] / src / DocIterator.cpp
index 28d23e8d110f4f4658e676b6d1b67ad4447a10d4..51b44d88ef00b153c0ec9155afcfd16203fbb9af 100644 (file)
@@ -26,6 +26,7 @@
 
 #include "insets/InsetTabular.h"
 
+#include "support/convert.h"
 #include "support/debug.h"
 #include "support/ExceptionMessage.h"
 #include "support/gettext.h"
@@ -207,7 +208,7 @@ FontSpan DocIterator::locateWord(word_location const loc) const
        return f;
 }
 
-       
+
 CursorSlice const & DocIterator::innerTextSlice() const
 {
        LBUFERR(!empty());
@@ -226,6 +227,14 @@ CursorSlice const & DocIterator::innerTextSlice() const
 }
 
 
+docstring DocIterator::paragraphGotoArgument() const
+{
+       CursorSlice const & s = innerTextSlice();
+       return convert<docstring>(s.paragraph().id()) + ' ' +
+               convert<docstring>(s.pos());
+}
+
+
 DocIterator DocIterator::getInnerText() const
 {
        DocIterator texted = *this;
@@ -309,6 +318,24 @@ Inset * DocIterator::innerInsetOfType(int code) const
 }
 
 
+bool DocIterator::posBackward()
+{
+       if (pos() == 0)
+               return false;
+       --pos();
+       return true;
+}
+
+
+bool DocIterator::posForward()
+{
+       if (pos() == lastpos())
+               return false;
+       ++pos();
+       return true;
+}
+
+
 // This duplicates code above, but is in the critical path.
 // So please think twice before adding stuff
 void DocIterator::forwardPos()
@@ -671,9 +698,9 @@ ostream & operator<<(ostream & os, DocIterator const & dit)
 
 ///////////////////////////////////////////////////////
 
-StableDocIterator::StableDocIterator(DocIterator const & dit)
+StableDocIterator::StableDocIterator(DocIterator const & dit) :
+       data_(dit.internalData())
 {
-       data_ = dit.internalData();
        for (size_t i = 0, n = data_.size(); i != n; ++i)
                data_[i].inset_ = 0;
 }