diff options
author | Dom Lachowicz <domlachowicz@gmail.com> | 2003-10-13 18:20:36 +0000 |
---|---|---|
committer | Dom Lachowicz <domlachowicz@gmail.com> | 2003-10-13 18:20:36 +0000 |
commit | 96f2eae12fec761be96cdec8ac42395982b149bc (patch) | |
tree | 8a001b3e79f92d113dd73665d4ceb15812fee91a | |
parent | 6b2cc812272f8010b61c12759782910b85494dc8 (diff) | |
download | enchant-96f2eae12fec761be96cdec8ac42395982b149bc.tar.gz |
some iconv error return condition checks
git-svn-id: svn+ssh://svn.abisource.com/svnroot/enchant/trunk@20870 bcba8976-2d24-0410-9c9c-aab3bd5fdfd6
-rw-r--r-- | src/ispell/ispell_checker.cpp | 6 | ||||
-rw-r--r-- | src/myspell/myspell_checker.cpp | 8 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/ispell/ispell_checker.cpp b/src/ispell/ispell_checker.cpp index e27117d..8a368b7 100644 --- a/src/ispell/ispell_checker.cpp +++ b/src/ispell/ispell_checker.cpp @@ -252,7 +252,8 @@ ISpellChecker::checkWord(const char * const utf8Word, size_t length) len_in = length * sizeof(char); len_out = sizeof( szWord ) - 1; - g_iconv(m_translate_in, &In, &len_in, &Out, &len_out); + if ((size_t)-1 == g_iconv(m_translate_in, &In, &len_in, &Out, &len_out)) + return false; *Out = '\0'; } @@ -294,7 +295,8 @@ ISpellChecker::suggestWord(const char * const utf8Word, size_t length, char *Out = word8; len_in = length; len_out = sizeof( word8 ) - 1; - g_iconv(m_translate_in, &In, &len_in, &Out, &len_out); + if ((size_t)-1 == g_iconv(m_translate_in, &In, &len_in, &Out, &len_out)) + return NULL; *Out = '\0'; } diff --git a/src/myspell/myspell_checker.cpp b/src/myspell/myspell_checker.cpp index 61d61e8..4c4108e 100644 --- a/src/myspell/myspell_checker.cpp +++ b/src/myspell/myspell_checker.cpp @@ -92,7 +92,8 @@ MySpellChecker::checkWord(const char *utf8Word, size_t len) char *out = word8; size_t len_in = len * sizeof(char); size_t len_out = sizeof( word8 ) - 1; - g_iconv(m_translate_in, &in, &len_in, &out, &len_out); + if ((size_t)-1 == g_iconv(m_translate_in, &in, &len_in, &out, &len_out)) + return false; *out = '\0'; if (myspell->spell(word8)) return true; @@ -107,12 +108,15 @@ MySpellChecker::suggestWord(const char* const utf8Word, size_t len, size_t *nsug || !g_iconv_is_valid(m_translate_in) || !g_iconv_is_valid(m_translate_out)) return 0; + char *in = (char*) utf8Word; char word8[MAXWORDLEN + 1]; char *out = word8; size_t len_in = len; size_t len_out = sizeof(word8) - 1; - g_iconv(m_translate_in, &in, &len_in, &out, &len_out); + if ((size_t)-1 == g_iconv(m_translate_in, &in, &len_in, &out, &len_out)) + return NULL; + *out = '\0'; char **sugMS; *nsug = myspell->suggest(&sugMS, word8); |