diff --git a/src/rrd_dump.c b/src/rrd_dump.c
index 69893e08ed7d74791202746683f255f5f162d1cd..c2e3e5e07707d6a326596f66f8a9d68cfc3c5fa1 100644 (file)
--- a/src/rrd_dump.c
+++ b/src/rrd_dump.c
/*****************************************************************************
- * RRDtool 1.3rc4 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3.7 Copyright by Tobi Oetiker, 1997-2009
*****************************************************************************
* rrd_dump Display a RRD
*****************************************************************************
- * $Id: rrd_dump.c 1366 2008-05-18 13:06:44Z oetiker $
+ * $Id: rrd_dump.c 1781 2009-04-07 07:31:53Z oetiker $
* $Log$
* Revision 1.7 2004/05/25 20:53:21 oetiker
* prevent small leak when resources are exhausted -- Mike Slifcak
* checkin
*
*****************************************************************************/
+
+#ifdef WIN32
+#include <stdlib.h>
+#endif
+
+
#include "rrd_tool.h"
#include "rrd_rpncalc.h"
+#ifdef HAVE_LOCALE_H
+#include <locale.h>
+#endif
+
#if !(defined(NETWARE) || defined(WIN32))
extern char *tzname[2];
#endif
int rrd_dump_opt_r(
const char *filename,
char *outname,
- int opt_noheader
-)
+ int opt_noheader)
{
unsigned int i, ii, ix, iii = 0;
time_t now;
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);
} else {
out_file = stdout;
}
-
- if (!opt_noheader){
- fputs("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n", out_file);
- fputs
- ("<!DOCTYPE rrd SYSTEM \"http://oss.oetiker.ch/rrdtool/rrdtool.dtd\">\n",
- out_file);
+#ifdef HAVE_SETLOCALE
+ old_locale = setlocale(LC_NUMERIC, "C");
+#endif
+ if (!opt_noheader) {
+ fputs("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n", out_file);
+ fputs
+ ("<!DOCTYPE rrd SYSTEM \"http://oss.oetiker.ch/rrdtool/rrdtool.dtd\">\n",
+ out_file);
}
fputs("<!-- Round Robin Database Dump -->", out_file);
fputs("<rrd>", out_file);
}
fprintf(out_file, "\t<step> %lu </step> <!-- Seconds -->\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
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++;
if (out_file != stdout) {
fclose(out_file);
}
+#ifdef HAVE_SETLOCALE
+ setlocale(LC_NUMERIC, old_locale);
+#endif
return rrd_close(rrd_file);
}
const char *filename,
char *outname)
{
- return rrd_dump_opt_r(filename,outname,0);
+ return rrd_dump_opt_r(filename, outname, 0);
}
int rrd_dump(
{
int rc;
int opt_noheader = 0;
+
/* init rrd clean */
optind = 0;
opterr = 0; /* initialize getopt */
-
+
while (42) {
- int opt;
+ int opt;
int option_index = 0;
static struct option long_options[] = {
{"no-header", no_argument, 0, 'n'},
opt_noheader = 1;
break;
- default:
+ default:
rrd_set_error("usage rrdtool %s [--no-header|-n] "
- "file.rrd [file.xml]", argv[0]);
+ "file.rrd [file.xml]", argv[0]);
return (-1);
break;
}
}
if ((argc - optind) == 2) {
- rc = rrd_dump_opt_r(argv[optind], argv[optind+1],opt_noheader);
+ rc = rrd_dump_opt_r(argv[optind], argv[optind + 1], opt_noheader);
} else {
- rc = rrd_dump_opt_r(argv[optind], NULL,opt_noheader);
+ rc = rrd_dump_opt_r(argv[optind], NULL, opt_noheader);
}
return rc;
}
-