From 11f998c785fb05ff6bfe1c0336b6117fce0063ea Mon Sep 17 00:00:00 2001 From: oetiker Date: Tue, 7 Apr 2009 06:03:49 +0000 Subject: [PATCH] make sure rrd_dump outputs numbers with C locale so that . does not suddenly become , this fixes #212 git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@1772 a5681a0c-68f1-0310-ab6d-d61299d08faa --- src/rrd_dump.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/rrd_dump.c b/src/rrd_dump.c index 40e707b..504e583 100644 --- a/src/rrd_dump.c +++ b/src/rrd_dump.c @@ -45,6 +45,11 @@ #include "rrd_rpncalc.h" #include "rrd_client.h" +#ifdef HAVE_LOCALE_H +#include +#endif + + #if !(defined(NETWARE) || defined(WIN32)) extern char *tzname[2]; #endif @@ -64,6 +69,7 @@ static int rrd_dump_opt_r( rrd_t rrd; rrd_value_t value; struct tm tm; + char *old_locale = ""; rrd_init(&rrd); rrd_file = rrd_open(filename, &rrd, RRD_READONLY | RRD_READAHEAD); @@ -80,6 +86,9 @@ static int rrd_dump_opt_r( } else { out_file = stdout; } +#ifdef HAVE_SETLOCALE + old_locale = setlocale(LC_NUMERIC, "C"); +#endif if (opt_header == 1) { fputs("\n", out_file); @@ -105,7 +114,7 @@ static int rrd_dump_opt_r( } fprintf(out_file, "\t%lu \n", rrd.stat_head->pdp_step); -#if HAVE_STRFTIME +#ifdef HAVE_STRFTIME localtime_r(&rrd.live_head->last_up, &tm); strftime(somestring, 200, "%Y-%m-%d %H:%M:%S %Z", &tm); #else @@ -434,6 +443,9 @@ static int rrd_dump_opt_r( if (out_file != stdout) { fclose(out_file); } +#ifdef HAVE_SETLOCALE + setlocale(LC_NUMERIC, old_locale); +#endif return rrd_close(rrd_file); } -- 2.11.0