* win32/win32.c (rb_w32_aspawn): should not escape with carret
unless using cmd.exe.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (internal_cmd_match): extracted from
is_internal_cmd.
* win32/win32.c (argv_size, join_argv): escapes redirection, pipe
and carret punctuations with carrets.
* win32/win32.c (rb_w32_aspawn): ditto, and redirections and pipe
have no meanings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21540 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (init_env): use user profile folder than personal
folder.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (rb_w32_argv_size): if an argument is empty, it's size
is 2, not 0, because it will be converted to "".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (rb_w32_spawn): support normal commands with arguments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (rb_w32_read): ERROR_BROKEN_PIPE is not a real error
at this point.
* io.c (pipe_open): use rb_w32_spawn() instead of rb_w32_pipe_exec()
to use our own redirection scheme.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
error causes in securing, cannot restore the state of accepted
socket.
fixed [ruby-core:19728]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
if cannot find the suitable protocol. a patch from Heesob Park.
fixed [ruby-core:19713]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20166 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (rb_w32_write): write to the end of the file when
FAPPEND is specified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20015 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io.c (extract_binmode): new function to extract binmode/textmode
options from hash.
* io.c (rb_io_extract_modeenc): use above function.
* io.c (rb_io_s_pipe): recognize binmode/textmode options.
* io.c (make_readconv): now can specify the size of cbuf.
* io.c (read_all, appendline, io_getc, rb_io_ungetc): follow above
change.
* win32/win32.c (rb_w32_pipe_exec): internal fds should be always
binmode.
* test/ruby/test_file.rb (test_each_char_extended_file,
test_getbyte_extended_file): add tests.
* test/ruby/test_file.rb (test_*_extended_file): test in default/text/
binary mode.
* test/ruby/test_file.rb (test_para_gets_extended_file): output file
should be binmode.
* test/ruby/test_io.rb (test_copy_stream, test_copy_stream_socket): skip
some tests if there isn't IO#nonblock=.
* test/ruby/test_io.rb (test_close_on_exec): skip if there isn't
IO#close_on_exec=.
* test/ruby/test_io.rb (test_bytes, test_readbyte): depend on binmode.
* test/ruby/test_io.rb (test_sysopen): should specify the mode of
IO::for_fd if F_GETFL is not available.
* test/ruby/test_io_m17n.rb (test_getc_invalid3): should set binmode if
enc is not compatible with ASCII.
* test/ruby/test_require.rb (test_require_too_long_filename): too long
commandline may be rejected by OS.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@19999 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* util.c (freedtoa): used only when MULTIPLE_THREADS is not defined.
* win32/win32.c (rb_w32_pipe): serial is DWORD.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c (get_ppid): mention the return value on Windows.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
MSVCRT if text mode is specified. this case will not be used from
ruby itself.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18951 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
pass a pointer to int which is smaller than st_data_t on mswin64.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (rb_w32_pipe_exec, rb_w32_accept, rb_w32_socket,
rb_w32_socketpair): should check and release fd and sockets/handles
if an error occurs in rb_w32_open_osfhandle().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18196 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
is often used and not supported on all Windows.
* win32/win32.c (overlapped_socket_io): shouldn't use overlapped I/O if
CancelIo() is not supported.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(currently only O_NONBLOCK).
* win32/win32.c (StartSockets, exit_handler): alloc/free socklist.
* win32/win32.c (is_socket): use socklist.
* win32/win32.c (rb_w32_accept, rb_w32_socket, rb_w32_socketpair):
register new socket to socklist.
* win32/win32.c (rb_w32_close): remove closing socket from socklist.
* win32/win32.c (fcntl): register socket options.
* win32/win32.c (overlapped_socket_io): send to/recv from socket with
overlapped operation if the socket is not nonblocking mode.
[experimental]
* win32/win32.c (rb_w32_send, rb_w32_sendto, rb_w32_recv,
rb_w32_recvfrom): use overlapped_socket_io().
* win32/win32.c (open_ifs_socket): set overlapped mode. this is the
default mode of winsock's socket(), so lacking it is an old bug.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e