MSVC defines the standard type off_t. Remove unneeded off_t typedef.
So far there has been a "typedef size_t ssize_t" in case of _MSC_VER,
which is incorrect because size_t is unsigned and ssize_t signed.
MSVC supports SSIZE_T (in capital letters). It is sufficient to have
the typedef SSIZE_T ssize_t in rrd.h - remove redundant, obsolete code
from rrd_restore.c
The function strtoll() is supported since Visual Studio 2013.
In rrd_resize.c, b_read is ssize_t. Use %zd in fprintf() as format
specifier, because ssize_t is signed.
#ifndef _WIN32
#include <unistd.h> /* for off_t */
-#else
+#endif
+
#ifdef _MSC_VER
+#include <BaseTsd.h>
+ typedef SSIZE_T ssize_t;
#ifndef PERLPATCHLEVEL
typedef int mode_t;
#endif
+#if _MSC_VER < 1800
#define strtoll _strtoi64
#endif
-#ifndef __MINGW32__ /* MinGW-w64 has ssize_t and off_t */
- typedef size_t ssize_t;
- typedef long off_t;
-#endif
#endif
#include <time.h>
if ((b_read=rrd_read(rrd_file, &buffer, sizeof(rrd_value_t) * 1)) <= 0)
break;
if(rrd_out_file->pos+b_read > rrd_out_file->file_len) {
- fprintf(stderr,"WARNING: ignoring last %zu bytes\nWARNING: if you see this message multiple times for a single file you're in trouble\n", b_read);
+ fprintf(stderr,"WARNING: ignoring last %zd bytes\nWARNING: if you see this message multiple times for a single file you're in trouble\n", b_read);
continue;
}
rrd_write(rrd_out_file, &buffer, b_read);
#ifndef _WIN32
# include <unistd.h> /* for off_t */
-#else
-#ifndef __MINGW32__ /* MinGW-w64 has ssize_t and off_t */
- typedef size_t ssize_t;
- typedef long off_t;
-#endif
#endif
#include <fcntl.h>