forked from AuroraMiddleware/gtk
calendar: Avoid warnings for new "%OB" format
Use the same code we have in gtk-3-22 to deal with strftime() not supporting %OB, and avoid compiler warnings for non-literal format strings.
This commit is contained in:
parent
cfcd0f888d
commit
f42ebef9d1
@ -634,6 +634,9 @@ gtk_calendar_class_init (GtkCalendarClass *class)
|
|||||||
gtk_widget_class_set_css_name (widget_class, I_("calendar"));
|
gtk_widget_class_set_css_name (widget_class, I_("calendar"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pragma GCC diagnostic push
|
||||||
|
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gtk_calendar_init (GtkCalendar *calendar)
|
gtk_calendar_init (GtkCalendar *calendar)
|
||||||
{
|
{
|
||||||
@ -644,6 +647,7 @@ gtk_calendar_init (GtkCalendar *calendar)
|
|||||||
#ifdef G_OS_WIN32
|
#ifdef G_OS_WIN32
|
||||||
wchar_t wbuffer[100];
|
wchar_t wbuffer[100];
|
||||||
#else
|
#else
|
||||||
|
static const char *month_format = NULL;
|
||||||
char buffer[255];
|
char buffer[255];
|
||||||
time_t tmp_time;
|
time_t tmp_time;
|
||||||
#endif
|
#endif
|
||||||
@ -703,8 +707,21 @@ gtk_calendar_init (GtkCalendar *calendar)
|
|||||||
{
|
{
|
||||||
#ifndef G_OS_WIN32
|
#ifndef G_OS_WIN32
|
||||||
tmp_time=i*2764800;
|
tmp_time=i*2764800;
|
||||||
/* Note: "%OB" works only in glibc >= 2.27 and in BSD and OS X. */
|
if (G_UNLIKELY (month_format == NULL))
|
||||||
strftime (buffer, sizeof (buffer), "%OB", gmtime (&tmp_time));
|
{
|
||||||
|
buffer[0] = '\0';
|
||||||
|
month_format = "%OB";
|
||||||
|
strftime (buffer, sizeof (buffer), month_format, gmtime (&tmp_time));
|
||||||
|
/* "%OB" is not supported in Linux with glibc < 2.27 */
|
||||||
|
if (!strcmp (buffer, "%OB") || !strcmp (buffer, "OB") || !strcmp (buffer, ""))
|
||||||
|
{
|
||||||
|
month_format = "%B";
|
||||||
|
strftime (buffer, sizeof (buffer), month_format, gmtime (&tmp_time));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
strftime (buffer, sizeof (buffer), month_format, gmtime (&tmp_time));
|
||||||
|
|
||||||
default_monthname[i] = g_locale_to_utf8 (buffer, -1, NULL, NULL, NULL);
|
default_monthname[i] = g_locale_to_utf8 (buffer, -1, NULL, NULL, NULL);
|
||||||
#else
|
#else
|
||||||
if (!GetLocaleInfoW (GetThreadLocale (), LOCALE_SMONTHNAME1 + i,
|
if (!GetLocaleInfoW (GetThreadLocale (), LOCALE_SMONTHNAME1 + i,
|
||||||
@ -823,7 +840,8 @@ gtk_calendar_init (GtkCalendar *calendar)
|
|||||||
calendar_compute_days (calendar);
|
calendar_compute_days (calendar);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pragma GCC diagnostic pop
|
||||||
|
|
||||||
/****************************************
|
/****************************************
|
||||||
* Utility Functions *
|
* Utility Functions *
|
||||||
****************************************/
|
****************************************/
|
||||||
|
Loading…
Reference in New Issue
Block a user