diff options
author | Reuben Thomas <rrt@sc3d.org> | 2020-09-01 17:42:50 +0100 |
---|---|---|
committer | Reuben Thomas <rrt@sc3d.org> | 2020-09-01 21:33:04 +0100 |
commit | 420013f935cbbd0c986afa2be47340b36f3e7c13 (patch) | |
tree | d5b0a9677c7d34e7bb27f87b012570431f2f0def | |
parent | cc65833ad1921d1877f8fd71ab6e06475b53e324 (diff) | |
download | enchant-420013f935cbbd0c986afa2be47340b36f3e7c13.tar.gz |
Hunspell: fix use of deprecated APIs
-rw-r--r-- | providers/enchant_hunspell.cpp | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/providers/enchant_hunspell.cpp b/providers/enchant_hunspell.cpp index d768ce4..206e1e6 100644 --- a/providers/enchant_hunspell.cpp +++ b/providers/enchant_hunspell.cpp @@ -115,7 +115,7 @@ HunspellChecker::checkWord(const char *utf8Word, size_t len) if (static_cast<size_t>(-1) == result) return false; *out = '\0'; - if (hunspell->spell(word8)) + if (hunspell->spell(std::string(word8))) return true; else return false; @@ -142,29 +142,23 @@ HunspellChecker::suggestWord(const char* const utf8Word, size_t len, size_t *nsu return nullptr; *out = '\0'; - char **sugMS; - *nsug = hunspell->suggest(&sugMS, word8); + std::vector<std::string> sugMS = hunspell->suggest(word8); + *nsug = sugMS.size(); if (*nsug > 0) { char **sug = g_new0 (char *, *nsug + 1); for (size_t i=0; i<*nsug; i++) { - in = sugMS[i]; + in = const_cast<char *>(sugMS[i].c_str()); len_in = strlen(in); len_out = MAXWORDLEN; char *word = g_new0(char, len_out + 1); out = word; if (static_cast<size_t>(-1) == g_iconv(m_translate_out, &in, &len_in, &out, &len_out)) { - for (size_t j = i; j < *nsug; j++) - free(sugMS[j]); - free(sugMS); - *nsug = i; - return sug; + break; } - *(out) = 0; + *out = '\0'; sug[i] = word; - free(sugMS[i]); } - free(sugMS); return sug; } else |