Index: third_party/re2/re2/testing/tester.cc |
diff --git a/third_party/re2/re2/testing/tester.cc b/third_party/re2/re2/testing/tester.cc |
index cb12badebfa897888924954c488440d97e555cf9..003dc5add05696f9dfcdb88936aa1230831a265e 100644 |
--- a/third_party/re2/re2/testing/tester.cc |
+++ b/third_party/re2/re2/testing/tester.cc |
@@ -246,7 +246,6 @@ |
// 2. It treats $ as this weird thing meaning end of string |
// or before the \n at the end of the string. |
// 3. It doesn't implement POSIX leftmost-longest matching. |
- // 4. It lets \s match vertical tab. |
// MimicsPCRE() detects 1 and 2. |
if ((Engines() & (1<<kEnginePCRE)) && regexp_->MimicsPCRE() && |
kind_ != Prog::kLongestMatch) { |
@@ -344,8 +343,7 @@ |
Prog::kAnchored, Prog::kLongestMatch, |
result->submatch, |
&result->skipped, NULL)) { |
- LOG(ERROR) << "Reverse DFA inconsistency: " |
- << CEscape(regexp_str_) |
+ LOG(ERROR) << "Reverse DFA inconsistency: " << CEscape(regexp_str_) |
<< " on " << CEscape(text); |
result->matched = false; |
} |
@@ -392,13 +390,10 @@ |
if (kind_ == Prog::kFullMatch) |
re_anchor = RE2::ANCHOR_BOTH; |
- result->matched = re2_->Match( |
- context, |
- static_cast<int>(text.begin() - context.begin()), |
- static_cast<int>(text.end() - context.begin()), |
- re_anchor, |
- result->submatch, |
- nsubmatch); |
+ result->matched = re2_->Match(context, |
+ text.begin() - context.begin(), |
+ text.end() - context.begin(), |
+ re_anchor, result->submatch, nsubmatch); |
result->have_submatch = nsubmatch > 0; |
break; |
} |
@@ -406,14 +401,6 @@ |
case kEnginePCRE: { |
if (!re_ || text.begin() != context.begin() || |
text.end() != context.end()) { |
- result->skipped = true; |
- break; |
- } |
- |
- // PCRE 8.34 or so started allowing vertical tab to match \s, |
- // following a change made in Perl 5.18. RE2 does not. |
- if ((regexp_str_.contains("\\s") || regexp_str_.contains("\\S")) && |
- text.contains("\v")) { |
result->skipped = true; |
break; |
} |
@@ -518,7 +505,7 @@ |
} |
// We disagree with PCRE on the meaning of some Unicode matches. |
- // In particular, we treat non-ASCII UTF-8 as non-word characters. |
+ // In particular, we treat all non-ASCII UTF-8 as word characters. |
// We also treat "empty" character sets like [^\w\W] as being |
// impossible to match, while PCRE apparently excludes some code |
// points (e.g., 0x0080) from both \w and \W. |
@@ -605,14 +592,14 @@ |
} |
Tester::~Tester() { |
- for (size_t i = 0; i < v_.size(); i++) |
+ for (int i = 0; i < v_.size(); i++) |
delete v_[i]; |
} |
bool Tester::TestCase(const StringPiece& text, const StringPiece& context, |
Prog::Anchor anchor) { |
bool okay = true; |
- for (size_t i = 0; i < v_.size(); i++) |
+ for (int i = 0; i < v_.size(); i++) |
okay &= (!v_[i]->error() && v_[i]->RunCase(text, context, anchor)); |
return okay; |
} |