From 6c1e0d8d5692dc71ecbcbfa5608f6a1d6e4b88ca Mon Sep 17 00:00:00 2001 From: Christian Neukirchen Date: Sat, 23 Jul 2016 00:18:05 +0200 Subject: [PATCH] seq: add blaze822_loop1 for easier argument overriding --- blaze822.h | 1 + mshow.c | 16 ++++++---------- seq.c | 7 +++++++ 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/blaze822.h b/blaze822.h index bbbdc12..c43df3e 100644 --- a/blaze822.h +++ b/blaze822.h @@ -59,4 +59,5 @@ struct blaze822_seq_iter { char *blaze822_seq_next(char *map, char *range, struct blaze822_seq_iter *iter); int blaze822_loop(int, char **, void (*)(char *)); +int blaze822_loop1(char *arg, void (*cb)(char *)); char *blaze822_home_file(char *basename); diff --git a/mshow.c b/mshow.c index b0be711..5715d5f 100644 --- a/mshow.c +++ b/mshow.c @@ -539,12 +539,10 @@ main(int argc, char *argv[]) } else if (Oflag) { // extract to stdout extract(Oflag, argc-optind, argv+optind, 1); } else if (tflag) { // list - if (argc == optind && isatty(0)) { - char *cur[] = { "." }; - blaze822_loop(1, cur, list); - } else { + if (argc == optind && isatty(0)) + blaze822_loop1(".", list); + else blaze822_loop(argc-optind, argv+optind, list); - } } else if (Rflag) { // render for reply blaze822_loop(argc-optind, argv+optind, reply); } else { // show @@ -555,12 +553,10 @@ main(int argc, char *argv[]) if (f) filters = blaze822(f); } - if (argc == optind && isatty(0)) { - char *cur[] = { "." }; - blaze822_loop(1, cur, show); - } else { + if (argc == optind && isatty(0)) + blaze822_loop1(".", show); + else blaze822_loop(argc-optind, argv+optind, show); - } if (!nflag) // don't set cur blaze822_seq_setcur(newcur); } diff --git a/seq.c b/seq.c index 939eae7..b48b625 100644 --- a/seq.c +++ b/seq.c @@ -365,3 +365,10 @@ blaze822_loop(int argc, char *argv[], void (*cb)(char *)) } return j; } + +int +blaze822_loop1(char *arg, void (*cb)(char *)) +{ + char *args[] = { arg }; + return blaze822_loop(1, args, cb); +}