From 7a84b99e6db450496b08a7ae5e13f05d3e0f6276 Mon Sep 17 00:00:00 2001 From: Lieuwe Rooijakkers Date: Sun, 4 Aug 2024 23:41:26 +0200 Subject: kat: use loop_files --- src/kat.c | 36 ++++-------------------------------- 1 file changed, 4 insertions(+), 32 deletions(-) diff --git a/src/kat.c b/src/kat.c index acaf54c..a8f8360 100644 --- a/src/kat.c +++ b/src/kat.c @@ -4,7 +4,7 @@ #include #include "util/versie.h" -#include "util/loop_args.h" +#include "util/loop_files.h" #include "io/read_file.h" static void usage(FILE *f) { @@ -40,44 +40,16 @@ 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) { fwrite(fb->buf, 1, fb->sz, stdout); free_filebuf(fb); + return 0; } // TODO: be smarter, kat doesn't have to read the whole file in memory (for // unmappable files) -static int handle(char *arg, bool isstdin) { - struct filebuf *fb = NULL; - - if (isstdin) { - 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, "kat: fout bij lezen van standaard invoer\n"); - return 1; - -err_file: - fprintf(stderr, "kat: fout bij lezen van bestand\n"); - return 1; - -err_isdir: - fprintf(stderr, "kat: bestand '%s' is een mapje\n", arg); - return -1; -} - int entry_kat(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