Blob Blame History Raw
diff -up evolution-data-server-3.12.11/libedataserver/e-time-utils.c.time-parse-am-pm evolution-data-server-3.12.11/libedataserver/e-time-utils.c
--- evolution-data-server-3.12.11/libedataserver/e-time-utils.c.time-parse-am-pm	2014-06-01 21:10:19.000000000 +0200
+++ evolution-data-server-3.12.11/libedataserver/e-time-utils.c	2015-07-10 16:24:54.918755056 +0200
@@ -1576,9 +1576,28 @@ static gboolean
 locale_supports_12_hour_format (void)
 {
 	struct tm tmp_tm = { 0 };
-	gchar s[16];
+	gchar s[40];
+
+	/* Fill the struct tm with some sane values. */
+	tmp_tm.tm_year = 2000;
+	tmp_tm.tm_mon = 0;
+	tmp_tm.tm_mday = 1;
+	tmp_tm.tm_sec = 0;
+	tmp_tm.tm_isdst = 0;
+	tmp_tm.tm_hour = 1;
+	tmp_tm.tm_min = 0;
+	tmp_tm.tm_wday = 6;
+	tmp_tm.tm_yday = 6;
 
 	e_utf8_strftime (s, sizeof (s), "%p", &tmp_tm);
+
+	if (!s[0]) {
+		tmp_tm.tm_hour = 13;
+		tmp_tm.tm_min = 0;
+
+		e_utf8_strftime (s, sizeof (s), "%p", &tmp_tm);
+	}
+
 	return s[0] != '\0';
 }