From 7c35456ff3930f0484b79aaf1c43cb4fa9bfc707 Mon Sep 17 00:00:00 2001 From: keis Date: Sun, 11 Sep 2011 14:27:21 +0200 Subject: format events in C locale --- src/events.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/events.c b/src/events.c index 45140c0..20f4545 100644 --- a/src/events.c +++ b/src/events.c @@ -177,7 +177,17 @@ vsend_event(int type, const gchar *custom_event, va_list vargs) { break; case TYPE_FLOAT: // ‘float’ is promoted to ‘double’ when passed through ‘...’ - g_string_append_printf (event_message, "%.2f", va_arg (vargs, double)); + + // Make sure the formatted double fits in the buffer + if (event_message->allocated_len - event_message->len < G_ASCII_DTOSTR_BUF_SIZE) + g_string_set_size (event_message, event_message->len + G_ASCII_DTOSTR_BUF_SIZE); + + // format in C locale + char *tmp = g_ascii_formatd ( + event_message->str + event_message->len, + event_message->allocated_len - event_message->len, + "%.2f", va_arg (vargs, double)); + event_message->len += strlen(tmp); break; } } -- cgit v1.2.3