if (out >= oute) return -1;  *out= '\0';
var_string(	char	*in,	char	*out,	int	outsize,	LOL	*lol ){	char 	*out0 = out;	char	*oute = out + outsize - 1;	while( *in )	{	    char	*lastword;	    int		dollar = 0;	    /* Copy white space */	    while( isspace( *in ) )	    {		if( out >= oute )		    return -1;		*out++ = *in++;	    }	    lastword = out;	    /* Copy non-white space, watching for variables */	    while( *in && !isspace( *in ) )	    {	        if( out >= oute )		    return -1;		if( in[0] == '$' && in[1] == '(' )		    dollar++;		*out++ = *in++;	    }	    /* If a variable encountered, expand it and and embed the */	    /* space-separated members of the list in the output. */	    if( dollar )	    {		LIST	*l;		l = var_expand( L0, lastword, out, lol, 0 );		out = lastword;		for( ; l; l = list_next( l ) )		{		    int so = strlen( l->string );		    if( out + so >= oute )			return -1;		    strcpy( out, l->string );		    out += so;		    *out++ = ' ';		}		list_free( l );	    }	}	if( out >= oute )	    return -1;	*out++ = '\0';	return out - out0;}