diff options
Diffstat (limited to 'src/scheme/ao_scheme_vector.c')
| -rw-r--r-- | src/scheme/ao_scheme_vector.c | 28 | 
1 files changed, 16 insertions, 12 deletions
| diff --git a/src/scheme/ao_scheme_vector.c b/src/scheme/ao_scheme_vector.c index a4127f64..ff2067e2 100644 --- a/src/scheme/ao_scheme_vector.c +++ b/src/scheme/ao_scheme_vector.c @@ -78,16 +78,19 @@ ao_scheme_vector_write(ao_poly v)  	struct ao_scheme_vector	*vector = ao_scheme_poly_vector(v);  	unsigned int i; -	printf("#("); -	for (i = 0; i < vector->length; i++) { -		if (i != 0) -			printf(" "); -		if (vector->vals[i] == v) -			printf ("..."); -		else +	ao_scheme_print_start(); +	if (ao_scheme_print_mark_addr(vector)) +		printf ("..."); +	else { +		printf("#("); +		for (i = 0; i < vector->length; i++) { +			if (i != 0) +				printf(" ");  			ao_scheme_poly_write(vector->vals[i]); +		} +		printf(")");  	} -	printf(")"); +	ao_scheme_print_stop();  }  void @@ -96,10 +99,11 @@ ao_scheme_vector_display(ao_poly v)  	struct ao_scheme_vector *vector = ao_scheme_poly_vector(v);  	unsigned int i; -	for (i = 0; i < vector->length; i++) { -		if (vector->vals[i] == v) -			printf("..."); -		else +	ao_scheme_print_start(); +	if (ao_scheme_print_mark_addr(vector)) +		printf ("..."); +	else { +		for (i = 0; i < vector->length; i++)  			ao_scheme_poly_display(vector->vals[i]);  	}  } | 
