projects
/
m6w6
/
ext-psi
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Merge branch 'slimconfigure'
[m6w6/ext-psi]
/
src
/
types
/
cpp_macro_decl.c
diff --git
a/src/types/cpp_macro_decl.c
b/src/types/cpp_macro_decl.c
index 42ed0f4208bbad931b8879dc6b575e370cc048e4..6d3747e58dbaa4bed08fb0fc3ae4d7c4c0fd82e0 100644
(file)
--- a/
src/types/cpp_macro_decl.c
+++ b/
src/types/cpp_macro_decl.c
@@
-78,12
+78,23
@@
void psi_cpp_macro_decl_dump(int fd, struct psi_cpp_macro_decl *macro)
if (macro->exp) {
dprintf(fd, " ");
psi_num_exp_dump(fd, macro->exp);
if (macro->exp) {
dprintf(fd, " ");
psi_num_exp_dump(fd, macro->exp);
- } else if (macro->tokens) {
+ if (!macro->tokens) abort();
+ } else
+ if (macro->tokens) {
size_t i = 0;
struct psi_token *tok;
while (psi_plist_get(macro->tokens, i++, &tok)) {
size_t i = 0;
struct psi_token *tok;
while (psi_plist_get(macro->tokens, i++, &tok)) {
- dprintf(fd, " %s", tok->text);
+ switch (tok->type) {
+ case PSI_T_QUOTED_STRING:
+ dprintf(fd, " \"%s\"", tok->text);
+ break;
+ case PSI_T_QUOTED_CHAR:
+ dprintf(fd, " '%s'", tok->text);
+ break;
+ default:
+ dprintf(fd, " %s", tok->text);
+ }
}
}
}
}
}
}
@@
-120,6
+131,8
@@
bool psi_cpp_macro_decl_equal(struct psi_cpp_macro_decl *d1, struct psi_cpp_macr
if (!cmp_token_list(d1->sig, d2->sig)) {
return false;
}
if (!cmp_token_list(d1->sig, d2->sig)) {
return false;
}
+ } else if (d2->sig) {
+ return false;
}
if (d1->tokens) {
}
if (d1->tokens) {
@@
-130,6
+143,8
@@
bool psi_cpp_macro_decl_equal(struct psi_cpp_macro_decl *d1, struct psi_cpp_macr
if (!cmp_token_list(d1->tokens, d2->tokens)) {
return false;
}
if (!cmp_token_list(d1->tokens, d2->tokens)) {
return false;
}
+ } else if (d2->tokens) {
+ return false;
}
/* FIXME compare num_exps */
}
/* FIXME compare num_exps */