V10/cmd/town/fastown.c
# include "stdio.h"
# include "math.h"
# include "assert.h"
# define radp 57.2957795
main()
{
/* reads ascii patch file; converts to binary and does cosine conversion. */
char line[100], *s, opat[10];
long pos;
int k;
float a[2];
double correct;
opat[0]=0;
pos=0;
correct = cos(40.0/radp);
while (gets(line))
{
if (strncmp(opat, line, 5))
fprintf(stderr, "%.5s %ld\n", line, pos);
strncpy(opat, line, 5);
for(s=line; *s && *s!='\t'; s++)
;
sscanf(s, "%lf %lf", a+0, a+1);
/* need to multiply longitudes by cosine of latitude */
a[1] = a[1]*correct;
write (1, a, 2*sizeof(float));
for(s=line; *s; s++)
;
s -= 3;
write (1, s, 1);
for(s=line; *s && *s!=','; s++)
;
*s=0;
k = s-(line+6);
if (k<0) k=0;
write (1, line+6, k);
write (1, "\n", 1);
pos+= 2*sizeof(float);
pos += k+2;
}
fprintf(stderr, "ENDED %ld\n", pos);
}