From 120a40308f90d265ffae9fe15a330f9a0962335e Mon Sep 17 00:00:00 2001 From: Jannick Date: Mon, 28 Aug 2017 17:07:27 +1000 Subject: Backport: Bug [#1966]. "defined A" removes "A" before replacing "defined" with value. Backport of changeset 6382:f5aebab4fb4b. --- doc/ScintillaHistory.html | 7 ++++--- lexers/LexCPP.cxx | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index e6569155f..2a97771f7 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -570,9 +570,10 @@ Bug #1919.
  • - The C++ lexer improved preprocessor conformance. - Default value of 0 for undefined preprocessor symbols. - #define A is treated as #define A 1. + The C++ lexer improved preprocessor conformance.
    + Default value of 0 for undefined preprocessor symbols.
    + #define A is treated as #define A 1.
    + "defined A" removes "A" before replacing "defined" with value. Bug #1966.
  • diff --git a/lexers/LexCPP.cxx b/lexers/LexCPP.cxx index 5761d45f5..5a198d9e4 100644 --- a/lexers/LexCPP.cxx +++ b/lexers/LexCPP.cxx @@ -1522,6 +1522,7 @@ void LexerCPP::EvaluateTokens(std::vector &tokens, const SymbolTabl if (it != preprocessorDefinitions.end()) { val = "1"; } + tokens.erase(tokens.begin() + i + 1, tokens.begin() + i + 2); } tokens[i] = val; } else { -- cgit v1.2.3