bug-indent
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Doubling keywords


From: Lynn Kerby
Subject: Re: Doubling keywords
Date: Sat, 2 Sep 2006 13:15:44 -0700


On Sep 1, 2006, at 12:24 PM, Trevor Blackwell wrote:

I _know_ that indent isn't supported for C++, but the following bug in
formating C++ code seems like it might represent a more general latent
bug:

$ echo 'int foo::test() const { return 7; }' | gindent

int
foo::test() const const
{
        return 7;
}

Note that the 'const' token gets output twice. It only does it with
'const' and not with other tokens:

$ echo 'int foo::test() _const { return 7; }' | gindent
int
foo::test()
    _const
{
        return 7;
}

$ echo 'int foo::test() volatile { return 7; }' | gindent
int
foo::test()
        volatile {
                return 7;
        }

I can't get it to happen without any C++isms

$ echo 'int foo_test() const { return 7; }' | gindent
int
foo_test()
        const {
                return 7;
        }

but it seems like it shouldn't duplicate tokens under any circumstances.

If there's a line break in the right place it will concatenate the
tokens:

$ (echo 'int foo::test()' ; echo 'const { return 7; }' ) | gindent
int
foo::test()
     constconst
{
        return 7;
}

Version info:

$ gindent --version
GNU indent 2.2.9

--
Trevor Blackwell              650 776 7870           address@hidden



_______________________________________________
bug-indent mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/bug-indent

Hello Trevor,

A similar bug (at least for the const part) was reported a couple of months ago on the list. That report included a patch that was specific to the const token and it appeared to work, but IMO was incorrect as it seemed to just ignore the const token as part of a C++ function decl. I'm not much of a C++ programmer, but it sure seemed to me like it was more of a latent bug in indent than something specific to the const token.

I'll submit the following patch which seems to work for all your sample cases:


I've also fixed the whitespace concatenation issue that you saw in the last case (also a different latent bug) but you won't see it with the patch above. Hopefully we'll be getting an update to indent soon.

Lynn Kerby

reply via email to

[Prev in Thread] Current Thread [Next in Thread]