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 589bb364723..2e3ce60c7a8 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 @@ -4920,7 +4920,7 @@ public class CodeFormatterVisitor extends ASTVisitor implements ICPPASTVisitor, } } else if (onPos != -1 && onPos > offPos) { if (inInactiveCode) { - int inactiveCodeEnd = nodeLocation.getNodeOffset() + nodeLocation.getNodeLength(); + int inactiveCodeEnd = nodeLocation.getNodeOffset(); positions.add(new InactivePosition(inactiveCodeStart, inactiveCodeEnd - inactiveCodeStart, false)); } inInactiveCode = false; 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 3d9e189d1cd..88a6229a737 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 @@ -4717,4 +4717,21 @@ public class CodeFormatterTest extends BaseUITestCase { public void testEnumWithAttributes_Bug559545() throws Exception { assertFormatterResult(); } + + ////@formatter:off + // int a; + // + ////@formatter:on + // int b; + // int c; + + ////@formatter:off + // int a; + // + ////@formatter:on + //int b; + //int c; + public void testFormatterOnOff_Bug559669() throws Exception { + assertFormatterResult(); + } }