size_t len = strlen(val + 1); if ( val[1] == '"' && val[len] == '"') { string_append_range( buf, val + 2, val + len ); l = list_new( l, newstr( buf->value ) ); string_truncate( buf, 0 ); } else {
var_defines( char **e ){    string buf[1];    string_new( buf );	for( ; *e; e++ )	{	    char *val;	    /* Just say "no": windows defines this in the env, */	    /* but we don't want it to override our notion of OS. */	    if( !strcmp( *e, "OS=Windows_NT" ) )		continue;# ifdef OS_MAC	    /* On the mac (MPW), the var=val is actually var\0val */	    /* Think different. */		    if( ( val = strchr( *e, '=' ) ) || ( val = *e + strlen( *e ) ) )# else	    if( val = strchr( *e, '=' ) )# endif	    {		LIST *l = L0;		char *pp, *p;# ifdef OS_MAC		char split = ',';# else		char split = ' ';	# endif		/* Split *PATH at :'s, not spaces */		if( val - 4 >= *e )		{		    if( !strncmp( val - 4, "PATH", 4 ) ||		        !strncmp( val - 4, "Path", 4 ) ||		        !strncmp( val - 4, "path", 4 ) )			    split = SPLITPATH;		}		/* Do the split */		for( pp = val + 1; p = strchr( pp, split ); pp = p + 1 )		{                    string_append_range( buf, pp, p );		    l = list_new( l, newstr( buf->value ) );                    string_truncate( buf, 0 );		}		l = list_new( l, newstr( pp ) );		/* Get name */                string_append_range( buf, *e, val );		var_set( buf->value, l, VAR_SET );                string_truncate( buf, 0 );	    }	}        string_free( buf );}