]> git.lyx.org Git - lyx.git/blobdiff - src/pspell.C
* src/LaTeX.C
[lyx.git] / src / pspell.C
index 62d65e9546feef9f6638d3a20d7e889089167f46..f80aabd3ecfca943cc2f4673beb7afceb606021a 100644 (file)
@@ -24,7 +24,8 @@ extern "C" {
 
 #include <boost/assert.hpp>
 
-using lyx::docstring;
+
+namespace lyx {
 
 using std::endl;
 using std::string;
@@ -65,6 +66,7 @@ void PSpell::addManager(string const & lang)
 {
        PspellConfig * config = new_pspell_config();
        pspell_config_replace(config, "language-tag", lang.c_str());
+       pspell_config_replace(config, "encoding", "utf-8");
        PspellCanHaveError * err = new_pspell_manager(config);
        if (spell_error_object)
                delete_pspell_can_have_error(spell_error_object);
@@ -96,14 +98,14 @@ enum PSpell::Result PSpell::check(WordLangTuple const & word)
 
        PspellManager * m = it->second.manager;
 
-       int word_ok = pspell_manager_check(m, word.word().c_str());
+       int word_ok = pspell_manager_check(m, to_utf8(word.word()).c_str());
        BOOST_ASSERT(word_ok != -1);
 
        if (word_ok) {
                res = OK;
        } else {
                PspellWordList const * sugs =
-                       pspell_manager_suggest(m, word.word().c_str());
+                       pspell_manager_suggest(m, to_utf8(word.word()).c_str());
                BOOST_ASSERT(sugs != 0);
                els = pspell_word_list_elements(sugs);
                if (pspell_word_list_empty(sugs))
@@ -119,7 +121,7 @@ void PSpell::insert(WordLangTuple const & word)
 {
        Managers::iterator it = managers_.find(word.lang_code());
        if (it != managers_.end())
-               pspell_manager_add_to_personal(it->second.manager, word.word().c_str());
+               pspell_manager_add_to_personal(it->second.manager, to_utf8(word.word()).c_str());
 }
 
 
@@ -127,19 +129,19 @@ void PSpell::accept(WordLangTuple const & word)
 {
        Managers::iterator it = managers_.find(word.lang_code());
        if (it != managers_.end())
-               pspell_manager_add_to_session(it->second.manager, word.word().c_str());
+               pspell_manager_add_to_session(it->second.manager, to_utf8(word.word()).c_str());
 }
 
 
-string const PSpell::nextMiss()
+docstring const PSpell::nextMiss()
 {
        char const * str = 0;
 
        if (els)
                str = pspell_string_emulation_next(els);
        if (str)
-               return str;
-       return "";
+               return from_utf8(str);
+       return docstring();
 }
 
 
@@ -152,6 +154,9 @@ docstring const PSpell::error()
        }
 
        if (err)
-               return err;
-       return "";
+               return from_utf8(err);
+       return docstring();
 }
+
+
+} // namespace lyx