diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2023-01-04 20:49:59 +0000 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2023-01-05 00:46:00 +0000 |
commit | 56be1970765b6302de19977790a537d6feaaa34b (patch) | |
tree | ac32016065ce2b61aa5f6e773a6a0b97323ae6ad | |
parent | b1ad748754401613b5cf8e5d46b38ad1ee49d07a (diff) | |
download | gcc-56be1970765b6302de19977790a537d6feaaa34b.zip gcc-56be1970765b6302de19977790a537d6feaaa34b.tar.gz gcc-56be1970765b6302de19977790a537d6feaaa34b.tar.bz2 |
libstdc++: Support single components in name of chrono::current_zone() [PR108211]
We currently only handle the case where /etc/localtime is a symlink to a
path like ".../Etc/UTC" and fail for ".../UTC". This makes both work.
libstdc++-v3/ChangeLog:
PR libstdc++/108211
* src/c++20/tzdb.cc (chrono::current_zone()): Check for zone
using only last component of the name.
-rw-r--r-- | libstdc++-v3/src/c++20/tzdb.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libstdc++-v3/src/c++20/tzdb.cc b/libstdc++-v3/src/c++20/tzdb.cc index 6772517..9103b15 100644 --- a/libstdc++-v3/src/c++20/tzdb.cc +++ b/libstdc++-v3/src/c++20/tzdb.cc @@ -1501,8 +1501,11 @@ namespace std::chrono if (std::distance(first, last) > 2) { --last; - string name = std::prev(last)->string() + '/'; - name += last->string(); + string name = last->string(); + if (auto tz = do_locate_zone(this->zones, this->links, name)) + return tz; + --last; + name = last->string() + '/' + name; if (auto tz = do_locate_zone(this->zones, this->links, name)) return tz; } |