From ca389a3cae8a1a4b9498451c0dc000e614f9db52 Mon Sep 17 00:00:00 2001 From: Filip Navara Date: Mon, 2 Sep 2019 02:45:45 +0200 Subject: [PATCH] [corlib] Add hack for Hebrew calendar data --- mcs/class/corlib/ReferenceSources/CalendarData.cs | 12 +++++++++++- mcs/class/corlib/corlib.dll.sources | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/mcs/class/corlib/ReferenceSources/CalendarData.cs b/mcs/class/corlib/ReferenceSources/CalendarData.cs index 37ded82917e..fdb4bd1ab75 100644 --- a/mcs/class/corlib/ReferenceSources/CalendarData.cs +++ b/mcs/class/corlib/ReferenceSources/CalendarData.cs @@ -43,7 +43,17 @@ namespace System.Globalization static bool nativeGetCalendarData (CalendarData data, string localeName, int calendarId) { // TODO: Convert calendar-id to mono runtime calendar-id when it's used - return data.fill_calendar_data (localeName.ToLowerInvariant (), calendarId); + if (data.fill_calendar_data (localeName.ToLowerInvariant (), calendarId)) { + if ((CalendarId)calendarId == CalendarId.HEBREW) { + // HACK: Generate leap month names because the native code does not do it + // and tests would fail to round-trip dates on leap years. + // https://github.com/mono/mono/issues/16623 + data.saMonthNames = new[] { "Nisan", "Iyar", "Sivan", "Tammuz", "Av", "Elul", "Tishrei", "Cheshvan", "Kislev", "Tevet", "Shevat", "Adar", "" }; + data.saLeapYearMonthNames = new[] { "Nisan", "Iyar", "Sivan", "Tammuz", "Av", "Elul", "Tishrei", "Cheshvan", "Kislev", "Tevet", "Shevat", "Adar I", "Adar II" }; + } + return true; + } + return false; } [MethodImplAttribute (MethodImplOptions.InternalCall)] diff --git a/mcs/class/corlib/corlib.dll.sources b/mcs/class/corlib/corlib.dll.sources index 3abc8e8f55c..1bfb37576d4 100644 --- a/mcs/class/corlib/corlib.dll.sources +++ b/mcs/class/corlib/corlib.dll.sources @@ -1105,7 +1105,7 @@ ReferenceSources/AppContextDefaultValues.cs ../referencesource/mscorlib/system/globalization/gregoriancalendarhelper.cs ../referencesource/mscorlib/system/globalization/gregoriancalendartypes.cs ../referencesource/mscorlib/system/globalization/hebrewcalendar.cs -../referencesource/mscorlib/system/globalization/hebrewnumber.cs +../../../external/corefx/src/Common/src/CoreLib/System/Globalization/HebrewNumber.cs ../referencesource/mscorlib/system/globalization/hijricalendar.cs ../referencesource/mscorlib/system/globalization/japanesecalendar.cs ../referencesource/mscorlib/system/globalization/japaneselunisolarcalendar.cs -- 2.11.4.GIT