extern "C" int aspell_config_remove(Config * ths, const char * key) { PosibErr<void> ret = ths->remove(key); ths->err_.reset(ret.release_err()); if (ths->err_ != 0) return 0; return 1; }
extern "C" const KeyInfo * aspell_config_keyinfo(Config * ths, const char * key) { PosibErr<const KeyInfo *> ret = ths->keyinfo(key); ths->err_.reset(ret.release_err()); if (ths->err_ != 0) return 0; return ret.data; }
extern "C" ASPELL_EXPORT int aspell_config_replace(Config * ths, const char * key, const char * value) { PosibErr<void> ret = ths->replace(key, value); ths->err_.reset(ret.release_err()); if (ths->err_ != 0) return 0; return 1; }
extern "C" ASPELL_EXPORT int aspell_speller_save_all_word_lists(Speller * ths) { PosibErr<void> ret = ths->save_all_word_lists(); ths->err_.reset(ret.release_err()); if (ths->err_ != 0) return 0; return 1; }
extern "C" ASPELL_EXPORT int aspell_speller_clear_session(Speller * ths) { PosibErr<void> ret = ths->clear_session(); ths->err_.reset(ret.release_err()); if (ths->err_ != 0) return 0; return 1; }
extern "C" ASPELL_EXPORT int aspell_config_retrieve_bool(Config * ths, const char * key) { PosibErr<bool> ret = ths->retrieve_bool(key); ths->err_.reset(ret.release_err()); if (ths->err_ != 0) return -1; return ret.data; }
extern "C" int aspell_config_retrieve_list(Config * ths, const char * key, MutableContainer * lst) { PosibErr<void> ret = ths->retrieve_list(key, lst); ths->err_.reset(ret.release_err()); if (ths->err_ != 0) return 0; return 1; }
extern "C" int aspell_config_retrieve_int(Config * ths, const char * key) { PosibErr<unsigned int> ret = ths->retrieve_int(key); ths->err_.reset(ret.release_err()); if (ths->err_ != 0) return -1; return ret.data; }
extern "C" const char * aspell_config_retrieve(Config * ths, const char * key) { PosibErr<String> ret = ths->retrieve(key); ths->err_.reset(ret.release_err()); if (ths->err_ != 0) return 0; ths->temp_str = ret.data; return ths->temp_str.c_str(); }
extern "C" ASPELL_EXPORT const char * aspell_config_get_default(Config * ths, const char * key) { PosibErr<String> ret = ths->get_default(key); ths->err_.reset(ret.release_err()); if (ths->err_ != 0) return 0; ths->temp_str = ret.data; return ths->temp_str.c_str(); }
extern "C" ASPELL_EXPORT const WordList * aspell_speller_personal_word_list(Speller * ths) { PosibErr<const WordList *> ret = ths->personal_word_list(); ths->err_.reset(ret.release_err()); if (ths->err_ != 0) return 0; if (ret.data) const_cast<WordList *>(ret.data)->from_internal_ = ths->from_internal_; return ret.data; }
PosibErr<void> setup(const Config & c, ParmStr from, ParmStr to, Normalize norm) { delete conv; conv = 0; PosibErr<Convert *> pe = new_convert_if_needed(c, from, to, norm); if (pe.has_err()) return pe; conv = pe.data; return no_err; }
extern "C" ASPELL_EXPORT CanHaveError * new_aspell_speller(Config * config) { PosibErr<Speller *> ret = new_speller(config); if (ret.has_err()) { return new CanHaveError(ret.release_err()); } else { return ret; } }
PosibErr<void> setup(CachePtr<Data> & res, GlobalCache<Data> * cache, typename Data::CacheConfig * config, const typename Data::CacheKey & key) { PosibErr<Data *> pe = get_cache_data(cache, config, key); if (pe.has_err()) return pe; res.reset(pe.data); return no_err; }
extern "C" ASPELL_EXPORT int aspell_speller_add_to_session(Speller * ths, const char * word, int word_size) { ths->temp_str_0.clear(); ths->to_internal_->convert(word, word_size, ths->temp_str_0); unsigned int s0 = ths->temp_str_0.size(); PosibErr<void> ret = ths->add_to_session(MutableString(ths->temp_str_0.mstr(), s0)); ths->err_.reset(ret.release_err()); if (ths->err_ != 0) return 0; return 1; }
extern "C" ASPELL_EXPORT int aspell_speller_check(Speller * ths, const char * word, int word_size) { ths->temp_str_0.clear(); ths->to_internal_->convert(word, word_size, ths->temp_str_0); unsigned int s0 = ths->temp_str_0.size(); PosibErr<bool> ret = ths->check(MutableString(ths->temp_str_0.mstr(), s0)); ths->err_.reset(ret.release_err()); if (ths->err_ != 0) return -1; return ret.data; }
PosibErr<void> create_default_readonly_dict(StringEnumeration * els, Config & config) { CachePtr<Language> lang; PosibErr<Language *> res = new_language(config); if (res.has_err()) return res; lang.reset(res.data); lang->set_lang_defaults(config); RET_ON_ERR(create(els,*lang,config)); return no_err; }
extern "C" ASPELL_EXPORT const WordList * aspell_speller_suggest(Speller * ths, const char * word, int word_size) { ths->temp_str_0.clear(); ths->to_internal_->convert(word, word_size, ths->temp_str_0); unsigned int s0 = ths->temp_str_0.size(); PosibErr<const WordList *> ret = ths->suggest(MutableString(ths->temp_str_0.mstr(), s0)); ths->err_.reset(ret.release_err()); if (ths->err_ != 0) return 0; if (ret.data) const_cast<WordList *>(ret.data)->from_internal_ = ths->from_internal_; return ret.data; }
extern "C" ASPELL_EXPORT int aspell_speller_store_replacement(Speller * ths, const char * mis, int mis_size, const char * cor, int cor_size) { ths->temp_str_0.clear(); ths->to_internal_->convert(mis, mis_size, ths->temp_str_0); unsigned int s0 = ths->temp_str_0.size(); ths->temp_str_1.clear(); ths->to_internal_->convert(cor, cor_size, ths->temp_str_1); unsigned int s1 = ths->temp_str_1.size(); PosibErr<bool> ret = ths->store_replacement(MutableString(ths->temp_str_0.mstr(), s0), MutableString(ths->temp_str_1.mstr(), s1)); ths->err_.reset(ret.release_err()); if (ths->err_ != 0) return -1; return ret.data; }
PosibErr<Data *> get_cache_data(GlobalCache<Data> * cache, typename Data::CacheConfig * config, const typename Data::CacheKey & key) { LOCK(&cache->lock); Data * n = cache->find(key); //CERR << "Getting " << key << " for " << cache->name << "\n"; if (n) { n->refcount++; return n; } PosibErr<Data *> res = Data::get_new(key, config); if (res.has_err()) { //CERR << "ERROR\n"; return res; } n = res.data; cache->add(n); //CERR << "LOADED FROM DISK\n"; return n; }