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