mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-26 11:16:55 +00:00
* Thesaurus.cpp:
* docstring.{cpp,h}: - move conversion functions to_iconv_encoding and from_iconv_encoding from Thesaurus to docstring. * HunspellChecker.cpp: - use correct encoding for string conversion. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33407 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
94761bb7e5
commit
59d384f02b
@ -183,11 +183,14 @@ SpellChecker::Result HunspellChecker::check(WordLangTuple const & wl)
|
||||
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;
|
||||
|
||||
@ -224,16 +227,17 @@ void HunspellChecker::suggest(WordLangTuple const & wl,
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,6 @@
|
||||
#include "support/gettext.h"
|
||||
#include "support/lstrings.h"
|
||||
#include "support/os.h"
|
||||
#include "support/unicode.h"
|
||||
|
||||
#include "support/mythes/mythes.hxx"
|
||||
|
||||
@ -38,21 +37,6 @@ namespace lyx {
|
||||
|
||||
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
|
||||
|
@ -152,6 +152,22 @@ string const to_filesystem8bit(docstring const & s)
|
||||
}
|
||||
|
||||
|
||||
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));
|
||||
|
@ -57,6 +57,14 @@ docstring const from_filesystem8bit(std::string const & s);
|
||||
/// 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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user