From f5fcae1460a4ae159b6220fe9e83101c4e7a38ad Mon Sep 17 00:00:00 2001 From: Meudwy Date: Tue, 25 Jul 2023 11:55:26 +0100 Subject: [PATCH] minc: read directory names from stdin This matches `mlist` where it can take directories as arguments or via stdin. --- GNUmakefile | 4 ++-- man/minc.1 | 3 +++ minc.c | 13 ++++++++----- t/9000-minc.t | 8 +++++++- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index c90e9383..89cb7794 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -28,8 +28,8 @@ all: $(ALL) museragent $(ALL) : % : %.o maddr magrep mdeliver mexport mflag mflow mgenmid mhdr mpick mscan msed mshow \ msort mthread : blaze822.o mymemmem.o mytimegm.o -maddr magrep mdeliver mexport mflag mgenmid mhdr mlist mpick mscan msed mseq \ - mshow msort mthread : seq.o slurp.o mystrverscmp.o +maddr magrep mdeliver mexport mflag mgenmid mhdr minc mlist mpick mscan msed \ + mseq mshow msort mthread : seq.o slurp.o mystrverscmp.o maddr magrep mflow mhdr mpick mscan mshow : rfc2047.o magrep mflow mhdr mshow : rfc2045.o mshow : filter.o safe_u8putstr.o rfc2231.o pipeto.o diff --git a/man/minc.1 b/man/minc.1 index cb71c859..6b7f96c5 100644 --- a/man/minc.1 +++ b/man/minc.1 @@ -17,6 +17,9 @@ by moving them from to .Pa cur , and adjusting the filenames. +If used non-interactively with no specified folders, +.Nm +reads directory names from the standard input. .Pp By default, the new filenames are printed, separated by newlines. diff --git a/minc.c b/minc.c index c1d28fd2..2811646a 100644 --- a/minc.c +++ b/minc.c @@ -74,14 +74,17 @@ main(int argc, char *argv[]) exit(1); } - if (optind == argc) - goto usage; - xpledge("stdio rpath cpath", ""); status = 0; - for (i = optind; i < argc; i++) - inc(argv[i]); + if (optind == argc) { + if (isatty(0)) + goto usage; + blaze822_loop(0, 0, inc); + } else { + for (i = optind; i < argc; i++) + inc(argv[i]); + } return status; } diff --git a/t/9000-minc.t b/t/9000-minc.t index 3d5b7894..9b291943 100644 --- a/t/9000-minc.t +++ b/t/9000-minc.t @@ -1,7 +1,7 @@ #!/bin/sh -e cd ${0%/*} . ./lib.sh -plan 1 +plan 2 rm -rf test.dir mkdir test.dir @@ -16,4 +16,10 @@ inbox/new/2 check_test 'minc' -eq 2 'minc inbox | wc -l' +while read f; do touch "$f"; done <