From b634b3d5f34edc335a25239e833f9054620c6094 Mon Sep 17 00:00:00 2001 From: Jannick Date: Mon, 28 Aug 2017 17:07:27 +1000 Subject: Bug [#1966]. "defined A" removes "A" before replacing "defined" with value. --- 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 a6ea45827..faa16e696 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -533,9 +533,10 @@ Released 16 August 2017.
  • - 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 3fa925b40..840d3c8b9 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