summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/eog-exif-util.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/eog-exif-util.c b/src/eog-exif-util.c
index d75087fd..b77a5a2b 100644
--- a/src/eog-exif-util.c
+++ b/src/eog-exif-util.c
@@ -95,6 +95,12 @@ _calculate_wday_yday (struct tm *tm)
tm->tm_yday = tmp_tm.tm_yday;
}
+/* Older GCCs don't support pragma diagnostic inside functions.
+ * Put these here to avoid problems with the strftime format strings
+ * without breaking the build for these older GCCs */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
+
#ifdef HAVE_STRPTIME
static gchar *
eog_exif_util_format_date_with_strptime (const gchar *date, const gchar* format)
@@ -118,11 +124,9 @@ eog_exif_util_format_date_with_strptime (const gchar *date, const gchar* format)
if (!GPOINTER_TO_BOOLEAN (strptime_updates_wday.retval))
_calculate_wday_yday (&tm);
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wformat-nonliteral"
/* A strftime-formatted string, to display the date the image was taken. */
dlen = strftime (tmp_date, DATE_BUF_SIZE * sizeof(gchar), format, &tm);
-#pragma GCC diagnostic pop
+
new_date = g_strndup (tmp_date, dlen);
}
@@ -156,10 +160,8 @@ eog_exif_util_format_date_by_hand (const gchar *date, const gchar* format)
tm.tm_sec = result < 6 ? 0 : seconds;
tm.tm_min = result < 5 ? 0 : minutes;
tm.tm_hour = result < 4 ? 0 : hour;
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wformat-nonliteral"
+
dlen = strftime (tmp_date, DATE_BUF_SIZE * sizeof(gchar), format, &tm);
-#pragma GCC diagnostic pop
if (dlen == 0)
return NULL;
@@ -170,6 +172,8 @@ eog_exif_util_format_date_by_hand (const gchar *date, const gchar* format)
}
#endif /* HAVE_STRPTIME */
+#pragma GCC diagnostic pop
+
/**
* eog_exif_util_format_date:
* @date: a date string following Exif specifications