calendar: Use the new "%OB" format in strftime()

Due to the recent changes introduced in glibc 2.27 "%OB" is the
correct format to obtain a month name as used in the calendar
header.  The same rule has been working in BSD family (including
OS X) since 1990s.  This change is simple but makes GTK+ 4.x require
glibc >= 2.27.  If this requirement cannot be fulfilled then we must
cherry-pick the full commit cbf118c from gtk-3-22 branch.

Closes: #9
This commit is contained in:
Rafal Luzynski 2018-02-10 14:07:56 +01:00
parent 970d2e3f45
commit b9ea25c25c

View File

@ -687,7 +687,7 @@ gtk_calendar_init (GtkCalendar *calendar)
{
#ifndef G_OS_WIN32
tmp_time= (i+3)*86400;
strftime ( buffer, sizeof (buffer), "%a", gmtime (&tmp_time));
strftime (buffer, sizeof (buffer), "%a", gmtime (&tmp_time));
default_abbreviated_dayname[i] = g_locale_to_utf8 (buffer, -1, NULL, NULL, NULL);
#else
if (!GetLocaleInfoW (GetThreadLocale (), LOCALE_SABBREVDAYNAME1 + (i+6)%7,
@ -703,7 +703,8 @@ gtk_calendar_init (GtkCalendar *calendar)
{
#ifndef G_OS_WIN32
tmp_time=i*2764800;
strftime ( buffer, sizeof (buffer), "%B", gmtime (&tmp_time));
/* Note: "%OB" works only in glibc >= 2.27 and in BSD and OS X. */
strftime (buffer, sizeof (buffer), "%OB", gmtime (&tmp_time));
default_monthname[i] = g_locale_to_utf8 (buffer, -1, NULL, NULL, NULL);
#else
if (!GetLocaleInfoW (GetThreadLocale (), LOCALE_SMONTHNAME1 + i,