cppparser: Trim whitespace around macro arguments

This commit is contained in:
rdb 2024-03-27 02:25:56 +01:00
parent c5ab6573b0
commit 674c037c50

View File

@ -2320,7 +2320,7 @@ extract_manifest_args(const string &name, int num_args, int va_arg,
string arg; string arg;
while (c != EOF) { while (c != EOF) {
if (c == ',' && paren_level == 1) { if (c == ',' && paren_level == 1) {
args.push_back(arg); args.push_back(trim_blanks(arg));
arg = ""; arg = "";
c = get(); c = get();
@ -2379,7 +2379,7 @@ extract_manifest_args(const string &name, int num_args, int va_arg,
} }
} }
if (num_args != 0 || !arg.empty()) { if (num_args != 0 || !arg.empty()) {
args.push_back(arg); args.push_back(trim_blanks(arg));
} }
} }
@ -2539,10 +2539,14 @@ extract_manifest_args_inline(const string &name, int num_args,
} else { } else {
// Skip paren. // Skip paren.
p++; p++;
// Skip whitespace after paren.
while (p < expr.size() && isspace(expr[p])) {
p++;
}
size_t q = p; size_t q = p;
while (p < expr.size() && expr[p] != ')') { while (p < expr.size() && expr[p] != ')') {
if (expr[p] == ',') { if (expr[p] == ',') {
args.push_back(expr.substr(q, p - q)); args.push_back(trim_blanks(expr.substr(q, p - q)));
q = p+1; q = p+1;
} else if (expr[p] == '(') { } else if (expr[p] == '(') {
@ -2559,7 +2563,7 @@ extract_manifest_args_inline(const string &name, int num_args,
} }
p++; p++;
} }
args.push_back(expr.substr(q, p - q)); args.push_back(trim_blanks(expr.substr(q, p - q)));
if (p < expr.size() && expr[p] == ')') { if (p < expr.size() && expr[p] == ')') {
p++; p++;