#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "affixmgr.hxx"
#include "hunspell.hxx"
#include "suggestmgr.hxx"
#include "hunspell.h"
#ifndef HUNSPELL_CHROME_CLIENT
# include "config.h"
#endif
#include "csutil.hxx"
#include <limits>
#include <string>
#define MAXWORDUTF8LEN …
class HunspellImpl
{ … };
#ifdef HUNSPELL_CHROME_CLIENT
Hunspell::Hunspell(base::span<const unsigned char> bdict_data)
: … { … }
#ifdef HUNSPELL_CHROME_CLIENT
HunspellImpl::HunspellImpl(base::span<const unsigned char> bdict_data) { … }
Hunspell::~Hunspell() { … }
HunspellImpl::~HunspellImpl() { … }
#ifndef HUNSPELL_CHROME_CLIENT
int Hunspell::add_dic(const char* dpath, const char* key) {
return m_Impl->add_dic(dpath, key);
}
int HunspellImpl::add_dic(const char* dpath, const char* key) {
if (!affixpath)
return 1;
m_HMgrs.push_back(new HashMgr(dpath, affixpath, key));
return 0;
}
#endif
size_t HunspellImpl::cleanword2(std::string& dest,
std::vector<w_char>& dest_utf,
const std::string& src,
int* pcaptype,
size_t* pabbrev) { … }
void HunspellImpl::cleanword(std::string& dest,
const std::string& src,
int* pcaptype,
int* pabbrev) { … }
void HunspellImpl::mkallcap(std::string& u8) { … }
int HunspellImpl::mkallsmall2(std::string& u8, std::vector<w_char>& u16) { … }
std::string HunspellImpl::sharps_u8_l1(const std::string& source) { … }
hentry* HunspellImpl::spellsharps(std::string& base,
size_t n_pos,
int n,
int repnum,
int* info,
std::string* root) { … }
int HunspellImpl::is_keepcase(const hentry* rv) { … }
void HunspellImpl::insert_sug(std::vector<std::string>& slst, const std::string& word) { … }
bool Hunspell::spell(const std::string& word, int* info, std::string* root) { … }
bool HunspellImpl::spell(const std::string& word, int* info, std::string* root) { … }
struct hentry* HunspellImpl::checkword(const std::string& w, int* info, std::string* root) { … }
std::vector<std::string> Hunspell::suggest(const std::string& word) { … }
std::vector<std::string> HunspellImpl::suggest(const std::string& word) { … }
const std::string& Hunspell::get_dict_encoding() const { … }
const std::string& HunspellImpl::get_dict_encoding() const { … }
std::vector<std::string> Hunspell::stem(const std::vector<std::string>& desc) { … }
std::vector<std::string> HunspellImpl::stem(const std::vector<std::string>& desc) { … }
std::vector<std::string> Hunspell::stem(const std::string& word) { … }
std::vector<std::string> HunspellImpl::stem(const std::string& word) { … }
const char* Hunspell::get_wordchars() const { … }
const std::string& Hunspell::get_wordchars_cpp() const { … }
const std::string& HunspellImpl::get_wordchars() const { … }
const std::vector<w_char>& Hunspell::get_wordchars_utf16() const { … }
const std::vector<w_char>& HunspellImpl::get_wordchars_utf16() const { … }
void HunspellImpl::mkinitcap(std::string& u8) { … }
int HunspellImpl::mkinitcap2(std::string& u8, std::vector<w_char>& u16) { … }
int HunspellImpl::mkinitsmall2(std::string& u8, std::vector<w_char>& u16) { … }
int Hunspell::add(const std::string& word) { … }
int HunspellImpl::add(const std::string& word) { … }
int Hunspell::add_with_affix(const std::string& word, const std::string& example) { … }
int HunspellImpl::add_with_affix(const std::string& word, const std::string& example) { … }
int Hunspell::remove(const std::string& word) { … }
int HunspellImpl::remove(const std::string& word) { … }
const char* Hunspell::get_version() const { … }
const std::string& Hunspell::get_version_cpp() const { … }
const std::string& HunspellImpl::get_version() const { … }
struct cs_info* HunspellImpl::get_csconv() { … }
struct cs_info* Hunspell::get_csconv() { … }
void HunspellImpl::cat_result(std::string& result, const std::string& st) { … }
std::vector<std::string> Hunspell::analyze(const std::string& word) { … }
std::vector<std::string> HunspellImpl::analyze(const std::string& word) { … }
std::vector<std::string> Hunspell::generate(const std::string& word, const std::vector<std::string>& pl) { … }
std::vector<std::string> HunspellImpl::generate(const std::string& word, const std::vector<std::string>& pl) { … }
std::vector<std::string> Hunspell::generate(const std::string& word, const std::string& pattern) { … }
std::vector<std::string> HunspellImpl::generate(const std::string& word, const std::string& pattern) { … }
std::string HunspellImpl::get_xml_par(const char* par) { … }
int Hunspell::get_langnum() const { … }
int HunspellImpl::get_langnum() const { … }
bool Hunspell::input_conv(const std::string& word, std::string& dest) { … }
int Hunspell::input_conv(const char* word, char* dest, size_t destsize) { … }
bool HunspellImpl::input_conv(const std::string& word, std::string& dest) { … }
const char* HunspellImpl::get_xml_pos(const char* s, const char* attr) { … }
int HunspellImpl::check_xml_par(const char* q,
const char* attr,
const char* value) { … }
std::vector<std::string> HunspellImpl::get_xml_list(const char* list, const char* tag) { … }
std::vector<std::string> HunspellImpl::spellml(const std::string& in_word) { … }
int Hunspell::spell(const char* word, int* info, char** root) { … }
namespace {
int munge_vector(char*** slst, const std::vector<std::string>& items) { … }
}
void Hunspell::free_list(char*** slst, int n) { … }
int Hunspell::suggest(char*** slst, const char* word) { … }
int Hunspell::suffix_suggest(char*** slst, const char* root_word) { … }
char* Hunspell::get_dic_encoding() { … }
int Hunspell::stem(char*** slst, char** desc, int n) { … }
int Hunspell::stem(char*** slst, const char* word) { … }
int Hunspell::analyze(char*** slst, const char* word) { … }
int Hunspell::generate(char*** slst, const char* word, char** pl, int pln) { … }
int Hunspell::generate(char*** slst, const char* word, const char* pattern) { … }
Hunhandle* Hunspell_create(const char* affpath, const char* dpath) { … }
Hunhandle* Hunspell_create_key(const char* affpath,
const char* dpath,
const char* key) { … }
void Hunspell_destroy(Hunhandle* pHunspell) { … }
#ifndef HUNSPELL_CHROME_CLIENT
int Hunspell_add_dic(Hunhandle* pHunspell, const char* dpath) {
return reinterpret_cast<Hunspell*>(pHunspell)->add_dic(dpath);
}
#endif
int Hunspell_spell(Hunhandle* pHunspell, const char* word) { … }
char* Hunspell_get_dic_encoding(Hunhandle* pHunspell) { … }
int Hunspell_suggest(Hunhandle* pHunspell, char*** slst, const char* word) { … }
int Hunspell_analyze(Hunhandle* pHunspell, char*** slst, const char* word) { … }
int Hunspell_stem(Hunhandle* pHunspell, char*** slst, const char* word) { … }
int Hunspell_stem2(Hunhandle* pHunspell, char*** slst, char** desc, int n) { … }
int Hunspell_generate(Hunhandle* pHunspell,
char*** slst,
const char* word,
const char* pattern) { … }
int Hunspell_generate2(Hunhandle* pHunspell,
char*** slst,
const char* word,
char** desc,
int n) { … }
int Hunspell_add(Hunhandle* pHunspell, const char* word) { … }
int Hunspell_add_with_affix(Hunhandle* pHunspell,
const char* word,
const char* example) { … }
int Hunspell_remove(Hunhandle* pHunspell, const char* word) { … }
void Hunspell_free_list(Hunhandle*, char*** list, int n) { … }
std::vector<std::string> Hunspell::suffix_suggest(const std::string& root_word) { … }
std::vector<std::string> HunspellImpl::suffix_suggest(const std::string& root_word) { … }