]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfind.cpp
installer: further preparation
[lyx.git] / src / lyxfind.cpp
index b170bb62338bcb1d90996413456f1a5f0f8d2e67..269b2123707207bbdb095a0db123ff1fdd87ef0f 100644 (file)
@@ -45,6 +45,7 @@
 #include "support/convert.h"
 #include "support/debug.h"
 #include "support/docstream.h"
+#include "support/FileName.h"
 #include "support/gettext.h"
 #include "support/lassert.h"
 #include "support/lstrings.h"
@@ -121,23 +122,6 @@ int findBackwards(DocIterator & cur, MatchString const & match,
 }
 
 
-bool findChange(DocIterator & cur, bool next)
-{
-       if (!next)
-               cur.backwardPos();
-       for (; cur; next ? cur.forwardPos() : cur.backwardPos())
-               if (cur.inTexted() && cur.paragraph().isChanged(cur.pos())) {
-                       if (!next)
-                               // if we search backwards, take a step forward
-                               // to correctly set the anchor
-                               cur.forwardPos();
-                       return true;
-               }
-
-       return false;
-}
-
-
 bool searchAllowed(docstring const & str)
 {
        if (str.empty()) {
@@ -404,15 +388,21 @@ bool lyxreplace(BufferView * bv,
 }
 
 
-bool findNextChange(BufferView * bv)
+namespace {
+bool findChange(DocIterator & cur, bool next)
 {
-       return findChange(bv, true);
-}
-
+       if (!next)
+               cur.backwardPos();
+       for (; cur; next ? cur.forwardPos() : cur.backwardPos())
+               if (cur.inTexted() && cur.paragraph().isChanged(cur.pos())) {
+                       if (!next)
+                               // if we search backwards, take a step forward
+                               // to correctly set the anchor
+                               cur.forwardPos();
+                       return true;
+               }
 
-bool findPreviousChange(BufferView * bv)
-{
-       return findChange(bv, false);
+       return false;
 }
 
 
@@ -456,13 +446,13 @@ bool findChange(BufferView * bv, bool next)
        Change orig_change = tip.paragraph().lookupChange(tip.pos());
 
        if (next) {
-               for (; !tip.at_end(); tip.forwardPos()) {
+               for (; tip.pit() < tip.lastpit() || tip.pos() < tip.lastpos(); tip.forwardPos()) {
                        Change change = tip.paragraph().lookupChange(tip.pos());
                        if (!change.isSimilarTo(orig_change))
                                break;
                }
        } else {
-               for (; !tip.at_begin();) {
+               for (; tip.pit() > 0 || tip.pos() > 0;) {
                        tip.backwardPos();
                        Change change = tip.paragraph().lookupChange(tip.pos());
                        if (!change.isSimilarTo(orig_change)) {
@@ -483,6 +473,20 @@ bool findChange(BufferView * bv, bool next)
 
        return true;
 }
+}
+
+
+bool findNextChange(BufferView * bv)
+{
+       return findChange(bv, true);
+}
+
+
+bool findPreviousChange(BufferView * bv)
+{
+       return findChange(bv, false);
+}
+
 
 namespace {
 
@@ -1058,7 +1062,7 @@ docstring latexifyFromCursor(DocIterator const & cur, int len)
        LYXERR(Debug::FIND, "  with cur.lastpost=" << cur.lastpos() << ", cur.lastrow="
               << cur.lastrow() << ", cur.lastcol=" << cur.lastcol());
        Buffer const & buf = *cur.buffer();
-       LBUFERR(buf.params().isLatex(), _("Buffer type mismatch."));
+       LBUFERR(buf.params().isLatex());
 
        TexRow texrow;
        odocstringstream ods;