The branch, 2.0.x, has been updated.

- Log -----------------------------------------------------------------

commit 7cc30cdf29c28fd780b1faa58832e9c72353be7a
Author: Stephan Witt <sw...@lyx.org>
Date:   Fri Jul 27 00:34:17 2012 +0200

    Fix bug #8238: correct the forward argument of replace2string() in 
on_replacePB_clicked().
    (cherry picked from commit 44b327800666f30d2713c6c9e26f275aadfa4b9c)
    Fix the wrong cursor move when forward flag is false:
    The forward flag is used to place the cursor behind the replaced text if 
it's true.
    But it's not correct to move the cursor if it's false. The cursor is in 
front of the
    replacement already after the replaceSelectionWithString() was done.
    (cherry picked from commit 430cf3ee5ef125b8bc610300afca58437b734306)

diff --git a/src/frontends/qt4/GuiSpellchecker.cpp 
b/src/frontends/qt4/GuiSpellchecker.cpp
index da8cca1..5dbdbbb 100644
--- a/src/frontends/qt4/GuiSpellchecker.cpp
+++ b/src/frontends/qt4/GuiSpellchecker.cpp
@@ -315,8 +315,13 @@ void SpellcheckerWidget::on_replacePB_clicked()
                return;
        docstring const textfield = qstring_to_ucs4(d->ui.wordED->text());
        docstring const replacement = 
qstring_to_ucs4(d->ui.replaceCO->currentText());
-       docstring const datastring = replace2string(replacement, textfield,
-               true, true, false, false);
+       docstring const datastring = 
+               replace2string(replacement, textfield,
+                       true,   // case sensitive
+                       true,   // match word
+                       false,  // all words
+                       true,   // forward
+                       false); // find next
 
        LYXERR(Debug::GUI, "Replace (" << replacement << ")");
        dispatch(FuncRequest(LFUN_WORD_REPLACE, datastring));
@@ -332,8 +337,13 @@ void SpellcheckerWidget::on_replaceAllPB_clicked()
                return;
        docstring const textfield = qstring_to_ucs4(d->ui.wordED->text());
        docstring const replacement = 
qstring_to_ucs4(d->ui.replaceCO->currentText());
-       docstring const datastring = replace2string(replacement, textfield,
-               true, true, true, true);
+       docstring const datastring =
+               replace2string(replacement, textfield,
+                       true,   // case sensitive
+                       true,   // match word
+                       true,   // all words
+                       true,   // forward
+                       false); // find next
 
        LYXERR(Debug::GUI, "Replace all (" << replacement << ")");
        dispatch(FuncRequest(LFUN_WORD_REPLACE, datastring));
diff --git a/src/frontends/qt4/Menus.cpp b/src/frontends/qt4/Menus.cpp
index d0f2e45..367f14b 100644
--- a/src/frontends/qt4/Menus.cpp
+++ b/src/frontends/qt4/Menus.cpp
@@ -783,7 +783,11 @@ void MenuDefinition::expandSpellingSuggestions(BufferView 
const * bv)
                                        MenuItem w(MenuItem::Command, 
toqstr(suggestion),
                                                FuncRequest(LFUN_WORD_REPLACE, 
                                                        
replace2string(suggestion, selection,
-                                                               true, true, 
false, true, false)));
+                                                               true,     // 
case sensitive
+                                                               true,     // 
match word
+                                                               false,    // 
all words
+                                                               true,     // 
forward
+                                                               false))); // 
find next
                                        if (i < m)
                                                add(w);
                                        else
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 7883475..f2c941b 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -275,9 +275,6 @@ pair<bool, int> replaceOne(BufferView * bv, docstring 
searchstr,
        if (forward) {
                cur.pos() += replacestr.length();
                LASSERT(cur.pos() <= cur.lastpos(), /* */);
-       } else {
-               cur.pos() -= replacestr.length();
-               LASSERT(cur.pos() >= 0, /* */);
        }
        if (findnext)
                findOne(bv, searchstr, case_sens, whole, forward, false);
diff --git a/status.20x b/status.20x
index b4efefb..8c492b4 100644
--- a/status.20x
+++ b/status.20x
@@ -138,6 +138,8 @@ What's new
 - When using a non-default language for the GUI, do not change locale
   settings of child proceses (bug 7741).
 
+- Fix crash in text replacement with spell checker (bug 8238).
+
 
 * DOCUMENTATION AND LOCALIZATION
 

-----------------------------------------------------------------------

Summary of changes:
 src/frontends/qt4/GuiSpellchecker.cpp |   18 ++++++++++++++----
 src/frontends/qt4/Menus.cpp           |    6 +++++-
 src/lyxfind.cpp                       |    3 ---
 status.20x                            |    2 ++
 4 files changed, 21 insertions(+), 8 deletions(-)


hooks/post-receive
-- 
The LyX Source Repository

Reply via email to