49 lines
		
	
	
	
		
			881 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			881 B
		
	
	
	
		
			C
		
	
	
	
	
	
#include "f2c.h"
 | 
						|
 | 
						|
/*
 | 
						|
 * getenv - f77 subroutine to return environment variables
 | 
						|
 *
 | 
						|
 * called by:
 | 
						|
 *	call getenv (ENV_NAME, char_var)
 | 
						|
 * where:
 | 
						|
 *	ENV_NAME is the name of an environment variable
 | 
						|
 *	char_var is a character variable which will receive
 | 
						|
 *		the current value of ENV_NAME, or all blanks
 | 
						|
 *		if ENV_NAME is not defined
 | 
						|
 */
 | 
						|
 | 
						|
VOID getenv_(fname, value, flen, vlen)
 | 
						|
char *value, *fname;
 | 
						|
long int vlen, flen;
 | 
						|
{
 | 
						|
extern char **environ;
 | 
						|
register char *ep, *fp, *flast;
 | 
						|
register char **env = environ;
 | 
						|
 | 
						|
flast = fname + flen;
 | 
						|
for(fp = fname ; fp < flast ; ++fp)
 | 
						|
	if(*fp == ' ')
 | 
						|
		{
 | 
						|
		flast = fp;
 | 
						|
		break;
 | 
						|
		}
 | 
						|
 | 
						|
while (ep = *env++)
 | 
						|
	{
 | 
						|
	for(fp = fname; fp<flast ; )
 | 
						|
		if(*fp++ != *ep++)
 | 
						|
			goto endloop;
 | 
						|
 | 
						|
	if(*ep++ == '=') {	/* copy right hand side */
 | 
						|
		while( *ep && --vlen>=0 )
 | 
						|
			*value++ = *ep++;
 | 
						|
 | 
						|
		goto blank;
 | 
						|
		}
 | 
						|
endloop: ;
 | 
						|
	}
 | 
						|
 | 
						|
blank:
 | 
						|
	while( --vlen >= 0 )
 | 
						|
		*value++ = ' ';
 | 
						|
}
 |