diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2012-01-10 23:15:14 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2012-01-10 23:15:14 -0800 |
commit | 08e356af25f0e6ab9c8ad1583181aa529c61ca91 (patch) | |
tree | 29bad6267f5b5a846dbcaf8555045dc9cb66f8c1 /eval.c | |
parent | 09c6384d6bb4e3c44bf64299657f492ad4bf756a (diff) | |
download | txr-08e356af25f0e6ab9c8ad1583181aa529c61ca91.tar.gz txr-08e356af25f0e6ab9c8ad1583181aa529c61ca91.tar.bz2 txr-08e356af25f0e6ab9c8ad1583181aa529c61ca91.zip |
* eval.c (tostring, tostringp): New static functions.
(eval_init): New functions registered.
* txr.1: Stub sections created.
* txr.vim: Updated.
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -1247,6 +1247,20 @@ static val lazy_mappendv(val fun, val list_of_lists) return lazy_appendv(lazy_mapcarv(fun, list_of_lists)); } +static val tostring(val obj) +{ + val ss = make_string_output_stream(); + obj_print(obj, ss); + return get_string_from_stream(ss); +} + +static val tostringp(val obj) +{ + val ss = make_string_output_stream(); + obj_pprint(obj, ss); + return get_string_from_stream(ss); +} + static val symbol_function(val sym) { return lookup_fun(nil, sym); @@ -1547,6 +1561,8 @@ void eval_init(void) reg_fun(intern(lit("format"), user_package), func_n2v(formatv)); reg_fun(intern(lit("print"), user_package), func_n2(obj_print)); reg_fun(intern(lit("pprint"), user_package), func_n2(obj_pprint)); + reg_fun(intern(lit("tostring"), user_package), func_n1(tostring)); + reg_fun(intern(lit("tostringp"), user_package), func_n1(tostringp)); reg_fun(intern(lit("make-string-input-stream"), user_package), func_n1(make_string_input_stream)); reg_fun(intern(lit("make-string-byte-input-stream"), user_package), func_n1(make_string_byte_input_stream)); reg_fun(intern(lit("make-string-output-stream"), user_package), func_n0(make_string_output_stream)); |