From b10a61c045bc2af559fbc42c8d0034c160c87013 Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Sun, 30 Dec 2012 16:16:58 +1100 Subject: Bug #3578824. Avoid crashes due to char being signed so negative for non-ASCII. From Isiledhel. --- lexers/LexCPP.cxx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'lexers') diff --git a/lexers/LexCPP.cxx b/lexers/LexCPP.cxx index 952037e9b..116d5a2b3 100644 --- a/lexers/LexCPP.cxx +++ b/lexers/LexCPP.cxx @@ -1172,7 +1172,7 @@ bool LexerCPP::EvaluateExpression(const std::string &expr, const std::map tokens; const char *cp = expr.c_str(); for (;;) { - if (setWord.Contains(*cp)) { + if (setWord.Contains(static_cast(*cp))) { word += *cp; } else { std::map::const_iterator it = preprocessorDefinitions.find(word); @@ -1187,13 +1187,13 @@ bool LexerCPP::EvaluateExpression(const std::string &expr, const std::map(*cp))) { + if (setRelOp.Contains(static_cast(cp[1]))) { op += cp[1]; cp++; } - } else if (setLogicalOp.Contains(*cp)) { - if (setLogicalOp.Contains(cp[1])) { + } else if (setLogicalOp.Contains(static_cast(*cp))) { + if (setLogicalOp.Contains(static_cast(cp[1]))) { op += cp[1]; cp++; } -- cgit v1.2.3