X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxfind.C;h=479d4771167799f20a9197f5167b4bc79b6f7c2a;hb=37e82a546392d43f787826b85481a11f2a27af15;hp=0c4c9e9eec1b17d62916a8f13d39e0828b188a0c;hpb=7c15014ec2884e50a17559c1269747658c924eb3;p=lyx.git diff --git a/src/lyxfind.C b/src/lyxfind.C index 0c4c9e9eec..479d477116 100644 --- a/src/lyxfind.C +++ b/src/lyxfind.C @@ -30,7 +30,6 @@ #include "frontends/Alert.h" #include "frontends/LyXView.h" -#include "support/textutils.h" #include "support/tostr.h" #include @@ -39,7 +38,7 @@ using lyx::support::lowercase; using lyx::support::uppercase; using lyx::support::split; -using lyx::par_type; +using lyx::pit_type; using lyx::pos_type; using std::advance; @@ -86,10 +85,10 @@ public: // if necessary, check whether string matches word if (mw) { - if (pos > 0 && IsLetterCharOrDigit(par.getChar(pos - 1))) + if (pos > 0 && par.isLetter(pos - 1)) return false; if (pos + lyx::pos_type(size) < parsize - && IsLetterCharOrDigit(par.getChar(pos + size))); + && par.isLetter(pos + size)); return false; } @@ -117,9 +116,11 @@ bool findForward(DocIterator & cur, MatchString const & match) bool findBackwards(DocIterator & cur, MatchString const & match) { - for (; cur; cur.backwardChar()) + while (cur) { + cur.backwardChar(); if (cur.inTexted() && match(cur.paragraph(), cur.pos())) return true; + } return false; } @@ -217,7 +218,7 @@ bool stringSelected(BufferView * bv, string const & searchstr, int replace(BufferView * bv, string const & searchstr, - string const & replacestr, bool cs, bool mw, bool fw) + string const & replacestr, bool cs, bool mw, bool fw) { if (!searchAllowed(bv, searchstr) || bv->buffer()->isReadonly()) return 0; @@ -344,10 +345,10 @@ bool findNextChange(BufferView * bv) return false; Paragraph const & par = cur.paragraph(); - pos_type pos = cur.pos(); + const pos_type pos = cur.pos(); Change orig_change = par.lookupChangeFull(pos); - pos_type parsize = par.size(); + const pos_type parsize = par.size(); pos_type end = pos; for (; end != parsize; ++end) { @@ -361,7 +362,11 @@ bool findNextChange(BufferView * bv) } } pos_type length = end - pos; - bv->putSelectionAt(cur, length, true); + bv->putSelectionAt(cur, length, false); + // if we used a lfun like in find/replace, dispatch would do + // that for us + bv->update(); + return true; }