From cf7ea6fbef55e217da5289b80b6551737e534083 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sat, 7 Sep 2024 00:44:47 -0400 Subject: Add exit() function --- builtins/functions.c | 7 +++++++ builtins/functions.h | 1 + 2 files changed, 8 insertions(+) (limited to 'builtins') diff --git a/builtins/functions.c b/builtins/functions.c index bfa9465f..93c4abff 100644 --- a/builtins/functions.c +++ b/builtins/functions.c @@ -257,6 +257,13 @@ public void say(Text_t text, bool newline) fflush(stdout); } +public _Noreturn void tomo_exit(Text_t text, int32_t status) +{ + if (text.length > 0) + say(text, true); + _exit(status); +} + public Text_t ask(Text_t prompt, bool bold, bool force_tty) { Text_t ret = Text(""); diff --git a/builtins/functions.h b/builtins/functions.h index e41326c2..cc1f5a81 100644 --- a/builtins/functions.h +++ b/builtins/functions.h @@ -20,6 +20,7 @@ void end_test(const void *expr, const TypeInfo *type, const char *expected, cons end_test((__typeof__(expr)[1]){expr}, typeinfo, expected, __SOURCE_FILE__, start, end); } void say(Text_t text, bool newline); Text_t ask(Text_t prompt, bool bold, bool force_tty); +_Noreturn void tomo_exit(Text_t text, int32_t status); uint64_t generic_hash(const void *obj, const TypeInfo *type); int32_t generic_compare(const void *x, const void *y, const TypeInfo *type); -- cgit v1.2.3