need to do cc -c (or will try to load)
[unix-history] / usr / src / old / uudiff / run1.c
CommitLineData
caca87b2
SL
1#ifndef lint
2static char sccsid[] = "@(#)run1.c 4.1 (Berkeley) %G%";
3#endif
4
5# include "stdio.h"
6# define LAST "\177\177"
7main (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;
15ml=mr=1;
16loc = fopen(argv[1], "r");
17rem = fopen (argv[2], "r");
18cfil = fopen (argv[3], "w");
19ml = fetch (loc, namel, &suml, ml);
20mr = fetch (rem, namer, &sumr, mr);
21while ( 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}
58fetch (f, s, lp, m)
59 FILE *f;
60 char *s;
61 long *lp;
62{
63char b[200];
64if (m==0 ||fgets(b, 200, f)==0)
65 {
66 strcpy (s, LAST);
67 return (0);
68 }
69sscanf(b, "%s %lo", s, lp);
70return (1);
71}
72notmp(s1, s2)
73 char *s1, *s2;
74{
75char bf1[20], bf2[20];
76strcpy (bf1, s1);
77strcpy (bf2, s2);
78bf1[2]= bf2[2] = '0';
79return (strcmp(bf1, bf2));
80}