if (d->isIgnored(wl))
return OK;
- string const word_to_check = to_utf8(wl.word());
Hunspell * h = d->speller(wl.lang()->code());
if (!h)
return OK;
int info;
+
+ string const encoding = h->get_dic_encoding();
+ string const word_to_check = to_iconv_encoding(wl.word(), encoding);
+
if (h->spell(word_to_check.c_str(), &info))
return OK;
docstring_list & suggestions)
{
suggestions.clear();
- string const word_to_check = to_utf8(wl.word());
Hunspell * h = d->speller(wl.lang()->code());
if (!h)
return;
+ string const encoding = h->get_dic_encoding();
+ string const word_to_check = to_iconv_encoding(wl.word(), encoding);
char ** suggestion_list;
int const suggestion_number = h->suggest(&suggestion_list, word_to_check.c_str());
if (suggestion_number <= 0)
return;
for (int i = 0; i != suggestion_number; ++i)
- suggestions.push_back(from_utf8(suggestion_list[i]));
+ suggestions.push_back(from_iconv_encoding(suggestion_list[i], encoding));
h->free_list(&suggestion_list, suggestion_number);
}
#include "support/gettext.h"
#include "support/lstrings.h"
#include "support/os.h"
-#include "support/unicode.h"
#include "support/mythes/mythes.hxx"
namespace {
-string const to_iconv_encoding(docstring const & s, string const & encoding)
-{
- std::vector<char> const encoded =
- ucs4_to_eightbit(s.data(), s.length(), encoding);
- return string(encoded.begin(), encoded.end());
-}
-
-
-docstring const from_iconv_encoding(string const & s, string const & encoding)
-{
- std::vector<char_type> const ucs4 =
- eightbit_to_ucs4(s.data(), s.length(), encoding);
- return docstring(ucs4.begin(), ucs4.end());
-}
-
typedef std::map<docstring, MyThes *> Thesauri;
} // namespace anon
}
+string const to_iconv_encoding(docstring const & s, string const & encoding)
+{
+ std::vector<char> const encoded =
+ ucs4_to_eightbit(s.data(), s.length(), encoding);
+ return string(encoded.begin(), encoded.end());
+}
+
+
+docstring const from_iconv_encoding(string const & s, string const & encoding)
+{
+ std::vector<char_type> const ucs4 =
+ eightbit_to_ucs4(s.data(), s.length(), encoding);
+ return docstring(ucs4.begin(), ucs4.end());
+}
+
+
docstring const normalize_c(docstring const & s)
{
return qstring_to_ucs4(toqstr(s).normalized(QString::NormalizationForm_C));
/// convert \p s from ucs4 to the encoding of the file system.
std::string const to_filesystem8bit(docstring const & s);
+/// convert \p s from ucs4 to the \p encoding.
+std::string const to_iconv_encoding(docstring const & s,
+ std::string const & encoding);
+
+/// convert \p s from \p encoding to ucs4.
+docstring const from_iconv_encoding(std::string const & s,
+ std::string const & encoding);
+
/// normalize \p s to precomposed form c
docstring const normalize_c(docstring const & s);