diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2011-06-06 19:49:53 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2011-06-06 19:49:53 (GMT) |
commit | de297f6d77f3861b649f3fcba443483d6be6afe9 (patch) | |
tree | b158d4e26359c261b119f485d1d4c69a6034663c /src/scanner.l | |
parent | c604d141eb8b0708022a3e4b48b0b1871b692aa6 (diff) | |
download | Doxygen-de297f6d77f3861b649f3fcba443483d6be6afe9.zip Doxygen-de297f6d77f3861b649f3fcba443483d6be6afe9.tar.gz Doxygen-de297f6d77f3861b649f3fcba443483d6be6afe9.tar.bz2 |
Release-1.7.4-20110606
Diffstat (limited to 'src/scanner.l')
-rw-r--r-- | src/scanner.l | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/scanner.l b/src/scanner.l index 122cd05..7ebc0d8 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -2247,10 +2247,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) } } <FindMembers>[*&]+ { - if (current->type.stripWhiteSpace().right(1)!=yytext) - { - current->name += yytext ; - } + current->name += yytext ; addType( current ); } <FindMembers,MemberSpec,Function,NextSemi,BitFields,ReadInitializer,OldStyleArgs>";"{BN}*("/**"|"//!"|"/*!"|"///")"<" { @@ -4258,7 +4255,11 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) lastCurlyContext = FindMembers; if ( *yytext == ',' ) { - current->type = previous->type.data(); + current->type = previous->type; + // we need to strip any trailing * and & (see bugs 623023 and 649103 for test cases) + int i=current->type.length(); + while (i>0 && (current->type[i-1]=='*' || current->type[i-1]=='&' || current->type[i-1]==' ')) i--; + current->type = current->type.left(i); } if ( *yytext == '{' ) { |