From fae65c1172255850640da2bf987e8b64f6d1949a Mon Sep 17 00:00:00 2001 From: Andy Spencer Date: Sat, 2 Jul 2011 03:19:35 +0000 Subject: [PATCH] Add reset locale when formatting certain strings LC_NUMERIC is used to determine the conversion for "%f" this can result in errors when formatting strings with expected floating point formats. --- src/data/grits-wms.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/data/grits-wms.c b/src/data/grits-wms.c index 32c0c0c..fe6338c 100644 --- a/src/data/grits-wms.c +++ b/src/data/grits-wms.c @@ -72,13 +72,25 @@ #include #include #include +#include #include "grits-wms.h" #include "grits-http.h" +static gchar *g_strdup_printf_safe(char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + setlocale(LC_ALL, "POSIX.UTF-8"); + char *str = g_strdup_vprintf(fmt, ap); + setlocale(LC_ALL, ""); + va_end(ap); + return str; +} + static gchar *_make_uri(GritsWms *wms, GritsTile *tile) { - return g_strdup_printf( + return g_strdup_printf_safe( "%s?" "SERVICE=WMS&" "VERSION=1.1.0&" -- 2.43.2