summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--configure.in4
-rw-r--r--include/ruby/win32.h18
-rw-r--r--win32/win32.c6
4 files changed, 27 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 94bc0c8d0d..fc2fe6a95b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Tue Apr 12 01:33:00 2011 Luis Lavena <luislavena@gmail.com>
+
+ * configure.in: properly evaluate existence of truncate, ftruncate
+ and ftello for MinGW. [ruby-core:35678]
+ * win32/win32.c: rename truncate, ftruncate and ftello to avoid
+ redefinitions.
+ * win32/win32.h: ditto.
+
Mon Apr 11 21:51:52 2011 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
* io.c: revert r31230.
diff --git a/configure.in b/configure.in
index 8a4e97e339..69862e8cfd 100644
--- a/configure.in
+++ b/configure.in
@@ -1048,9 +1048,7 @@ main()
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
@@ -1302,7 +1300,7 @@ else
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\
diff --git a/include/ruby/win32.h b/include/ruby/win32.h
index 791085fa6c..d822a016dc 100644
--- a/include/ruby/win32.h
+++ b/include/ruby/win32.h
@@ -381,11 +381,23 @@ scalb(double a, long b)
//
#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
diff --git a/win32/win32.c b/win32/win32.c
index 2e92665275..f87cf8b696 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -4318,7 +4318,7 @@ rb_chsize(HANDLE h, off_t size)
}
int
-truncate(const char *path, off_t length)
+rb_w32_truncate(const char *path, off_t length)
{
HANDLE h;
int ret;
@@ -4344,7 +4344,7 @@ truncate(const char *path, off_t length)
}
int
-ftruncate(int fd, off_t length)
+rb_w32_ftruncate(int fd, off_t length)
{
HANDLE h;
@@ -4417,7 +4417,7 @@ fseeko(FILE *stream, off_t offset, int whence)
}
off_t
-ftello(FILE *stream)
+rb_w32_ftello(FILE *stream)
{
off_t pos;
if (fgetpos(stream, (fpos_t *)&pos)) return (off_t)-1;