# [PATCH] Do not drop data from '\0' until eol in patch output

4 messages from 2006-07-07 to 2006-07-07. Participants: Stephan Feder, Junio C Hamano, sf.
Thread: https://gitlist.dev/t/4793

## Stephan Feder, 2006-07-07 10:33

Subject: [PATCH] Do not drop data from '\0' until eol in patch output
Message-ID: <1152268424350-git-send-email-sf@b-i-t.de>
URL: https://gitlist.dev/e/1152268424350-git-send-email-sf%40b-i-t.de

```
The binary file detection is just a heuristic which can well fail.
Do not produce garbage patches in these cases.

Signed-off-by: Stephan Feder <sf@b-i-t.de>
---
 diff.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/diff.c b/diff.c
index 507e401..f0450a8 100644
--- a/diff.c
+++ b/diff.c
@@ -329,7 +329,9 @@ static void fn_out_consume(void *priv, c
 	}
 	if (len > 0 && line[len-1] == '\n')
 		len--;
-	printf("%s%.*s%s\n", set, (int) len, line, reset);
+	fputs (set, stdout);
+	fwrite (line, len, 1, stdout);
+	puts (reset);
 }
 
 static char *pprint_rename(const char *a, const char *b)
-- 
1.4.1.gbc483

```

## Junio C Hamano, 2006-07-07 10:52

Subject: Re: [PATCH] Do not drop data from '\0' until eol in patch output
Message-ID: <7vslld1ycq.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vslld1ycq.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <1152268424350-git-send-email-sf@b-i-t.de>

```
Stephan Feder <sf@b-i-t.de> writes:

> The binary file detection is just a heuristic which can well fail.
> Do not produce garbage patches in these cases.
>
> Signed-off-by: Stephan Feder <sf@b-i-t.de>

Thanks.

I do not think this patch is _wrong_ per se, but I wonder what
you would use a patch like that for.  Specifically, do you apply
such a patch with NUL and other binary data in it, and if so
what tool do you use?

```

## sf, 2006-07-07 11:18

Subject: Re: [PATCH] Do not drop data from '\0' until eol in patch output
Message-ID: <44AE431C.4090509@b-i-t.de>
URL: https://gitlist.dev/e/44AE431C.4090509%40b-i-t.de
In-Reply-To: <7vslld1ycq.fsf@assigned-by-dhcp.cox.net>

```
Junio C Hamano wrote:
> Stephan Feder <sf@b-i-t.de> writes:
> 
>> The binary file detection is just a heuristic which can well fail.
>> Do not produce garbage patches in these cases.
>>
>> Signed-off-by: Stephan Feder <sf@b-i-t.de>
> 
> Thanks.
> 
> I do not think this patch is _wrong_ per se, but I wonder what
> you would use a patch like that for.  Specifically, do you apply
> such a patch with NUL and other binary data in it, and if so
> what tool do you use?
> 

GNU patch can apply patches with binary content which are typically
produced with GNU diff with --text option.

```

## Junio C Hamano, 2006-07-07 12:03

Subject: Re: [PATCH] Do not drop data from '\0' until eol in patch output
Message-ID: <7vd5chzkop.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vd5chzkop.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <44AE431C.4090509@b-i-t.de>

```
sf <sf@b-i-t.de> writes:

> GNU patch can apply patches with binary content which are typically
> produced with GNU diff with --text option.

Hmph.  Things must have improved since I looked at it the last
time, perhaps 6-7 years ago.  I remember that I used "diff -a
-u0" as an el-cheapo way to deliber binary contents but found
that patch sometimes could not grok such, and ended up writing a
small customized C program.

```
