Subject: Re: bug#18236: diff-apply-hunk interacts poorly with line endings

From: Eli Zaretskii <[email-masked]>
Date: Wed, 17 Feb 2016 18:39:38 +0200

> From: Marcin Borkowski <[email-masked]>
> Date: Wed, 17 Feb 2016 16:35:04 +0100
> Cc: [email-masked]
> 
> On 2014-08-10, at 17:34, Reuben Thomas <[email-masked]> wrote:
> 
> > I'm using Emacs 24.3. Consider the following two files:
> >
> > foo:
> > ----cut here----
> > This is a small test file.
> > It has DOS line endings.
> > ----cut here----
> >
> > bar:
> > ----cut here----
> > This is a small test file. 
> > It too has DOS line endings. 
> > ----cut here----
> >
> > Save them with DOS line endings, and
> >
> > diff foo bar > foo.patch
> > cp foo bar
> >
> > Visit foo.patch. When I do that, each line ends in ^M.
> >
> > Now, in the patch buffer, M-x diff-apply-hunk. Note that the ^Ms have been added to the lines. Writing the buffer and examination with "hd" reveals that each line now ends
> > \r\r\n.
> >
> > It seems what's happened here is that diff-mode doesn't try to diagnose the character encoding of the patch file.
> 
> Hi all,
> 
> confirmed on GNU Emacs 25.1.50.2 (commit 4ccd268).

When I try doing that, I get an error message.  Is the recipe
complete?  Also, does this happen on a Posix host or on a Windows box?
If the former, I won't expect each line in the patch file to end with
a ^M, only the lines that came from the files being diffed.

I'm confused.