From ba531669d795b10244c358135249016c5898519b Mon Sep 17 00:00:00 2001 From: Sebastian Harl Date: Fri, 30 May 2008 17:33:03 +0200 Subject: [PATCH] Imported upstream version 1.3rc6. --- CHANGES | 85 ++++++++++++++++ NEWS | 22 +++- bindings/Makefile.am | 2 +- bindings/Makefile.in | 2 +- bindings/perl-piped/RRDp.pm | 2 +- bindings/perl-shared/RRDs.pm | 2 +- bindings/python/README | 14 ++- bindings/python/rrd_extra.h | 70 ------------- bindings/python/rrdtoolmodule.c | 175 +++++++++++++++++--------------- configure | 24 ++--- configure.ac | 6 +- doc/bin_dec_hex.1 | 2 +- doc/bin_dec_hex.txt | 2 +- doc/cdeftutorial.1 | 2 +- doc/cdeftutorial.txt | 2 +- doc/rpntutorial.1 | 2 +- doc/rpntutorial.txt | 2 +- doc/rrd-beginners.1 | 2 +- doc/rrd-beginners.txt | 2 +- doc/rrdbuild.1 | 12 +-- doc/rrdbuild.html | 10 +- doc/rrdbuild.pod | 10 +- doc/rrdbuild.txt | 12 +-- doc/rrdcgi.1 | 2 +- doc/rrdcgi.txt | 2 +- doc/rrdcreate.1 | 2 +- doc/rrdcreate.txt | 2 +- doc/rrddump.1 | 2 +- doc/rrddump.txt | 2 +- doc/rrdfetch.1 | 2 +- doc/rrdfetch.txt | 2 +- doc/rrdfirst.1 | 2 +- doc/rrdfirst.txt | 2 +- doc/rrdgraph.1 | 2 +- doc/rrdgraph.txt | 2 +- doc/rrdgraph_data.1 | 2 +- doc/rrdgraph_data.txt | 2 +- doc/rrdgraph_examples.1 | 2 +- doc/rrdgraph_examples.txt | 2 +- doc/rrdgraph_graph.1 | 2 +- doc/rrdgraph_graph.txt | 2 +- doc/rrdgraph_rpn.1 | 2 +- doc/rrdgraph_rpn.txt | 2 +- doc/rrdinfo.1 | 2 +- doc/rrdinfo.txt | 2 +- doc/rrdlast.1 | 2 +- doc/rrdlast.txt | 2 +- doc/rrdlastupdate.1 | 2 +- doc/rrdlastupdate.txt | 2 +- doc/rrdresize.1 | 2 +- doc/rrdresize.txt | 2 +- doc/rrdrestore.1 | 2 +- doc/rrdrestore.txt | 2 +- doc/rrdthreads.1 | 2 +- doc/rrdthreads.txt | 2 +- doc/rrdtool.1 | 2 +- doc/rrdtool.txt | 2 +- doc/rrdtune.1 | 2 +- doc/rrdtune.txt | 2 +- doc/rrdtutorial.1 | 2 +- doc/rrdtutorial.txt | 2 +- doc/rrdupdate.1 | 2 +- doc/rrdupdate.txt | 2 +- doc/rrdxport.1 | 2 +- doc/rrdxport.txt | 2 +- rrdtool.spec | 2 +- src/pngsize.c | 2 +- src/rrd.h | 4 +- src/rrd_cgi.c | 2 +- src/rrd_create.c | 2 +- src/rrd_diff.c | 4 +- src/rrd_dump.c | 33 +++--- src/rrd_error.c | 4 +- src/rrd_fetch.c | 4 +- src/rrd_first.c | 2 +- src/rrd_format.c | 4 +- src/rrd_format.h | 5 +- src/rrd_gfx.c | 12 +-- src/rrd_graph.c | 93 ++++++++--------- src/rrd_graph_helper.c | 2 +- src/rrd_hw.c | 2 +- src/rrd_hw.h | 2 +- src/rrd_i18n.h | 2 +- src/rrd_info.c | 2 +- src/rrd_is_thread_safe.h | 4 +- src/rrd_last.c | 2 +- src/rrd_lastupdate.c | 2 +- src/rrd_not_thread_safe.c | 4 +- src/rrd_open.c | 26 +++-- src/rrd_resize.c | 2 +- src/rrd_restore.c | 4 +- src/rrd_rpncalc.c | 2 +- src/rrd_rpncalc.h | 2 +- src/rrd_thread_safe.c | 4 +- src/rrd_thread_safe_nt.c | 4 +- src/rrd_tool.c | 4 +- src/rrd_tool.h | 2 +- src/rrd_tune.c | 4 +- src/rrd_update.c | 9 +- src/rrd_version.c | 2 +- src/rrd_xport.c | 2 +- src/rrd_xport.h | 2 +- src/rrdupdate.c | 4 +- 103 files changed, 426 insertions(+), 390 deletions(-) delete mode 100644 bindings/python/rrd_extra.h diff --git a/CHANGES b/CHANGES index 3e0cbc7..d18c59f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,88 @@ +2008-05-26 08:56 oetiker + + * bindings/perl-piped/RRDp.pm, bindings/perl-shared/RRDs.pm, + configure.ac, doc/rrdbuild.pod, rrdtool.spec, src/pngsize.c, + src/rrd.h, src/rrd_cgi.c, src/rrd_create.c, src/rrd_datalang.c, + src/rrd_diff.c, src/rrd_dump.c, src/rrd_error.c, src/rrd_fetch.c, + src/rrd_first.c, src/rrd_format.c, src/rrd_format.h, + src/rrd_gfx.c, src/rrd_graph.c, src/rrd_graph_helper.c, + src/rrd_hw.c, src/rrd_hw.h, src/rrd_i18n.h, src/rrd_info.c, + src/rrd_is_thread_safe.h, src/rrd_last.c, src/rrd_lastupdate.c, + src/rrd_not_thread_safe.c, src/rrd_open.c, src/rrd_resize.c, + src/rrd_restore.c, src/rrd_rpncalc.c, src/rrd_rpncalc.h, + src/rrd_thread_safe.c, src/rrd_thread_safe_nt.c, src/rrd_tool.c, + src/rrd_tool.h, src/rrd_tune.c, src/rrd_update.c, + src/rrd_version.c, src/rrd_xport.c, src/rrd_xport.h, + src/rrdupdate.c: prepare for the release of rrdtool-1.3rc6 + +2008-05-26 07:46 oetiker + + * NEWS: added notes about new grid lines + +2008-05-26 07:45 oetiker + + * src/rrd_graph.c: * make y-axis labels NOT run into each other + (classic and alt) * space horizontal grid lines and lables a bit + further apart for tight layouts. * let horizontal lines and y axis + labels run a little closer for classic grid + +2008-05-25 21:17 oetiker + + * src/rrd_graph.c: fixed calculation of space at the bottom of the + graph + +2008-05-25 20:02 oetiker + + * bindings/perl-piped/RRDp.pm, bindings/perl-shared/RRDs.pm, + configure.ac, doc/rrdbuild.pod, rrdtool.spec, src/pngsize.c, + src/rrd.h, src/rrd_cgi.c, src/rrd_create.c, src/rrd_datalang.c, + src/rrd_diff.c, src/rrd_dump.c, src/rrd_error.c, src/rrd_fetch.c, + src/rrd_first.c, src/rrd_format.c, src/rrd_format.h, + src/rrd_gfx.c, src/rrd_graph.c, src/rrd_graph_helper.c, + src/rrd_hw.c, src/rrd_hw.h, src/rrd_i18n.h, src/rrd_info.c, + src/rrd_is_thread_safe.h, src/rrd_last.c, src/rrd_lastupdate.c, + src/rrd_not_thread_safe.c, src/rrd_open.c, src/rrd_resize.c, + src/rrd_restore.c, src/rrd_rpncalc.c, src/rrd_rpncalc.h, + src/rrd_thread_safe.c, src/rrd_thread_safe_nt.c, src/rrd_tool.c, + src/rrd_tool.h, src/rrd_tune.c, src/rrd_update.c, + src/rrd_version.c, src/rrd_xport.c, src/rrd_xport.h, + src/rrdupdate.c: prepare for the release of rrdtool-1.3rc5 + +2008-05-25 20:00 oetiker + + * src/rrd_format.h, src/rrd_open.c, src/rrd_update.c: fix update + compatibility with rrd-1.0.x files + +2008-05-20 22:22 oetiker + + * bindings/Makefile.am: droped rrd_extra.h from the distro with the + python update ... must remove it from the Makefile too + +2008-05-19 21:14 oetiker + + * NEWS, bindings/python/README, bindings/python/rrd_extra.h, + bindings/python/rrdtoolmodule.c, doc/rrdpython.pod: fixed python + bindings: * info call isnnow aequivalent to rrdtool info (the same + as in the perl and ruby bindings) * graphv and updatev calls added + +2008-05-18 22:11 oetiker + + * src/rrd_gfx.c, src/rrd_graph.c, src/rrd_tool.c: * document + tabwidth option * fix \t -> tab expansion + +2008-05-18 15:39 oetiker + + * src/rrd_graph.c: ytr boundery checking ... this is from the GD + days ... we don't need this anymore + +2008-05-18 15:11 oetiker + + * src/rrd_dump.c, src/rrd_tool.c: fix indenting + +2008-05-18 15:11 oetiker + + * src/rrd_graph.c: pdf, svg and ps formats were not being created + 2008-05-18 13:06 oetiker * bindings/perl-piped/RRDp.pm, bindings/perl-shared/RRDs.pm, diff --git a/NEWS b/NEWS index 2d2abf7..b7c5e47 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,9 @@ RRDTOOL NEWS ============ + +##################################### Major Changes between 1.2.x and 1.3.x +------------------------------------- RRdtool dump / restore Incompatibilities ---------------------------------------- @@ -38,6 +41,8 @@ NEW Graphing (Tobi Oetiker) * draw dashed lines in graphs (Thomas Gutzler) * new interface graphv which returns inforamation using the rrd_info interface (Tobi Oetiker and Mark Plaksin) +* improved horizontal grid. Have a bit more grid lines and y-axis labels + while keeping them fahr enough apart to not run into each other. NEW Forecasting (Evan Miller) ----------- @@ -66,20 +71,27 @@ Internationalization (Takao Fujiwara and Tobi Oetiker) available on your system. Use the configure option --disable-libintl if you want to disable this feature -Misc ----- +Language Bindings +----------------- * ruby rrd_fetch will return step as a last property -- Mike Perham +* python rrdtool.info does now conform with the data structure returned + by the other language bindings. This is incompatible with the + previous (broken) version --tobi + +* python bindings got updatev support --tobi + +* ruby, perl, python bindings support the new graphv interface --tobi + Locale Independent Numeric Input -------------------------------- * Regardles of locale you are in, rrdtool always expects input to be numbers (LC_NUMERIC) in C or POSIX locale for numbers. (not 1,1 but 1.1) this is necessary to make things like RPN work as it uses , as a separator. -RRDTOOL NEWS -============ +###################################################################################### Major Changes between 1.0.x and 1.2.x - +====================================================================================== Graphing -------- diff --git a/bindings/Makefile.am b/bindings/Makefile.am index a0e0907..cd5cd21 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -10,7 +10,7 @@ SUBDIRS = $(SUB_tcl) EXTRA_DIST = perl-piped/MANIFEST perl-piped/README perl-piped/Makefile.PL perl-piped/RRDp.pm perl-piped/t/base.t \ perl-shared/ntmake.pl perl-shared/MANIFEST perl-shared/README perl-shared/Makefile.PL perl-shared/RRDs.pm perl-shared/RRDs.xs perl-shared/t/base.t \ ruby/CHANGES ruby/README ruby/extconf.rb ruby/main.c ruby/test.rb \ - python/ACKNOWLEDGEMENT python/AUTHORS python/COPYING python/README python/rrd_extra.h python/rrdtoolmodule.c python/setup.py + python/ACKNOWLEDGEMENT python/AUTHORS python/COPYING python/README python/rrdtoolmodule.c python/setup.py # add the following to the all target diff --git a/bindings/Makefile.in b/bindings/Makefile.in index 968822c..94245b8 100644 --- a/bindings/Makefile.in +++ b/bindings/Makefile.in @@ -282,7 +282,7 @@ SUBDIRS = $(SUB_tcl) EXTRA_DIST = perl-piped/MANIFEST perl-piped/README perl-piped/Makefile.PL perl-piped/RRDp.pm perl-piped/t/base.t \ perl-shared/ntmake.pl perl-shared/MANIFEST perl-shared/README perl-shared/Makefile.PL perl-shared/RRDs.pm perl-shared/RRDs.xs perl-shared/t/base.t \ ruby/CHANGES ruby/README ruby/extconf.rb ruby/main.c ruby/test.rb \ - python/ACKNOWLEDGEMENT python/AUTHORS python/COPYING python/README python/rrd_extra.h python/rrdtoolmodule.c python/setup.py + python/ACKNOWLEDGEMENT python/AUTHORS python/COPYING python/README python/rrdtoolmodule.c python/setup.py all: all-recursive diff --git a/bindings/perl-piped/RRDp.pm b/bindings/perl-piped/RRDp.pm index e37104b..b016e88 100644 --- a/bindings/perl-piped/RRDp.pm +++ b/bindings/perl-piped/RRDp.pm @@ -120,7 +120,7 @@ sub cmd (@); sub end (); sub read (); -$VERSION=1.299908051800; +$VERSION=1.299908052600; sub start ($){ croak "rrdtool is already running" diff --git a/bindings/perl-shared/RRDs.pm b/bindings/perl-shared/RRDs.pm index b75c9f0..1246003 100644 --- a/bindings/perl-shared/RRDs.pm +++ b/bindings/perl-shared/RRDs.pm @@ -7,7 +7,7 @@ use vars qw(@ISA $VERSION); require DynaLoader; -$VERSION=1.299908051800; +$VERSION=1.299908052600; bootstrap RRDs $VERSION; diff --git a/bindings/python/README b/bindings/python/README index 265244f..c234a6b 100644 --- a/bindings/python/README +++ b/bindings/python/README @@ -1,5 +1,5 @@ -Python-RRDtool 0.2.1 --------------------- +Based on Python-RRDtool 0.2.1 +----------------------------- The python-rrdtool provides a interface to rrdtool, the wonderful graphing and logging utility. This wrapper implementation has @@ -19,10 +19,16 @@ Mailing Lists: Users & Hackers py-rrdtool-users@nongnu.org -Author ------- +Original Author +--------------- Hye-Shik Chang Any comments, suggestions, and/or patches are very welcome. Thank you for using py-rrdtool! + + +CHANGES +------- +2008-05-19 - tobi +* rewrote the info method to conform to rrdtool info standard diff --git a/bindings/python/rrd_extra.h b/bindings/python/rrd_extra.h deleted file mode 100644 index 2af673b..0000000 --- a/bindings/python/rrd_extra.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * This file is part of RRDtool. - * - * RRDtool is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published - * by the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * RRDtool is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/***************************************************************************** - * RRDtool 1.0.37 Copyright Tobias Oetiker, 1997 - 2000 - ***************************************************************************** - * rrd_tool.h Common Header File - ***************************************************************************** - * Id: rrd_tool.h,v 1.1.1.1 2002/02/26 10:21:37 oetiker Exp - * Log: rrd_tool.h,v - * Revision 1.1.1.1 2002/02/26 10:21:37 oetiker - * Intial Import - * - *****************************************************************************/ -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef _RRD_EXTRA_H -#define _RRD_EXTRA_H - -#include "rrd_format.h" - -#ifndef WIN32 -#ifndef isnan /* POSIX */ - int isnan( - double value); -#endif -#else /* Windows only */ -#include -#define isnan _isnan -#endif - - void rrd_free( - rrd_t *rrd); - void rrd_init( - rrd_t *rrd); - - int rrd_open( - char *file_name, - rrd_t *rrd, - int rdwr); - int readfile( - char *file, - char **buffer, - int skipfirst); - -#define RRD_READONLY 0 -#define RRD_READWRITE 1 - -#endif - -#ifdef __cplusplus -} -#endif diff --git a/bindings/python/rrdtoolmodule.c b/bindings/python/rrdtoolmodule.c index f829734..37810f7 100644 --- a/bindings/python/rrdtoolmodule.c +++ b/bindings/python/rrdtoolmodule.c @@ -40,8 +40,9 @@ static const char *__version__ = "$Revision: 1.14 $"; #include "Python.h" -#include "rrd.h" -#include "rrd_extra.h" +#include "../../src/rrd_tool.h" +//#include "rrd.h" +//#include "rrd_extra.h" static PyObject *ErrorObject; extern int optind; @@ -402,6 +403,40 @@ static PyObject *PyRRD_resize( return r; } +static PyObject *PyDict_FromInfo( + info_t *data) +{ + PyObject *r; + r = PyDict_New(); + while (data){ + PyObject *val = NULL; + switch (data->type) { + case RD_I_VAL: + val = isnan(data->value.u_val) + ? (Py_INCREF(Py_None), Py_None) + : PyFloat_FromDouble(data->value.u_val); + break; + case RD_I_CNT: + val = PyLong_FromUnsignedLong(data->value.u_cnt); + break; + case RD_I_INT: + val = PyLong_FromLong(data->value.u_int); + break; + case RD_I_STR: + val = PyString_FromString(data->value.u_str); + break; + case RD_I_BLO: + val = PyString_FromStringAndSize((char*)data->value.u_blo.ptr, data->value.u_blo.size); + break; + } + if (val){ + PyDict_SetItemString(r,data->key,val); + } + data = data->next; + } + return r; +} + static char PyRRD_info__doc__[] = "info(filename): extract header information from an rrd"; @@ -409,101 +444,71 @@ static PyObject *PyRRD_info( PyObject UNUSED(*self), PyObject * args) { - PyObject *r, *t, *ds; - rrd_t rrd; - char *filename; - unsigned long i, j; + PyObject *r; + int argc; + char **argv; + info_t *data; - if (!PyArg_ParseTuple(args, "s:info", &filename)) + if (create_args("info", args, &argc, &argv) < 0) return NULL; - - if (!rrd_open(filename, &rrd, RRD_READONLY) == -1) { + + if ((data = rrd_info(argc, argv)) == NULL) { PyErr_SetString(ErrorObject, rrd_get_error()); rrd_clear_error(); return NULL; } -#define DICTSET_STR(dict, name, value) \ - t = PyString_FromString(value); \ - PyDict_SetItemString(dict, name, t); \ - Py_DECREF(t); - -#define DICTSET_CNT(dict, name, value) \ - t = PyInt_FromLong((long)value); \ - PyDict_SetItemString(dict, name, t); \ - Py_DECREF(t); - -#define DICTSET_VAL(dict, name, value) \ - t = isnan(value) ? (Py_INCREF(Py_None), Py_None) : \ - PyFloat_FromDouble((double)value); \ - PyDict_SetItemString(dict, name, t); \ - Py_DECREF(t); - - r = PyDict_New(); - - DICTSET_STR(r, "filename", filename); - DICTSET_STR(r, "rrd_version", rrd.stat_head->version); - DICTSET_CNT(r, "step", rrd.stat_head->pdp_step); - DICTSET_CNT(r, "last_update", rrd.live_head->last_up); - - ds = PyDict_New(); - PyDict_SetItemString(r, "ds", ds); - Py_DECREF(ds); - - for (i = 0; i < rrd.stat_head->ds_cnt; i++) { - PyObject *d; - - d = PyDict_New(); - PyDict_SetItemString(ds, rrd.ds_def[i].ds_nam, d); - Py_DECREF(d); - - DICTSET_STR(d, "ds_name", rrd.ds_def[i].ds_nam); - DICTSET_STR(d, "type", rrd.ds_def[i].dst); - DICTSET_CNT(d, "minimal_heartbeat", - rrd.ds_def[i].par[DS_mrhb_cnt].u_cnt); - DICTSET_VAL(d, "min", rrd.ds_def[i].par[DS_min_val].u_val); - DICTSET_VAL(d, "max", rrd.ds_def[i].par[DS_max_val].u_val); - DICTSET_STR(d, "last_ds", rrd.pdp_prep[i].last_ds); - DICTSET_VAL(d, "value", rrd.pdp_prep[i].scratch[PDP_val].u_val); - DICTSET_CNT(d, "unknown_sec", - rrd.pdp_prep[i].scratch[PDP_unkn_sec_cnt].u_cnt); - } - - ds = PyList_New(rrd.stat_head->rra_cnt); - PyDict_SetItemString(r, "rra", ds); - Py_DECREF(ds); - - for (i = 0; i < rrd.stat_head->rra_cnt; i++) { - PyObject *d, *cdp; + r = PyDict_FromInfo(data); + info_free(data); + return r; +} - d = PyDict_New(); - PyList_SET_ITEM(ds, i, d); +static char PyRRD_graphv__doc__[] = + "graphv is called in the same manner as graph"; - DICTSET_STR(d, "cf", rrd.rra_def[i].cf_nam); - DICTSET_CNT(d, "rows", rrd.rra_def[i].row_cnt); - DICTSET_CNT(d, "pdp_per_row", rrd.rra_def[i].pdp_cnt); - DICTSET_VAL(d, "xff", rrd.rra_def[i].par[RRA_cdp_xff_val].u_val); +static PyObject *PyRRD_graphv( + PyObject UNUSED(*self), + PyObject * args) +{ + PyObject *r; + int argc; + char **argv; + info_t *data; - cdp = PyList_New(rrd.stat_head->ds_cnt); - PyDict_SetItemString(d, "cdp_prep", cdp); - Py_DECREF(cdp); + if (create_args("graphv", args, &argc, &argv) < 0) + return NULL; + + if ((data = rrd_graph_v(argc, argv)) == NULL) { + PyErr_SetString(ErrorObject, rrd_get_error()); + rrd_clear_error(); + return NULL; + } + r = PyDict_FromInfo(data); + info_free(data); + return r; +} - for (j = 0; j < rrd.stat_head->ds_cnt; j++) { - PyObject *cdd; +static char PyRRD_updatev__doc__[] = + "updatev is called in the same manner as update"; - cdd = PyDict_New(); - PyList_SET_ITEM(cdp, j, cdd); +static PyObject *PyRRD_updatev( + PyObject UNUSED(*self), + PyObject * args) +{ + PyObject *r; + int argc; + char **argv; + info_t *data; - DICTSET_VAL(cdd, "value", - rrd.cdp_prep[i * rrd.stat_head->ds_cnt + - j].scratch[CDP_val].u_val); - DICTSET_CNT(cdd, "unknown_datapoints", - rrd.cdp_prep[i * rrd.stat_head->ds_cnt + - j].scratch[CDP_unkn_pdp_cnt].u_cnt); - } + if (create_args("updatev", args, &argc, &argv) < 0) + return NULL; + + if ((data = rrd_update_v(argc, argv)) == NULL) { + PyErr_SetString(ErrorObject, rrd_get_error()); + rrd_clear_error(); + return NULL; } - - rrd_free(&rrd); - + r = PyDict_FromInfo(data); + info_free(data); return r; } @@ -520,6 +525,8 @@ static PyMethodDef _rrdtool_methods[] = { meth("last", PyRRD_last, PyRRD_last__doc__), meth("resize", PyRRD_resize, PyRRD_resize__doc__), meth("info", PyRRD_info, PyRRD_info__doc__), + meth("graphv", PyRRD_graphv, PyRRD_graphv__doc__), + meth("updatev", PyRRD_updatev, PyRRD_updatev__doc__), {NULL, NULL, 0, NULL} }; diff --git a/configure b/configure index acfddca..1cd40d3 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for rrdtool 1.3rc4. +# Generated by GNU Autoconf 2.61 for rrdtool 1.3rc6. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. @@ -726,8 +726,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='rrdtool' PACKAGE_TARNAME='rrdtool' -PACKAGE_VERSION='1.3rc4' -PACKAGE_STRING='rrdtool 1.3rc4' +PACKAGE_VERSION='1.3rc6' +PACKAGE_STRING='rrdtool 1.3rc6' PACKAGE_BUGREPORT='' ac_default_prefix=/usr/local/rrdtool-$PACKAGE_VERSION @@ -1509,7 +1509,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures rrdtool 1.3rc4 to adapt to many kinds of systems. +\`configure' configures rrdtool 1.3rc6 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1580,7 +1580,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of rrdtool 1.3rc4:";; + short | recursive ) echo "Configuration of rrdtool 1.3rc6:";; esac cat <<\_ACEOF @@ -1720,7 +1720,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -rrdtool configure 1.3rc4 +rrdtool configure 1.3rc6 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1734,7 +1734,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by rrdtool $as_me 1.3rc4, which was +It was created by rrdtool $as_me 1.3rc6, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ @@ -2088,10 +2088,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -NUMVERS=1.299908051800 +NUMVERS=1.299908052600 -LIBVERS=3:2:1 +LIBVERS=3:4:1 ac_aux_dir= @@ -2537,7 +2537,7 @@ fi # Define the identity of the package. PACKAGE='rrdtool' - VERSION='1.3rc4' + VERSION='1.3rc6' cat >>confdefs.h <<_ACEOF @@ -32361,7 +32361,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by rrdtool $as_me 1.3rc4, which was +This file was extended by rrdtool $as_me 1.3rc6, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -32414,7 +32414,7 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -rrdtool config.status 1.3rc4 +rrdtool config.status 1.3rc6 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/configure.ac b/configure.ac index 5a73316..cbbce92 100644 --- a/configure.ac +++ b/configure.ac @@ -9,14 +9,14 @@ dnl tell automake the this script is for rrdtool dnl the official version number is dnl a.b.c -AC_INIT([rrdtool],[1.3rc4]) +AC_INIT([rrdtool],[1.3rc6]) dnl for testing a numberical version number comes handy dnl the released version are dnl a.bccc dnl the devel versions will be something like dnl a.b999yymmddhh -NUMVERS=1.299908051800 +NUMVERS=1.299908052600 AC_SUBST(NUMVERS) dnl for the linker to understand which version the library is compatible with @@ -28,7 +28,7 @@ dnl removed do a=0. dnl dnl see http://sourceware.org/autobook/autobook/autobook_91.html dnl -LIBVERS=3:2:1 +LIBVERS=3:4:1 AC_SUBST(LIBVERS) AC_CANONICAL_TARGET diff --git a/doc/bin_dec_hex.1 b/doc/bin_dec_hex.1 index a9b770c..31a93a8 100644 --- a/doc/bin_dec_hex.1 +++ b/doc/bin_dec_hex.1 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "BIN_DEC_HEX 1" -.TH BIN_DEC_HEX 1 "2008-03-15" "1.3rc4" "rrdtool" +.TH BIN_DEC_HEX 1 "2008-03-15" "1.3rc6" "rrdtool" .SH "NAME" bin_dec_hex \- How to use binary, decimal, and hexadecimal notation. .SH "DESCRIPTION" diff --git a/doc/bin_dec_hex.txt b/doc/bin_dec_hex.txt index d6c8519..a253d8a 100644 --- a/doc/bin_dec_hex.txt +++ b/doc/bin_dec_hex.txt @@ -371,4 +371,4 @@ AAUUTTHHOORR -1.3rc4 2008-03-15 BIN_DEC_HEX(1) +1.3rc6 2008-03-15 BIN_DEC_HEX(1) diff --git a/doc/cdeftutorial.1 b/doc/cdeftutorial.1 index 90599b9..7e2f4ac 100644 --- a/doc/cdeftutorial.1 +++ b/doc/cdeftutorial.1 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "CDEFTUTORIAL 1" -.TH CDEFTUTORIAL 1 "2008-03-15" "1.3rc4" "rrdtool" +.TH CDEFTUTORIAL 1 "2008-03-15" "1.3rc6" "rrdtool" .SH "NAME" cdeftutorial \- Alex van den Bogaerdt's CDEF tutorial .SH "DESCRIPTION" diff --git a/doc/cdeftutorial.txt b/doc/cdeftutorial.txt index 2a572d9..6d98481 100644 --- a/doc/cdeftutorial.txt +++ b/doc/cdeftutorial.txt @@ -799,4 +799,4 @@ AAUUTTHHOORR -1.3rc4 2008-03-15 CDEFTUTORIAL(1) +1.3rc6 2008-03-15 CDEFTUTORIAL(1) diff --git a/doc/rpntutorial.1 b/doc/rpntutorial.1 index ab56b0a..fd0411b 100644 --- a/doc/rpntutorial.1 +++ b/doc/rpntutorial.1 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "RPNTUTORIAL 1" -.TH RPNTUTORIAL 1 "2008-03-15" "1.3rc4" "rrdtool" +.TH RPNTUTORIAL 1 "2008-03-15" "1.3rc6" "rrdtool" .SH "NAME" rpntutorial \- Reading RRDtool RPN Expressions by Steve Rader .SH "DESCRIPTION" diff --git a/doc/rpntutorial.txt b/doc/rpntutorial.txt index 75f39cd..b19819c 100644 --- a/doc/rpntutorial.txt +++ b/doc/rpntutorial.txt @@ -187,4 +187,4 @@ AAUUTTHHOORR -1.3rc4 2008-03-15 RPNTUTORIAL(1) +1.3rc6 2008-03-15 RPNTUTORIAL(1) diff --git a/doc/rrd-beginners.1 b/doc/rrd-beginners.1 index d554a2a..634b20b 100644 --- a/doc/rrd-beginners.1 +++ b/doc/rrd-beginners.1 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "RRD-BEGINNERS 1" -.TH RRD-BEGINNERS 1 "2008-03-15" "1.3rc4" "rrdtool" +.TH RRD-BEGINNERS 1 "2008-03-15" "1.3rc6" "rrdtool" .SH "NAME" rrd\-beginners \- RRDtool Beginners' Guide .SH "SYNOPSIS" diff --git a/doc/rrd-beginners.txt b/doc/rrd-beginners.txt index 39f76fc..363431b 100644 --- a/doc/rrd-beginners.txt +++ b/doc/rrd-beginners.txt @@ -318,4 +318,4 @@ AAUUTTHHOORR -1.3rc4 2008-03-15 RRD-BEGINNERS(1) +1.3rc6 2008-03-15 RRD-BEGINNERS(1) diff --git a/doc/rrdbuild.1 b/doc/rrdbuild.1 index 25457ae..4ec1554 100644 --- a/doc/rrdbuild.1 +++ b/doc/rrdbuild.1 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "RRDBUILD 1" -.TH RRDBUILD 1 "2008-05-18" "1.3rc4" "rrdtool" +.TH RRDBUILD 1 "2008-05-26" "1.3rc6" "rrdtool" .SH "NAME" rrdbuild \- Instructions for building RRDtool .SH "OVERVIEW" @@ -163,7 +163,7 @@ Once you have decided. Save the two locations into environment variables. .PP .Vb 2 \& BUILD_DIR=/tmp/rrdbuild -\& INSTALL_DIR=/usr/local/rrdtool\-1.3rc4 +\& INSTALL_DIR=/usr/local/rrdtool\-1.3rc6 .Ve .PP If your \fI/tmp\fR is mounted with the option noexec (\s-1RHEL\s0 seems todo that) you have to choose @@ -180,9 +180,9 @@ Lets first assume you already have all the necessary libraries pre\-installed. .PP .Vb 4 -\& wget http://oss.oetiker.ch/rrdtool/pub/rrdtool\-1.3rc4.tar.gz -\& gunzip \-c rrdtool\-1.3rc4.tar.gz | tar xf \- -\& cd rrdtool\-1.3rc4 +\& wget http://oss.oetiker.ch/rrdtool/pub/rrdtool\-1.3rc6.tar.gz +\& gunzip \-c rrdtool\-1.3rc6.tar.gz | tar xf \- +\& cd rrdtool\-1.3rc6 \& ./configure \-\-prefix=$INSTALL_DIR && make && make install .Ve .PP @@ -443,7 +443,7 @@ tcl setups that would prevent rrdtool from building if they are included in their current state. .PP .Vb 5 -\& cd $BUILD_DIR/rrdtool\-1.3rc4 +\& cd $BUILD_DIR/rrdtool\-1.3rc6 \& ./configure \-\-prefix=$INSTALL_DIR \-\-disable\-tcl \-\-disable\-python \& $MAKE clean \& $MAKE diff --git a/doc/rrdbuild.html b/doc/rrdbuild.html index e91a572..90fdc4c 100644 --- a/doc/rrdbuild.html +++ b/doc/rrdbuild.html @@ -78,7 +78,7 @@ tar and GNU make respectively. It could be that they a

Once you have decided. Save the two locations into environment variables.

  BUILD_DIR=/tmp/rrdbuild
- INSTALL_DIR=/usr/local/rrdtool-1.3rc4
+ INSTALL_DIR=/usr/local/rrdtool-1.3rc6

If your /tmp is mounted with the option noexec (RHEL seems todo that) you have to choose a different directory!

Now make sure the BUILD_DIR exists and go there:

@@ -88,9 +88,9 @@ a different directory!

Lets first assume you already have all the necessary libraries pre-installed.

- wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.3rc4.tar.gz
- gunzip -c rrdtool-1.3rc4.tar.gz | tar xf -
- cd rrdtool-1.3rc4
+ wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.3rc6.tar.gz
+ gunzip -c rrdtool-1.3rc6.tar.gz | tar xf -
+ cd rrdtool-1.3rc6
  ./configure --prefix=$INSTALL_DIR && make && make install

Ok, this was very optimistic. This try will probably have ended with configure complaining about several missing libraries.

@@ -355,7 +355,7 @@ because it seems that a fair number of people have ill configured python and tcl setups that would prevent rrdtool from building if they are included in their current state.

- cd $BUILD_DIR/rrdtool-1.3rc4
+ cd $BUILD_DIR/rrdtool-1.3rc6
  ./configure --prefix=$INSTALL_DIR --disable-tcl --disable-python
  $MAKE clean
  $MAKE
diff --git a/doc/rrdbuild.pod b/doc/rrdbuild.pod
index e02ac42..b2f6f89 100644
--- a/doc/rrdbuild.pod
+++ b/doc/rrdbuild.pod
@@ -41,7 +41,7 @@ Where you want to install the software.
 Once you have decided. Save the two locations into environment variables.
 
  BUILD_DIR=/tmp/rrdbuild
- INSTALL_DIR=/usr/local/rrdtool-1.3rc4
+ INSTALL_DIR=/usr/local/rrdtool-1.3rc6
 
 
 If your F is mounted with the option noexec (RHEL seems todo that) you have to choose
@@ -55,9 +55,9 @@ Now make sure the BUILD_DIR exists and go there:
 Lets first assume you already have all the necessary libraries
 pre-installed. 
 
- wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.3rc4.tar.gz
- gunzip -c rrdtool-1.3rc4.tar.gz | tar xf -
- cd rrdtool-1.3rc4
+ wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.3rc6.tar.gz
+ gunzip -c rrdtool-1.3rc6.tar.gz | tar xf -
+ cd rrdtool-1.3rc6
  ./configure --prefix=$INSTALL_DIR && make && make install
 
 Ok, this was very optimistic. This try will probably have ended with
@@ -298,7 +298,7 @@ because it seems that a fair number of people have ill configured python and
 tcl setups that would prevent rrdtool from building if they are included in
 their current state.
 
- cd $BUILD_DIR/rrdtool-1.3rc4
+ cd $BUILD_DIR/rrdtool-1.3rc6
  ./configure --prefix=$INSTALL_DIR --disable-tcl --disable-python
  $MAKE clean
  $MAKE
diff --git a/doc/rrdbuild.txt b/doc/rrdbuild.txt
index e825521..11b83c1 100644
--- a/doc/rrdbuild.txt
+++ b/doc/rrdbuild.txt
@@ -35,7 +35,7 @@ OOPPTTIIMMIISSTTIICC BBUUIILLDD
        ables.
 
         BUILD_DIR=/tmp/rrdbuild
-        INSTALL_DIR=/usr/local/rrdtool-1.3rc4
+        INSTALL_DIR=/usr/local/rrdtool-1.3rc6
 
        If your _/_t_m_p is mounted with the option noexec (RHEL seems todo that)
        you have to choose a different directory!
@@ -48,9 +48,9 @@ OOPPTTIIMMIISSTTIICC BBUUIILLDD
        Lets first assume you already have all the necessary libraries
        pre-installed.
 
-        wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.3rc4.tar.gz
-        gunzip -c rrdtool-1.3rc4.tar.gz | tar xf -
-        cd rrdtool-1.3rc4
+        wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.3rc6.tar.gz
+        gunzip -c rrdtool-1.3rc6.tar.gz | tar xf -
+        cd rrdtool-1.3rc6
         ./configure --prefix=$INSTALL_DIR && make && make install
 
        Ok, this was very optimistic. This try will probably have ended with
@@ -268,7 +268,7 @@ BBUUIILLDDIINNGG DDEEPPEENNDDEENNCCIIEESS
        python and tcl setups that would prevent rrdtool from building if they
        are included in their current state.
 
-        cd $BUILD_DIR/rrdtool-1.3rc4
+        cd $BUILD_DIR/rrdtool-1.3rc6
         ./configure --prefix=$INSTALL_DIR --disable-tcl --disable-python
         $MAKE clean
         $MAKE
@@ -287,4 +287,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-05-18                       RRDBUILD(1)
+1.3rc6                            2008-05-26                       RRDBUILD(1)
diff --git a/doc/rrdcgi.1 b/doc/rrdcgi.1
index 45feb62..458670e 100644
--- a/doc/rrdcgi.1
+++ b/doc/rrdcgi.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDCGI 1"
-.TH RRDCGI 1 "2008-03-15" "1.3rc4" "rrdtool"
+.TH RRDCGI 1 "2008-03-15" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdcgi \- Create web pages containing RRD graphs based on templates
 .SH "SYNOPSIS"
diff --git a/doc/rrdcgi.txt b/doc/rrdcgi.txt
index 5ffc399..60a8335 100644
--- a/doc/rrdcgi.txt
+++ b/doc/rrdcgi.txt
@@ -204,4 +204,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-03-15                         RRDCGI(1)
+1.3rc6                            2008-03-15                         RRDCGI(1)
diff --git a/doc/rrdcreate.1 b/doc/rrdcreate.1
index 8ceba9b..1eeb565 100644
--- a/doc/rrdcreate.1
+++ b/doc/rrdcreate.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDCREATE 1"
-.TH RRDCREATE 1 "2008-05-12" "1.3rc4" "rrdtool"
+.TH RRDCREATE 1 "2008-05-12" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdcreate \- Set up a new Round Robin Database
 .SH "SYNOPSIS"
diff --git a/doc/rrdcreate.txt b/doc/rrdcreate.txt
index 197959d..170ddff 100644
--- a/doc/rrdcreate.txt
+++ b/doc/rrdcreate.txt
@@ -541,4 +541,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-05-12                      RRDCREATE(1)
+1.3rc6                            2008-05-12                      RRDCREATE(1)
diff --git a/doc/rrddump.1 b/doc/rrddump.1
index a3c8799..252eab8 100644
--- a/doc/rrddump.1
+++ b/doc/rrddump.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDDUMP 1"
-.TH RRDDUMP 1 "2008-05-16" "1.3rc4" "rrdtool"
+.TH RRDDUMP 1 "2008-05-16" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrddump \- dump the contents of an RRD to XML format
 .SH "SYNOPSIS"
diff --git a/doc/rrddump.txt b/doc/rrddump.txt
index 163b0d6..8a32280 100644
--- a/doc/rrddump.txt
+++ b/doc/rrddump.txt
@@ -48,4 +48,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-05-16                        RRDDUMP(1)
+1.3rc6                            2008-05-16                        RRDDUMP(1)
diff --git a/doc/rrdfetch.1 b/doc/rrdfetch.1
index 95912e6..9539bae 100644
--- a/doc/rrdfetch.1
+++ b/doc/rrdfetch.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDFETCH 1"
-.TH RRDFETCH 1 "2008-03-15" "1.3rc4" "rrdtool"
+.TH RRDFETCH 1 "2008-03-15" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdfetch \- Fetch data from an RRD.
 .SH "SYNOPSIS"
diff --git a/doc/rrdfetch.txt b/doc/rrdfetch.txt
index 70f24db..3adfff9 100644
--- a/doc/rrdfetch.txt
+++ b/doc/rrdfetch.txt
@@ -228,4 +228,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-03-15                       RRDFETCH(1)
+1.3rc6                            2008-03-15                       RRDFETCH(1)
diff --git a/doc/rrdfirst.1 b/doc/rrdfirst.1
index 3441933..feb57ca 100644
--- a/doc/rrdfirst.1
+++ b/doc/rrdfirst.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDFIRST 1"
-.TH RRDFIRST 1 "2008-03-15" "1.3rc4" "rrdtool"
+.TH RRDFIRST 1 "2008-03-15" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdfirst \- Return the date of the first data sample in an RRA within an RRD
 .SH "SYNOPSIS"
diff --git a/doc/rrdfirst.txt b/doc/rrdfirst.txt
index a469ff7..9c8f4a3 100644
--- a/doc/rrdfirst.txt
+++ b/doc/rrdfirst.txt
@@ -26,4 +26,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-03-15                       RRDFIRST(1)
+1.3rc6                            2008-03-15                       RRDFIRST(1)
diff --git a/doc/rrdgraph.1 b/doc/rrdgraph.1
index ff44df3..ca72245 100644
--- a/doc/rrdgraph.1
+++ b/doc/rrdgraph.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDGRAPH 1"
-.TH RRDGRAPH 1 "2008-04-21" "1.3rc4" "rrdtool"
+.TH RRDGRAPH 1 "2008-04-21" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdgraph \- Round Robin Database tool grapher functions
 .SH "SYNOPSIS"
diff --git a/doc/rrdgraph.txt b/doc/rrdgraph.txt
index 51a0b5f..d18c746 100644
--- a/doc/rrdgraph.txt
+++ b/doc/rrdgraph.txt
@@ -463,4 +463,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-04-21                       RRDGRAPH(1)
+1.3rc6                            2008-04-21                       RRDGRAPH(1)
diff --git a/doc/rrdgraph_data.1 b/doc/rrdgraph_data.1
index 5c05adc..5406238 100644
--- a/doc/rrdgraph_data.1
+++ b/doc/rrdgraph_data.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDGRAPH_DATA 1"
-.TH RRDGRAPH_DATA 1 "2008-03-15" "1.3rc4" "rrdtool"
+.TH RRDGRAPH_DATA 1 "2008-03-15" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdgraph_data \- preparing data for graphing in rrdtool graph
 .SH "SYNOPSIS"
diff --git a/doc/rrdgraph_data.txt b/doc/rrdgraph_data.txt
index b29191e..2a22682 100644
--- a/doc/rrdgraph_data.txt
+++ b/doc/rrdgraph_data.txt
@@ -104,4 +104,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-03-15                  RRDGRAPH_DATA(1)
+1.3rc6                            2008-03-15                  RRDGRAPH_DATA(1)
diff --git a/doc/rrdgraph_examples.1 b/doc/rrdgraph_examples.1
index 23ffb5c..0642673 100644
--- a/doc/rrdgraph_examples.1
+++ b/doc/rrdgraph_examples.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDGRAPH_EXAMPLES 1"
-.TH RRDGRAPH_EXAMPLES 1 "2008-03-25" "1.3rc4" "rrdtool"
+.TH RRDGRAPH_EXAMPLES 1 "2008-03-25" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdgraph_examples \- Examples for rrdtool graph
 .SH "SYNOPSIS"
diff --git a/doc/rrdgraph_examples.txt b/doc/rrdgraph_examples.txt
index 8dc2e6e..92dd941 100644
--- a/doc/rrdgraph_examples.txt
+++ b/doc/rrdgraph_examples.txt
@@ -196,4 +196,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-03-25              RRDGRAPH_EXAMPLES(1)
+1.3rc6                            2008-03-25              RRDGRAPH_EXAMPLES(1)
diff --git a/doc/rrdgraph_graph.1 b/doc/rrdgraph_graph.1
index ce55b98..62ca614 100644
--- a/doc/rrdgraph_graph.1
+++ b/doc/rrdgraph_graph.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDGRAPH_GRAPH 1"
-.TH RRDGRAPH_GRAPH 1 "2008-03-15" "1.3rc4" "rrdtool"
+.TH RRDGRAPH_GRAPH 1 "2008-03-15" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdgraph_graph \- rrdtool graph command reference
 .SH "SYNOPSIS"
diff --git a/doc/rrdgraph_graph.txt b/doc/rrdgraph_graph.txt
index 2d5cd1e..03050ea 100644
--- a/doc/rrdgraph_graph.txt
+++ b/doc/rrdgraph_graph.txt
@@ -416,4 +416,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-03-15                 RRDGRAPH_GRAPH(1)
+1.3rc6                            2008-03-15                 RRDGRAPH_GRAPH(1)
diff --git a/doc/rrdgraph_rpn.1 b/doc/rrdgraph_rpn.1
index 91daee4..3dbc9e2 100644
--- a/doc/rrdgraph_rpn.1
+++ b/doc/rrdgraph_rpn.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDGRAPH_RPN 1"
-.TH RRDGRAPH_RPN 1 "2008-03-15" "1.3rc4" "rrdtool"
+.TH RRDGRAPH_RPN 1 "2008-03-15" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdgraph_rpn \- About RPN Math in rrdtool graph
 .SH "SYNOPSIS"
diff --git a/doc/rrdgraph_rpn.txt b/doc/rrdgraph_rpn.txt
index 8be61de..f4d1b27 100644
--- a/doc/rrdgraph_rpn.txt
+++ b/doc/rrdgraph_rpn.txt
@@ -306,4 +306,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-03-15                   RRDGRAPH_RPN(1)
+1.3rc6                            2008-03-15                   RRDGRAPH_RPN(1)
diff --git a/doc/rrdinfo.1 b/doc/rrdinfo.1
index d4f8573..109bee9 100644
--- a/doc/rrdinfo.1
+++ b/doc/rrdinfo.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDINFO 1"
-.TH RRDINFO 1 "2008-03-15" "1.3rc4" "rrdtool"
+.TH RRDINFO 1 "2008-03-15" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdinfo \- extract header information from an RRD
 .SH "SYNOPSIS"
diff --git a/doc/rrdinfo.txt b/doc/rrdinfo.txt
index 4f733f1..9a0ce52 100644
--- a/doc/rrdinfo.txt
+++ b/doc/rrdinfo.txt
@@ -55,4 +55,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-03-15                        RRDINFO(1)
+1.3rc6                            2008-03-15                        RRDINFO(1)
diff --git a/doc/rrdlast.1 b/doc/rrdlast.1
index e62dde7..b73b2ff 100644
--- a/doc/rrdlast.1
+++ b/doc/rrdlast.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDLAST 1"
-.TH RRDLAST 1 "2008-03-15" "1.3rc4" "rrdtool"
+.TH RRDLAST 1 "2008-03-15" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdlast \- Return the date of the last data sample in an RRD
 .SH "SYNOPSIS"
diff --git a/doc/rrdlast.txt b/doc/rrdlast.txt
index 202d82d..ecc62dd 100644
--- a/doc/rrdlast.txt
+++ b/doc/rrdlast.txt
@@ -20,4 +20,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-03-15                        RRDLAST(1)
+1.3rc6                            2008-03-15                        RRDLAST(1)
diff --git a/doc/rrdlastupdate.1 b/doc/rrdlastupdate.1
index 39f49f0..6d62db9 100644
--- a/doc/rrdlastupdate.1
+++ b/doc/rrdlastupdate.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDLASTUPDATE 1"
-.TH RRDLASTUPDATE 1 "2008-03-15" "1.3rc4" "rrdtool"
+.TH RRDLASTUPDATE 1 "2008-03-15" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdlastupdate \- Return the most recent update to an RRD
 .SH "SYNOPSIS"
diff --git a/doc/rrdlastupdate.txt b/doc/rrdlastupdate.txt
index c533223..7020b83 100644
--- a/doc/rrdlastupdate.txt
+++ b/doc/rrdlastupdate.txt
@@ -20,4 +20,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-03-15                  RRDLASTUPDATE(1)
+1.3rc6                            2008-03-15                  RRDLASTUPDATE(1)
diff --git a/doc/rrdresize.1 b/doc/rrdresize.1
index 101dd5d..db15b8d 100644
--- a/doc/rrdresize.1
+++ b/doc/rrdresize.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDRESIZE 1"
-.TH RRDRESIZE 1 "2008-03-15" "1.3rc4" "rrdtool"
+.TH RRDRESIZE 1 "2008-03-15" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdresize \- alters the size of an RRA and creates a new .rrd file
 .SH "SYNOPSIS"
diff --git a/doc/rrdresize.txt b/doc/rrdresize.txt
index e9f7a8b..443abf1 100644
--- a/doc/rrdresize.txt
+++ b/doc/rrdresize.txt
@@ -41,4 +41,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-03-15                      RRDRESIZE(1)
+1.3rc6                            2008-03-15                      RRDRESIZE(1)
diff --git a/doc/rrdrestore.1 b/doc/rrdrestore.1
index 379de76..07c6b7e 100644
--- a/doc/rrdrestore.1
+++ b/doc/rrdrestore.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDRESTORE 1"
-.TH RRDRESTORE 1 "2008-03-15" "1.3rc4" "rrdtool"
+.TH RRDRESTORE 1 "2008-03-15" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdrestore \- Restore the contents of an RRD from its XML dump format
 .SH "SYNOPSIS"
diff --git a/doc/rrdrestore.txt b/doc/rrdrestore.txt
index ba1d3bf..2f21b0c 100644
--- a/doc/rrdrestore.txt
+++ b/doc/rrdrestore.txt
@@ -30,4 +30,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-03-15                     RRDRESTORE(1)
+1.3rc6                            2008-03-15                     RRDRESTORE(1)
diff --git a/doc/rrdthreads.1 b/doc/rrdthreads.1
index f9baa9a..dd1a5ff 100644
--- a/doc/rrdthreads.1
+++ b/doc/rrdthreads.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDTHREADS 1"
-.TH RRDTHREADS 1 "2008-03-15" "1.3rc4" "rrdtool"
+.TH RRDTHREADS 1 "2008-03-15" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdthreads \- Provisions for linking the RRD library to use in multi\-threaded programs
 .SH "SYNOPSIS"
diff --git a/doc/rrdthreads.txt b/doc/rrdthreads.txt
index b15343b..89ff34a 100644
--- a/doc/rrdthreads.txt
+++ b/doc/rrdthreads.txt
@@ -100,4 +100,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-03-15                     RRDTHREADS(1)
+1.3rc6                            2008-03-15                     RRDTHREADS(1)
diff --git a/doc/rrdtool.1 b/doc/rrdtool.1
index d19a2e9..eb7a463 100644
--- a/doc/rrdtool.1
+++ b/doc/rrdtool.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDTOOL 1"
-.TH RRDTOOL 1 "2008-03-15" "1.3rc4" "rrdtool"
+.TH RRDTOOL 1 "2008-03-15" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdtool \- Round Robin Database Tool
 .SH "SYNOPSIS"
diff --git a/doc/rrdtool.txt b/doc/rrdtool.txt
index 72999a0..81c851d 100644
--- a/doc/rrdtool.txt
+++ b/doc/rrdtool.txt
@@ -273,4 +273,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-03-15                        RRDTOOL(1)
+1.3rc6                            2008-03-15                        RRDTOOL(1)
diff --git a/doc/rrdtune.1 b/doc/rrdtune.1
index c3a3fd8..115eb92 100644
--- a/doc/rrdtune.1
+++ b/doc/rrdtune.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDTUNE 1"
-.TH RRDTUNE 1 "2008-03-15" "1.3rc4" "rrdtool"
+.TH RRDTUNE 1 "2008-03-15" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdtune \- Modify some basic properties of a Round Robin Database
 .SH "SYNOPSIS"
diff --git a/doc/rrdtune.txt b/doc/rrdtune.txt
index 2d6d9e9..edfd39e 100644
--- a/doc/rrdtune.txt
+++ b/doc/rrdtune.txt
@@ -159,4 +159,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-03-15                        RRDTUNE(1)
+1.3rc6                            2008-03-15                        RRDTUNE(1)
diff --git a/doc/rrdtutorial.1 b/doc/rrdtutorial.1
index 5a22139..1a03402 100644
--- a/doc/rrdtutorial.1
+++ b/doc/rrdtutorial.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDTUTORIAL 1"
-.TH RRDTUTORIAL 1 "2008-03-15" "1.3rc4" "rrdtool"
+.TH RRDTUTORIAL 1 "2008-03-15" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdtutorial \- Alex van den Bogaerdt's RRDtool tutorial
 .SH "DESCRIPTION"
diff --git a/doc/rrdtutorial.txt b/doc/rrdtutorial.txt
index ac6d83b..7879298 100644
--- a/doc/rrdtutorial.txt
+++ b/doc/rrdtutorial.txt
@@ -1149,4 +1149,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-03-15                    RRDTUTORIAL(1)
+1.3rc6                            2008-03-15                    RRDTUTORIAL(1)
diff --git a/doc/rrdupdate.1 b/doc/rrdupdate.1
index d3ef44b..1b2827e 100644
--- a/doc/rrdupdate.1
+++ b/doc/rrdupdate.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDUPDATE 1"
-.TH RRDUPDATE 1 "2008-03-15" "1.3rc4" "rrdtool"
+.TH RRDUPDATE 1 "2008-03-15" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdupdate \- Store a new set of values into the RRD
 .SH "SYNOPSIS"
diff --git a/doc/rrdupdate.txt b/doc/rrdupdate.txt
index 80e58d8..17928bb 100644
--- a/doc/rrdupdate.txt
+++ b/doc/rrdupdate.txt
@@ -91,4 +91,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-03-15                      RRDUPDATE(1)
+1.3rc6                            2008-03-15                      RRDUPDATE(1)
diff --git a/doc/rrdxport.1 b/doc/rrdxport.1
index db4c7cd..2907110 100644
--- a/doc/rrdxport.1
+++ b/doc/rrdxport.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RRDXPORT 1"
-.TH RRDXPORT 1 "2008-03-15" "1.3rc4" "rrdtool"
+.TH RRDXPORT 1 "2008-03-15" "1.3rc6" "rrdtool"
 .SH "NAME"
 rrdxport \- Export data in XML format based on data from one or several RRD
 .SH "SYNOPSIS"
diff --git a/doc/rrdxport.txt b/doc/rrdxport.txt
index 7c23b20..77f029b 100644
--- a/doc/rrdxport.txt
+++ b/doc/rrdxport.txt
@@ -125,4 +125,4 @@ AAUUTTHHOORR
 
 
 
-1.3rc4                            2008-03-15                       RRDXPORT(1)
+1.3rc6                            2008-03-15                       RRDXPORT(1)
diff --git a/rrdtool.spec b/rrdtool.spec
index 09f22b3..ec585c5 100644
--- a/rrdtool.spec
+++ b/rrdtool.spec
@@ -7,7 +7,7 @@
 
 Summary: Round Robin Database Tool to store and display time-series data
 Name: rrdtool
-Version: 1.3rc4
+Version: 1.3rc6
 Release: 0.1%{?dist}
 License: GPL
 Group: Applications/Databases
diff --git a/src/pngsize.c b/src/pngsize.c
index 1c69535..dc2cc36 100644
--- a/src/pngsize.c
+++ b/src/pngsize.c
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * pngsize.c  determine the size of a PNG image
  *****************************************************************************/
diff --git a/src/rrd.h b/src/rrd.h
index 6b475d8..ede0c8e 100644
--- a/src/rrd.h
+++ b/src/rrd.h
@@ -1,9 +1,9 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrdlib.h   Public header file for librrd
  *****************************************************************************
- * $Id: rrd.h 1366 2008-05-18 13:06:44Z oetiker $
+ * $Id: rrd.h 1380 2008-05-26 08:56:58Z oetiker $
  * $Log$
  * Revision 1.9  2005/02/13 16:13:33  oetiker
  * let rrd_graph return the actual value range it picked ...
diff --git a/src/rrd_cgi.c b/src/rrd_cgi.c
index 0355dfc..e3ac8aa 100644
--- a/src/rrd_cgi.c
+++ b/src/rrd_cgi.c
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_cgi.c  RRD Web Page Generator
  *****************************************************************************/
diff --git a/src/rrd_create.c b/src/rrd_create.c
index 25c1133..92fe3b0 100644
--- a/src/rrd_create.c
+++ b/src/rrd_create.c
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_create.c  creates new rrds
  *****************************************************************************/
diff --git a/src/rrd_diff.c b/src/rrd_diff.c
index 23d8a0d..bc3edbb 100644
--- a/src/rrd_diff.c
+++ b/src/rrd_diff.c
@@ -1,11 +1,11 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  * This code is stolen from rateup (mrtg-2.x) by Dave Rand
  *****************************************************************************
  * diff calculate the difference between two very long integers available as
  *      strings
  *****************************************************************************
- * $Id: rrd_diff.c 1366 2008-05-18 13:06:44Z oetiker $
+ * $Id: rrd_diff.c 1380 2008-05-26 08:56:58Z oetiker $
  * $Log$
  * Revision 1.4  2003/03/10 00:30:34  oetiker
  * handle cases with two negative numbers
diff --git a/src/rrd_dump.c b/src/rrd_dump.c
index 69893e0..bf438cc 100644
--- a/src/rrd_dump.c
+++ b/src/rrd_dump.c
@@ -1,9 +1,9 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_dump  Display a RRD
  *****************************************************************************
- * $Id: rrd_dump.c 1366 2008-05-18 13:06:44Z oetiker $
+ * $Id: rrd_dump.c 1380 2008-05-26 08:56:58Z oetiker $
  * $Log$
  * Revision 1.7  2004/05/25 20:53:21  oetiker
  * prevent small leak when resources are exhausted -- Mike Slifcak
@@ -52,8 +52,7 @@ extern char *tzname[2];
 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;
@@ -81,11 +80,11 @@ int rrd_dump_opt_r(
         out_file = stdout;
     }
 
-    if (!opt_noheader){
-      fputs("\n", out_file);
-      fputs
-        ("\n",
-         out_file);
+    if (!opt_noheader) {
+        fputs("\n", out_file);
+        fputs
+            ("\n",
+             out_file);
     }
     fputs("", out_file);
     fputs("", out_file);
@@ -433,7 +432,7 @@ int rrd_dump_r(
     const char *filename,
     char *outname)
 {
-    return rrd_dump_opt_r(filename,outname,0);    
+    return rrd_dump_opt_r(filename, outname, 0);
 }
 
 int rrd_dump(
@@ -442,13 +441,14 @@ 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'},
@@ -465,9 +465,9 @@ int rrd_dump(
             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;
         }
@@ -480,11 +480,10 @@ int rrd_dump(
     }
 
     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;
 }
-
diff --git a/src/rrd_error.c b/src/rrd_error.c
index bd8f4e7..992730c 100644
--- a/src/rrd_error.c
+++ b/src/rrd_error.c
@@ -1,9 +1,9 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_error.c   Common Header File
  *****************************************************************************
- * $Id: rrd_error.c 1366 2008-05-18 13:06:44Z oetiker $
+ * $Id: rrd_error.c 1380 2008-05-26 08:56:58Z oetiker $
  * $Log$
  * Revision 1.4  2003/02/22 21:57:03  oetiker
  * a patch to avoid a memory leak and a Makefile.am patch to
diff --git a/src/rrd_fetch.c b/src/rrd_fetch.c
index 4fe64cb..ad3bdb3 100644
--- a/src/rrd_fetch.c
+++ b/src/rrd_fetch.c
@@ -1,9 +1,9 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_fetch.c  read date from an rrd to use for further processing
  *****************************************************************************
- * $Id: rrd_fetch.c 1366 2008-05-18 13:06:44Z oetiker $
+ * $Id: rrd_fetch.c 1380 2008-05-26 08:56:58Z oetiker $
  * $Log$
  * Revision 1.8  2004/05/18 18:53:03  oetiker
  * big spell checking patch -- slif@bellsouth.net
diff --git a/src/rrd_first.c b/src/rrd_first.c
index 34692e7..aad5bbe 100644
--- a/src/rrd_first.c
+++ b/src/rrd_first.c
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_first Return
  *****************************************************************************
diff --git a/src/rrd_format.c b/src/rrd_format.c
index 02abef4..3274830 100644
--- a/src/rrd_format.c
+++ b/src/rrd_format.c
@@ -1,9 +1,9 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_format.c  RRD Database Format helper functions
  *****************************************************************************
- * $Id: rrd_format.c 1366 2008-05-18 13:06:44Z oetiker $
+ * $Id: rrd_format.c 1380 2008-05-26 08:56:58Z oetiker $
  * $Log$
  * Revision 1.5  2004/05/18 18:53:03  oetiker
  * big spell checking patch -- slif@bellsouth.net
diff --git a/src/rrd_format.h b/src/rrd_format.h
index 9deb5ab..32e047c 100644
--- a/src/rrd_format.h
+++ b/src/rrd_format.h
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_format.h  RRD Database Format header
  *****************************************************************************/
@@ -383,7 +383,8 @@ typedef struct rrd_t {
     stat_head_t *stat_head; /* the static header */
     ds_def_t *ds_def;   /* list of data source definitions */
     rra_def_t *rra_def; /* list of round robin archive def */
-    live_head_t *live_head;
+    live_head_t *live_head; /* rrd v >= 3 last_up with us */
+    time_t *legacy_last_up; /* rrd v < 3 last_up time */
     pdp_prep_t *pdp_prep;   /* pdp data prep area */
     cdp_prep_t *cdp_prep;   /* cdp prep area */
     rra_ptr_t *rra_ptr; /* list of rra pointers */
diff --git a/src/rrd_gfx.c b/src/rrd_gfx.c
index 7ba93ca..eb733b7 100644
--- a/src/rrd_gfx.c
+++ b/src/rrd_gfx.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  ****************************************************************************
  * rrd_gfx.c  graphics wrapper for rrdtool
   **************************************************************************/
@@ -131,6 +131,7 @@ static PangoLayout *gfx_prep_text(
     long      i;
     long      tab_count = strlen(text);
     long      tab_shift = fmod(x, tabwidth);
+    int       border = im->text_prop[TEXT_PROP_LEGEND].size * 2.0;
 
     PangoTabArray *tab_array;
     PangoContext *pango_context;
@@ -138,7 +139,7 @@ static PangoLayout *gfx_prep_text(
     tab_array = pango_tab_array_new(tab_count, (gboolean) (1));
     for (i = 1; i <= tab_count; i++) {
         pango_tab_array_set_tab(tab_array,
-                                i, PANGO_TAB_LEFT, tabwidth * i - tab_shift);
+                                i, PANGO_TAB_LEFT, tabwidth * i - tab_shift+border);
     }
     cairo_new_path(cr);
     cairo_set_source_rgba(cr, color.red, color.green, color.blue,
@@ -170,13 +171,6 @@ double gfx_get_text_width(
     PangoLayout *layout;
     PangoRectangle log_rect;
     gfx_color_t color = { 0, 0, 0, 0 };
-    char     *tab;
-
-    /* turn \\t into tab */
-    while ((tab = strstr(text, "\\t"))) {
-        memmove(tab + 1, tab + 2, strlen(tab + 2));
-        tab[0] = (char) 9;
-    }
     layout = gfx_prep_text(im, start, color, font, size, tabwidth, text);
     pango_layout_get_pixel_extents(layout, NULL, &log_rect);
     pango_tab_array_free(pango_layout_get_tabs(layout));
diff --git a/src/rrd_graph.c b/src/rrd_graph.c
index abebde7..480041f 100644
--- a/src/rrd_graph.c
+++ b/src/rrd_graph.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  ****************************************************************************
  * rrd__graph.c  produce graphs from data in rrdfiles
  ****************************************************************************/
@@ -201,16 +201,6 @@ double ytr(
             yval = im->yorigin - pixie * (log10(value) - log10(im->minval));
         }
     }
-    /* make sure we don't return anything too unreasonable. GD lib can
-       get terribly slow when drawing lines outside its scope. This is 
-       especially problematic in connection with the rigid option */
-    if (!im->rigid) {
-        /* keep yval as-is */
-    } else if (yval > im->yorigin) {
-        yval = im->yorigin + 0.00001;
-    } else if (yval < im->yorigin - im->ysize) {
-        yval = im->yorigin - im->ysize - 0.00001;
-    }
     return yval;
 }
 
@@ -1122,6 +1112,10 @@ int data_calc(
     return 0;
 }
 
+/* from http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm */
+/* yes we are loosing precision by doing tos with floats instead of doubles
+   but it seems more stable this way. */
+
 static int AlmostEqual2sComplement(
     float A,
     float B,
@@ -1256,7 +1250,7 @@ int data_proc(
 
     if (im->logarithmic) {
         if (isnan(minval) || isnan(maxval) || maxval <= 0) {
-            minval = 0.0; /* catching this right away below */
+            minval = 0.0;   /* catching this right away below */
             maxval = 5.1;
         }
         /* in logarithm mode, where minval is smaller or equal 
@@ -1271,7 +1265,7 @@ int data_proc(
         }
     }
 
-    /* adjust min and max values given by the user*/
+    /* adjust min and max values given by the user */
     /* for logscale we add something on top */
     if (isnan(im->minval)
         || ((!im->rigid) && im->minval > minval)
@@ -1618,7 +1612,8 @@ int leg_place(
     int       border = im->text_prop[TEXT_PROP_LEGEND].size * 2.0;
     int       fill = 0, fill_last;
     int       leg_c = 0;
-    int       leg_x = border, leg_y = im->yimg;
+    int       leg_x = border;
+    int       leg_y = im->yimg;
     int       leg_y_prev = im->yimg;
     int       leg_cc;
     int       glue = 0;
@@ -1626,6 +1621,7 @@ int leg_place(
     char      prt_fctn; /*special printfunctions */
     char      default_txtalign = TXA_JUSTIFIED; /*default line orientation */
     int      *legspace;
+    char     *tab;
 
     if (!(im->extra_flags & NOLEGEND) & !(im->extra_flags & ONLY_GRAPH)) {
         if ((legspace = malloc(im->gdes_c * sizeof(int))) == NULL) {
@@ -1654,13 +1650,16 @@ int leg_place(
                     im->gdes[i].legend[0] = '\0';
             }
 
+            /* turn \\t into tab */
+            while ((tab = strstr(im->gdes[i].legend, "\\t"))) {
+                memmove(tab, tab + 1, strlen(tab));
+                tab[0] = (char) 9;
+            }
             leg_cc = strlen(im->gdes[i].legend);
             /* is there a controle code ant the end of the legend string ? */
-            /* and it is not a tab \\t */
             if (leg_cc >= 2
                 && im->gdes[i].legend[leg_cc -
-                                      2] == '\\'
-                && im->gdes[i].legend[leg_cc - 1] != 't') {
+                                      2] == '\\' ) {
                 prt_fctn = im->gdes[i].legend[leg_cc - 1];
                 leg_cc -= 2;
                 im->gdes[i].legend[leg_cc] = '\0';
@@ -1673,7 +1672,7 @@ int leg_place(
                 prt_fctn != 'j' &&
                 prt_fctn != 'c' &&
                 prt_fctn != 's' &&
-                prt_fctn != 't' && prt_fctn != '\0' && prt_fctn != 'g') {
+                prt_fctn != '\0' && prt_fctn != 'g') {
                 free(legspace);
                 rrd_set_error
                     ("Unknown control code at the end of '%s\\%c'",
@@ -1809,10 +1808,7 @@ int leg_place(
                     leg_y - im->text_prop[TEXT_PROP_LEGEND].size * 1.8;
             }
         } else {
-            im->yimg = leg_y_prev;
-            /* if we did place some legends we have to add vertical space */
-            if (leg_y != im->yimg)
-                im->yimg += im->text_prop[TEXT_PROP_LEGEND].size * 1.8;
+            im->yimg = leg_y - im->text_prop[TEXT_PROP_LEGEND].size * 1.8 + border * 0.6;
         }
         free(legspace);
     }
@@ -1825,8 +1821,6 @@ int leg_place(
 /* the xaxis labels are determined from the number of seconds per pixel
    in the requested graph */
 
-
-
 int calc_horizontal_grid(
     image_desc_t
     *im)
@@ -1864,13 +1858,13 @@ int calc_horizontal_grid(
             if (im->ygrid_scale.gridstep == 0)  /* range is one -> 0.1 is reasonable scale */
                 im->ygrid_scale.gridstep = 0.1;
             /* should have at least 5 lines but no more then 15 */
-            if (range / im->ygrid_scale.gridstep < 5)
+            if (range / im->ygrid_scale.gridstep < 5 && im->ygrid_scale.gridstep >= 30 )
                 im->ygrid_scale.gridstep /= 10;
             if (range / im->ygrid_scale.gridstep > 15)
                 im->ygrid_scale.gridstep *= 10;
-            if (range / im->ygrid_scale.gridstep > 5) {
+            if (range / im->ygrid_scale.gridstep > 5 ) {
                 im->ygrid_scale.labfact = 1;
-                if (range / im->ygrid_scale.gridstep > 8)
+                if (range / im->ygrid_scale.gridstep > 8 || im->ygrid_scale.gridstep < 1.8 * im->text_prop[TEXT_PROP_AXIS].size )
                     im->ygrid_scale.labfact = 2;
             } else {
                 im->ygrid_scale.gridstep /= 5;
@@ -1897,17 +1891,17 @@ int calc_horizontal_grid(
                 sprintf(im->ygrid_scale.labfmt,
                         "%%%d.0f%s", len, (im->symbol != ' ' ? " %c" : ""));
             }
-        } else {
+        } else { /* classic rrd grid */
             for (i = 0; ylab[i].grid > 0; i++) {
                 pixel = im->ysize / (scaledrange / ylab[i].grid);
                 gridind = i;
-                if (pixel > 7)
+                if (pixel >= 5)
                     break;
             }
 
             for (i = 0; i < 4; i++) {
                 if (pixel * ylab[gridind].lfac[i] >=
-                    2.5 * im->text_prop[TEXT_PROP_AXIS].size) {
+                    1.8 * im->text_prop[TEXT_PROP_AXIS].size) {
                     im->ygrid_scale.labfact = ylab[gridind].lfac[i];
                     break;
                 }
@@ -2049,10 +2043,6 @@ double frexp10(
     return mnt;
 }
 
-/* from http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm */
-/* yes we are loosing precision by doing tos with floats instead of doubles
-   but it seems more stable this way. */
-
 
 /* logaritmic horizontal grid */
 int horizontal_log_grid(
@@ -3033,31 +3023,29 @@ int graph_paint(
     case IF_PDF:
         im->gridfit = 0;
         im->surface = strlen(im->graphfile)
-            ?
-            cairo_pdf_surface_create_for_stream
-            (&cairo_output, im, im->ximg * im->zoom, im->yimg * im->zoom)
-            : cairo_pdf_surface_create(im->graphfile, im->ximg * im->zoom,
-                                       im->yimg * im->zoom);
+            ? cairo_pdf_surface_create(im->graphfile, im->ximg * im->zoom,
+                                       im->yimg * im->zoom)
+            : cairo_pdf_surface_create_for_stream
+            (&cairo_output, im, im->ximg * im->zoom, im->yimg * im->zoom);
         break;
     case IF_EPS:
         im->gridfit = 0;
         im->surface = strlen(im->graphfile)
             ?
-            cairo_ps_surface_create_for_stream
-            (&cairo_output, im, im->ximg * im->zoom, im->yimg * im->zoom)
-            : cairo_ps_surface_create(im->graphfile, im->ximg * im->zoom,
-                                      im->yimg * im->zoom);
+            cairo_ps_surface_create(im->graphfile, im->ximg * im->zoom,
+                                    im->yimg * im->zoom)
+            : cairo_ps_surface_create_for_stream
+            (&cairo_output, im, im->ximg * im->zoom, im->yimg * im->zoom);
         break;
     case IF_SVG:
         im->gridfit = 0;
         im->surface = strlen(im->graphfile)
             ?
-            cairo_svg_surface_create_for_stream
-            (&cairo_output, im, im->ximg * im->zoom, im->yimg * im->zoom)
-            : cairo_svg_surface_create(im->
-                                       graphfile,
-                                       im->
-                                       ximg * im->zoom, im->yimg * im->zoom);
+            cairo_svg_surface_create(im->
+                                     graphfile,
+                                     im->ximg * im->zoom, im->yimg * im->zoom)
+            : cairo_svg_surface_create_for_stream
+            (&cairo_output, im, im->ximg * im->zoom, im->yimg * im->zoom);
         cairo_svg_surface_restrict_to_version
             (im->surface, CAIRO_SVG_VERSION_1_1);
         break;
@@ -3078,7 +3066,9 @@ int graph_paint(
                  im->xsize,
                  im->yorigin - im->ysize, im->graph_col[GRC_CANVAS]);
     gfx_add_point(im, im->xorigin, im->yorigin - im->ysize);
-    gfx_close_path(im);
+    gfx_close_path(im);    
+    cairo_rectangle(im->cr, im->xorigin, im->yorigin-im->ysize-1.0, im->xsize,im->ysize+2.0);
+    cairo_clip(im->cr);
     if (im->minval > 0.0)
         areazero = im->minval;
     if (im->maxval < 0.0)
@@ -3366,6 +3356,7 @@ int graph_paint(
             break;
         }               /* switch */
     }
+    cairo_reset_clip(im->cr);
 
     /* grid_paint also does the text */
     if (!(im->extra_flags & ONLY_GRAPH))
@@ -3433,8 +3424,8 @@ int graph_paint(
             rrd_set_error("Could not save png to '%s'", im->graphfile);
             return 1;
         }
-    }
         break;
+    }
     default:
         if (strlen(im->graphfile)) {
             cairo_show_page(im->cr);
diff --git a/src/rrd_graph_helper.c b/src/rrd_graph_helper.c
index f9c0187..c9990f7 100644
--- a/src/rrd_graph_helper.c
+++ b/src/rrd_graph_helper.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  ****************************************************************************
  * rrd_graph_helper.c  commandline parser functions 
  *                     this code initially written by Alex van den Bogaerdt
diff --git a/src/rrd_hw.c b/src/rrd_hw.c
index 6522949..5010d9e 100644
--- a/src/rrd_hw.c
+++ b/src/rrd_hw.c
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_hw.c : Support for Holt-Winters Smoothing/ Aberrant Behavior Detection
  *****************************************************************************
diff --git a/src/rrd_hw.h b/src/rrd_hw.h
index 1ac24b7..fb984d9 100644
--- a/src/rrd_hw.h
+++ b/src/rrd_hw.h
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_hw.h : Support for Holt-Winters Smoothing/ Aberrant Behavior Detection
  *****************************************************************************/
diff --git a/src/rrd_i18n.h b/src/rrd_i18n.h
index a75a836..96fe9c7 100644
--- a/src/rrd_i18n.h
+++ b/src/rrd_i18n.h
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Takao Fujiwara, 2008
+ * RRDtool 1.3rc6  Copyright by Takao Fujiwara, 2008
  *****************************************************************************
  * rrd_i18n.h   Common Header File
  *****************************************************************************/
diff --git a/src/rrd_info.c b/src/rrd_info.c
index 389607d..cf90e0e 100644
--- a/src/rrd_info.c
+++ b/src/rrd_info.c
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_info  Get Information about the configuration of an RRD
  *****************************************************************************/
diff --git a/src/rrd_is_thread_safe.h b/src/rrd_is_thread_safe.h
index 800c538..d313074 100644
--- a/src/rrd_is_thread_safe.h
+++ b/src/rrd_is_thread_safe.h
@@ -1,12 +1,12 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  * This file:     Copyright 2003 Peter Stamfest  
  *                             & Tobias Oetiker
  * Distributed under the GPL
  *****************************************************************************
  * rrd_is_thread_safe.c   Poisons some nasty function calls using GNU cpp
  *****************************************************************************
- * $Id: rrd_is_thread_safe.h 1366 2008-05-18 13:06:44Z oetiker $
+ * $Id: rrd_is_thread_safe.h 1380 2008-05-26 08:56:58Z oetiker $
  *************************************************************************** */
 
 #ifndef _RRD_IS_THREAD_SAFE_H
diff --git a/src/rrd_last.c b/src/rrd_last.c
index c38b9db..240364b 100644
--- a/src/rrd_last.c
+++ b/src/rrd_last.c
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_last.c
  *****************************************************************************
diff --git a/src/rrd_lastupdate.c b/src/rrd_lastupdate.c
index b42194c..e340893 100644
--- a/src/rrd_lastupdate.c
+++ b/src/rrd_lastupdate.c
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_lastupdate  Get the last datum entered for each DS
  *****************************************************************************/
diff --git a/src/rrd_not_thread_safe.c b/src/rrd_not_thread_safe.c
index efbd002..9616b6a 100644
--- a/src/rrd_not_thread_safe.c
+++ b/src/rrd_not_thread_safe.c
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  * This file:     Copyright 2003 Peter Stamfest  
  *                             & Tobias Oetiker
  * Distributed under the GPL
@@ -7,7 +7,7 @@
  * rrd_not_thread_safe.c   Contains routines used when thread safety is not
  *                         an issue
  *****************************************************************************
- * $Id: rrd_not_thread_safe.c 1366 2008-05-18 13:06:44Z oetiker $
+ * $Id: rrd_not_thread_safe.c 1380 2008-05-26 08:56:58Z oetiker $
  *************************************************************************** */
 #include "rrd.h"
 #include "rrd_tool.h"
diff --git a/src/rrd_open.c b/src/rrd_open.c
index 1f3f439..a03e5d3 100644
--- a/src/rrd_open.c
+++ b/src/rrd_open.c
@@ -1,9 +1,9 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_open.c  Open an RRD File
  *****************************************************************************
- * $Id: rrd_open.c 1366 2008-05-18 13:06:44Z oetiker $
+ * $Id: rrd_open.c 1380 2008-05-26 08:56:58Z oetiker $
  *****************************************************************************/
 
 #include "rrd_tool.h"
@@ -226,12 +226,14 @@ rrd_file_t *rrd_open(
             rrd_set_error("live_head_t malloc");
             goto out_close;
         }
-#ifdef HAVE_MMAP
-        memmove(&rrd->live_head->last_up, data + offset, sizeof(long));
-        offset += sizeof(long);
-#else
-        offset += read(rrd_file->fd, &rrd->live_head->last_up, sizeof(long));
-#endif
+
+#if defined USE_MADVISE
+        /* the live_head will be needed soonish, so hint accordingly */
+        madvise(data + PAGE_START(offset),
+                sizeof(time_t), MADV_WILLNEED);
+#endif        
+        __rrd_read(rrd->legacy_last_up,time_t,1);
+        rrd->live_head->last_up = *rrd->legacy_last_up;
         rrd->live_head->last_up_usec = 0;
     } else {
 #if defined USE_MADVISE
@@ -512,6 +514,7 @@ void rrd_init(
     rrd->ds_def = NULL;
     rrd->rra_def = NULL;
     rrd->live_head = NULL;
+    rrd->legacy_last_up = NULL;
     rrd->rra_ptr = NULL;
     rrd->pdp_prep = NULL;
     rrd->cdp_prep = NULL;
@@ -522,9 +525,12 @@ void rrd_init(
 /* free RRD header data.  */
 
 #ifdef HAVE_MMAP
-inline void rrd_free(
-    rrd_t UNUSED(*rrd))
+void rrd_free(
+    rrd_t *rrd)
 {
+    if (rrd->legacy_last_up){ /* this gets set for version < 3 only */
+        free(rrd->live_head);  
+    }
 }
 #else
 void rrd_free(
diff --git a/src/rrd_resize.c b/src/rrd_resize.c
index f113e69..e20f6bf 100644
--- a/src/rrd_resize.c
+++ b/src/rrd_resize.c
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_resize.c Alters size of an RRA
  *****************************************************************************
diff --git a/src/rrd_restore.c b/src/rrd_restore.c
index fd9f813..37fa55e 100644
--- a/src/rrd_restore.c
+++ b/src/rrd_restore.c
@@ -1,11 +1,11 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  * This file:     Copyright 2008 Florian octo Forster
  * Distributed under the GPL
  *****************************************************************************
  * rrd_restore.c   Contains logic to parse XML input and create an RRD file
  *****************************************************************************
- * $Id: rrd_restore.c 1366 2008-05-18 13:06:44Z oetiker $
+ * $Id: rrd_restore.c 1380 2008-05-26 08:56:58Z oetiker $
  *************************************************************************** */
 
 /*
diff --git a/src/rrd_rpncalc.c b/src/rrd_rpncalc.c
index b19c7da..aec519f 100644
--- a/src/rrd_rpncalc.c
+++ b/src/rrd_rpncalc.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  ****************************************************************************
  * rrd_rpncalc.c  RPN calculator functions
  ****************************************************************************/
diff --git a/src/rrd_rpncalc.h b/src/rrd_rpncalc.h
index 1930e92..853715d 100644
--- a/src/rrd_rpncalc.h
+++ b/src/rrd_rpncalc.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  ****************************************************************************
  * rrd_rpncalc.h  RPN calculator functions
  ****************************************************************************/
diff --git a/src/rrd_thread_safe.c b/src/rrd_thread_safe.c
index 3eed4a8..3ad3bea 100644
--- a/src/rrd_thread_safe.c
+++ b/src/rrd_thread_safe.c
@@ -1,12 +1,12 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  * This file:     Copyright 2003 Peter Stamfest  
  *                             & Tobias Oetiker
  * Distributed under the GPL
  *****************************************************************************
  * rrd_thread_safe.c   Contains routines used when thread safety is required
  *****************************************************************************
- * $Id: rrd_thread_safe.c 1366 2008-05-18 13:06:44Z oetiker $
+ * $Id: rrd_thread_safe.c 1380 2008-05-26 08:56:58Z oetiker $
  *************************************************************************** */
 
 #include 
diff --git a/src/rrd_thread_safe_nt.c b/src/rrd_thread_safe_nt.c
index fa55cf5..b05acd9 100644
--- a/src/rrd_thread_safe_nt.c
+++ b/src/rrd_thread_safe_nt.c
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  * This file:     Copyright 2003 Peter Stamfest  
  *                             & Tobias Oetiker
  * Distributed under the GPL
@@ -7,7 +7,7 @@
  * rrd_thread_safe.c   Contains routines used when thread safety is required
  *                     for win32
  *****************************************************************************
- * $Id: rrd_thread_safe_nt.c 1366 2008-05-18 13:06:44Z oetiker $
+ * $Id: rrd_thread_safe_nt.c 1380 2008-05-26 08:56:58Z oetiker $
  *************************************************************************** */
 
 #include 
diff --git a/src/rrd_tool.c b/src/rrd_tool.c
index c981e4a..088c195 100644
--- a/src/rrd_tool.c
+++ b/src/rrd_tool.c
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_tool.c  Startup wrapper
  *****************************************************************************/
@@ -141,6 +141,7 @@ void PrintUsage(
            "\t\t[-M|--alt-autoscale-max]\n"
            "\t\t[-R|--font-render-mode {normal,light,mono}]\n"
            "\t\t[-B|--font-smoothing-threshold size]\n"
+           "\t\t[-T|--tabwidth width]\n"
            "\t\t[-E|--slope-mode]\n"
            "\t\t[-N|--no-gridfit]\n"
            "\t\t[-X|--units-exponent value]\n"
@@ -804,6 +805,7 @@ int HandleInputLine(
 
     } else if (strcmp("graphv", argv[1]) == 0) {
         info_t   *grinfo = NULL;    /* 1 to distinguish it from the NULL that rrd_graph sends in */
+
         grinfo = rrd_graph_v(argc - 1, &argv[1]);
         if (grinfo) {
             info_print(grinfo);
diff --git a/src/rrd_tool.h b/src/rrd_tool.h
index 5182898..7928392 100644
--- a/src/rrd_tool.h
+++ b/src/rrd_tool.h
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_tool.h   Common Header File
  *****************************************************************************/
diff --git a/src/rrd_tune.c b/src/rrd_tune.c
index ed0f0ba..ca132f6 100644
--- a/src/rrd_tune.c
+++ b/src/rrd_tune.c
@@ -1,9 +1,9 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * change header parameters of an rrd
  *****************************************************************************
- * $Id: rrd_tune.c 1366 2008-05-18 13:06:44Z oetiker $
+ * $Id: rrd_tune.c 1380 2008-05-26 08:56:58Z oetiker $
  * $Log$
  * Revision 1.6  2004/05/26 22:11:12  oetiker
  * reduce compiler warnings. Many small fixes. -- Mike Slifcak 
diff --git a/src/rrd_update.c b/src/rrd_update.c
index c830c6a..dc5240d 100644
--- a/src/rrd_update.c
+++ b/src/rrd_update.c
@@ -1,10 +1,10 @@
 
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_update.c  RRD Update Function
  *****************************************************************************
- * $Id: rrd_update.c 1366 2008-05-18 13:06:44Z oetiker $
+ * $Id: rrd_update.c 1380 2008-05-26 08:56:58Z oetiker $
  *****************************************************************************/
 
 #include "rrd_tool.h"
@@ -832,6 +832,9 @@ static int process_arg(
     rrd->live_head->last_up = *current_time;
     rrd->live_head->last_up_usec = *current_time_usec;
 
+    if ( version < 3 ){
+        *rrd->legacy_last_up = rrd->live_head->last_up;
+    }
     free(seasonal_coef);
     free(last_seasonal_coef);
     return 0;
@@ -2053,7 +2056,7 @@ static int write_changes_to_disk(
             return -1;
         }
     } else {
-        if (rrd_write(rrd_file, &rrd->live_head->last_up,
+        if (rrd_write(rrd_file, rrd->legacy_last_up,
                       sizeof(time_t) * 1) != sizeof(time_t) * 1) {
             rrd_set_error("rrd_write live_head to rrd");
             return -1;
diff --git a/src/rrd_version.c b/src/rrd_version.c
index ed1098c..252a997 100644
--- a/src/rrd_version.c
+++ b/src/rrd_version.c
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrd_version Return
  *****************************************************************************
diff --git a/src/rrd_xport.c b/src/rrd_xport.c
index a439b4a..a54df18 100644
--- a/src/rrd_xport.c
+++ b/src/rrd_xport.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  ****************************************************************************
  * rrd_xport.c  export RRD data 
  ****************************************************************************/
diff --git a/src/rrd_xport.h b/src/rrd_xport.h
index b38d551..75bca6c 100644
--- a/src/rrd_xport.h
+++ b/src/rrd_xport.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  ****************************************************************************
  * rrd_xport.h  contains XML related constants
  ****************************************************************************/
diff --git a/src/rrdupdate.c b/src/rrdupdate.c
index e0ff72f..48994a5 100644
--- a/src/rrdupdate.c
+++ b/src/rrdupdate.c
@@ -1,9 +1,9 @@
 /*****************************************************************************
- * RRDtool 1.3rc4  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc6  Copyright by Tobi Oetiker, 1997-2008
  *****************************************************************************
  * rrdupdate.c  Main program for the (standalone) rrdupdate utility
  *****************************************************************************
- * $Id: rrdupdate.c 1366 2008-05-18 13:06:44Z oetiker $
+ * $Id: rrdupdate.c 1380 2008-05-26 08:56:58Z oetiker $
  *****************************************************************************/
 
 #if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__) && !defined(HAVE_CONFIG_H)
-- 
2.30.2