From 4f68ec87a20490662350c213baac26ea965f93b3 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Wed, 16 Sep 2020 21:34:55 -0700 Subject: Exit 1 iff *all* files fail to match instead of *any* --- bpeg.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bpeg.c b/bpeg.c index 8575ee3..c10be76 100644 --- a/bpeg.c +++ b/bpeg.c @@ -164,11 +164,11 @@ int main(int argc, char *argv[]) vm_op_t *pattern = lookup(g, rule); check(pattern != NULL, "No such rule: '%s'", rule); - int ret = 0; + int ret = 1; if (i < argc) { // Files pass in as command line args: for (int nfiles = 0; i < argc; nfiles++, i++) { - ret |= run_match(g, argv[i], pattern, flags); + ret &= run_match(g, argv[i], pattern, flags); } } else if (isatty(STDIN_FILENO)) { // No files, no piped in input, so use * **/*: @@ -176,12 +176,12 @@ int main(int argc, char *argv[]) glob("*", 0, NULL, &globbuf); glob("**/*", GLOB_APPEND, NULL, &globbuf); for (size_t i = 0; i < globbuf.gl_pathc; i++) { - ret |= run_match(g, globbuf.gl_pathv[i], pattern, flags); + ret &= run_match(g, globbuf.gl_pathv[i], pattern, flags); } globfree(&globbuf); } else { // Piped in input: - ret |= run_match(g, NULL, pattern, flags); + ret &= run_match(g, NULL, pattern, flags); } -- cgit v1.2.3