From 98e7281d39f8ce9af07d7bf1461d18982d1984eb Mon Sep 17 00:00:00 2001 From: Lieuwe Rooijakkers Date: Sun, 4 Aug 2024 14:58:01 +0200 Subject: loop_args util function --- src/util/loop_args.c | 24 ++++++++++++++++++++++++ src/util/loop_args.h | 5 +++++ 2 files changed, 29 insertions(+) create mode 100644 src/util/loop_args.c create mode 100644 src/util/loop_args.h diff --git a/src/util/loop_args.c b/src/util/loop_args.c new file mode 100644 index 0000000..4609c71 --- /dev/null +++ b/src/util/loop_args.c @@ -0,0 +1,24 @@ +#include + +#include "loop_args.h" + +int loop_args(char **args, int (*callback)(char *argv, bool isstdin)) { + if (*args == NULL) { + return callback(*args, true); + } + + while (*args != NULL) { + int res = 0; + if (!strcmp(*args, "-")) { + res = callback(*args, true); + } else { + res = callback(*args, false); + } + + if (res != 0) return res; + + args++; + } + + return 0; +} diff --git a/src/util/loop_args.h b/src/util/loop_args.h new file mode 100644 index 0000000..359ed75 --- /dev/null +++ b/src/util/loop_args.h @@ -0,0 +1,5 @@ +#pragma once + +#include + +int loop_args(char **args, int (*callback)(char *arg, bool isstdin)); -- cgit v1.2.3-70-g09d2