]> diplodocus.org Git - nmh/blob - sbr/fdcompare.c
Reverted commit 9a4b4a3d3b27fe4a7ff6d0b8724ce1c06b5917eb.
[nmh] / sbr / fdcompare.c
1
2 /*
3 * fdcompare.c -- are two files identical?
4 *
5 * This code is Copyright (c) 2002, by the authors of nmh. See the
6 * COPYRIGHT file in the root directory of the nmh distribution for
7 * complete copyright information.
8 */
9
10 #include <h/mh.h>
11
12
13 int
14 fdcompare (int fd1, int fd2)
15 {
16 int i, n1, n2, resp;
17 char *c1, *c2;
18 char b1[BUFSIZ], b2[BUFSIZ];
19
20 resp = 1;
21 while ((n1 = read (fd1, b1, sizeof(b1))) >= 0
22 && (n2 = read (fd2, b2, sizeof(b2))) >= 0
23 && n1 == n2) {
24 c1 = b1;
25 c2 = b2;
26 for (i = n1 < (int) sizeof(b1) ? n1 : (int) sizeof(b1); i--;)
27 if (*c1++ != *c2++) {
28 resp = 0;
29 goto leave;
30 }
31 if (n1 < (int) sizeof(b1))
32 goto leave;
33 }
34 resp = 0;
35
36 leave: ;
37 lseek (fd1, (off_t) 0, SEEK_SET);
38 lseek (fd2, (off_t) 0, SEEK_SET);
39 return resp;
40 }