rejected hunk support; #5723
diff --git a/bundles/org.eclipse.compare/buildnotes_compare.html b/bundles/org.eclipse.compare/buildnotes_compare.html
index e97599f..4131b4a 100644
--- a/bundles/org.eclipse.compare/buildnotes_compare.html
+++ b/bundles/org.eclipse.compare/buildnotes_compare.html
@@ -11,26 +11,29 @@
<h1>
Eclipse Platform Build Notes<br>
Compare</h1>
-Eclipse SDK Build 208, November ?st, 2001
+Eclipse SDK Build 210, November 12th, 2001
<h2>
What's new in this drop</h2>
+First cut for 'rejected hunk' support.
<h3>
API changes</h3>
<h3>
API Additions</h3>
-new classes CompareViewerPane and CompareViewerSwitchingPane
+new classes CompareViewerPane and CompareViewerSwitchingPane<br>
<h3>
Other highlights</h3>
+Improved Patch wizard.<br>
<h2>
Known deficiencies</h2>
<h2>
Problem reports fixed</h2>
+<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5723">#5723</a>: Apply Patch dialog has no radio selection<br>
<h2>
Problem reports closed</h2>
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareUIPlugin.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareUIPlugin.java
index c87d51c..9750869 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareUIPlugin.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareUIPlugin.java
@@ -574,7 +574,7 @@
*/
public static Viewer findContentViewer(Viewer oldViewer, Object in, Composite parent, CompareConfiguration cc) {
- if (! (in instanceof ICompareInput)) {
+ if (in instanceof IStreamContentAccessor) {
String type= ITypedElement.TEXT_TYPE;
if (in instanceof ITypedElement) {
ITypedElement tin= (ITypedElement) in;
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TextViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TextViewer.java
index 833208b..a556a6f 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TextViewer.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TextViewer.java
@@ -35,13 +35,12 @@
}
public void setInput(Object input) {
- if (input instanceof ICompareInput) {
+ if (input instanceof IStreamContentAccessor) {
+ fSourceViewer.setDocument(new Document(getString(input)));
+ } else if (input instanceof ICompareInput) {
fInput= (ICompareInput) input;
ITypedElement left= ((ICompareInput) fInput).getLeft();
fSourceViewer.setDocument(new Document(getString(left)));
-
- } else if (input instanceof IStreamContentAccessor) {
- fSourceViewer.setDocument(new Document(getString(input)));
}
}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/Diff.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/Diff.java
index 268b072..17d06f4 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/Diff.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/Diff.java
@@ -17,6 +17,7 @@
long fOldDate, fNewDate; // if 0: no file
List fHunks= new ArrayList();
boolean fIsEnabled= true;
+ String fRejected;
/* package */ Diff(IPath oldPath, long oldDate, IPath newPath, long newDate) {
fOldPath= oldPath;
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/InputPatchPage.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/InputPatchPage.java
index 9872ccf..18eed5b 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/InputPatchPage.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/InputPatchPage.java
@@ -183,11 +183,11 @@
// 1st row
fUsePatchFileButton= new Button(fPatchFileGroup, SWT.RADIO);
- fUsePatchFileButton.setText("File: ");
+ fUsePatchFileButton.setText("File ");
fPatchFileNameField= new Combo(fPatchFileGroup, SWT.BORDER);
GridData gd= new GridData(GridData.FILL_HORIZONTAL);
- gd.horizontalIndent= 8;
+ //gd.horizontalIndent= 8;
gd.widthHint= SIZING_TEXT_FIELD_WIDTH;
fPatchFileNameField.setLayoutData(gd);
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchCompareInput.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchCompareInput.java
index 0d971f0..b705620 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchCompareInput.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchCompareInput.java
@@ -10,11 +10,12 @@
import java.lang.reflect.InvocationTargetException;
import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
import org.eclipse.core.runtime.*;
import org.eclipse.core.resources.*;
-import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.*;
import org.eclipse.compare.*;
import org.eclipse.compare.structuremergeviewer.*;
@@ -26,6 +27,28 @@
* patch selected workspace resources.
*/
/* package */ class PatchCompareInput extends CompareEditorInput {
+
+ static class Rejected extends DiffNode implements IStreamContentAccessor {
+ Diff fDiff;
+ String fName;
+ Rejected(IDiffContainer parent, String name, Diff diff) {
+ super(parent, Differencer.NO_CHANGE);
+ fName= name;
+ fDiff= diff;
+ }
+ public String getName() {
+ return fName;
+ }
+ public String getType() {
+ return "txt";
+ }
+ public Image getImage() {
+ return CompareUI.getImage("file");
+ }
+ public InputStream getContents() {
+ return new ByteArrayInputStream(fDiff.fRejected.getBytes());
+ }
+ }
private DiffNode fRoot;
private IResource fTarget;
@@ -61,8 +84,17 @@
for (int i= 0; i < diffs.length; i++) {
Diff diff= diffs[i];
- if (diff.fIsEnabled)
- createPath(fRoot, rootFolder, fPatcher.getPath(diff), diff);
+ if (diff.fIsEnabled) {
+ IPath path= fPatcher.getPath(diff);
+ createPath(fRoot, rootFolder, path, diff, false);
+
+ String rej= diff.fRejected;
+ if (rej != null) {
+ IPath pp= path.removeLastSegments(1);
+ pp= pp.append(path.lastSegment() + ".rej");
+ createPath(fRoot, rootFolder, pp, diff, true);
+ }
+ }
pm.worked(1);
}
@@ -122,7 +154,7 @@
}
}
- private void createPath(DiffContainer root, IContainer folder, IPath path, Diff diff) {
+ private void createPath(DiffContainer root, IContainer folder, IPath path, Diff diff, boolean reject) {
if (path.segmentCount() > 1) {
IFolder f= folder.getFolder(path.uptoSegment(1));
IDiffElement child= root.findChild(path.segment(0));
@@ -131,11 +163,15 @@
child= new DiffNode(root, Differencer.CHANGE, null, rn, rn);
}
if (child instanceof DiffContainer)
- createPath((DiffContainer)child, f, path.removeFirstSegments(1), diff);
+ createPath((DiffContainer)child, f, path.removeFirstSegments(1), diff, reject);
} else {
// a leaf
- BufferedResourceNode rn= new BufferedResourceNode(folder.getFile(path));
- new DiffNode(root, diff.getType(), null, rn, new PatchedResource(rn, diff, path, fPatcher));
+ BufferedResourceNode rn= new BufferedResourceNode(folder.getFile(path));
+ if (reject) {
+ new Rejected(root, path.segment(0), diff);
+ } else {
+ new DiffNode(root, diff.getType(), null, rn, new PatchedResource(rn, diff, path, fPatcher));
+ }
}
}
}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/Patcher.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/Patcher.java
index 3877cba..5aea6ce 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/Patcher.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/Patcher.java
@@ -603,7 +603,7 @@
} else {
if (failedHunks != null)
failedHunks.add(hunk);
- System.out.println("hunk ignored");
+ // System.out.println("hunk ignored");
}
}
return shift;
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PreviewPatchPage.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PreviewPatchPage.java
index 9c97d14..8d1a28f 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PreviewPatchPage.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/patch/PreviewPatchPage.java
@@ -5,7 +5,7 @@
package org.eclipse.compare.patch;
import java.io.*;
-import java.util.ArrayList;
+import java.util.*;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.*;
@@ -204,9 +204,9 @@
l.setToolTipText("Allow context to shift this number of lines from the original place");
fFuzzField= new Text(group, SWT.BORDER);
fFuzzField.setText("2");
- GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
- gd.widthHint= 30;
- fFuzzField.setLayoutData(gd);
+ GridData gd2= new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
+ gd2.widthHint= 30;
+ fFuzzField.setLayoutData(gd2);
addSpacer(group);
@@ -218,15 +218,16 @@
// register listeners
final Patcher patcher= fPatchWizard.getPatcher();
-
- fStripPrefixSegments.addSelectionListener(
- new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- if (patcher.setStripPrefixSegments(getStripPrefixSegments()))
- updateTree();
+
+ if (fStripPrefixSegments != null)
+ fStripPrefixSegments.addSelectionListener(
+ new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ if (patcher.setStripPrefixSegments(getStripPrefixSegments()))
+ updateTree();
+ }
}
- }
- );
+ );
fIgnoreWhitespaceButton.addSelectionListener(
new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
@@ -312,7 +313,7 @@
}
}
}
- if (length != 99)
+ if (fStripPrefixSegments != null && length != 99)
for (int i= 1; i < length; i++)
fStripPrefixSegments.add(Integer.toString(i));
}
@@ -407,6 +408,18 @@
lines= new ArrayList();
fPatchWizard.getPatcher().patch(diff, lines, failedHunks);
+ if (! failedHunks.isEmpty()) {
+ StringBuffer sb= new StringBuffer();
+ Iterator iter= failedHunks.iterator();
+ while (iter.hasNext()) {
+ Hunk hunk= (Hunk) iter.next();
+ sb.append(hunk.getDescription());
+ sb.append('\n');
+ sb.append(hunk.getContent());
+ }
+ diff.fRejected= sb.toString();
+ }
+
int checkedSubs= 0; // counts checked hunk items
TreeItem[] hunkItems= item.getItems();
for (int h= 0; h < hunkItems.length; h++) {
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html
index e97599f..4131b4a 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html
@@ -11,26 +11,29 @@
<h1>
Eclipse Platform Build Notes<br>
Compare</h1>
-Eclipse SDK Build 208, November ?st, 2001
+Eclipse SDK Build 210, November 12th, 2001
<h2>
What's new in this drop</h2>
+First cut for 'rejected hunk' support.
<h3>
API changes</h3>
<h3>
API Additions</h3>
-new classes CompareViewerPane and CompareViewerSwitchingPane
+new classes CompareViewerPane and CompareViewerSwitchingPane<br>
<h3>
Other highlights</h3>
+Improved Patch wizard.<br>
<h2>
Known deficiencies</h2>
<h2>
Problem reports fixed</h2>
+<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5723">#5723</a>: Apply Patch dialog has no radio selection<br>
<h2>
Problem reports closed</h2>
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareUIPlugin.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareUIPlugin.java
index c87d51c..9750869 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareUIPlugin.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareUIPlugin.java
@@ -574,7 +574,7 @@
*/
public static Viewer findContentViewer(Viewer oldViewer, Object in, Composite parent, CompareConfiguration cc) {
- if (! (in instanceof ICompareInput)) {
+ if (in instanceof IStreamContentAccessor) {
String type= ITypedElement.TEXT_TYPE;
if (in instanceof ITypedElement) {
ITypedElement tin= (ITypedElement) in;
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TextViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TextViewer.java
index 833208b..a556a6f 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TextViewer.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TextViewer.java
@@ -35,13 +35,12 @@
}
public void setInput(Object input) {
- if (input instanceof ICompareInput) {
+ if (input instanceof IStreamContentAccessor) {
+ fSourceViewer.setDocument(new Document(getString(input)));
+ } else if (input instanceof ICompareInput) {
fInput= (ICompareInput) input;
ITypedElement left= ((ICompareInput) fInput).getLeft();
fSourceViewer.setDocument(new Document(getString(left)));
-
- } else if (input instanceof IStreamContentAccessor) {
- fSourceViewer.setDocument(new Document(getString(input)));
}
}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/Diff.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/Diff.java
index 268b072..17d06f4 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/Diff.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/Diff.java
@@ -17,6 +17,7 @@
long fOldDate, fNewDate; // if 0: no file
List fHunks= new ArrayList();
boolean fIsEnabled= true;
+ String fRejected;
/* package */ Diff(IPath oldPath, long oldDate, IPath newPath, long newDate) {
fOldPath= oldPath;
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/InputPatchPage.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/InputPatchPage.java
index 9872ccf..18eed5b 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/InputPatchPage.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/InputPatchPage.java
@@ -183,11 +183,11 @@
// 1st row
fUsePatchFileButton= new Button(fPatchFileGroup, SWT.RADIO);
- fUsePatchFileButton.setText("File: ");
+ fUsePatchFileButton.setText("File ");
fPatchFileNameField= new Combo(fPatchFileGroup, SWT.BORDER);
GridData gd= new GridData(GridData.FILL_HORIZONTAL);
- gd.horizontalIndent= 8;
+ //gd.horizontalIndent= 8;
gd.widthHint= SIZING_TEXT_FIELD_WIDTH;
fPatchFileNameField.setLayoutData(gd);
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchCompareInput.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchCompareInput.java
index 0d971f0..b705620 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchCompareInput.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PatchCompareInput.java
@@ -10,11 +10,12 @@
import java.lang.reflect.InvocationTargetException;
import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
import org.eclipse.core.runtime.*;
import org.eclipse.core.resources.*;
-import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.*;
import org.eclipse.compare.*;
import org.eclipse.compare.structuremergeviewer.*;
@@ -26,6 +27,28 @@
* patch selected workspace resources.
*/
/* package */ class PatchCompareInput extends CompareEditorInput {
+
+ static class Rejected extends DiffNode implements IStreamContentAccessor {
+ Diff fDiff;
+ String fName;
+ Rejected(IDiffContainer parent, String name, Diff diff) {
+ super(parent, Differencer.NO_CHANGE);
+ fName= name;
+ fDiff= diff;
+ }
+ public String getName() {
+ return fName;
+ }
+ public String getType() {
+ return "txt";
+ }
+ public Image getImage() {
+ return CompareUI.getImage("file");
+ }
+ public InputStream getContents() {
+ return new ByteArrayInputStream(fDiff.fRejected.getBytes());
+ }
+ }
private DiffNode fRoot;
private IResource fTarget;
@@ -61,8 +84,17 @@
for (int i= 0; i < diffs.length; i++) {
Diff diff= diffs[i];
- if (diff.fIsEnabled)
- createPath(fRoot, rootFolder, fPatcher.getPath(diff), diff);
+ if (diff.fIsEnabled) {
+ IPath path= fPatcher.getPath(diff);
+ createPath(fRoot, rootFolder, path, diff, false);
+
+ String rej= diff.fRejected;
+ if (rej != null) {
+ IPath pp= path.removeLastSegments(1);
+ pp= pp.append(path.lastSegment() + ".rej");
+ createPath(fRoot, rootFolder, pp, diff, true);
+ }
+ }
pm.worked(1);
}
@@ -122,7 +154,7 @@
}
}
- private void createPath(DiffContainer root, IContainer folder, IPath path, Diff diff) {
+ private void createPath(DiffContainer root, IContainer folder, IPath path, Diff diff, boolean reject) {
if (path.segmentCount() > 1) {
IFolder f= folder.getFolder(path.uptoSegment(1));
IDiffElement child= root.findChild(path.segment(0));
@@ -131,11 +163,15 @@
child= new DiffNode(root, Differencer.CHANGE, null, rn, rn);
}
if (child instanceof DiffContainer)
- createPath((DiffContainer)child, f, path.removeFirstSegments(1), diff);
+ createPath((DiffContainer)child, f, path.removeFirstSegments(1), diff, reject);
} else {
// a leaf
- BufferedResourceNode rn= new BufferedResourceNode(folder.getFile(path));
- new DiffNode(root, diff.getType(), null, rn, new PatchedResource(rn, diff, path, fPatcher));
+ BufferedResourceNode rn= new BufferedResourceNode(folder.getFile(path));
+ if (reject) {
+ new Rejected(root, path.segment(0), diff);
+ } else {
+ new DiffNode(root, diff.getType(), null, rn, new PatchedResource(rn, diff, path, fPatcher));
+ }
}
}
}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/Patcher.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/Patcher.java
index 3877cba..5aea6ce 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/Patcher.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/Patcher.java
@@ -603,7 +603,7 @@
} else {
if (failedHunks != null)
failedHunks.add(hunk);
- System.out.println("hunk ignored");
+ // System.out.println("hunk ignored");
}
}
return shift;
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PreviewPatchPage.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PreviewPatchPage.java
index 9c97d14..8d1a28f 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PreviewPatchPage.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/patch/PreviewPatchPage.java
@@ -5,7 +5,7 @@
package org.eclipse.compare.patch;
import java.io.*;
-import java.util.ArrayList;
+import java.util.*;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.*;
@@ -204,9 +204,9 @@
l.setToolTipText("Allow context to shift this number of lines from the original place");
fFuzzField= new Text(group, SWT.BORDER);
fFuzzField.setText("2");
- GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
- gd.widthHint= 30;
- fFuzzField.setLayoutData(gd);
+ GridData gd2= new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
+ gd2.widthHint= 30;
+ fFuzzField.setLayoutData(gd2);
addSpacer(group);
@@ -218,15 +218,16 @@
// register listeners
final Patcher patcher= fPatchWizard.getPatcher();
-
- fStripPrefixSegments.addSelectionListener(
- new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- if (patcher.setStripPrefixSegments(getStripPrefixSegments()))
- updateTree();
+
+ if (fStripPrefixSegments != null)
+ fStripPrefixSegments.addSelectionListener(
+ new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ if (patcher.setStripPrefixSegments(getStripPrefixSegments()))
+ updateTree();
+ }
}
- }
- );
+ );
fIgnoreWhitespaceButton.addSelectionListener(
new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
@@ -312,7 +313,7 @@
}
}
}
- if (length != 99)
+ if (fStripPrefixSegments != null && length != 99)
for (int i= 1; i < length; i++)
fStripPrefixSegments.add(Integer.toString(i));
}
@@ -407,6 +408,18 @@
lines= new ArrayList();
fPatchWizard.getPatcher().patch(diff, lines, failedHunks);
+ if (! failedHunks.isEmpty()) {
+ StringBuffer sb= new StringBuffer();
+ Iterator iter= failedHunks.iterator();
+ while (iter.hasNext()) {
+ Hunk hunk= (Hunk) iter.next();
+ sb.append(hunk.getDescription());
+ sb.append('\n');
+ sb.append(hunk.getContent());
+ }
+ diff.fRejected= sb.toString();
+ }
+
int checkedSubs= 0; // counts checked hunk items
TreeItem[] hunkItems= item.getItems();
for (int h= 0; h < hunkItems.length; h++) {