diff options
author | Andy Wingo <wingo@pobox.com> | 2009-12-05 10:55:37 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2009-12-05 10:55:37 +0100 |
commit | 45cf24287277c897733e0513bade64cccb1d7608 (patch) | |
tree | 3089807ffc49218ff09f6427860c8b34806d7efc | |
parent | 9ea31741dad29ae123e468a203b72df6d190f6e1 (diff) | |
download | guile-45cf24287277c897733e0513bade64cccb1d7608.tar.gz |
add printer for dynamic-states
* libguile/fluids.c:
* libguile/fluids.h:
* libguile/print.c: Add dynamic-state printing infrastructure.
-rw-r--r-- | libguile/fluids.c | 8 | ||||
-rw-r--r-- | libguile/fluids.h | 1 | ||||
-rw-r--r-- | libguile/print.c | 3 |
3 files changed, 12 insertions, 0 deletions
diff --git a/libguile/fluids.c b/libguile/fluids.c index bb9447fd5..427d40640 100644 --- a/libguile/fluids.c +++ b/libguile/fluids.c @@ -112,6 +112,14 @@ scm_i_fluid_print (SCM exp, SCM port, scm_print_state *pstate SCM_UNUSED) scm_putc ('>', port); } +void +scm_i_dynamic_state_print (SCM exp, SCM port, scm_print_state *pstate SCM_UNUSED) +{ + scm_puts ("#<dynamic-state ", port); + scm_intprint (SCM_UNPACK (exp), 16, port); + scm_putc ('>', port); +} + static size_t next_fluid_num () { diff --git a/libguile/fluids.h b/libguile/fluids.h index 8f26c23ac..3a651fbf8 100644 --- a/libguile/fluids.h +++ b/libguile/fluids.h @@ -78,6 +78,7 @@ SCM_API SCM scm_with_dynamic_state (SCM state, SCM proc); SCM_INTERNAL SCM scm_i_make_initial_dynamic_state (void); SCM_INTERNAL void scm_i_fluid_print (SCM exp, SCM port, scm_print_state *pstate); +SCM_INTERNAL void scm_i_dynamic_state_print (SCM exp, SCM port, scm_print_state *pstate); SCM_INTERNAL void scm_init_fluids (void); #endif /* SCM_FLUIDS_H */ diff --git a/libguile/print.c b/libguile/print.c index 56521398b..8d2db1349 100644 --- a/libguile/print.c +++ b/libguile/print.c @@ -715,6 +715,9 @@ iprin1 (SCM exp, SCM port, scm_print_state *pstate) case scm_tc7_fluid: scm_i_fluid_print (exp, port, pstate); break; + case scm_tc7_dynamic_state: + scm_i_dynamic_state_print (exp, port, pstate); + break; case scm_tc7_wvect: ENTER_NESTED_DATA (pstate, exp, circref); if (SCM_IS_WHVEC (exp)) |