OSDN Git Service

C++ indenter: Fix multiple initializers.
authorChristian Kamm <christian.d.kamm@nokia.com>
Wed, 1 Jun 2011 09:10:57 +0000 (11:10 +0200)
committerChristian Kamm <christian.d.kamm@nokia.com>
Wed, 1 Jun 2011 09:14:50 +0000 (11:14 +0200)
Task-number: QTCREATORBUG-4993
Change-Id: I0f7d541eb7b26c37b8167e30e2949b6b939fe4b8
Reviewed-on: http://codereview.qt.nokia.com/297
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
src/plugins/cpptools/cppcodeformatter.cpp
tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp

index ebe66ce..4a355f6 100644 (file)
@@ -195,6 +195,7 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
             case T_RBRACE:      leave(true); continue;
             case T_SEMICOLON:   leave(); continue;
             case T_RPAREN:      leave(); continue;
+            case T_COMMA:       leave(); continue;
             default:            enter(assign_open); continue;
             } break;
 
@@ -218,6 +219,7 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
             case T_RBRACE:      leave(true); continue;
             case T_SEMICOLON:   leave(); continue;
             case T_RPAREN:      leave(); continue;
+            case T_COMMA:       leave(); continue;
             default:            tryExpression(); break;
             } break;
 
index ab80877..3df75d4 100644 (file)
@@ -73,6 +73,7 @@ private Q_SLOTS:
     void bug1();
     void bug2();
     void bug3();
+    void bug4();
     void switch1();
     void switch2();
     void switch3();
@@ -778,6 +779,20 @@ void tst_CodeFormatter::bug3()
     checkIndent(data);
 }
 
+void tst_CodeFormatter::bug4()
+{
+    QList<Line> data;
+    data << Line("void test()")
+         << Line("{")
+         << Line("    int a = 0, b = {0};")
+         << Line("    int a = {0}, b = {0};")
+         << Line("    int b;")
+         << Line("}")
+         << Line("int c;")
+            ;
+    checkIndent(data);
+}
+
 void tst_CodeFormatter::braceList()
 {
     QList<Line> data;