Fixed #1112 (cppcheck fails because of accented characters in comments)
This commit is contained in:
parent
4dac46b2d7
commit
c05aebbc0a
|
@ -183,6 +183,19 @@ std::string Preprocessor::removeComments(const std::string &str, const std::stri
|
||||||
if (ch & 0x80)
|
if (ch & 0x80)
|
||||||
throw std::runtime_error("The code contains characters that are unhandled");
|
throw std::runtime_error("The code contains characters that are unhandled");
|
||||||
|
|
||||||
|
if (str.compare(i, 6, "#error") == 0 || str.compare(i, 8, "#warning") == 0)
|
||||||
|
{
|
||||||
|
if (str.compare(i, 6, "#error") == 0)
|
||||||
|
code << "#error";
|
||||||
|
|
||||||
|
i = str.find("\n", i);
|
||||||
|
if (i == std::string::npos)
|
||||||
|
break;
|
||||||
|
|
||||||
|
--i;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// We have finished a line that didn't contain any comment
|
// We have finished a line that didn't contain any comment
|
||||||
// (the '\n' is swallowed when a // comment is detected)
|
// (the '\n' is swallowed when a // comment is detected)
|
||||||
if (ch == '\n' && !suppressionIDs.empty())
|
if (ch == '\n' && !suppressionIDs.empty())
|
||||||
|
|
|
@ -78,6 +78,9 @@ private:
|
||||||
// #error => don't extract any code
|
// #error => don't extract any code
|
||||||
TEST_CASE(error1);
|
TEST_CASE(error1);
|
||||||
|
|
||||||
|
// #error with extended chars
|
||||||
|
TEST_CASE(error2);
|
||||||
|
|
||||||
// Handling include guards (don't create extra configuration for it)
|
// Handling include guards (don't create extra configuration for it)
|
||||||
TEST_CASE(includeguard);
|
TEST_CASE(includeguard);
|
||||||
|
|
||||||
|
@ -419,6 +422,18 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void error2()
|
||||||
|
{
|
||||||
|
const char filedata[] = "#error ê\n"
|
||||||
|
"#warning ê\n"
|
||||||
|
"123";
|
||||||
|
|
||||||
|
// Read string..
|
||||||
|
std::istringstream istr(filedata);
|
||||||
|
ASSERT_EQUALS("#error\n\n123", Preprocessor::read(istr));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void includeguard()
|
void includeguard()
|
||||||
{
|
{
|
||||||
// Handling include guards..
|
// Handling include guards..
|
||||||
|
|
Loading…
Reference in New Issue