Make string match -rnv work

Fixes #3098.
This commit is contained in:
Fabian Homborg 2016-05-31 23:14:03 +02:00
parent 3d74b160b3
commit 8d6735cb41
3 changed files with 9 additions and 2 deletions

View file

@ -376,8 +376,12 @@ class pcre2_matcher_t : public string_matcher_t {
// Return values: -1 = error, 0 = no match, 1 = match.
if (pcre2_rc == PCRE2_ERROR_NOMATCH) {
if (opts.invert_match && !opts.quiet) {
streams.out.append(arg);
streams.out.push_back(L'\n');
if (opts.index) {
streams.out.append_format(L"1 %lu\n", wcslen(arg));
} else {
streams.out.append(arg);
streams.out.push_back(L'\n');
}
}
return opts.invert_match ? 1 : 0;

View file

@ -88,3 +88,5 @@ string length 2>/dev/null; or echo "missing argument returns 0"
string match -r -v "[dcantg].*" dog can cat diz; or echo "no regexp invert match"
string match -v "???" dog can cat diz; or echo "no glob invert match"
string match -rvn a bbb

View file

@ -62,3 +62,4 @@ invalid argument error
missing argument returns 0
no regexp invert match
no glob invert match
1 3