From f5aa16fcc4431d7134da691891b489f6a74da944 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Thu, 14 Apr 2016 06:25:01 -0700 Subject: Adding fmt function. * stream.c (fmt): New function. * stream.h (fmt): Declared. * txr.1: Documented. --- stream.c | 6 ++++++ stream.h | 1 + txr.1 | 17 +++++++++++++++++ 3 files changed, 24 insertions(+) diff --git a/stream.c b/stream.c index 0815aa5d..e07defb4 100644 --- a/stream.c +++ b/stream.c @@ -3095,6 +3095,11 @@ val format(val stream, val str, ...) } } +val fmt(val string, struct args *args) +{ + return formatv(nil, string, args); +} + static val put_indent(val stream, struct strm_ops *ops, cnum chars) { while (chars--) @@ -3800,6 +3805,7 @@ void stream_init(void) #endif reg_fun(format_s, func_n2v(formatv)); + reg_fun(intern(lit("fmt"), user_package), func_n1v(fmt)); 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)); diff --git a/stream.h b/stream.h index c1699c05..2ce7a5ec 100644 --- a/stream.h +++ b/stream.h @@ -170,6 +170,7 @@ val vformat(val stream, val string, va_list); val vformat_to_string(val string, va_list); val format(val stream, val string, ...); val formatv(val stream, val string, struct args *args); +val fmt(val string, struct args *args); val put_string(val string, val stream); val put_line(val string, val stream); val put_char(val ch, val stream); diff --git a/txr.1 b/txr.1 index 9dfe7485..67dc77d0 100644 --- a/txr.1 +++ b/txr.1 @@ -33202,6 +33202,23 @@ The precision field is processed syntactically, and no error occurs, however. .PP +.coNP Function @ fmt +.synb +.mets (fmt < format-string << format-arg *) +.syne +.desc +The +.code fmt +function provides a short-hand for formatting to a string, according +to the following equivalence which holds between +.code fmt +and +.codn format : + +.cblk + (fmt s arg ...) <--> (format nil s arg ...) +.cble + .coNP Functions @, print @, pprint @, prinl @, pprinl @ tostring and @ tostringp .synb .mets (print < obj <> [ stream ]) -- cgit v1.2.3