[JGIT PATCH 12/15] Correctly handle hunk headers such as "@@ -0,0 +1 @@"
Sometimes these are created for single line file creations.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
.../src/org/spearce/jgit/patch/HunkHeader.java | 14 ++++++++++++--
1 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/org.spearce.jgit/src/org/spearce/jgit/patch/HunkHeader.java b/org.spearce.jgit/src/org/spearce/jgit/patch/HunkHeader.java
index 4fd9bae..c3bd642 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/patch/HunkHeader.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/patch/HunkHeader.java
@@ -126,10 +126,20 @@ void parseHeader(final int end) {
final MutableInteger ptr = new MutableInteger();
ptr.value = nextLF(buf, startOffset, ' ');
oldStartLine = -parseBase10(buf, ptr.value, ptr);
- oldLineCount = parseBase10(buf, ptr.value + 1, ptr);
+ if (buf[ptr.value] == ',')
+ oldLineCount = parseBase10(buf, ptr.value + 1, ptr);
+ else {
+ oldLineCount = oldStartLine;
+ oldStartLine = 0;
+ }
newStartLine = parseBase10(buf, ptr.value + 1, ptr);
- newLineCount = parseBase10(buf, ptr.value + 1, ptr);
+ if (buf[ptr.value] == ',')
+ newLineCount = parseBase10(buf, ptr.value + 1, ptr);
+ else {
+ newLineCount = newStartLine;
+ newStartLine = 0;
+ }
}
int parseBody(final Patch script, final int end) {
--
1.6.1.rc2.306.ge5d5e