diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CodeFormatterVisitor.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CodeFormatterVisitor.java index 376a6137c40..b87b971024e 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CodeFormatterVisitor.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CodeFormatterVisitor.java @@ -3132,11 +3132,18 @@ public class CodeFormatterVisitor extends ASTVisitor implements ICPPASTVisitor, formatLeftCurlyBrace(line, preferences.brace_position_for_block); if (startNode(body)) { try { + final boolean braceOnSameLine = DefaultCodeFormatterConstants.END_OF_LINE.equals(preferences.brace_position_for_block); + if (!braceOnSameLine) { + ok = true; + scribe.exitAlignment(alignment, true); + } formatBlockOpening((IASTCompoundStatement) body, preferences.brace_position_for_block, preferences.insert_space_before_opening_brace_in_block); - ok = true; - scribe.exitAlignment(alignment, true); + if (braceOnSameLine) { + ok = true; + scribe.exitAlignment(alignment, true); + } formatOpenedBlock((IASTCompoundStatement) body, preferences.brace_position_for_block, preferences.indent_statements_compare_to_block); diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/CodeFormatterTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/CodeFormatterTest.java index 4d17fe7922f..9945dea164e 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/CodeFormatterTest.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/CodeFormatterTest.java @@ -2383,4 +2383,101 @@ public class CodeFormatterTest extends BaseUITestCase { public void testDoubleClosingAngleBrackets_Bug333816() throws Exception { assertFormatterResult(); } + + //void foo() { + // int i; + // for (iiiiiiiiiiiiiiiiii = 0; iiiiiiiiiiiiiiiiii < 10; iiiiiiiiiiiiiiiiii++) { + // } + // foo(); + //} + + //void foo() { + // int i; + // for (iiiiiiiiiiiiiiiiii = 0; iiiiiiiiiiiiiiiiii < 10; + // iiiiiiiiiiiiiiiiii++) { + // } + // foo(); + //} + public void testForLoopWrappingAtOpeningBrace() throws Exception { + fOptions.put(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT, "80"); + assertFormatterResult(); + } + + //void foo() { + // int i; + // for (i = 0; i < 10; i++) { + // } + // foo(); + //} + + //void foo() { + // int i; + // for (i = 0; i < 10; i++) { + // } + // foo(); + //} + public void testForLoopKnR_Bug351399() throws Exception { + assertFormatterResult(); + } + + //void foo() { + // int i; + // for (i = 0; i < 10; i++) { + // } + // foo(); + //} + + //void foo() + // { + // int i; + // for (i = 0; i < 10; i++) + // { + // } + // foo(); + // } + public void testForLoopWhitesmiths_Bug351399() throws Exception { + fOptions.putAll(DefaultCodeFormatterOptions.getWhitesmithsSettings().getMap()); + assertFormatterResult(); + } + + //void foo() { + // int i; + // for (i = 0; i < 10; i++) { + // } + // foo(); + //} + + //void + //foo() + //{ + // int i; + // for (i = 0; i < 10; i++) + // { + // } + // foo(); + //} + public void testForLoopGNU_Bug351399() throws Exception { + fOptions.putAll(DefaultCodeFormatterOptions.getGNUSettings().getMap()); + assertFormatterResult(); + } + + //void foo() { + // int i; + // for (i = 0; i < 10; i++) { + // } + // foo(); + //} + + //void foo() + //{ + // int i; + // for (i = 0; i < 10; i++) + // { + // } + // foo(); + //} + public void testForLoopAllman_Bug351399() throws Exception { + fOptions.putAll(DefaultCodeFormatterOptions.getAllmanSettings().getMap()); + assertFormatterResult(); + } }