diff --git a/src/builtin_string.cpp b/src/builtin_string.cpp index f5cc6f971..d464a18e4 100644 --- a/src/builtin_string.cpp +++ b/src/builtin_string.cpp @@ -750,7 +750,7 @@ class pcre2_matcher_t : public string_matcher_t { return 0; } - if (opts.entire) { + if (opts.entire && !opts.quiet) { streams.out.append(arg); streams.out.push_back(L'\n'); } @@ -864,12 +864,6 @@ static int string_match(parser_t &parser, io_streams_t &streams, int argc, wchar return STATUS_INVALID_ARGS; } - if (opts.entire && opts.quiet) { - streams.err.append_format(BUILTIN_ERR_COMBO2, cmd, - _(L"--entire and --quiet are mutually exclusive")); - return STATUS_INVALID_ARGS; - } - std::unique_ptr matcher; if (opts.regex) { matcher = make_unique(cmd, pattern, opts, streams); diff --git a/tests/checks/string.fish b/tests/checks/string.fish index a82b15883..dc3eb6e84 100644 --- a/tests/checks/string.fish +++ b/tests/checks/string.fish @@ -561,5 +561,9 @@ count (dualcollect) # CHECK: 3 string match -qer asd asd -# CHECKERR: match: Invalid combination of options, -# CHECKERR: --entire and --quiet are mutually exclusive +echo $status +# CHECK: 0 + +string match -eq asd asd +echo $status +# CHECK: 0