37 lines
		
	
	
	
		
			581 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			581 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* $Header$ */
 | 
						|
char    *getenv();
 | 
						|
char	*index();
 | 
						|
 | 
						|
execlp(name, argv)
 | 
						|
char *name, *argv;
 | 
						|
{
 | 
						|
	return(execvp(name, &argv));
 | 
						|
}
 | 
						|
 | 
						|
execvp(name, argv)
 | 
						|
char *name, **argv;
 | 
						|
{
 | 
						|
	char *path = getenv("PATH");
 | 
						|
	register char *c = "";
 | 
						|
	char progname[1024];
 | 
						|
 | 
						|
	if (path == 0) path = ":/bin:/usr/bin";
 | 
						|
	if (! index(name, '/')) c = path;
 | 
						|
 | 
						|
	do {
 | 
						|
		register char *p = progname;
 | 
						|
		register char *n = name;
 | 
						|
		char *c1 = c;
 | 
						|
 | 
						|
		while (*c && *c != ':') {
 | 
						|
			*p++ = *c++;
 | 
						|
		}
 | 
						|
		if (c != c1) *p++ = '/';
 | 
						|
		if (*c) c++;
 | 
						|
		while (*n) *p++ = *n++;
 | 
						|
		*p = 0;
 | 
						|
 | 
						|
		execv(progname, argv);
 | 
						|
	} while (*c);
 | 
						|
	return(-1);
 | 
						|
}
 |