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.