aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2013-09-06 09:30:46 +1000
committerNeil <nyamatongwe@gmail.com>2013-09-06 09:30:46 +1000
commit0f69aa511538694eaa9d2850593e33d481dff630 (patch)
tree4154002091f368e40a495dc102a7d890352cc678
parente8eae216a8ee441e620fd925370cc905a81ee966 (diff)
downloadscintilla-mirror-0f69aa511538694eaa9d2850593e33d481dff630.tar.gz
Be more explicit about the empty case to avoid warnings from Visual C++ analyzer.
-rw-r--r--lexlib/WordList.cxx28
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;
}