From 0f69aa511538694eaa9d2850593e33d481dff630 Mon Sep 17 00:00:00 2001 From: Neil Date: Fri, 6 Sep 2013 09:30:46 +1000 Subject: Be more explicit about the empty case to avoid warnings from Visual C++ analyzer. --- lexlib/WordList.cxx | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/lexlib/WordList.cxx b/lexlib/WordList.cxx index 51d68a659..eb91692d7 100644 --- a/lexlib/WordList.cxx +++ b/lexlib/WordList.cxx @@ -45,22 +45,24 @@ static char **ArrayFromWordList(char *wordlist, int *len, bool onlyLineEnds = fa prev = curr; } char **keywords = new char *[words + 1]; - words = 0; - prev = '\0'; - size_t slen = strlen(wordlist); - for (size_t k = 0; k < slen; k++) { - if (!wordSeparator[static_cast(wordlist[k])]) { - if (!prev) { - keywords[words] = &wordlist[k]; - words++; + int wordsStore = 0; + const size_t slen = strlen(wordlist); + if (words) { + prev = '\0'; + for (size_t k = 0; k < slen; k++) { + if (!wordSeparator[static_cast(wordlist[k])]) { + if (!prev) { + keywords[wordsStore] = &wordlist[k]; + wordsStore++; + } + } else { + wordlist[k] = '\0'; } - } else { - wordlist[k] = '\0'; + prev = wordlist[k]; } - prev = wordlist[k]; } - keywords[words] = &wordlist[slen]; - *len = words; + keywords[wordsStore] = &wordlist[slen]; + *len = wordsStore; return keywords; } -- cgit v1.2.3