diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CCodeFormatter.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CCodeFormatter.java index 0dd294b1e29..6e2734dd1a5 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CCodeFormatter.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CCodeFormatter.java @@ -27,6 +27,7 @@ import org.eclipse.cdt.core.model.CModelException; import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.ILanguage; import org.eclipse.cdt.core.model.ITranslationUnit; +import org.eclipse.cdt.core.model.IWorkingCopy; import org.eclipse.cdt.core.parser.FileContent; import org.eclipse.cdt.core.parser.IScannerInfo; import org.eclipse.cdt.core.parser.IncludeFileContentProvider; @@ -259,6 +260,9 @@ public class CCodeFormatter extends CodeFormatter { } if (tu != null && source != null) { try { + // Create a private working copy and set it contents to source. + if (tu.isWorkingCopy()) + tu = ((IWorkingCopy) tu).getOriginalElement(); tu = tu.getWorkingCopy(); tu.getBuffer().setContents(source); } catch (CModelException e) {