From 05a46aca0bc0874769564d137cb38a3231deeda4 Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Sat, 10 Dec 2011 19:00:09 +0100 Subject: [PATCH] Print readably hash tables using the EXT:HASH-TABLE-FILL --- src/c/printer/write_ugly.d | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/c/printer/write_ugly.d b/src/c/printer/write_ugly.d index a1a9ac7d0..016bd5d72 100644 --- a/src/c/printer/write_ugly.d +++ b/src/c/printer/write_ugly.d @@ -148,7 +148,21 @@ write_package(cl_object x, cl_object stream) static void write_hashtable(cl_object x, cl_object stream) { - _ecl_write_unreadable(x, "hash-table", Cnil, stream); + if (ecl_print_readably() && !Null(ecl_symbol_value(@'*read-eval*'))) { + cl_object make = + cl_list(9, @'make-hash-table', + @':size', cl_hash_table_size(x), + @':rehash-size', cl_hash_table_rehash_size(x), + @':rehash-threshold', cl_hash_table_rehash_threshold(x), + @':test', cl_hash_table_test(x)); + cl_object init = + cl_list(3, @'ext::hash-table-fill', make, + cl_list(2, @'quote', si_hash_table_content(x))); + writestr_stream("#.", stream); + si_write_ugly_object(init, stream); + } else { + _ecl_write_unreadable(x, "hash-table", Cnil, stream); + } } static void