]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfind.cpp
Comment.
[lyx.git] / src / lyxfind.cpp
index 34ecff40a15f207f63412901c2ccf7273587b46f..bb53c35854739da4d9138dd7785bcdb38430b352 100644 (file)
@@ -22,9 +22,7 @@
 #include "buffer_funcs.h"
 #include "BufferView.h"
 #include "Changes.h"
-#include "support/debug.h"
 #include "FuncRequest.h"
-#include "support/gettext.h"
 #include "Text.h"
 #include "Paragraph.h"
 #include "ParIterator.h"
@@ -32,7 +30,9 @@
 #include "frontends/alert.h"
 
 #include "support/convert.h"
+#include "support/debug.h"
 #include "support/docstream.h"
+#include "support/gettext.h"
 #include "support/lstrings.h"
 
 using namespace std;
@@ -208,6 +208,7 @@ int replace(BufferView * bv, docstring const & searchstr,
        cap::replaceSelectionWithString(cur, replacestr, fw);
        bv->buffer().markDirty();
        find(bv, searchstr, cs, mw, fw, false);
+       bv->buffer().updateMacros();
        bv->processUpdateFlags(Update::Force | Update::FitCursor);
 
        return 1;
@@ -243,10 +244,10 @@ docstring const replace2string(docstring const & search, docstring const & repla
 }
 
 
-void find(BufferView * bv, FuncRequest const & ev)
+bool find(BufferView * bv, FuncRequest const & ev)
 {
        if (!bv || ev.action != LFUN_WORD_FIND)
-               return;
+               return false;
 
        //lyxerr << "find called, cmd: " << ev << endl;
 
@@ -260,12 +261,7 @@ void find(BufferView * bv, FuncRequest const & ev)
        bool matchword     = parse_bool(howto);
        bool forward       = parse_bool(howto);
 
-       bool const found = find(bv, search,
-                                 casesensitive, matchword, forward);
-
-       if (!found)
-               // emit message signal.
-               bv->message(_("String not found!"));
+       return find(bv, search, casesensitive, matchword, forward);
 }
 
 
@@ -311,11 +307,9 @@ void replace(BufferView * bv, FuncRequest const & ev, bool has_deleted)
        } else {
                // if we have deleted characters, we do not replace at all, but
                // rather search for the next occurence
-               bool const found = find(bv, search,
-                                       casesensitive, matchword, forward);
-
-               if (!found)
-                       // emit message signal.
+               if (find(bv, search, casesensitive, matchword, forward))
+                       bv->showCursor();
+               else
                        bv->message(_("String not found!"));
        }
 }