From 44e676468e1954e9f17a471e82602a9e036acecf Mon Sep 17 00:00:00 2001 From: Lieuwe Rooijakkers Date: Sun, 4 Aug 2024 23:42:03 +0200 Subject: tak: use loop_files --- src/tak.c | 33 +++------------------------------ 1 file changed, 3 insertions(+), 30 deletions(-) diff --git a/src/tak.c b/src/tak.c index 0cda9d5..0b30f95 100644 --- a/src/tak.c +++ b/src/tak.c @@ -6,7 +6,7 @@ #include "util/versie.h" #include "io/read_file.h" -#include "util/loop_args.h" +#include "util/loop_files.h" static void usage(FILE *f) { fprintf(f, @@ -41,7 +41,7 @@ static char** parse_options(int argc, char **argv) { return argv + optind; } -static void process(struct filebuf *fb) { +static int process(struct filebuf *fb, char*, bool) { char *lstart, *lend; lend = &fb->buf[fb->sz - 1]; @@ -64,38 +64,11 @@ static void process(struct filebuf *fb) { } free_filebuf(fb); -} - -static int handle(char *arg, bool isstdin) { - struct filebuf *fb = NULL; - - if (isstdin) { - struct filebuf *fb = stream_to_filebuf(stdin, 0); - if (fb == NULL) goto err_stdin; - } else { - bool isdir = false; - fb = file_to_filebuf(arg, 0, &isdir); - if (isdir) goto err_isdir; - else if (fb == NULL) goto err_file; - } - process(fb); return 0; - -err_stdin: - fprintf(stderr, "tak: fout bij lezen van standaard invoer\n"); - return 1; - -err_file: - fprintf(stderr, "tak: fout bij lezen van bestand\n"); - return 1; - -err_isdir: - fprintf(stderr, "tak: bestand '%s' is een mapje\n", arg); - return -1; } int entry_tak(int argc, char **argv) { char **args = parse_options(argc, argv); - return loop_args(args, handle); + return loop_files(args, process); } -- cgit v1.2.3-70-g09d2