handle embedded whitespace in #if 0 processing
This commit is contained in:
parent
87fd55b155
commit
31c56d7353
|
@ -178,15 +178,15 @@ std::string Preprocessor::read(std::istream &istr, const std::string &filename,
|
||||||
// Remove all comments..
|
// Remove all comments..
|
||||||
result = removeComments(result, filename, settings);
|
result = removeComments(result, filename, settings);
|
||||||
|
|
||||||
// Remove '#if 0' blocks
|
|
||||||
if (result.find("#if 0\n") != std::string::npos)
|
|
||||||
result = removeIf0(result);
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// Clean up all preprocessor statements
|
// Clean up all preprocessor statements
|
||||||
result = preprocessCleanupDirectives(result);
|
result = preprocessCleanupDirectives(result);
|
||||||
|
|
||||||
|
// Remove '#if 0' blocks
|
||||||
|
if (result.find("#if 0\n") != std::string::npos)
|
||||||
|
result = removeIf0(result);
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// Clean up preprocessor #if statements with Parantheses
|
// Clean up preprocessor #if statements with Parantheses
|
||||||
|
|
|
@ -93,6 +93,7 @@ private:
|
||||||
TEST_CASE(error3);
|
TEST_CASE(error3);
|
||||||
|
|
||||||
TEST_CASE(if0_exclude);
|
TEST_CASE(if0_exclude);
|
||||||
|
TEST_CASE(if0_whitespace);
|
||||||
|
|
||||||
// Don't handle include in a #if 0 block
|
// Don't handle include in a #if 0 block
|
||||||
TEST_CASE(if0_include_1);
|
TEST_CASE(if0_include_1);
|
||||||
|
@ -655,6 +656,18 @@ private:
|
||||||
ASSERT_EQUALS("\n\n\nB\n", preprocessor.read(code,"",NULL));
|
ASSERT_EQUALS("\n\n\nB\n", preprocessor.read(code,"",NULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void if0_whitespace()
|
||||||
|
{
|
||||||
|
Settings settings;
|
||||||
|
Preprocessor preprocessor(&settings, this);
|
||||||
|
|
||||||
|
std::istringstream code(" # if 0 \n"
|
||||||
|
"A\n"
|
||||||
|
" # endif \n"
|
||||||
|
"B\n");
|
||||||
|
ASSERT_EQUALS("\n\n\nB\n", preprocessor.read(code,"",NULL));
|
||||||
|
}
|
||||||
|
|
||||||
void if0_include_1()
|
void if0_include_1()
|
||||||
{
|
{
|
||||||
Settings settings;
|
Settings settings;
|
||||||
|
|
Loading…
Reference in New Issue