mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-27 15:25:54 -04:00
cppparser: don't expand function-style macro if not followed by (
This commit is contained in:
parent
5b938278c2
commit
657af0edb5
@ -1942,7 +1942,22 @@ get_identifier(int c) {
|
||||
// Is it a manifest?
|
||||
Manifests::const_iterator mi = _manifests.find(name);
|
||||
if (mi != _manifests.end() && !should_ignore_manifest((*mi).second)) {
|
||||
return expand_manifest((*mi).second);
|
||||
// If the manifest is expecting arguments, we don't expand it unless the
|
||||
// the next token is an open-parenthesis.
|
||||
CPPManifest *manifest = (*mi).second;
|
||||
if (manifest->_has_parameters) {
|
||||
while (c != EOF && isspace(c)) {
|
||||
get();
|
||||
c = peek();
|
||||
}
|
||||
if (c == '(') {
|
||||
// It is followed by a parenthesis, so we can expand this.
|
||||
return expand_manifest(manifest);
|
||||
}
|
||||
} else {
|
||||
// Non-function-like macros are always expanded.
|
||||
return expand_manifest(manifest);
|
||||
}
|
||||
}
|
||||
if (name == "__FILE__") {
|
||||
return get_literal(SIMPLE_STRING, loc, loc.file._filename_as_referenced);
|
||||
|
Loading…
x
Reference in New Issue
Block a user