about summary refs log tree commit diff
path: root/absl/strings/match.cc
diff options
context:
space:
mode:
authorAbseil Team <absl-team@google.com>2018-10-08T20·53-0700
committerCJ Johnson <johnsoncj@google.com>2018-10-09T19·36-0400
commit445998d7ac4e5d3c50411d377e3b50e960d2d6c2 (patch)
tree8d9c214c92786eae42860786fdaeaafd1ee57f03 /absl/strings/match.cc
parente821380d69a549dc64900693942789d21aa4df5e (diff)
Export of internal Abseil changes.
--
714347c156cfe01575c1830a92bc6dea3030065b by Emma Christie <emmachristie@google.com>:

Release absl::EqualsIgnoreCase

PiperOrigin-RevId: 216243900

--
688106e2b9d2924799d597682690851cfba87818 by Abseil Team <absl-team@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 216208373

--
53638e4da238b230af0e56dc31b9fb790e708f36 by Emma Christie <emmachristie@google.com>:

Update StartsWithIgnoreCase(), EndsWithIgnoreCase(), and EqualsIgnoreCase() headers to say that these functions only consider ASCII case inputs.

PiperOrigin-RevId: 215930962
GitOrigin-RevId: 714347c156cfe01575c1830a92bc6dea3030065b
Change-Id: I7fb3506234185b1a961e0110c1f8302ffe7228fa
Diffstat (limited to 'absl/strings/match.cc')
-rw-r--r--absl/strings/match.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/absl/strings/match.cc b/absl/strings/match.cc
index 25bd7f0b828b..3d10c57784eb 100644
--- a/absl/strings/match.cc
+++ b/absl/strings/match.cc
@@ -27,6 +27,13 @@ bool CaseEqual(absl::string_view piece1, absl::string_view piece2) {
 }
 }  // namespace
 
+bool EqualsIgnoreCase(absl::string_view piece1, absl::string_view piece2) {
+  return (piece1.size() == piece2.size() &&
+          0 == absl::strings_internal::memcasecmp(piece1.data(), piece2.data(),
+                                                  piece1.size()));
+  // memcasecmp uses absl::ascii_tolower().
+}
+
 bool StartsWithIgnoreCase(absl::string_view text, absl::string_view prefix) {
   return (text.size() >= prefix.size()) &&
          CaseEqual(text.substr(0, prefix.size()), prefix);