ignore preprocessor lines which #define a symbol to 'nothing'

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55780 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Francesco Montorsi
2008-09-21 21:11:31 +00:00
parent c48d0d37c2
commit 0d2f4076e0

View File

@@ -537,24 +537,34 @@ bool IfaceCheckApp::ParsePreprocessorOutput(const wxString& filename)
// the format of this line should be:
// #define DEFNAME DEFVALUE
if (!line.StartsWith("#define ") || !defnameval.Contains(" ")) {
LogError("unexpected content in '%s' at line %d.", filename, i);
if (!line.StartsWith("#define ")) {
LogError("unexpected content in '%s' at line %d.", filename, i+1);
return false;
}
// get DEFNAME
wxString defname = defnameval.BeforeFirst(' ');
if (defname.Contains("("))
continue; // this is a macro, skip it!
if (defnameval.Contains(" "))
{
// get DEFNAME
wxString defname = defnameval.BeforeFirst(' ');
if (defname.Contains("("))
continue; // this is a macro, skip it!
// get DEFVAL
wxString defval = defnameval.AfterFirst(' ').Strip(wxString::both);
if (defval.StartsWith("(") && defval.EndsWith(")"))
defval = defval.Mid(1, defval.Len()-2);
// get DEFVAL
wxString defval = defnameval.AfterFirst(' ').Strip(wxString::both);
if (defval.StartsWith("(") && defval.EndsWith(")"))
defval = defval.Mid(1, defval.Len()-2);
// store this pair in the doxygen interface, where it can be useful
m_doxyInterface.AddPreprocessorValue(defname, defval);
useful++;
// store this pair in the doxygen interface, where it can be useful
m_doxyInterface.AddPreprocessorValue(defname, defval);
useful++;
}
else
{
// it looks like the format of this line is:
// #define DEFNAME
// we are not interested to symbols #defined to nothing,
// so we just ignore this line.
}
}
LogMessage("Parsed %d preprocessor #defines from '%s' which will be used later...",