summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-05-30 04:44:42 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-05-30 04:44:42 +0000
commit475907ecf0d9923533f61d604dcd0e466ca41200 (patch)
tree851f73126ef5c29359b0cf7a552bbd2e0e6befd2 /include
parent1049a5df6d9975661bce0cb8a13cf66be907231d (diff)
merges r31351 and r31352 from trunk into ruby_1_9_2.
-- * include/ruby/win32.h (ftruncate, truncate, ftello, fseeko): non-64 versions on mingw are useless because they use int32_t. fixes #4564 -- * file.c (rb_file_truncate): fix function. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@31817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'include')
-rw-r--r--include/ruby/win32.h37
1 files changed, 30 insertions, 7 deletions
diff --git a/include/ruby/win32.h b/include/ruby/win32.h
index 32b61d38da..79eb6a19df 100644
--- a/include/ruby/win32.h
+++ b/include/ruby/win32.h
@@ -94,6 +94,9 @@ typedef unsigned int uintptr_t;
#ifndef __MINGW32__
# define mode_t int
#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
#ifdef WIN95
extern DWORD rb_w32_osid(void);
@@ -371,21 +374,41 @@ scalb(double a, long b)
#define SUFFIX
-#if !defined HAVE_FTRUNCATE || defined(_MSC_VER)
+extern int rb_w32_ftruncate(int fd, off_t length);
+extern int rb_w32_truncate(const char *path, off_t length);
+extern off_t rb_w32_ftello(FILE *stream);
+extern int rb_w32_fseeko(FILE *stream, off_t offset, int whence);
+
+#undef HAVE_FTRUNCATE
+#define HAVE_FTRUNCATE 1
+#if defined HAVE_FTRUNCATE64
+#define ftruncate ftruncate64
+#else
#define ftruncate rb_w32_ftruncate
#endif
-extern int ftruncate(int fd, off_t length);
-#if !defined HAVE_TRUNCATE || defined(_MSC_VER)
+#undef HAVE_TRUNCATE
+#define HAVE_TRUNCATE 1
+#if defined HAVE_TRUNCATE64
+#define truncate truncate64
+#else
#define truncate rb_w32_truncate
#endif
-extern int truncate(const char *path, off_t length);
-extern int fseeko(FILE *stream, off_t offset, int whence);
+#undef HAVE_FSEEKO
+#define HAVE_FSEEKO 1
+#if defined HAVE_FSEEKO64
+#define fseeko fseeko64
+#else
+#define fseeko rb_w32_fseeko
+#endif
-#if !defined HAVE_FTELLO || defined(_MSC_VER)
+#undef HAVE_FTELLO
+#define HAVE_FTELLO 1
+#if defined HAVE_FTELLO64
+#define ftello ftello64
+#else
#define ftello rb_w32_ftello
-extern off_t rb_w32_ftello(FILE *stream);
#endif
//