X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_dump.c;h=504e58316e9e7408fc5c36d4827015433ec49e4f;hb=52fcb05de0a22d5f3edc730319ce2c1766fa6850;hp=82bc81e66ba5586bdcb66a65cd7825ee409f55c3;hpb=fe32df5c450da4fdeed6351c97cc319b3a9d6552;p=rrdtool.git diff --git a/src/rrd_dump.c b/src/rrd_dump.c index 82bc81e..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,14 +114,14 @@ 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 # error "Need strftime" #endif - fprintf(out_file, "\t%lu \n\n", - (unsigned long) rrd.live_head->last_up, somestring); + fprintf(out_file, "\t%lld \n\n", + (long long) rrd.live_head->last_up, somestring); for (i = 0; i < rrd.stat_head->ds_cnt; i++) { fprintf(out_file, "\t\n"); fprintf(out_file, "\t\t%s\n", rrd.ds_def[i].ds_nam); @@ -394,7 +403,7 @@ static int rrd_dump_opt_r( rrd_seek(rrd_file, (rra_start + (rrd.rra_ptr[i].cur_row + 1) * rrd.stat_head->ds_cnt * sizeof(rrd_value_t)), SEEK_SET); - timer = -(rrd.rra_def[i].row_cnt - 1); + timer = -(long)(rrd.rra_def[i].row_cnt - 1); ii = rrd.rra_ptr[i].cur_row; for (ix = 0; ix < rrd.rra_def[i].row_cnt; ix++) { ii++; @@ -414,8 +423,8 @@ static int rrd_dump_opt_r( #else # error "Need strftime" #endif - fprintf(out_file, "\t\t\t ", somestring, - (int) now); + fprintf(out_file, "\t\t\t ", somestring, + (long long) now); for (iii = 0; iii < rrd.stat_head->ds_cnt; iii++) { rrd_read(rrd_file, &my_cdp, sizeof(rrd_value_t) * 1); if (isnan(my_cdp)) { @@ -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); }