Bug #4564 ยป 0001-properly-detect-truncate-ftruncate-and-ftello-existence.patch
configure.in | ||
---|---|---|
ac_cv_func_isnan=yes
|
||
ac_cv_func_finite=yes
|
||
ac_cv_func_link=yes
|
||
ac_cv_func_truncate=yes
|
||
ac_cv_func_fseeko=yes
|
||
ac_cv_func_ftello=yes
|
||
ac_cv_lib_crypt_crypt=no
|
||
ac_cv_func_getpgrp_void=no
|
||
ac_cv_func_memcmp_working=yes
|
||
... | ... | |
AC_LIBOBJ([signbit])
|
||
fi
|
||
AC_CHECK_FUNCS(fmod killpg wait4 waitpid fork spawnv syscall __syscall chroot getcwd eaccess\
|
||
truncate ftruncate chsize times utimes utimensat fcntl lockf lstat\
|
||
truncate ftruncate ftello chsize times utimes utimensat fcntl lockf lstat\
|
||
link symlink readlink readdir_r fsync fdatasync fchown posix_fadvise\
|
||
setitimer setruid seteuid setreuid setresuid setproctitle socketpair\
|
||
setrgid setegid setregid setresgid issetugid pause lchown lchmod\
|
include/ruby/win32.h | ||
---|---|---|
//
|
||
#define SUFFIX
|
||
#if !defined HAVE_FTRUNCATE
|
||
#define ftruncate rb_w32_ftruncate
|
||
extern int truncate(const char *path, off_t length);
|
||
extern int ftruncate(int fd, off_t length);
|
||
extern int rb_w32_ftruncate(int fd, off_t length);
|
||
#endif
|
||
#if !defined HAVE_TRUNCATE
|
||
#define truncate rb_w32_truncate
|
||
extern int rb_w32_truncate(const char *path, off_t length);
|
||
#endif
|
||
extern int fseeko(FILE *stream, off_t offset, int whence);
|
||
extern off_t ftello(FILE *stream);
|
||
#if !defined HAVE_FTELLO
|
||
#define ftello rb_w32_ftello
|
||
extern off_t rb_w32_ftello(FILE *stream);
|
||
#endif
|
||
//
|
||
// stubs
|
win32/win32.c | ||
---|---|---|
}
|
||
int
|
||
truncate(const char *path, off_t length)
|
||
rb_w32_truncate(const char *path, off_t length)
|
||
{
|
||
HANDLE h;
|
||
int ret;
|
||
... | ... | |
}
|
||
int
|
||
ftruncate(int fd, off_t length)
|
||
rb_w32_ftruncate(int fd, off_t length)
|
||
{
|
||
HANDLE h;
|
||
... | ... | |
}
|
||
off_t
|
||
ftello(FILE *stream)
|
||
rb_w32_ftello(FILE *stream)
|
||
{
|
||
off_t pos;
|
||
if (fgetpos(stream, (fpos_t *)&pos)) return (off_t)-1;
|