[libcxx-commits] [libcxx] [libc++][TZDB] Fixes parsing interleaved rules. (PR #84808)
Louis Dionne via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Mar 12 09:09:38 PDT 2024
================
@@ -511,14 +511,33 @@ static string __parse_version(istream& __input) {
return chrono::__parse_string(__input);
}
+[[nodiscard]]
+static __tz::__rule& __create_entry(__tz::__rules_storage_type& __rules, const string& __name) {
+ auto __result = [&]() -> __tz::__rule& {
+ auto& __rule = __rules.emplace_back(__name, vector<__tz::__rule>{});
+ return __rule.second.emplace_back();
+ };
+
+ if (__rules.empty())
+ return __result();
+
+ // Typically rules are in contiguous order in the database.
+ // But there are exceptions. For example, NZ and Chatham are interleaved.
----------------
ldionne wrote:
```suggestion
// Typically rules are in contiguous order in the database.
// But there are exceptions, some rules are interleaved.
```
Otherwise the comment might not age well.
https://github.com/llvm/llvm-project/pull/84808
More information about the libcxx-commits
mailing list