148 |
|
if (d > 1.0) |
149 |
|
return(-1); |
150 |
|
VCOPY(orig, v->vp); |
151 |
– |
if (d <= FTINY) { |
152 |
– |
VCOPY(direc, v->vdir); |
153 |
– |
return(0); |
154 |
– |
} |
151 |
|
d = sqrt(d); |
152 |
|
z = cos(PI*d); |
153 |
< |
d = sqrt(1 - z*z)/d; |
153 |
> |
d = d <= FTINY ? PI : sqrt(1 - z*z)/d; |
154 |
|
x *= d; |
155 |
|
y *= d; |
156 |
|
direc[0] = z*v->vdir[0] + x*v->hvec[0] + y*v->vvec[0]; |
374 |
|
isview(s) /* is this a view string? */ |
375 |
|
char *s; |
376 |
|
{ |
377 |
< |
static char *altname[]={NULL,"rpict","rview","pinterp",VIEWSTR,NULL}; |
378 |
< |
extern char *progname, *rindex(); |
377 |
> |
static char *altname[]={NULL,VIEWSTR,"rpict","rview","pinterp",NULL}; |
378 |
> |
extern char *progname; |
379 |
|
register char *cp; |
380 |
|
register char **an; |
381 |
|
/* add program name to list */ |
382 |
< |
if (altname[0] == NULL) |
383 |
< |
if ((cp = rindex(progname, DIRSEP)) != NULL) |
384 |
< |
altname[0] = cp+1; |
385 |
< |
else |
386 |
< |
altname[0] = progname; |
382 |
> |
if (altname[0] == NULL) { |
383 |
> |
for (cp = progname; *cp; cp++) |
384 |
> |
; |
385 |
> |
while (cp > progname && !ISDIRSEP(cp[-1])) |
386 |
> |
cp--; |
387 |
> |
altname[0] = cp; |
388 |
> |
} |
389 |
|
/* skip leading path */ |
390 |
|
cp = s; |
391 |
|
while (*cp && *cp != ' ') |
392 |
|
cp++; |
393 |
< |
while (cp > s && cp[-1] != DIRSEP) |
393 |
> |
while (cp > s && !ISDIRSEP(cp[-1])) |
394 |
|
cp--; |
395 |
|
for (an = altname; *an != NULL; an++) |
396 |
|
if (!strncmp(*an, cp, strlen(*an))) |