diff options
author | Neil Hodgson <nyamatongwe@gmail.com> | 2014-06-19 11:48:18 +1000 |
---|---|---|
committer | Neil Hodgson <nyamatongwe@gmail.com> | 2014-06-19 11:48:18 +1000 |
commit | 4b65e052bf2b3566bd50e6ba812e153e2a85e2b2 (patch) | |
tree | 48453a8eedfd56d5f498ca535430e868e7c60f18 /lexers/LexCPP.cxx | |
parent | 6eb24ea95d4e5f9f2c591da989a56e46342e31ef (diff) | |
download | scintilla-mirror-4b65e052bf2b3566bd50e6ba812e153e2a85e2b2.tar.gz |
Bug [#1614]. Don't crash on incomplete macro definition "#define x(".
Diffstat (limited to 'lexers/LexCPP.cxx')
-rw-r--r-- | lexers/LexCPP.cxx | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lexers/LexCPP.cxx b/lexers/LexCPP.cxx index b7ff1859b..5485bf228 100644 --- a/lexers/LexCPP.cxx +++ b/lexers/LexCPP.cxx @@ -1220,7 +1220,9 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle, size_t startValue = endArgs+1; while ((startValue < restOfLine.length()) && IsSpaceOrTab(restOfLine[startValue])) startValue++; - std::string value = restOfLine.substr(startValue); + std::string value; + if (startValue < restOfLine.length()) + value = restOfLine.substr(startValue); preprocessorDefinitions[key] = SymbolValue(value, args); ppDefineHistory.push_back(PPDefinition(lineCurrent, key, value, false, args)); definitionsChanged = true; |