about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--blaze822.h1
-rw-r--r--mshow.c16
-rw-r--r--seq.c7
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);
+}