From 97f09f3ea81548a3aac5ae839b1d1bc6211fe8ec Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Mon, 7 Nov 2011 07:33:49 +0200 Subject: [PATCH] don't use strftime() due to locale issues Make statistics.c use snprintf() with weekday(), monthname() instead of strftime(). The mingw strftime() ends up having lots of problems at least on Windows unless you set the locale just right, so just avoid the problem by doing the simple function by hand. We already did that in other places anyway. Signed-off-by: Lubomir I. Ivanov Signed-off-by: Linus Torvalds --- statistics.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/statistics.c b/statistics.c index d714220..ee3a5b2 100644 --- a/statistics.c +++ b/statistics.c @@ -125,10 +125,18 @@ void show_dive_stats(struct dive *dive) const char *unit; int idx, offset, gas_used; struct dive *prev_dive; + struct tm *tm; process_all_dives(dive, &prev_dive); - strftime(buf, 80, "%a, %b %d, %Y, %k:%M", gmtime(&dive->when)); + tm = gmtime(&dive->when); + snprintf(buf, sizeof(buf), + "%s, %s %d, %d %2d:%02d", + weekday(tm->tm_wday), + monthname(tm->tm_mon), + tm->tm_mday, tm->tm_year + 1900, + tm->tm_hour, tm->tm_min); + set_label(info_stat_w.date, buf); set_label(info_stat_w.dive_time, "%d min", (dive->duration.seconds + 30) / 60); if (prev_dive) -- 2.45.2