diff options
Diffstat (limited to 'src/defargs.l')
-rw-r--r-- | src/defargs.l | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/defargs.l b/src/defargs.l index 7f1e1bb..52052fa 100644 --- a/src/defargs.l +++ b/src/defargs.l @@ -52,6 +52,7 @@ #include <assert.h> #include <ctype.h> #include <qregexp.h> +#include <qcstringlist.h> #include "defargs.h" #include "entry.h" @@ -102,6 +103,19 @@ static int yyread(char *buf,int max_size) return c; } +/* bug_520975 */ +static bool checkSpecialType(QCString &typ, QCString &nam) +{ + if (nam == "unsigned" || nam == "signed" || + nam == "volatile" || nam == "const") return TRUE; + QCStringList qsl=QCStringList::split(' ',typ); + for (uint j=0;j<qsl.count();j++) + { + if (!(qsl[j] == "unsigned" || qsl[j] == "signed" || + qsl[j] == "volatile" || qsl[j] == "const")) return FALSE; + } + return TRUE; +} %} B [ \t] @@ -384,8 +398,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" a->type.mid(sv)=="union" || a->type.mid(sv)=="class" || a->type.mid(sv)=="typename" || - a->type=="const" || - a->type=="volatile" + checkSpecialType(a->type, a->name) ) { a->type = a->type + " " + a->name; |