#include <config.h>
-#include "debug.h"
+#include "support/debug.h"
#include <aspell.h>
#include "ASpell_local.h"
+#include "LyXRC.h"
#include "WordLangTuple.h"
-#include <boost/assert.hpp>
+#include "support/lassert.h"
-using std::string;
+using namespace std;
namespace lyx {
// platforms (cygwin, OS X). Therefore we use utf-8, that does
// always work.
aspell_config_replace(config, "encoding", "utf-8");
+ if (lyxrc.spellchecker_accept_compound)
+ // Consider run-together words as legal compounds
+ aspell_config_replace(config, "run-together", "true");
+ else
+ // Report run-together words as errors
+ aspell_config_replace(config, "run-together", "false");
AspellCanHaveError * err = new_aspell_speller(config);
if (spell_error_object)
delete_aspell_can_have_error(spell_error_object);
AspellSpeller * m = it->second.speller;
int const word_ok = aspell_speller_check(m, to_utf8(word.word()).c_str(), -1);
- BOOST_ASSERT(word_ok != -1);
+ LASSERT(word_ok != -1, /**/);
+
+ if (word_ok)
+ return OK;
+
+ AspellWordList const * sugs =
+ aspell_speller_suggest(m, to_utf8(word.word()).c_str(), -1);
+ LASSERT(sugs != 0, /**/);
+ els = aspell_word_list_elements(sugs);
+ if (aspell_word_list_empty(sugs))
+ res = UNKNOWN_WORD;
+ else
+ res = SUGGESTED_WORDS;
- if (word_ok) {
- res = OK;
- } else {
- AspellWordList const * sugs =
- aspell_speller_suggest(m, to_utf8(word.word()).c_str(), -1);
- BOOST_ASSERT(sugs != 0);
- els = aspell_word_list_elements(sugs);
- if (aspell_word_list_empty(sugs))
- res = UNKNOWN_WORD;
- else
- res = SUGGESTED_WORDS;
- }
return res;
}
docstring const ASpell::error()
{
char const * err = 0;
-
- if (spell_error_object && aspell_error_number(spell_error_object) != 0) {
+
+ if (spell_error_object && aspell_error_number(spell_error_object) != 0)
err = aspell_error_message(spell_error_object);
- }
// FIXME UNICODE: err is not in UTF8, but probably the locale encoding
return (err ? from_utf8(err) : docstring());