23 |
|
char *argv[] |
24 |
|
) |
25 |
|
{ |
26 |
– |
char linebuf[256]; |
26 |
|
char *err; |
27 |
|
int gotview = 0; |
28 |
|
FVECT hvn, vvn; |
29 |
|
double dist; |
30 |
< |
register int i; |
30 |
> |
int i; |
31 |
|
|
32 |
|
progname = argv[0]; |
33 |
|
++argv; --argc; |
58 |
|
} |
59 |
|
if (argc != 1) |
60 |
|
goto userr; |
62 |
– |
if (!gotview) |
63 |
– |
while (fgets(linebuf, sizeof(linebuf), stdin) != NULL) { |
64 |
– |
if (linebuf[0] == '\n') |
65 |
– |
break; |
66 |
– |
if (isview(linebuf) && sscanview(&vw, linebuf) > 0) |
67 |
– |
++gotview; |
68 |
– |
} |
61 |
|
if (!gotview) { |
62 |
< |
fprintf(stderr, "%s: no view on standard input\n", progname); |
63 |
< |
exit(1); |
62 |
> |
gotview = viewfile(NULL, &vw, NULL); |
63 |
> |
if (gotview <= 0) { |
64 |
> |
fprintf(stderr, "%s: no view on standard input\n", |
65 |
> |
progname); |
66 |
> |
exit(1); |
67 |
> |
} |
68 |
|
} |
69 |
|
if ((err= setview(&vw)) != NULL) { |
70 |
|
fprintf(stderr, "%s: %s\n", progname, err); |
108 |
|
if (!isflt(argv[0])) |
109 |
|
goto userr; |
110 |
|
dist = atof(argv[0]); |
111 |
< |
for (i = 0; i < 3; i++) |
116 |
< |
vw.vp[i] += dist*hvn[i]; |
111 |
> |
VSUM(vw.vp, vw.vp, hvn, dist); |
112 |
|
fprintview(&vw, stdout); |
113 |
< |
putchar('\n'); |
113 |
> |
fputc('\n', stdout); |
114 |
|
exit(0); |
115 |
|
userr: |
116 |
|
fprintf(stderr, "Usage: %s {offset|name}\n", progname); |