aboutsummaryrefslogtreecommitdiffstats
path: root/win32/win32.c
Commit message (Collapse)AuthorAgeFilesLines
* * revert previous revision. it's already out-of-date.usa2009-01-221-9/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/win32.h, win32/win32.c (rb_w32_is_valid_fd): new functionusa2009-01-221-0/+9
| | | | | | | | | | to validate fd. * io.c (rb_io_initialize): check fd with above function. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_aspawn): should not escape with carretnobu2009-01-141-2/+3
| | | | | | | unless using cmd.exe. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/intern.h, thread.c, win32/Makefile.sub (rb_fdset_t,usa2009-01-131-39/+58
| | | | | | | | | | | | | | | rb_fd_init, rb_fd_term, rb_fd_zero, rb_fd_set, rb_fd_clr, rb_fd_isset, rb_fd_select, rb_fd_ptr, rb_fd_max, HAVE_RB_FD_INIT): new type, functions, and macros for Windows. * win32/win32.c (extract_fd, rb_w32_select): use rb_fdset_t to expand fd_array if needed. [ruby-core:19946] * win32/win32.c (copy_fd): new funcion for rb_w32_select(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21487 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (internal_cmd_match): extracted fromnobu2009-01-121-14/+34
| | | | | | | | | | | | | 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/trunk@21473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (open_dir_handle): extracted from rb_w32_opendir.nobu2009-01-121-28/+67
| | | | | | | | * win32/win32.c (winnt_stat): gets rid of strange behavior of GetFileAttributes(). [ruby-core:21269] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (init_env): use user profile folder than personalnobu2009-01-051-7/+24
| | | | | | | folder. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_argv_size): if an argument is empty, it's sizeusa2008-12-271-1/+1
| | | | | | | | is 2, not 0, because it will be converted to "". git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_spawn): deals with quoted commands.nobu2008-12-231-0/+8
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_spawn): support normal commands with arguments.usa2008-12-231-17/+17
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in (mingw): no longer uses snprintf and vsnprintf ofnobu2008-12-221-20/+0
| | | | | | | | | | | | | | | | | | msvcrt. * win32/win32.c (rb_w32_vsnprintf, rb_w32_snprintf): removed. * win32/Makefile.sub (config.h): vsnprintf exists in VC7 or later. * win32/mkexports.rb (Exports#initialize): aliases rb_w32_vsnprintf and rb_w32_snprintf for binary compatibility. * sprintf.c (rb_str_format): uses snprintf instead of sprintf. * numeric.c (flo_to_s, rb_num2long, rb_num2ll): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c (dln_find_1): supplements an extension for executablenobu2008-12-201-182/+122
| | | | | | | | | | | | | | | | | files on DOSish platforms. * io.c (pipe_open): use rb_w32_aspawn() for array form. * win32/win32.c (rb_w32_pipe_exec): no longer used. * win32/win32.c (rb_w32_spawn, rb_w32_aspawn): deals with batch files and commands with extensions. [ruby-core:20695] * win32/win32.c (has_redirection): supports environment variables references. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_read, rb_w32_write, rb_w32_isatty): checkusa2008-12-051-0/+12
| | | | | | | | whether fd is valid. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20539 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_read): ERROR_BROKEN_PIPE is not a real errorusa2008-12-041-2/+6
| | | | | | | | | | | 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/trunk@20528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (waitpid): fix bug of checking child slot.usa2008-12-041-1/+13
| | | | | | | | * win32/win32.c (FindChildSlotByHandle): new. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20517 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_accept): secure fd before accept because ifusa2008-11-111-11/+19
| | | | | | | | | | 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/trunk@20189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (ifs_open_socket): should retry without proto_bufferusa2008-11-101-0/+2
| | | | | | | | | 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/trunk@20166 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_open): shouldn't seek here.usa2008-10-291-5/+3
| | | | | | | | | * 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/trunk@20014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_open): need to seek to the end of the file whenusa2008-10-281-1/+3
| | | | | | | | O_APPEND is specified. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_pipe_exec): internal fds should be alwaysusa2008-10-281-3/+2
| | | | | | | | binmode. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread.c (blocking_region_{begin,end}): declared as inline.nobu2008-10-261-1/+1
| | | | | | | | | * 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
* * dln.c: Ruby no longer supports Windows CE.yugui2008-10-041-21/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * eval.c: ditto. * include/ruby/defines.h: ditto. * include/ruby/win32.h: ditto. * ruby.c: ditto. * strftime.c: ditto. * win32/Makefile.sub: ditto. * win32/win32.c: ditto. * ext/tk/extconf.rb: ditto. * lib/fileutils.rb: ditto. * test/fileutils/test_fileutils.rb: ditto. * wince/*: removed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19681 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (subtruct): check tv_sec. reported by ko1.usa2008-09-231-0/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19484 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (getppid): typo. [ruby-dev:36202]usa2008-09-081-15/+15
| | | | | | | | * 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
* * win32/win32.c (filetime_to_unixtime): remove unused variable.usa2008-09-081-1/+0
| | | | | | | | [ruby-dev:36191] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (filetime_to_timeval): new function, split fromusa2008-09-031-28/+23
| | | | | | | | | | | | gettimeofday(). * win32/win32.c (gettimeofday): use above function. * win32/win32.c (filetime_to_unixtime): ditto. [ruby-dev:36135] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c: fix ruby/signal.h depending codes.ko12008-09-031-9/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19102 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (gettimeofday): easier calculation. use the definitionusa2008-09-021-1/+1
| | | | | | | | of the Gregorian calender. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (gettimeofday): calc tv_sec and tv_usec from systemusa2008-09-021-6/+18
| | | | | | | | time by myself. [ruby-dev:36084] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19049 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (gettimeofday): shouldn't use mktime(2) because it'susa2008-09-011-11/+2
| | | | | | | | buggy about handling summer time. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_open, rb_w32_read, rb_w32_write): fallback tousa2008-08-301-0/+17
| | | | | | | | | 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
* * win32/win32.c (rb_w32_read): EOF is not error.usa2008-08-301-1/+1
| | | | | | | | ref [ruby-dev:36050] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18949 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_read, rb_w32_write): more accurate handlingusa2008-08-281-2/+6
| | | | | | | | of wait result. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (set_pioinfo_extra): use MSVCRT's open() and close().usa2008-08-281-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c, include/ruby/win32.h (rb_w32_open): overlapped fileusa2008-08-281-9/+448
| | | | | | | | | | | | | | | | I/O support. * win32/win32.c, include/ruby/win32.h (rb_w32_pipe): overlapped pipe I/O support. * wn32/win32.c (rb_w32_read, rb_w32_write): overlapped I/O support to enable canceling I/O. * thread_win32.c (ubf_handle): remove workaround. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32.c (init_stdhandle): set binmode.usa2008-08-251-0/+9
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_seekdir): no need to rewind to seek forward.nobu2008-08-011-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18303 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_select): recalc the rest of timeout for eachnobu2008-07-301-8/+30
| | | | | | | iterations. [ruby-core:18015] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18262 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (overlapped_socket_io, fcntl, rb_w32_close): must notnobu2008-07-281-4/+11
| | | | | | | 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 (CreateChild, overlapped_socket_io): suppressnobu2008-07-281-3/+3
| | | | | | | warnings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (MAXPATHLEN): define before use.usa2008-07-281-6/+6
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.h (dln_find_exe, dln_find_file): deprecated, use reentrantnobu2008-07-271-1/+2
| | | | | | | versions instead. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (exit_handler): use st_free_table() to free socklist.usa2008-07-241-16/+42
| | | | | | | | | | * 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
* * win32/win32.c (overlapped_socket_io): avoid warnings.usa2008-07-241-11/+16
| | | | | | | | * thread_win32.c (ubf_handle): refactoring. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (init_func): new function to get API's address whichusa2008-07-221-18/+15
| | | | | | | | | | | 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
* * win32/win32.c (socklist): table for registering socket optionsusa2008-07-181-97/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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
* * thread_win32.c (ubf_handle): cancel blocking IO if it can (onlyusa2008-07-151-0/+1
| | | | | | | | | | Vista). see [ruby-dev:35446] * win32/win32.c (errmap): add ERROR_OPERATION_ABORTED as EINTR. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18068 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_select): shoudn't pass non-socket handle tousa2008-07-111-0/+4
| | | | | | | | original select(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18033 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_accept, rb_w32_socket, rb_w32_socketpair):usa2008-07-111-4/+4
| | | | | | | | prohibit inheritance of sockets, too. [experimental] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (CreateChild): the measures for Vista is no longerusa2008-07-111-1/+1
| | | | | | | | unnecessary. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e