summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid E. O'Brien <obrien@FreeBSD.org>2013-07-02 17:09:57 +0000
committerDavid E. O'Brien <obrien@FreeBSD.org>2013-07-02 17:09:57 +0000
commit07b3f0f7db7ec4cc407a26f20b9f545c92a571e3 (patch)
tree20eae0d150ecc5a34ea92caea2efc1309b34b15c
parentaf8056441e3f7ef883f0682cbbc5ee33d0975c2f (diff)
Notes
-rw-r--r--gnu/usr.bin/patch/pch.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gnu/usr.bin/patch/pch.c b/gnu/usr.bin/patch/pch.c
index dba4582e52a4..e2c9548a808b 100644
--- a/gnu/usr.bin/patch/pch.c
+++ b/gnu/usr.bin/patch/pch.c
@@ -83,12 +83,17 @@ re_patch(void)
void
open_patch_file(char *filename)
{
+ int nr, nw;
+
if (filename == Nullch || !*filename || strEQ(filename, "-")) {
pfp = fopen(TMPPATNAME, "w");
if (pfp == Nullfp)
pfatal2("can't create %s", TMPPATNAME);
- while (fgets(buf, buf_size, stdin) != Nullch)
- fputs(buf, pfp);
+ while ((nr = fread(buf, 1, buf_size, stdin)) > 0) {
+ nw = fwrite(buf, 1, nr, pfp);
+ if (nr != nw)
+ pfatal2("write error to %s", TMPPATNAME);
+ }
Fclose(pfp);
filename = TMPPATNAME;
}