Import of CCTZ from GitHub.

PiperOrigin-RevId: 467950116
Change-Id: Iccb0c80c93f1064a82a5537d4519b041609cddd6
pull/1252/head
Abseil Team 3 years ago committed by Copybara-Service
parent 59cba2b50d
commit fa69b19a4e
  1. 2
      absl/time/internal/cctz/src/cctz_benchmark.cc
  2. 16
      absl/time/internal/cctz/src/time_zone_info.cc
  3. 5
      absl/time/internal/cctz/src/time_zone_lookup_test.cc
  4. 6
      absl/time/internal/cctz/testdata/README.zoneinfo
  5. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Accra
  6. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Addis_Ababa
  7. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Asmara
  8. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Asmera
  9. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Bamako
  10. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Bangui
  11. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Banjul
  12. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Blantyre
  13. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Brazzaville
  14. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Bujumbura
  15. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Conakry
  16. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Dakar
  17. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Dar_es_Salaam
  18. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Djibouti
  19. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Douala
  20. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Freetown
  21. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Gaborone
  22. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Harare
  23. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Kampala
  24. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Kigali
  25. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Kinshasa
  26. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Libreville
  27. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Lome
  28. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Luanda
  29. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Lubumbashi
  30. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Lusaka
  31. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Malabo
  32. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Maseru
  33. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Mbabane
  34. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Mogadishu
  35. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Niamey
  36. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Nouakchott
  37. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Ouagadougou
  38. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Porto-Novo
  39. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Africa/Timbuktu
  40. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Anguilla
  41. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Antigua
  42. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Aruba
  43. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Atikokan
  44. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Blanc-Sablon
  45. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Cayman
  46. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Coral_Harbour
  47. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Creston
  48. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Curacao
  49. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Dominica
  50. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Grenada
  51. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Guadeloupe
  52. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Kralendijk
  53. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Lower_Princes
  54. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Marigot
  55. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Montserrat
  56. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Nassau
  57. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Port_of_Spain
  58. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/St_Barthelemy
  59. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/St_Kitts
  60. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/St_Lucia
  61. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/St_Thomas
  62. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/St_Vincent
  63. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Tortola
  64. BIN
      absl/time/internal/cctz/testdata/zoneinfo/America/Virgin
  65. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Antarctica/DumontDUrville
  66. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Antarctica/McMurdo
  67. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Antarctica/South_Pole
  68. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Syowa
  69. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Vostok
  70. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Arctic/Longyearbyen
  71. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Asia/Aden
  72. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Asia/Bahrain
  73. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Asia/Brunei
  74. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Asia/Kuala_Lumpur
  75. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Asia/Kuwait
  76. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Asia/Muscat
  77. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Asia/Phnom_Penh
  78. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Asia/Vientiane
  79. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Jan_Mayen
  80. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Reykjavik
  81. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Atlantic/St_Helena
  82. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Europe/Amsterdam
  83. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Europe/Copenhagen
  84. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Europe/Guernsey
  85. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Europe/Isle_of_Man
  86. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Europe/Jersey
  87. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Europe/Ljubljana
  88. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Europe/Luxembourg
  89. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Europe/Monaco
  90. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Europe/Oslo
  91. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Europe/Sarajevo
  92. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Europe/Skopje
  93. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Europe/Stockholm
  94. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Europe/Vaduz
  95. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Europe/Zagreb
  96. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Iceland
  97. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Indian/Antananarivo
  98. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Indian/Christmas
  99. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Indian/Cocos
  100. BIN
      absl/time/internal/cctz/testdata/zoneinfo/Indian/Comoro
  101. Some files were not shown because too many files have changed in this diff Show More

@ -554,6 +554,7 @@ const char* const kTimeZoneNames[] = {"Africa/Abidjan",
"Europe/Kaliningrad",
"Europe/Kiev",
"Europe/Kirov",
"Europe/Kyiv",
"Europe/Lisbon",
"Europe/Ljubljana",
"Europe/London",
@ -593,6 +594,7 @@ const char* const kTimeZoneNames[] = {"Africa/Abidjan",
"Europe/Zagreb",
"Europe/Zaporozhye",
"Europe/Zurich",
"Factory",
"GB",
"GB-Eire",
"GMT",

@ -134,6 +134,21 @@ std::int_fast64_t Decode64(const char* cp) {
return static_cast<std::int_fast64_t>(v - s64maxU - 1) - s64max - 1;
}
// Does the rule for future transitions call for year-round daylight time?
// See tz/zic.c:stringzone() for the details on how such rules are encoded.
bool AllYearDST(const PosixTimeZone& posix) {
if (posix.dst_start.date.fmt != PosixTransition::N) return false;
if (posix.dst_start.date.n.day != 0) return false;
if (posix.dst_start.time.offset != 0) return false;
if (posix.dst_end.date.fmt != PosixTransition::J) return false;
if (posix.dst_end.date.j.day != kDaysPerYear[0]) return false;
const auto offset = posix.std_offset - posix.dst_offset;
if (posix.dst_end.time.offset + offset != kSecsPerDay) return false;
return true;
}
// Generate a year-relative offset for a PosixTransition.
std::int_fast64_t TransOffset(bool leap_year, int jan1_weekday,
const PosixTransition& pt) {
@ -334,6 +349,7 @@ bool TimeZoneInfo::ExtendTransitions() {
PosixTimeZone posix;
if (!ParsePosixSpec(future_spec_, &posix)) return false;
if (AllYearDST(posix)) return true; // last transition still prevails
// Find transition type for the future std specification.
std::uint_least8_t std_ti;

@ -489,6 +489,7 @@ const char* const kTimeZoneNames[] = {"Africa/Abidjan",
"Europe/Kaliningrad",
"Europe/Kiev",
"Europe/Kirov",
"Europe/Kyiv",
"Europe/Lisbon",
"Europe/Ljubljana",
"Europe/London",
@ -528,6 +529,7 @@ const char* const kTimeZoneNames[] = {"Africa/Abidjan",
"Europe/Zagreb",
"Europe/Zaporozhye",
"Europe/Zurich",
"Factory",
"GB",
"GB-Eire",
"GMT",
@ -1188,11 +1190,12 @@ TEST(PrevTransition, AmericaNewYork) {
TEST(NextTransition, Scan) {
for (const char* const* np = kTimeZoneNames; *np != nullptr; ++np) {
SCOPED_TRACE(testing::Message() << "In " << *np);
time_zone tz;
// EXPECT_TRUE(load_time_zone(*np, &tz));
if (!load_time_zone(*np, &tz)) {
continue; // tolerate kTimeZoneNames/zoneinfo skew
}
SCOPED_TRACE(testing::Message() << "In " << *np);
auto tp = time_point<absl::time_internal::cctz::seconds>::min();
time_zone::civil_transition trans;

@ -13,12 +13,7 @@ New versions can be generated using the following shell script.
trap "rm -fr ${DESTDIR}" 0 2 15
(
cd ${DESTDIR}
if [ -n "${USE_GLOBAL_TZ}" ]
then
git clone -b global-tz https://github.com/JodaOrg/global-tz.git tz
else
git clone https://github.com/eggert/tz.git
fi
make --directory=tz \
install DESTDIR=${DESTDIR} \
DATAFORM=vanguard \
@ -26,6 +21,7 @@ New versions can be generated using the following shell script.
REDO=posix_only \
LOCALTIME=Factory \
TZDATA_TEXT= \
PACKRATDATA=backzone PACKRATLIST=zone.tab \
ZONETABLES=zone1970.tab
tar --create --dereference --hard-dereference --file tzfile.tar \
--directory=tz tzfile.h

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save