summaryrefslogtreecommitdiff
path: root/win32/win32.c
AgeCommit message (Collapse)Author
2015-08-17merge revision(s) 51202,51203,51204: [Backport #11340]usa
* win32/win32.c (waitpid): return immediately if interrupted. reported by <takkanm AT gmail.com> [ruby-dev:49176] [Bug #11340] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@51607 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-09merge revision(s) 50637: [Backport #11172]usa
* win32/win32.c (setup_overlapped): seek to the file end only when writing (mode:a), not reading (mode:a+, read). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@50806 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-13merge revision(s) 49634,49658,49663: [Backport #10865]usa
* win32/win32.c (wrename): return EXDEV if moving a directory to another drive, since MoveFileExW does not set proper error code. [ruby-core:68162] [Bug #10865] * win32/win32.c (different_device_p): compare by volume serial numbers, not by path names. numbers, not by path names. [ruby-core:68162] [Bug #10865] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@50290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-17merge revision(s) r48690: [Backport #10563]nagachika
* win32/win32.c (w32_spawn): `v2` is used not only for `shell` but also `cmd`, so must not free before using `cmd`. [ruby-core:66648] [Bug #10563] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@49997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-17merge revision(s) r48585,r48587: [Backport #10546]nagachika
* win32/win32.c (constat_reset): do nothing on non-standard console emurators. [ruby-core:66471] [Bug #10546] console emulators. [ruby-core:66471] [Bug #10546] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@49996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-02merge revision(s) r48360,r48364: [Backport #10493]nagachika
* ext/etc/etc.c (etc_getlogin): set login name encoding properly. [ruby-core:66163] [Bug #10493] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@49473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-05merge revision(s) r45046,r45047,r45063,r45087,r45146,r45150,r45151,r45152: ↵nagachika
[Backport #9525] * ext/socket: Wrap struct addrinfo by struct rb_addrinfo. * ext/socket: Bypass getaddrinfo() if node and serv are numeric. Reporeted by Naotoshi Seo. [ruby-core:60801] [Bug #9525] * ext/socket/extconf.rb: Detect struct sockaddr_in6.sin6_len. * ext/socket/sockport.h (SET_SIN6_LEN): New macro. (INIT_SOCKADDR_IN6): Ditto. * ext/socket/rubysocket.h (struct rb_addrinfo): Add allocated_by_malloc field. * ext/socket/raddrinfo.c (numeric_getaddrinfo): New function. (rb_getaddrinfo): Call numeric_getaddrinfo at first. (rb_freeaddrinfo): Free struct addrinfo properly when it is allocated by numeric_getaddrinfo. * ext/socket/raddrinfo.c (numeric_getaddrinfo): Use xcalloc. Suggested by Eric Wong. https://bugs.ruby-lang.org/issues/9525#note-14 * ext/socket/raddrinfo.c (rb_getaddrinfo): second argument of MEMZERO is type. Coverity Scan found this bug. * include/ruby/win32.h, win32/win32.c (rb_w32_inet_pton): add a wrapper function for inet_pton minimum supported client is Vista, as well as inet_ntop. * ext/socket/option.c (inet_pton): use rb_w32_inet_pton, instead of inet_ntop directly, which is unavailable on older version Windows. * ext/socket/raddrinfo.c (inet_pton): use rb_w32_inet_pton, instead of inet_pton directly, which is unavailable on older version Windows. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@47415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-16merge revision(s) r45521,r45523,r45551: [Backport #9699]nagachika
win32.c: wchar conversion * win32/win32.c (rb_w32_wstr_to_mbstr, rb_w32_mbstr_to_wstr): make WCHAR/mb conversion functions public. * dln.c (dln_load): use wchar version to load a library in non-ascii path on Windows. based on the patch by Bugra Barin <bugrabarin AT hotmail.com> in [ruby-core:61845]. [Bug #9699] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-01merge revision(s) r45471: [Backport #9688]nagachika
* win32/win32.c (rb_w32_accept, open_ifs_socket, socketpair_internal): reset inherit flag of socket to avoid unintentional inheritance of socket. note that the return value of SetHandleInformation() is not verified intentionally because old Windows may return an error. [Bug #9688] [ruby-core:61754] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-31merge revision(s) 44406: [Backport #9324]naruse
* configure.in: let mingw do something black-magic, and check if _gmtime64_s() is available actually. * win32/win32.c (gmtime_s, localtime_s): use _gmtime64_s() and _localtime64_s() if available, not depending on very confusing mingw variants macros. based on the patch by phasis68 (Heesob Park) at [ruby-core:58764]. [ruby-core:58391] [Bug #9119] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@44774 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-28win32.c: rb_w32_dup2nobu
* win32/win32.c (rb_w32_dup2): extract from rb_cloexec_dup2() and redirect_dup2(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43890 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-17win32.c: check by module handlesnobu
* win32/win32.c (console_emulator_p): check by comparison between module handle of WriteConsoleW and kernel32.dll. * configure.in, win32/Makefile.sub, win32/setup.mak: no longer need psapi.lib. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43331 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-16win32/setup.mak: check psapi.hnobu
* win32/setup.mak (check-psapi.h): check if psapi.h is available. * win32/win32.c (CHECK_CONSOLE_EMULATOR): enable console emulator DLL check only when psapi.h is available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-10win32.c: bail out if no memorynobu
* win32/win32.c (rb_w32_write_console): bail out when buffer allocation failed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-07win32.c: internal functionsnobu
* win32/win32.c (w32_spawn, w32_aspawn_flags): make internal functions static. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43161 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-03win32.c: disable console colorizingnobu
* win32/win32.c (console_emulator_p, constat_handle): disable built-in console colorizing when console-emulator-like DLL is injected. [Feature #8201] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43131 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-06win32.c: clock_getresnobu
* win32/win32.c (clock_getres): remove unused variable. [ruby-dev:47699] [Bug #8869] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42856 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-06win32.c: clock_getresnobu
* win32/win32.c (clock_getres): required as well as clock_gettime(). [ruby-dev:47699] [Bug #8869] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-04win32.c: suppress warningnobu
* win32/win32.c (do_select): unconstify timeout as select() declares it non-const. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-03* win32/win32.c (rb_w32_select_with_thread): rounding up the fraction ofusa
tv_usec instead of rounding down. this change is an experiment to get rid of failures on vc10-x64 CI. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-03* win32/win32.c (do_select): constify timeout.usa
* win32/win32.c (rb_w32_select_with_thread): constify 10ms wait and 0ms wait structs. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-19* include/ruby/win32.h (CLOCK_MONOTONIC): typo.usa
* win32/win32.c: removed duplicated declarations. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42617 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-15* win32/win32.c (clock_gettime): improve precision when freq is lessusa
than and nearly equals 10**9. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-15* include/ruby/win32.h, win32/Makefile.sub, win32/win32.cusa
(clock_gettime): [experimental] emulates clock_gettime(2) of posix. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42557 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-06win32.c: fix conversionnobu
* win32/win32.c (rb_w32_conv_from_wchar): converted string to CP_UTF8 should have UTF-8 encoding. otherwise no conversion takes place later. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-06win32.c: conversion from WCHARnobu
* win32/win32.c (rb_w32_conv_from_wchar): use WideCharToMultiByte(), as like as mbstr_to_wstr(), in the first step of the convertion from WCHAR. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-06win32.c: supprss warningnobu
* win32/win32.c (rb_w32_system_tmpdir): supprss a sign-compare warning. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-05win32.c: conversion to WCHARnobu
* win32/win32.c (rb_w32_write_console): use MultiByteToWideChar() for the last step of conversion to WCHAR, to get rid of warnings from rb_enc_find() in miniruby. [ruby-dev:47584] [Bug #8733] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-05win32.c: fix wrong trimmingnobu
* win32/win32.c (wstr_to_mbstr, mbstr_to_wstr): fix wrong trimming. WideCharToMultiByte() and MultiByteToWideChar() do not count NUL-terminator in the size for conversion result, unless the input length is -1. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-28win32.c: use enumnobu
* win32/win32.c (rb_w32_pipe): use enum for compile time constants, instead of const int for debugging. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42221 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-28win32.c: fix pipe name formattingnobu
* win32/win32.c (rb_w32_pipe): fix pipe name formatting. as "%x" may not contain '0' at all, fill at fixed position instead. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-11win32.c: fix infinite recursionnobu
* win32/win32.c (rb_w32_pow): undef pow to get rid of infinite recursive call. re-fix [Bug #8495]. [ruby-core:55923] [Bug #8621] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-08win32.c: suppress warningsnobu
* win32/win32.c (CharNextExA): cast to suppress warnings by VC6. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41837 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-08win32.c: for strict ANSInobu
* win32/win32.c (rb_w32_pow): move from win32.h and disable strict ANSI mode macro to let _controlfp() stuff defined. [ruby-core:55312] [Bug #8495] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-08win32: for strict ANSInobu
* thread_win32.c (w32_thread_start_func, thread_start_func_1), (timer_thread_func): use __stdcall instead of _stdcall which is unavailable in strict ANSI mode. [ruby-core:55312] [Bug #8495] * win32/win32.c (gettimeofday): use __cdecl instead of _cdecl. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-05* win32/win32.c (w32_spawn): r41710 made that if the command starts withusa
a quote and includes slash, removed the top quote and NOT removed the last quote. this fixes test failures on test/ruby/test_process.rb and test/webrick. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41789 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-30win32.c: use backslashnobu
* win32/win32.c (join_argv): use backslash instead of slash in program path, otherwise cannot invoke "./c\u{1ee7}a.exe" for some reason. [ruby-core:24309] [Bug #1771] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-30win32.c: codepage awarenessnobu
* win32/win32.c (translate_char, join_argv, has_redirection): make codepage aware. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41708 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-30win32.c: rb_w32_udln_find_exe_r,nobu
rb_w32_udln_find_file_r * win32/win32.c (rb_w32_udln_find_exe_r, rb_w32_udln_find_file_r): codepage independent versions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-30win32.c: UTF-8 spawnnobu
* win32/win32.c (w32_spawn): extract codepage aware code from rb_w32_spawn(). * win32/win32.c (rb_w32_uspawn): add UTF-8 version function. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41706 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-30win32.c: UTF-8 aspawnnobu
* win32/win32.c (w32_aspawn_flags): extract codepage aware code from rb_w32_aspawn_flags(). * win32/win32.c (rb_w32_uaspawn_flags, rb_w32_uaspawn_flags): add UTF-8 version functions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-30win32.c: w32_getenvnobu
* win32/win32.c (w32_getenv): extract codepage aware code from rb_w32_ugetenv() and rb_w32_getenv(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41704 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-30win32.c: w32_stati64nobu
* win32/win32.c (w32_stati64): extract codepage aware code from rb_w32_ustati64() and rb_w32_stati64(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-19win32.c: GetLastError oncenobu
* win32/win32.c (poll_child_status): call GetLastError() once. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-19win32.c: no error after retrynobu
* win32/win32.c (waitpid): return 0 on error after retried. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-19win32.c: wait until exitnobu
* win32/win32.c (waitpid): should not return 0 but wait until exit unless WNOHANG is given. waiting huge process may return while active, for some reason. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-08Revert r41179 "partially revert r41163 because r41173 didn't fix failure"naruse
r41173 is not actually tested; it seems good. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-08partially revert r41163 because r41173 didn't fix failurenaruse
http://ruby-mswin.cloudapp.net/vc10-x64/ruby-trunk/log/20130608T101707Z.log.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-08win32.c: NET_LUIDnobu
* configure.in: check for NET_LUID. header macro varies across complier versions. * win32/win32.c: use configured macro. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-05* win32/win32.c (NET_LUID): define it on MinGW32.naruse
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