14 |
|
|
15 |
|
VIEW vw = STDVIEW; |
16 |
|
|
17 |
– |
char *progname; |
17 |
|
|
19 |
– |
|
18 |
|
int |
19 |
|
main( |
20 |
|
int argc, |
21 |
|
char *argv[] |
22 |
|
) |
23 |
|
{ |
26 |
– |
char linebuf[256]; |
24 |
|
char *err; |
25 |
|
int gotview = 0; |
26 |
|
FVECT hvn, vvn; |
27 |
|
double dist; |
28 |
< |
register int i; |
28 |
> |
int i; |
29 |
|
|
30 |
< |
progname = argv[0]; |
30 |
> |
fixargv0(argv[0]); /* sets global progname */ |
31 |
|
++argv; --argc; |
32 |
|
while (argc && argv[0][0] == '-' && argv[0][1] == 'v') { |
33 |
|
int rv; |
56 |
|
} |
57 |
|
if (argc != 1) |
58 |
|
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 |
– |
} |
59 |
|
if (!gotview) { |
60 |
< |
fprintf(stderr, "%s: no view on standard input\n", progname); |
61 |
< |
exit(1); |
60 |
> |
gotview = viewfile(NULL, &vw, NULL); |
61 |
> |
if (gotview <= 0) { |
62 |
> |
fprintf(stderr, "%s: no view on standard input\n", |
63 |
> |
progname); |
64 |
> |
exit(1); |
65 |
> |
} |
66 |
|
} |
67 |
|
if ((err= setview(&vw)) != NULL) { |
68 |
|
fprintf(stderr, "%s: %s\n", progname, err); |
106 |
|
if (!isflt(argv[0])) |
107 |
|
goto userr; |
108 |
|
dist = atof(argv[0]); |
109 |
< |
for (i = 0; i < 3; i++) |
116 |
< |
vw.vp[i] += dist*hvn[i]; |
109 |
> |
VSUM(vw.vp, vw.vp, hvn, dist); |
110 |
|
fprintview(&vw, stdout); |
111 |
< |
putchar('\n'); |
111 |
> |
fputc('\n', stdout); |
112 |
|
exit(0); |
113 |
|
userr: |
114 |
< |
fprintf(stderr, "Usage: %s {offset|name}\n", progname); |
114 |
> |
fprintf(stderr, "Usage: %s [view options] {offset|name}\n", progname); |
115 |
|
exit(1); |
116 |
|
} |