From bc51d19c0d45b48308e8ee23097447e9377d2c96 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Thu, 27 Nov 2008 18:35:26 +0000 Subject: [PATCH] (libT) #1491: json floats decimal separator depends on language settings --- libtransmission/bencode.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libtransmission/bencode.c b/libtransmission/bencode.c index 0bc70268e..da0835b8f 100644 --- a/libtransmission/bencode.c +++ b/libtransmission/bencode.c @@ -17,6 +17,8 @@ #include #include +#include + #include /* evbuffer */ #include "ConvertUTF.h" @@ -707,8 +709,15 @@ tr_bencDictAddDouble( tr_benc * dict, double d ) { char buf[128]; + char * locale; + /* the json spec requires a '.' decimal point regardless of locale */ + locale = tr_strdup( setlocale ( LC_NUMERIC, NULL ) ); + setlocale( LC_NUMERIC, "POSIX" ); tr_snprintf( buf, sizeof( buf ), "%f", d ); + setlocale( LC_NUMERIC, locale ); + tr_free( locale ); + return tr_bencDictAddStr( dict, key, buf ); }