From ae05a8f6e9dbaa6f18a0d22475ab8fafc2b56506 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Thu, 1 Jun 2017 20:07:51 -0700 Subject: mkstring char argument is optional. * eval.c (eval_init): Update registration of mkstring intrinsic to make second argument optional. * lib.c (mkstring): Default second argument to space. * txr.1: Documentation of mkstring updated. --- eval.c | 2 +- lib.c | 3 ++- txr.1 | 6 +++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/eval.c b/eval.c index 187273c5..d1c3cc8c 100644 --- a/eval.c +++ b/eval.c @@ -5927,7 +5927,7 @@ void eval_init(void) reg_fun(intern(lit("packagep"), user_package), func_n1(packagep)); reg_fun(intern(lit("keywordp"), user_package), func_n1(keywordp)); reg_fun(intern(lit("bindable"), user_package), func_n1(bindable)); - reg_fun(intern(lit("mkstring"), user_package), func_n2(mkstring)); + reg_fun(intern(lit("mkstring"), user_package), func_n2o(mkstring, 1)); reg_fun(intern(lit("copy-str"), user_package), func_n1(copy_str)); reg_fun(intern(lit("upcase-str"), user_package), func_n1(upcase_str)); reg_fun(intern(lit("downcase-str"), user_package), func_n1(downcase_str)); diff --git a/lib.c b/lib.c index f1309a72..3dd2c536 100644 --- a/lib.c +++ b/lib.c @@ -3313,7 +3313,7 @@ val string_8bit_size(const unsigned char *str, size_t sz) return string_own(wstr); } -val mkstring(val len, val ch) +val mkstring(val len, val ch_in) { size_t l = if3(minusp(len), (uw_throwf(error_s, lit("mkstring: negative size ~s specified"), @@ -3321,6 +3321,7 @@ val mkstring(val len, val ch) c_num(len)); wchar_t *str = chk_wmalloc(l + 1); val s = string_own(str); + val ch = default_arg_strict(ch_in, chr(' ')); wmemset(str, c_chr(ch), l); str[l] = 0; s->st.len = len; diff --git a/txr.1 b/txr.1 index 8a5d815e..d758e28e 100644 --- a/txr.1 +++ b/txr.1 @@ -20427,7 +20427,7 @@ ranges are immutable. .SS* Characters and Strings .coNP Function @ mkstring .synb -.mets (mkstring < length << char ) +.mets (mkstring < length <> [ char ]) .syne .desc The @@ -20440,6 +20440,10 @@ with .metn char , which must be a character value. +If the optional argument +.meta char +is not specified, it defaults to the space character. + .coNP Function @ copy-str .synb .mets (copy-str << string ) -- cgit v1.2.3