Subject: [PATCH 1/2] Fix applying a line when all following lines are deletions

From: [email-masked]
Date: Mon, 7 Dec 2009 18:22:42 -0600

From: Jeff Epler <[email-masked]>

If a diff looked like
 @@
  context
 -del1
 -del2
and you wanted to stage the deletion 'del1', the generated patch wouldn't
apply because it was missing the line 'del2' converted to context, but
this line was counted in the @@-line

Signed-off-by: Jeff Epler <[email-masked]>
---
 lib/diff.tcl |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/lib/diff.tcl b/lib/diff.tcl
index bd5d189..066755b 100644
--- a/lib/diff.tcl
+++ b/lib/diff.tcl
@@ -664,6 +664,7 @@ proc apply_line {x y} {
 		}
 		set i_l $next_l
 	}
+	set patch "$patch$pre_context"
 	set patch "@@ -$hln,$n +$hln,[eval expr $n $sign 1] @@\n$patch"
 
 	if {[catch {
-- 
1.6.3.3