home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 8
/
CDASC08.ISO
/
NEWS
/
RADIANCE
/
SRC
/
COMMON
/
FROPEN.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-10-07
|
1KB
|
53 lines
/* Copyright (c) 1992 Regents of the University of California */
#ifndef lint
static char SCCSid[] = "@(#)fropen.c 2.5 9/8/92 LBL";
#endif
/*
* Find and open a Radiance library file.
*/
#include <stdio.h>
#include "paths.h"
char *libpath = NULL; /* library search path */
FILE *
fropen(fname) /* find file and open for reading */
register char *fname;
{
extern char *strcpy(), *getenv();
FILE *fp;
char pname[MAXPATH];
register char *sp, *cp;
if (fname == NULL)
return(NULL);
if (ISDIRSEP(fname[0]) || fname[0] == '.') /* absolute path */
return(fopen(fname, "r"));
if (libpath == NULL) { /* get search path */
libpath = getenv(ULIBVAR);
if (libpath == NULL)
libpath = DEFPATH;
}
/* check search path */
sp = libpath;
do {
cp = pname;
while (*sp && (*cp = *sp++) != PATHSEP)
cp++;
if (cp > pname && !ISDIRSEP(cp[-1]))
*cp++ = DIRSEP;
strcpy(cp, fname);
if ((fp = fopen(pname, "r")) != NULL)
return(fp); /* got it! */
} while (*sp);
/* not found */
return(NULL);
}