mingw-w64 has NET_LUID but mingw32 (mingw.org) still doesn't have
NET_LUID. reported by taco on IRC
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41094 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (setup_overlapped): check the error code in addition
to the result of SetFilePointer() to determine if an error occurred,
because INVALID_SET_FILE_POINTER is a valid value.
[ruby-core:55098] [Bug #8431]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* include/ruby/win32.h, win32/Makefile.sub, win32/win32.c: iphlpapi is
not available with older Visual C. works with VC9 or later at least.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
emulate getipaddrs(3) on Unix.
* win32/Makefile.sub, configure.in (LIBS): need iphlpapi.lib for above
function.
* include/ruby/win32.h (socketpair): rb_w32_socketpair() doesn't
substitute for any function, so use non-prefixed name.
* ext/socket/extconf.rb (socketpair); follow above change.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
ftello64). They are not used from anywhere.
* win32/win32.c (fseeko): removes.
* win32/win32.c (rb_w32_ftello): removes.
* include/ruby/win32.h: removes declarations of rb_w32_ftello and
rb_w32_fseeko.
* win32/Makefile.sub: removes '#define HAVE_FTELLO 1'.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40661 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
we can test it.
* test/ruby/test_thread.rb (TestThread#test_thread_timer_and_interrupt):
ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
a child's death to status if its exitcode seems to be an error.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40549 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (constat_apply): pass through unknown sequence which
starts with ESC but is not followed by a bracket. [ruby-core:53879]
[Bug #8201]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
because the latter fails on cross device file move of some
environments.
fix [ruby-core:53492] [Bug #8109]
reported by mitchellh (Mitchell Hashimoto)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (set_env_val): get rid of intger overflow warning by
VC 11.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (set_env_val): reuse size of typedef to suppress
unused-local-typedefs warnings from gcc 4.8 and reduce same
calculation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39524 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (rb_w32_spawn, rb_w32_aspawn_flags): check the results
of acp_to_wstr() which can return NULL. [ruby-core:51557] [Bug #7721]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
API.
based on the patch by Heesob Park at [ruby-core:49479] [Bug #7379]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
the commandline containts '&'.
reported by Roger Pack at [ruby-core:47912] [Bug #7143], and
patched by Heesob Park at [ruby-core:47931].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37322 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_file_exhaustive.rb
(TestFileExhaustive#test_stat_special_file): add a test.
GetFileAttributesExW fails to get attributes of special files
such as pagefile.sys.
* win32/win32.c (check_valid_dir): for performance, check the path
by FindFirstFileW only if the path containts "..."
* win32/win32.c (winnt_stat): use GetFileAttributesExW instead of
FindFirstFileW since GetFileAttributesExW is faster.
Based on the patch by Dusan D. Majkic.
[ruby-core:47083] [Feature #6845]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36668 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c: suppress warning redeclared on mingw64.
*_s functions are declared if MINGW_HAS_SECURE_API is defined.
Follow up r36556.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (gmtime_r): use _gmtime64_s() with x86_64-w64-mingw32.
* win32/win32.c (localtime_r): use _localtime64_s() with
x86_64-w64-mingw32. Since FileTimeToSystemTime() seems not work with
large value under x64. Mingw-w64 doesn't have these declaration.
[ruby-core:46780] [Bug #6794]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
in the high word of socklist value.
* win32/win32.c (overlapped_socket_io, recvmsg, sendmsg, setfl): follow
above changes.
* win32/win32.c (rb_w32_getsockname): set remembered family to the
argument when OS's function fails.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
this API wraps an I/O handle (HANDLE or SOCKET) and returns fd.
the second parameter should be combination of O_*, for example,
O_RDWR | O_BINARY | O_NOINHERT.
* win32/win32.c, include/ruby/win32.h (rb_w32_unwrap_io_handle): new
API. this API unwraps an I/O handle and close the fd (not closes
the handle itself).
[Feature #4960] [ruby-core:37227]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (rb_w32_sysinit): let the system not display the
critical-error-handler message box and the Windows Error Reporting
dialog. [ruby-core:45389] [Bug #6535]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
replace ECONNABORTED to EPIPE in send, sendto and sendmsg to improve
BSD socket compatibility. this change removes a failure on the test
of net/ftp.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
To avoid buffer overflow when smaller FD_SETSISE is used in ext
libraries.
* win32/win32.c (rb_w32_fdset): this function is not used anymore.
But we leave this for compatibility.
* win32/win32.c (rb_w32_select_with_thread): fix SEGV when smaller
FD_SETSISE is used in ext libraries. Dereference of fd_set pointer
causes SEGV.
* test/-ext-/win32/test_fd_setsize.rb(TestFdSetSize): add tests for
above.
* ext/-test-/win32/fd_setsize/depend: ditto.
* ext/-test-/win32/fd_setsize/extconf.rb: ditto.
* ext/-test-/win32/fd_setsize/fd_setsize.c: ditto.
[ruby-core:44588] [Bug #6352]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35595 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
FindChildSlotByHandle() before passing poll_child_status().
this fixed a SEGV in test-all. reported by ko1 via IRC.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
get rid of a segmentation fault with GCC 4.7.0.
reported by raylinn@gmail.com (ray linn) at [ruby-core:44505]
[Bug #6333], and patched by mame.
* test/ruby/test_system.rb (TestSystem#test_system): test for it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35435 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/Makefile.sub (config.h): prefix RT_VER with RUBY and make
more descriptive to get rid of potential conflict.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35347 b2dd03c8-39d4-4d8f-98ff-823fe69b080e