1 #ifndef lint
2 static char sccsid[] = "@(#)run1.c 4.1 (Berkeley) 01/01/83";
3 #endif
4
5 # include "stdio.h"
6 # define LAST "\177\177"
main(argc,argv)7 main (argc,argv)
8 char *argv[];
9 {
10 FILE *rem, *loc, *cfil;
11 char namel[100], namer[100];
12 char cname[20], zname[20];
13 int mr, ml;
14 long suml, sumr;
15 ml=mr=1;
16 loc = fopen(argv[1], "r");
17 rem = fopen (argv[2], "r");
18 cfil = fopen (argv[3], "w");
19 ml = fetch (loc, namel, &suml, ml);
20 mr = fetch (rem, namer, &sumr, mr);
21 while ( ml || mr)
22 {
23 int x;
24 x = strcmp(namel, namer);
25 if (x>0) x=1;
26 if (x<0) x= -1;
27 switch(x)
28 {
29 case -1: /* name l lower */
30 /* check that file is not our zz* tempfile */
31 if (notmp(namel, argv[2]))
32 printf("Missing on remote system: %s\n",namel);
33 ml = fetch (loc, namel, &suml, ml);
34 continue;
35 case 0: /* match names */
36 if (strcmp(namel, LAST)==0)
37 exit(0);
38 if (suml == sumr)
39 printf("Presumed identical: %s\n",namel);
40 else
41 {
42 printf("Differ: %s\n", namel);
43 fprintf(cfil, "%s\n", namel);
44 }
45 ml=fetch(loc, namel, &suml, ml);
46 mr=fetch(rem, namer, &sumr, mr);
47 continue;
48 case 1: /* name 2 lower */
49 printf("Extraneous file on remote system: %s\n",namer);
50 mr=fetch(rem, namer, &sumr, mr);
51 continue;
52 default:
53 printf("illegal case %d\n", strcmp(namel,namer));
54 exit(0);
55 }
56 }
57 }
fetch(f,s,lp,m)58 fetch (f, s, lp, m)
59 FILE *f;
60 char *s;
61 long *lp;
62 {
63 char b[200];
64 if (m==0 ||fgets(b, 200, f)==0)
65 {
66 strcpy (s, LAST);
67 return (0);
68 }
69 sscanf(b, "%s %lo", s, lp);
70 return (1);
71 }
notmp(s1,s2)72 notmp(s1, s2)
73 char *s1, *s2;
74 {
75 char bf1[20], bf2[20];
76 strcpy (bf1, s1);
77 strcpy (bf2, s2);
78 bf1[2]= bf2[2] = '0';
79 return (strcmp(bf1, bf2));
80 }
81