|
|
1.1 ! root 1: # include "stdio.h" ! 2: # include "assert.h" ! 3: # include "cbt.h" ! 4: main(argc,argv) ! 5: char *argv[]; ! 6: { ! 7: bfile *bloc; ! 8: FILE *fpat, *find; ! 9: char name[100], loc[100], ibuff[100]; ! 10: mbuf key, val; ! 11: double lat, lng, atof(); ! 12: long atol(), lb; ! 13: int x, y, k, found; ! 14: bloc = bopen("//usr/spool/town/ustowns", 0); ! 15: find = fopen("//usr/spool/town/hapindex", "r"); ! 16: assert(bloc!=NULL); ! 17: assert(find!=NULL); ! 18: while (gets(name)) ! 19: { ! 20: fpat = fopen("//usr/spool/town/haplist", "r"); ! 21: key.mdata = name; key.mlen = strlen(name); ! 22: k = bseek(bloc, key); ! 23: if (k!=1) continue; ! 24: val.mdata = loc; ! 25: bread(bloc, NULL, &val); ! 26: val.mdata[val.mlen]=0; ! 27: lat = atof(val.mdata); ! 28: lng = atof(val.mdata+7); ! 29: x = lat/4.; ! 30: y = lng/4.; ! 31: sprintf(loc, "%02d.%02d", x, y); ! 32: rewind (find); ! 33: while (fgets(ibuff, 100, find)) ! 34: { ! 35: if (strncmp(ibuff, loc, 5)==0) ! 36: break; ! 37: } ! 38: if (feof(find))continue; ! 39: lb = atol(ibuff+6); ! 40: fseek (fpat, lb, 0); ! 41: found=0; ! 42: while (fgets(ibuff, 100, fpat)) ! 43: { ! 44: if (strncmp(loc, ibuff, 5)!=0) ! 45: break; ! 46: if (strncmp(name, ibuff+6, strlen(name))) ! 47: continue; ! 48: lb = ftell (fpat); ! 49: found=1; ! 50: break; ! 51: } ! 52: fclose(fpat); ! 53: if (found) ! 54: { ! 55: k = open("//usr/spool/town/haplist", 2); ! 56: if (k>0) ! 57: { ! 58: lseek (k, lb-3, 0); ! 59: write (k, "x", 1); ! 60: close(k); ! 61: } ! 62: } ! 63: } ! 64: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.