File tree Expand file tree Collapse file tree 1 file changed +20
-11
lines changed
Expand file tree Collapse file tree 1 file changed +20
-11
lines changed Original file line number Diff line number Diff line change @@ -262,21 +262,30 @@ static bool removeBlocksOfCode(const ReduceSettings &settings, std::vector<std::
262262
263263 // does code block start with "{"
264264 std::size_t pos2 = pos;
265- if (filedata[pos].find (" (" ) != std::string::npos && filedata[pos].find (" )" )==std::string::npos) {
266- ++pos2;
267- while (pos2+2U < filedata.size () && !filedata[pos2].empty () && filedata[pos2].find_first_of (" (){}" ) == std::string::npos)
268- ++pos2;
269- if (filedata[pos2].find_first_of (" ({}" )!=std::string::npos || filedata[pos2].find (" )" ) == std::string::npos)
270- break ;
265+
266+ // struct X { ..
267+ if (filedata[pos].find_first_of (" ();}" ) == std::string::npos && filedata[pos].at (filedata[pos].size ()-1U ) == ' {' ) {
268+
271269 }
272- pos2++;
273- if (pos2 < filedata.size () && !filedata[pos2].empty () && filedata[pos2].at (filedata[pos2].find_first_not_of (" " )) == ' :' ) {
270+
271+ // function declaration ..
272+ else {
273+ if (filedata[pos].find (" (" ) != std::string::npos && filedata[pos].find (" )" )==std::string::npos) {
274+ ++pos2;
275+ while (pos2+2U < filedata.size () && !filedata[pos2].empty () && filedata[pos2].find_first_of (" (){}" ) == std::string::npos)
276+ ++pos2;
277+ if (filedata[pos2].find_first_of (" ({}" )!=std::string::npos || filedata[pos2].find (" )" ) == std::string::npos)
278+ break ;
279+ }
274280 pos2++;
275- while (pos2 < filedata.size () && !filedata[pos2].empty () && filedata[pos2].at (filedata[pos2].find_first_not_of (" " )) == ' , ' )
281+ if (pos2 < filedata.size () && !filedata[pos2].empty () && filedata[pos2].at (filedata[pos2].find_first_not_of (" " )) == ' : ' ) {
276282 pos2++;
283+ while (pos2 < filedata.size () && !filedata[pos2].empty () && filedata[pos2].at (filedata[pos2].find_first_not_of (" " )) == ' ,' )
284+ pos2++;
285+ }
286+ if (pos2+2U >= filedata.size () || filedata[pos2] != " {" )
287+ break ;
277288 }
278- if (pos2+2U >= filedata.size () || filedata[pos2] != " {" )
279- break ;
280289 pos2++;
281290
282291 // find end of block..
You can’t perform that action at this time.
0 commit comments