summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2009-12-05 10:55:37 +0100
committerAndy Wingo <wingo@pobox.com>2009-12-05 10:55:37 +0100
commit45cf24287277c897733e0513bade64cccb1d7608 (patch)
tree3089807ffc49218ff09f6427860c8b34806d7efc
parent9ea31741dad29ae123e468a203b72df6d190f6e1 (diff)
downloadguile-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.c8
-rw-r--r--libguile/fluids.h1
-rw-r--r--libguile/print.c3
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))