From: Lubomir I. Ivanov Date: Mon, 7 Nov 2011 05:33:49 +0000 (+0200) Subject: don't use strftime() due to locale issues X-Git-Url: http://git.tdb.fi/?p=ext%2Fsubsurface.git;a=commitdiff_plain;h=97f09f3ea81548a3aac5ae839b1d1bc6211fe8ec 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 --- 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)