aboutsummaryrefslogtreecommitdiff
path: root/src/interp.c
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2025-06-21 16:58:47 +0800
committerMistivia <i@mistivia.com>2025-06-21 16:58:47 +0800
commit1de8cda84460198e764a94c1f0f106ecaf001331 (patch)
tree48bd2e09256c689b120183cf0026f2532617b555 /src/interp.c
parentca22ae606ca674a91e28597a96641c01f7eacb24 (diff)
add format
Diffstat (limited to 'src/interp.c')
-rw-r--r--src/interp.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/interp.c b/src/interp.c
index 5893ccc..a99440c 100644
--- a/src/interp.c
+++ b/src/interp.c
@@ -86,8 +86,11 @@ void Interp_init(Interp *self) {
Interp_add_primitive(self, "assert-error", primitive_assert_error);
Interp_add_primitive(self, "load", primitive_load);
+ Interp_add_userfunc(self, "format", builtin_format);
+ Interp_add_userfunc(self, "concat", builtin_concat);
Interp_add_userfunc(self, "error", builtin_error);
- Interp_add_userfunc(self, "show", builtin_show);
+ Interp_add_userfunc(self, "print", builtin_print);
+ Interp_add_userfunc(self, "princ", builtin_princ);
Interp_add_userfunc(self, "car", builtin_car);
Interp_add_userfunc(self, "list", builtin_list);
Interp_add_userfunc(self, "cdr", builtin_cdr);
@@ -603,7 +606,7 @@ SExpRef lisp_apply(Interp *interp, SExpRef fn, SExpRef args, bool istail) {
} else {
ret = EVAL(exp);
}
- if (CTL_FL(exp)) goto end;
+ if (CTL_FL(ret)) goto end;
iter = CDR(iter);
}
} else if (VALTYPE(fn) == kUserFuncSExp) {