branch: elpa/datetime commit a85ee71711eccb2b731d42187117416fb138a285 Author: Paul Pogonyshev <pogonys...@gmail.com> Commit: Paul Pogonyshev <pogonys...@gmail.com>
Fix certain fallbacks in `timezone-name-data.extmap' not being used when possible. --- dev/HarvestData.java | 10 ++++++---- timezone-name-data.extmap | Bin 3388371 -> 2753959 bytes 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/dev/HarvestData.java b/dev/HarvestData.java index 4221be4b5b..41e785230d 100644 --- a/dev/HarvestData.java +++ b/dev/HarvestData.java @@ -448,7 +448,7 @@ public class HarvestData Map <String, String[]> parent_data; if (Objects.equals (locale, parent)) - parent_data = Collections.emptyMap (); + parent_data = english_data; else { removeUnnecessaryTimezoneNameData (data, parent); parent_data = data.get (parent); @@ -458,13 +458,15 @@ public class HarvestData // the full names. locale_data.entrySet ().stream ().forEach ((entry) -> { String[] names = entry.getValue (); - if (Objects.equals (names[0], english_data.get (entry.getKey ()) [0]) && Objects.equals (names[1], english_data.get (entry.getKey ()) [1])) + + // First clause is important for locales like `en-US', for example. + if (!Arrays.equals (names, english_data.get (entry.getKey ())) + && Objects.equals (names[0], english_data.get (entry.getKey ()) [0]) && Objects.equals (names[1], english_data.get (entry.getKey ()) [1])) names[0] = names[1] = null; }); // Fall back to the parent locale where possible. - locale_data.entrySet ().removeIf ((entry) -> (Objects .equals (entry.getValue (), english_data.get (entry.getKey ())) - || Objects.equals (entry.getValue (), parent_data .get (entry.getKey ())))); + locale_data.entrySet ().removeIf ((entry) -> Arrays.equals (entry.getValue (), parent_data.getOrDefault (entry.getKey (), english_data.get (entry.getKey ())))); } diff --git a/timezone-name-data.extmap b/timezone-name-data.extmap index ab910b2085..0b669193ac 100644 Binary files a/timezone-name-data.extmap and b/timezone-name-data.extmap differ