diff options
author | Marius Vollmer <mvo@zagadka.de> | 2002-02-03 22:50:07 +0000 |
---|---|---|
committer | Marius Vollmer <mvo@zagadka.de> | 2002-02-03 22:50:07 +0000 |
commit | 9ff28a13e089fcd3706be7ba2edde98051e2df07 (patch) | |
tree | 5bbe17ed48e3a621ef0e2e87ad62fbbbe577960d | |
parent | ac48757b5ed4efeb2b7018c8e08ea26cab8a5418 (diff) | |
download | guile-9ff28a13e089fcd3706be7ba2edde98051e2df07.tar.gz |
(scm_iprin1): Print uninterned symbols unreadably.
-rw-r--r-- | libguile/print.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/libguile/print.c b/libguile/print.c index e28284637..d972c3d4e 100644 --- a/libguile/print.c +++ b/libguile/print.c @@ -527,10 +527,23 @@ scm_iprin1 (SCM exp, SCM port, scm_print_state *pstate) scm_lfwrite (SCM_STRING_CHARS (exp), SCM_STRING_LENGTH (exp), port); break; case scm_tc7_symbol: - scm_print_symbol_name (SCM_SYMBOL_CHARS (exp), - SCM_SYMBOL_LENGTH (exp), - port); - scm_remember_upto_here_1 (exp); + if (SCM_SYMBOL_INTERNED_P (exp)) + { + scm_print_symbol_name (SCM_SYMBOL_CHARS (exp), + SCM_SYMBOL_LENGTH (exp), + port); + scm_remember_upto_here_1 (exp); + } + else + { + scm_puts ("#<uninterned-symbol ", port); + scm_print_symbol_name (SCM_SYMBOL_CHARS (exp), + SCM_SYMBOL_LENGTH (exp), + port); + scm_putc (' ', port); + scm_intprint ((long)exp, 16, port); + scm_putc ('>', port); + } break; case scm_tc7_variable: scm_i_variable_print (exp, port, pstate); |