From 445998d7ac4e5d3c50411d377e3b50e960d2d6c2 Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Mon, 8 Oct 2018 13:53:59 -0700 Subject: Export of internal Abseil changes. -- 714347c156cfe01575c1830a92bc6dea3030065b by Emma Christie : Release absl::EqualsIgnoreCase PiperOrigin-RevId: 216243900 -- 688106e2b9d2924799d597682690851cfba87818 by Abseil Team : Import of CCTZ from GitHub. PiperOrigin-RevId: 216208373 -- 53638e4da238b230af0e56dc31b9fb790e708f36 by Emma Christie : 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 --- absl/strings/match.cc | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'absl/strings/match.cc') diff --git a/absl/strings/match.cc b/absl/strings/match.cc index 25bd7f0..3d10c57 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); -- cgit v1.2.3