| 7 |
|
|
| 8 |
|
|
| 9 |
|
#include "standard.h" |
| 10 |
< |
|
| 10 |
> |
#include "paths.h" |
| 11 |
|
#include "view.h" |
| 12 |
|
|
| 13 |
|
#include <ctype.h> |
| 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 |
|
} |