Subject: bug#6066: closed (Re: bug#6066: Incorrect C++ indentation in emacs 23.1.96)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 03 Oct 2011 22:37:02 +0000

Your bug report

#6066: Incorrect C++ indentation in emacs 23.1.96

which was filed against the emacs,cc-mode package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
6066: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6066
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#6066: Incorrect C++ indentation in emacs 23.1.96
From: Glenn Morris <[email-masked]>
To: [email-masked]
Date: Mon, 03 Oct 2011 18:35:26 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Version: 24.1

I can reproduce this in Emacs 23.3, but not in the current trunk, so it
looks like it has been fixed.

Subject: Incorrect C++ indentation in emacs 23.1.96
From: "Bob" <[email-masked]>
To: "'Emacs bug Tracking System'" <[email-masked]>
Date: Fri, 30 Apr 2010 09:44:04 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Emacs 23.1.96 incorrectly indents C++ line.

To reproduce:

Visit the attached "bug.H" file and do the following:

1. go-to-line 2   ( the "{")

2. C-e (end of line)

3. C-j (new line)

4. type in:

typedef TypeList<[C-j]

5. go-to-line 6       (Statement<Assign<EAsgn::Variable> >,)

6. C-k C-y (kill then yank)

7. go-to-line 4

8. C-y                       (you have just copied line 6)

Text now looks like:

namespace PT

{

  typedef TypeList<

    Statement<Assign<EAsgn::Variable> >,

  typedef TypeList<

    Statement<Assign<EAsgn::Variable> >,

    Statement<Symbol<Parameter<EParm::Overload> > >,

    Statement<Symbol<Parameter<EParm::Local> > >,

    Statement<Instance>

    >::Result
TStmtKindSet;

}

9. C-e (end of line 4)

10. [Backspace]        (to delete ',')

11. C-j (new-line)

12. type in:

>::Result[TAB]TFoo;

13. go-to-line 7       (at beginning of line "typedef TypeList<")

14. [TAB] to indent        <<<<<<<<<<<<< Incorrect indentation happens here
<<<<<<<<<<<<<<<<<<<

Text now looks like:

namespace PT

{

  typedef TypeList<

    Statement<Assign<EAsgn::Variable> >

    >::Result          TFoo;

typedef TypeList<

    Statement<Assign<EAsgn::Variable> >,

    Statement<Symbol<Parameter<EParm::Overload> > >,

    Statement<Symbol<Parameter<EParm::Local> > >,

    Statement<Instance>

    >::Result
TStmtKindSet;

}

Observe line 7 indents incorrectly to column 0.

Saving the buffer, starting a new emacs 23.1.96, visit "bug.H", [TAB] on
line

7 re-indents correctly.