]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfind.cpp
installer: further preparation
[lyx.git] / src / lyxfind.cpp
index 3338c2f9a6f271bb3234250e1f7bf831843d0e94..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()) {
@@ -280,7 +264,8 @@ pair<bool, int> replaceOne(BufferView * bv, docstring searchstr,
        cap::replaceSelectionWithString(cur, replacestr);
        if (forward) {
                cur.pos() += replacestr.length();
-               LASSERT(cur.pos() <= cur.lastpos(), /* */);
+               LASSERT(cur.pos() <= cur.lastpos(),
+                       cur.pos() = cur.lastpos());
        }
        if (findnext)
                findOne(bv, searchstr, case_sens, whole, forward, false);
@@ -403,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;
 }
 
 
@@ -455,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)) {
@@ -482,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 {
 
@@ -1057,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();
-       LASSERT(buf.params().isLatex(), /* */);
+       LBUFERR(buf.params().isLatex());
 
        TexRow texrow;
        odocstringstream ods;
@@ -1134,7 +1139,7 @@ int findAdvFinalize(DocIterator & cur, MatchStringAdv const & match)
                cur.forwardPos();
        } while (cur && cur.depth() > d && match(cur) > 0);
        cur = old_cur;
-       LASSERT(match(cur) > 0, /* */);
+       LASSERT(match(cur) > 0, return 0);
        LYXERR(Debug::FIND, "Ok");
 
        // Compute the match length
@@ -1278,7 +1283,8 @@ int findBackwardsAdv(DocIterator & cur, MatchStringAdv & match)
 docstring stringifyFromForSearch(FindAndReplaceOptions const & opt,
                                 DocIterator const & cur, int len)
 {
-       LASSERT(cur.pos() >= 0 && cur.pos() <= cur.lastpos(), /* */);
+       LASSERT(cur.pos() >= 0 && cur.pos() <= cur.lastpos(),
+               return docstring());
        if (!opt.ignoreformat)
                return latexifyFromCursor(cur, len);
        else
@@ -1363,7 +1369,7 @@ static void findAdvReplace(BufferView * bv, FindAndReplaceOptions const & opt, M
               << ", sel_len: " << sel_len << endl);
        if (sel_len == 0)
                return;
-       LASSERT(sel_len > 0, /**/);
+       LASSERT(sel_len > 0, return);
 
        if (!matchAdv(sel_beg, sel_len))
                return;
@@ -1375,7 +1381,7 @@ static void findAdvReplace(BufferView * bv, FindAndReplaceOptions const & opt, M
        string lyx = oss.str();
        Buffer repl_buffer("", false);
        repl_buffer.setUnnamed(true);
-       LASSERT(repl_buffer.readString(lyx), /**/);
+       LASSERT(repl_buffer.readString(lyx), return);
        if (opt.keep_case && sel_len >= 2) {
                if (cur.inTexted()) {
                        if (firstUppercase(cur))