|
|
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.