diff options
author | Neil <nyamatongwe@gmail.com> | 2013-09-06 09:30:46 +1000 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2013-09-06 09:30:46 +1000 |
commit | 23161ce4fba929f67538ceacc3fb0413edb7b94c (patch) | |
tree | f321696766f86cc57510e5ce2fb01b15348778a7 | |
parent | 30c8f601262456acbc47b2c22b83320ce03939ce (diff) | |
download | scintilla-mirror-23161ce4fba929f67538ceacc3fb0413edb7b94c.tar.gz |
Be more explicit about the empty case to avoid warnings from Visual C++ analyzer.
-rw-r--r-- | lexlib/WordList.cxx | 28 |
1 files 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<unsigned char>(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<unsigned char>(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; } |