stest: restore stream testing

master
Connor Lane Smith 13 years ago
parent 32ef0f5662
commit 6b1d658d12
  1. 3
      stest.1
  2. 9
      stest.c

@ -13,7 +13,8 @@ stest \- filter a list of files by properties
.B stest .B stest
takes a list of files and filters by the files' properties, analogous to takes a list of files and filters by the files' properties, analogous to
.IR test (1). .IR test (1).
Files which pass all tests are printed to stdout. Files which pass all tests are printed to stdout. If no files are given, stest
reads files from stdin.
.SH OPTIONS .SH OPTIONS
.TP .TP
.B \-a .B \-a

@ -3,6 +3,7 @@
#include <stdbool.h> #include <stdbool.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h>
#include <unistd.h> #include <unistd.h>
#include <sys/stat.h> #include <sys/stat.h>
@ -17,7 +18,7 @@ static struct stat old, new;
int int
main(int argc, char *argv[]) { main(int argc, char *argv[]) {
struct dirent *d; struct dirent *d;
char buf[BUFSIZ]; char buf[BUFSIZ], *p;
DIR *dir; DIR *dir;
int opt; int opt;
@ -35,6 +36,12 @@ main(int argc, char *argv[]) {
fprintf(stderr, "usage: %s [-abcdefghlpqrsuwx] [-n file] [-o file] [file...]\n", argv[0]); fprintf(stderr, "usage: %s [-abcdefghlpqrsuwx] [-n file] [-o file] [file...]\n", argv[0]);
exit(2); exit(2);
} }
if(optind == argc)
while(fgets(buf, sizeof buf, stdin)) {
if((p = strchr(buf, '\n')))
*p = '\0';
test(buf, buf);
}
for(; optind < argc; optind++) for(; optind < argc; optind++)
if(FLAG('l') && (dir = opendir(argv[optind]))) { if(FLAG('l') && (dir = opendir(argv[optind]))) {
/* test directory contents */ /* test directory contents */

Loading…
Cancel
Save