--- ../patch-2.5.4-orig/patch.c 1999-08-30 15:20:08 +0900 +++ patch.c 2007-12-23 20:48:12 +0900 @@ -884,7 +884,7 @@ && offset <= max_pos_offset && patch_match (first_guess, offset, (LINENUM) 0, suffix_fuzz)) { - last_offset = offset; + last_offset += offset; return first_guess + offset; } else @@ -898,7 +898,7 @@ if (offset <= max_neg_offset && patch_match (first_guess, -offset, prefix_fuzz, (LINENUM) 0)) { - last_offset = - offset; + last_offset -= offset; return first_guess - offset; } else @@ -914,7 +914,7 @@ say ("Offset changing from %s to %s\n", format_linenum (numbuf0, last_offset), format_linenum (numbuf1, offset)); - last_offset = offset; + last_offset += offset; return first_guess+offset; } if (0 < offset && offset <= max_neg_offset @@ -923,7 +923,7 @@ say ("Offset changing from %s to %s\n", format_linenum (numbuf0, last_offset), format_linenum (numbuf1, -offset)); - last_offset = -offset; + last_offset -= offset; return first_guess-offset; } }