From 840cad2daa6294ff6d452c649ef8ba352414a9e4 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Sat, 1 Jan 2022 14:57:37 +0100 Subject: [PATCH] Use uwuutil functions for argument number checking --- flow.c | 7 +++---- io.c | 10 +++++----- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/flow.c b/flow.c index 40ea012..9bcecb7 100644 --- a/flow.c +++ b/flow.c @@ -4,11 +4,11 @@ #include "api/vm.h" #include "api/nil.h" #include "api/str.h" +#include "api/util.h" UwUVMValue uwu_linear(UwUVMArgs *args) { - if (args->num < 1) - error("error: nolambda:flow:linear requires at least one argument\n"); + uwuutil_require_min("nolambda:flow:linear", args, 1); size_t return_arg = args->num - 1; @@ -20,8 +20,7 @@ UwUVMValue uwu_linear(UwUVMArgs *args) UwUVMValue uwu_error(UwUVMArgs *args) { - if (args->num != 1) - error("error: nolambda:flow:error requires exactly one argument\n"); + uwuutil_require_exact("nolambda:flow:error", args, 1); char *err = uwustr_get(uwuvm_get_arg(args, 0)); fprintf(stderr, "%s\n", err); diff --git a/io.c b/io.c index 0f178fa..7896237 100644 --- a/io.c +++ b/io.c @@ -5,11 +5,11 @@ #include "common/err.h" #include "api/vm.h" #include "api/str.h" +#include "api/util.h" UwUVMValue uwu_print(UwUVMArgs *args) { - if (args->num != 1) - error("error: nolambda:io:print requires exactly one argument\n"); + uwuutil_require_exact("nolambda:io:print", args, 1); UwUVMValue value = uwuvm_get_arg(args, 0); @@ -22,14 +22,14 @@ UwUVMValue uwu_print(UwUVMArgs *args) UwUVMValue uwu_scan(UwUVMArgs *args) { + uwuutil_require_max("nolambda:io:scan", args, 1); + char *prompt = NULL; if (args->num == 0) prompt = strdup(""); - else if (args->num == 1) - prompt = uwustr_get(uwuvm_get_arg(args, 0)); else - error("error: nolambda:io:scan requires exactly one or zero arguments\n"); + prompt = uwustr_get(uwuvm_get_arg(args, 0)); char *return_string = linenoise(prompt); -- 2.44.0