mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 18:17:44 +00:00
LibTimeZone: Extract and parse the backwards compatibility LINK entries
This set of LINK entries contains the link from "UTC" to "Etc/UTC", which LibJS will heavily depend upon.
This commit is contained in:
parent
b5758a0623
commit
87abf00f7c
2 changed files with 14 additions and 8 deletions
|
@ -20,6 +20,9 @@ set(TZDB_ASIA_PATH "${TZDB_PATH}/${TZDB_ASIA_SOURCE}")
|
||||||
set(TZDB_AUSTRALASIA_SOURCE australasia)
|
set(TZDB_AUSTRALASIA_SOURCE australasia)
|
||||||
set(TZDB_AUSTRALASIA_PATH "${TZDB_PATH}/${TZDB_AUSTRALASIA_SOURCE}")
|
set(TZDB_AUSTRALASIA_PATH "${TZDB_PATH}/${TZDB_AUSTRALASIA_SOURCE}")
|
||||||
|
|
||||||
|
set(TZDB_BACKWARD_SOURCE backward)
|
||||||
|
set(TZDB_BACKWARD_PATH "${TZDB_PATH}/${TZDB_BACKWARD_SOURCE}")
|
||||||
|
|
||||||
set(TZDB_ETCETERA_SOURCE etcetera)
|
set(TZDB_ETCETERA_SOURCE etcetera)
|
||||||
set(TZDB_ETCETERA_PATH "${TZDB_PATH}/${TZDB_ETCETERA_SOURCE}")
|
set(TZDB_ETCETERA_PATH "${TZDB_PATH}/${TZDB_ETCETERA_SOURCE}")
|
||||||
|
|
||||||
|
@ -54,6 +57,7 @@ if (ENABLE_TIME_ZONE_DATABASE_DOWNLOAD)
|
||||||
extract_tzdb_file("${TZDB_ANTARCTICA_SOURCE}" "${TZDB_ANTARCTICA_PATH}")
|
extract_tzdb_file("${TZDB_ANTARCTICA_SOURCE}" "${TZDB_ANTARCTICA_PATH}")
|
||||||
extract_tzdb_file("${TZDB_ASIA_SOURCE}" "${TZDB_ASIA_PATH}")
|
extract_tzdb_file("${TZDB_ASIA_SOURCE}" "${TZDB_ASIA_PATH}")
|
||||||
extract_tzdb_file("${TZDB_AUSTRALASIA_SOURCE}" "${TZDB_AUSTRALASIA_PATH}")
|
extract_tzdb_file("${TZDB_AUSTRALASIA_SOURCE}" "${TZDB_AUSTRALASIA_PATH}")
|
||||||
|
extract_tzdb_file("${TZDB_BACKWARD_SOURCE}" "${TZDB_BACKWARD_PATH}")
|
||||||
extract_tzdb_file("${TZDB_ETCETERA_SOURCE}" "${TZDB_ETCETERA_PATH}")
|
extract_tzdb_file("${TZDB_ETCETERA_SOURCE}" "${TZDB_ETCETERA_PATH}")
|
||||||
extract_tzdb_file("${TZDB_EUROPE_SOURCE}" "${TZDB_EUROPE_PATH}")
|
extract_tzdb_file("${TZDB_EUROPE_SOURCE}" "${TZDB_EUROPE_PATH}")
|
||||||
extract_tzdb_file("${TZDB_NORTH_AMERICA_SOURCE}" "${TZDB_NORTH_AMERICA_PATH}")
|
extract_tzdb_file("${TZDB_NORTH_AMERICA_SOURCE}" "${TZDB_NORTH_AMERICA_PATH}")
|
||||||
|
@ -78,7 +82,7 @@ if (ENABLE_TIME_ZONE_DATABASE_DOWNLOAD)
|
||||||
"${TIME_ZONE_META_TARGET_PREFIX}"
|
"${TIME_ZONE_META_TARGET_PREFIX}"
|
||||||
"${TIME_ZONE_DATA_HEADER}"
|
"${TIME_ZONE_DATA_HEADER}"
|
||||||
"${TIME_ZONE_DATA_IMPLEMENTATION}"
|
"${TIME_ZONE_DATA_IMPLEMENTATION}"
|
||||||
arguments "${TZDB_AFRICA_PATH}" "${TZDB_ANTARCTICA_PATH}" "${TZDB_ASIA_PATH}" "${TZDB_AUSTRALASIA_PATH}" "${TZDB_ETCETERA_PATH}" "${TZDB_EUROPE_PATH}" "${TZDB_NORTH_AMERICA_PATH}" "${TZDB_SOUTH_AMERICA_PATH}"
|
arguments "${TZDB_AFRICA_PATH}" "${TZDB_ANTARCTICA_PATH}" "${TZDB_ASIA_PATH}" "${TZDB_AUSTRALASIA_PATH}" "${TZDB_BACKWARD_PATH}" "${TZDB_ETCETERA_PATH}" "${TZDB_EUROPE_PATH}" "${TZDB_NORTH_AMERICA_PATH}" "${TZDB_SOUTH_AMERICA_PATH}"
|
||||||
)
|
)
|
||||||
|
|
||||||
set(TIME_ZONE_DATA_SOURCES
|
set(TIME_ZONE_DATA_SOURCES
|
||||||
|
|
|
@ -168,15 +168,17 @@ static ErrorOr<void> parse_time_zones(StringView time_zone_path, TimeZoneData& t
|
||||||
|
|
||||||
static String format_identifier(StringView owner, String identifier)
|
static String format_identifier(StringView owner, String identifier)
|
||||||
{
|
{
|
||||||
constexpr auto gmt_time_zone = "Etc/GMT"sv;
|
constexpr auto gmt_time_zones = Array { "Etc/GMT"sv, "GMT"sv };
|
||||||
|
|
||||||
if (identifier.starts_with(gmt_time_zone)) {
|
for (auto gmt_time_zone : gmt_time_zones) {
|
||||||
auto offset = identifier.substring_view(gmt_time_zone.length());
|
if (identifier.starts_with(gmt_time_zone)) {
|
||||||
|
auto offset = identifier.substring_view(gmt_time_zone.length());
|
||||||
|
|
||||||
if (offset.starts_with('+'))
|
if (offset.starts_with('+'))
|
||||||
identifier = String::formatted("{}_P{}", gmt_time_zone, offset.substring_view(1));
|
identifier = String::formatted("{}_P{}", gmt_time_zone, offset.substring_view(1));
|
||||||
else if (offset.starts_with('-'))
|
else if (offset.starts_with('-'))
|
||||||
identifier = String::formatted("{}_M{}", gmt_time_zone, offset.substring_view(1));
|
identifier = String::formatted("{}_M{}", gmt_time_zone, offset.substring_view(1));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
identifier = identifier.replace("-"sv, "_"sv, true);
|
identifier = identifier.replace("-"sv, "_"sv, true);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue