/* Define to 1 if you have the <ifaddrs.h> header file. */
#cmakedefine HAVE_IFADDRS_H 1
+/* Define to 1 if yu have the `fseeko` function. */
+#cmakedefine HAVE_FSEEKO 1
+
/* Define to 1 if you have the `getexecname' function. */
#cmakedefine HAVE_GETEXECNAME 1
} else
#endif
{
- if (-1 == fseek((FILE *)wdh->fh, (long)offset, whence)) {
+ if (-1 == ws_fseek64((FILE *)wdh->fh, offset, whence)) {
*err = errno;
return -1;
} else
} else
#endif
{
- if (-1 == (rval = ftell((FILE *)wdh->fh))) {
+ if (-1 == (rval = ws_ftell64((FILE *)wdh->fh))) {
*err = errno;
return -1;
} else
#ifndef __FILE_UTIL_H__
#define __FILE_UTIL_H__
+#include "config.h"
+
#include "ws_symbol_export.h"
#ifdef __cplusplus
#define ws_write _write
#define ws_close _close
#define ws_dup _dup
+#define ws_fseek64 _fseeki64 /* use _fseeki64 for 64-bit offset support */
#define ws_fstat64 _fstati64 /* use _fstati64 for 64-bit size support */
+#define ws_ftell64 _ftelli64 /* use _ftelli64 for 64-bit offset support */
#define ws_lseek64 _lseeki64 /* use _lseeki64 for 64-bit offset support */
#define ws_fdopen _fdopen
#define ws_fileno _fileno
#define ws_close close
#endif
#define ws_dup dup
+#ifdef HAVE_FSEEKO
+#define ws_fseek64 fseeko /* AC_SYS_LARGEFILE should make off_t 64-bit */
+#define ws_ftell64 ftello /* AC_SYS_LARGEFILE should make off_t 64-bit */
+#else
+#define ws_fseek64(fh,offset,whence) fseek(fh,(long)(offset),whence)
+#define ws_ftell64 ftell
+#endif
#define ws_fstat64 fstat /* AC_SYS_LARGEFILE should make off_t 64-bit */
#define ws_lseek64 lseek /* AC_SYS_LARGEFILE should make off_t 64-bit */
#define ws_fdopen fdopen