summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-07-31 06:15:16 -0700
committerKaz Kylheku <kaz@kylheku.com>2015-07-31 06:15:16 -0700
commitdbbfc2c41a3710bc64df7b477fcfa536da79233f (patch)
treee4527f7c82e8304c59b71792b10ee240f98eae61 /ChangeLog
parentab1a633e67d04bb36b2b00461e1a72a786bab917 (diff)
downloadtxr-dbbfc2c41a3710bc64df7b477fcfa536da79233f.tar.gz
txr-dbbfc2c41a3710bc64df7b477fcfa536da79233f.tar.bz2
txr-dbbfc2c41a3710bc64df7b477fcfa536da79233f.zip
Multi-line, indented printing of structure.
* eval.c (op_error): New static function. (macro_form_p, fboundp): Static to external. (special_operator_p): New function. (eval_init): Register macrolet and symacrolet to op_error. These are recognized and processed by expand, but we want them in the op table so they are reported by special_operator_p. * eval.h (fboundp, macro_form_p, special_operator_p): Declared. * hash.c (print_key_val): Break long lines on spaces between pairs with stream_width_check. (hash_print_op): Implement split and indented printing. * lib.c (obj_print_impl): New static function, resulting from a merge of obj_print and obj_pprint. Fixes some wrong-way recursion bugs: obj_pprint recursed into obj_print in some places. Adds support for multi-line printing of vectors and lists, with indentation using the new interfaces in streams. * stream.c (strm_base_init): Update initializer. (put_indent, indent_mode_put_string): New static functions. (put_string): Use indent_mode_put_string in either of the two indent modes. (put_char): Implement indent mode. (get_indent_mode, test_set_indent_mode, set_indent_mode, get_indent, set_indent, inc_indent, width_check): New functions. * stream.h (enum indent_mode): New. (struct strm_base): indent_on member becomes indent_mode. New members data_width and code_width. (get_indent_mode, test_set_indent_mode, set_indent_mode, get_indent, set_indent, inc_indent, width_check): Declared. * tests/009/json.expected: Updated. * tests/010/seq.expected: Likewise. * tests/011/macros-2.expected: Likewise.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog46
1 files changed, 46 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index d4c74f68..12269cf0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,49 @@
+2015-07-31 Kaz Kylheku <kaz@kylheku.com>
+
+ Multi-line, indented printing of structure.
+
+ * eval.c (op_error): New static function.
+ (macro_form_p, fboundp): Static to external.
+ (special_operator_p): New function.
+ (eval_init): Register macrolet and symacrolet to op_error.
+ These are recognized and processed by expand, but we want
+ them in the op table so they are reported by special_operator_p.
+
+ * eval.h (fboundp, macro_form_p, special_operator_p): Declared.
+
+ * hash.c (print_key_val): Break long lines on spaces
+ between pairs with stream_width_check.
+ (hash_print_op): Implement split and indented printing.
+
+ * lib.c (obj_print_impl): New static function, resulting
+ from a merge of obj_print and obj_pprint. Fixes some
+ wrong-way recursion bugs: obj_pprint recursed into obj_print
+ in some places. Adds support for multi-line printing of
+ vectors and lists, with indentation using the new
+ interfaces in streams.
+
+ * stream.c (strm_base_init): Update initializer.
+ (put_indent, indent_mode_put_string): New static functions.
+ (put_string): Use indent_mode_put_string in either of the
+ two indent modes.
+ (put_char): Implement indent mode.
+ (get_indent_mode, test_set_indent_mode,
+ set_indent_mode, get_indent, set_indent,
+ inc_indent, width_check): New functions.
+
+ * stream.h (enum indent_mode): New.
+ (struct strm_base): indent_on member becomes indent_mode.
+ New members data_width and code_width.
+ (get_indent_mode, test_set_indent_mode,
+ set_indent_mode, get_indent, set_indent,
+ inc_indent, width_check): Declared.
+
+ * tests/009/json.expected: Updated.
+
+ * tests/010/seq.expected: Likewise.
+
+ * tests/011/macros-2.expected: Likewise.
+
2015-07-30 Kaz Kylheku <kaz@kylheku.com>
* filter.c, utf8.c: Fix bad indentation introduced in whitespace