Hi Stefan Sperling

Just posting to tell I'm looking into this.

On Sat, May 22, 2010 at 12:58:42AM +0200, Stefan Sperling wrote:
> On Fri, May 21, 2010 at 10:27:42PM +0200, Stefan Küng wrote:
> > * ShellCache.h
> >   -> this file results in three applied and one rejected hunk
> >      the result as it *should* be is shown in image1, the result
> >      from svn_client_patch is shown in image2
> 
> Where are the images you are referring to?
> 
> This seems to be a "no newline at end of file" handling problem.
> We should look at it in detail. Please file an issue.

Yup. I simplified the failing hunk to only have a context line at the
end and could still get a failure:

[[[
Index: ShellCache.h
===================================================================
--- ShellCache.h  (revision 906)
+++ ShellCache.h  (working copy)
@@ -193,6 +193,7 @@
  DWORD layoutticker;
  DWORD langticker;
  DWORD blockstatusticker;
+  DWORD debug;
  UINT  drivetypecache[27];
  TCHAR drivetypepathcache[MAX_PATH];
 };
]]]

What does the code do to handle missing eols?
==============================================
parse_next_hunk(): Since r906588, we're including lines with missing
  newlines at end of hunk.
match_hunk(): If the target has no eol at end-of-file, we check if the
  next line of the hunk is the eof and adjust accordingly. The code
  says that we have a match.

What fails?
=============
apply_hunk(): When seeking in the target to target->current_line +
  hunk->original_text we get the wrong line and the hunk is marked as
  rejected.

Cheers,
Daniel

Reply via email to