From debac94cfb5a0fa75d1d97c399682bd1c72e3191 Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Mon, 30 Sep 2019 13:24:00 -0700 Subject: [PATCH] Export of internal Abseil changes -- 3f99b3ea921adc3607b6f308646db9f893c4d55d by CJ Johnson : Import of CCTZ from GitHub. PiperOrigin-RevId: 272051845 -- 9a62831d763e39936239ff53460ede42c2a73afb by CJ Johnson : Fix spelling errors #384 PiperOrigin-RevId: 272015607 -- b9b51815d52cf17e987636d83adea28c262f3f1a by Abseil Team : Fix a spelling error aligment -> alignment PiperOrigin-RevId: 271629812 -- 7965acbe7d7b5de18cfb2f2e5c0c18759313a229 by Abseil Team : Internal build system change. PiperOrigin-RevId: 271476858 -- 0b4508cbeff246c76762f80cbf8753a7414e4023 by Abseil Team : Internal change PiperOrigin-RevId: 271450732 -- f8cb1aa2196cf2a5e7a474038519da8024090e7f by Samuel Benzaquen : Internal change PiperOrigin-RevId: 271418668 GitOrigin-RevId: 3f99b3ea921adc3607b6f308646db9f893c4d55d Change-Id: I8743e60d001d42f24cd7494f106eeb2eb07e6526 --- absl/strings/BUILD.bazel | 2 +- absl/time/internal/cctz/include/cctz/civil_time.h | 2 +- absl/time/internal/cctz/src/time_zone_info.cc | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/absl/strings/BUILD.bazel b/absl/strings/BUILD.bazel index eae75d85c..729bdd761 100644 --- a/absl/strings/BUILD.bazel +++ b/absl/strings/BUILD.bazel @@ -25,7 +25,7 @@ package( features = ["parse_headers"], ) -licenses(["notice"]) # Apache 2.0 +licenses(["notice"]) cc_library( name = "strings", diff --git a/absl/time/internal/cctz/include/cctz/civil_time.h b/absl/time/internal/cctz/include/cctz/civil_time.h index 85d0d3fff..19b311bbd 100644 --- a/absl/time/internal/cctz/include/cctz/civil_time.h +++ b/absl/time/internal/cctz/include/cctz/civil_time.h @@ -150,7 +150,7 @@ namespace cctz { // // All civil-time types have accessors for all six of the civil-time fields: // year, month, day, hour, minute, and second. Recall that fields inferior to -// the type's aligment will be set to their minimum valid value. +// the type's alignment will be set to their minimum valid value. // // civil_day d(2015, 6, 28); // // d.year() == 2015 diff --git a/absl/time/internal/cctz/src/time_zone_info.cc b/absl/time/internal/cctz/src/time_zone_info.cc index 9db72e0c5..d3e1ae29b 100644 --- a/absl/time/internal/cctz/src/time_zone_info.cc +++ b/absl/time/internal/cctz/src/time_zone_info.cc @@ -631,11 +631,11 @@ class FileZoneInfoSource : public ZoneInfoSource { std::unique_ptr FileZoneInfoSource::Open( const std::string& name) { // Use of the "file:" prefix is intended for testing purposes only. - if (name.compare(0, 5, "file:") == 0) return Open(name.substr(5)); + const std::size_t pos = (name.compare(0, 5, "file:") == 0) ? 5 : 0; // Map the time-zone name to a path name. std::string path; - if (name.empty() || name[0] != '/') { + if (pos == name.size() || name[pos] != '/') { const char* tzdir = "/usr/share/zoneinfo"; char* tzdir_env = nullptr; #if defined(_MSC_VER) @@ -650,7 +650,7 @@ std::unique_ptr FileZoneInfoSource::Open( free(tzdir_env); #endif } - path += name; + path.append(name, pos, std::string::npos); // Open the zoneinfo file. FILE* fp = FOpen(path.c_str(), "rb"); @@ -680,7 +680,7 @@ class AndroidZoneInfoSource : public FileZoneInfoSource { std::unique_ptr AndroidZoneInfoSource::Open( const std::string& name) { // Use of the "file:" prefix is intended for testing purposes only. - if (name.compare(0, 5, "file:") == 0) return Open(name.substr(5)); + const std::size_t pos = (name.compare(0, 5, "file:") == 0) ? 5 : 0; // See Android's libc/tzcode/bionic.cpp for additional information. for (const char* tzdata : {"/data/misc/zoneinfo/current/tzdata", @@ -709,7 +709,7 @@ std::unique_ptr AndroidZoneInfoSource::Open( const std::int_fast32_t length = Decode32(ebuf + 44); if (start < 0 || length < 0) break; ebuf[40] = '\0'; // ensure zone name is NUL terminated - if (strcmp(name.c_str(), ebuf) == 0) { + if (strcmp(name.c_str() + pos, ebuf) == 0) { if (fseek(fp.get(), static_cast(start), SEEK_SET) != 0) break; return std::unique_ptr(new AndroidZoneInfoSource( fp.release(), static_cast(length), vers));