summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReuben Thomas <rrt@sc3d.org>2020-09-01 17:42:50 +0100
committerReuben Thomas <rrt@sc3d.org>2020-09-01 21:33:04 +0100
commit420013f935cbbd0c986afa2be47340b36f3e7c13 (patch)
treed5b0a9677c7d34e7bb27f87b012570431f2f0def
parentcc65833ad1921d1877f8fd71ab6e06475b53e324 (diff)
downloadenchant-420013f935cbbd0c986afa2be47340b36f3e7c13.tar.gz
Hunspell: fix use of deprecated APIs
-rw-r--r--providers/enchant_hunspell.cpp18
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