From a86cf5ef401248701a0ab1917ce07d6b405e8ef3 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/branches/1.3@1772 a5681a0c-68f1-0310-ab6d-d61299d08faa --- program/src/rrd_dump.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/program/src/rrd_dump.c b/program/src/rrd_dump.c index 8e5049ff..26f267d8 100644 --- a/program/src/rrd_dump.c +++ b/program/src/rrd_dump.c @@ -46,9 +46,14 @@ #include #endif + #include "rrd_tool.h" #include "rrd_rpncalc.h" +#ifdef HAVE_LOCALE_H +#include +#endif + #if !(defined(NETWARE) || defined(WIN32)) extern char *tzname[2]; #endif @@ -69,7 +74,7 @@ int rrd_dump_opt_r( rrd_t rrd; rrd_value_t value; struct tm tm; - + char *old_locale = ""; rrd_file = rrd_open(filename, &rrd, RRD_READONLY | RRD_READAHEAD); if (rrd_file == NULL) { rrd_free(&rrd); @@ -84,7 +89,9 @@ int rrd_dump_opt_r( } else { out_file = stdout; } - +#ifdef HAVE_SETLOCALE + old_locale = setlocale(LC_NUMERIC, "C"); +#endif if (!opt_noheader) { fputs("\n", out_file); fputs @@ -100,7 +107,7 @@ 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 @@ -429,6 +436,9 @@ 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.30.2