merges r31262 and r31264 from trunk into ruby_1_9_2.

--
Evaluate truncate, ftruncate and ftello existence

This corrects mingw-w64 compilation.
--
* include/ruby/win32.h: VC doesn't have ftruncate() and others, but
  ruby needs HAVE_ macros to use our emulation functions.
  (fix the problem of 31262)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@31798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
yugui 2011-05-29 22:49:27 +00:00
parent 7ffffab236
commit d4e840bf26
5 changed files with 34 additions and 10 deletions

View file

@ -1,3 +1,17 @@
Tue Apr 12 10:37:39 2011 NAKAMURA Usaku <usa@ruby-lang.org>
* include/ruby/win32.h: VC doesn't have ftruncate() and others, but
ruby needs HAVE_ macros to use our emulation functions.
(fix the problem of 31262)
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.
Fri Apr 8 16:01:56 2011 NARUSE, Yui <naruse@ruby-lang.org>
* ext/stringio/stringio.c (strio_getline): check whether str is

View file

@ -938,9 +938,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_setpgrp_void=yes
@ -1187,7 +1185,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\
setitimer setruid seteuid setreuid setresuid setproctitle socketpair\
setrgid setegid setregid setresgid issetugid pause lchown lchmod\

View file

@ -370,11 +370,23 @@ scalb(double a, long b)
//
#define SUFFIX
#if !defined HAVE_FTRUNCATE || defined(_MSC_VER)
#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 || defined(_MSC_VER)
#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 || defined(_MSC_VER)
#define ftello rb_w32_ftello
extern off_t rb_w32_ftello(FILE *stream);
#endif
//
// stubs

View file

@ -1,5 +1,5 @@
#define RUBY_VERSION "1.9.2"
#define RUBY_PATCHLEVEL 225
#define RUBY_PATCHLEVEL 226
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 9
#define RUBY_VERSION_TEENY 1

View file

@ -4332,7 +4332,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;
@ -4358,7 +4358,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;
@ -4431,7 +4431,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;