summaryrefslogtreecommitdiff
path: root/win32
Commit message (Collapse)AuthorAgeFilesLines
* * win32/win32.c (isUNCRoot, winnt_stat): support long UNC.nobu2012-04-091-3/+8
| | | | | | [ruby-core:30623][Feature #3399] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/win32.h (rb_w32_aspawn_flags): add the declaration ofshirosaki2012-04-071-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | new function. * process.c (enum): add EXEC_OPTION_PGROUP and move the position above for the usage in proc_spawn_n(). * process.c (proc_spawn_n): add an argument to pass new option `new_pgroup`. The option specifies CREATE_NEW_PROCESS_GROUP flag to CreateProcessW(). This flag is necessary for the usage of Process.kill on the subprocess on Windows. * process.c (rb_exec_arg_addopt): ditto. * process.c (rb_spawn_process): ditto. * process.c (documentation for rb_f_spawn): add documentation for new option `new_pgroup` of spawn. * test/ruby/test_process.rb (TestProcess#test_execopts_new_pgroup): add tests for option `new_pgroup`. * test/ruby/test_thread.rb (TestThreadGroup#test_thread_timer_and_interrupt): add option `new_pgroup: true` to spawn on Windows. It's needed for Process.kill on a subprocess. * win32/win32.c (CreateChild): add an argument to pass dwCreationFlags of CreateProcessW(). * win32/win32.c (rb_w32_spawn): ditto. * win32/win32.c (rb_w32_aspawn_flags): add new function to pass dwCreationFlags. * win32/win32.c (rb_w32_aspawn): refactor to move the content to rb_w32_aspawn_flags(). [ruby-core:43245][Bug #6131] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_thread.rbshirosaki2012-04-071-1/+1
| | | | | | | | | | | | (TestThreadGroup#test_thread_timer_and_interrupt): skip on Windows. Process.kill cannot kill a subprocess if CREATE_NEW_PROCESS_GROUP flag is not specified in a call to CreateProcessW(). * win32/win32.c (CreateChild): revert the usage of CREATE_NEW_PROCESS_GROUP flag for compatibility. [ruby-core:43245][Bug #6131] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in (verconf.h): separate load path specific stuff fromnobu2012-03-271-4/+7
| | | | | | | config.h. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/Makefile.sub: fix config.h path to include.nobu2012-03-271-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (check_if_dir): fix memory leak.kazu2012-03-271-16/+10
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/Makefile.sub (newline.c, miniprelude.c): search from sourcenobu2012-03-261-0/+11
| | | | | | directory, not depending on VPATH. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (check_if_dir, check_if_wdir): fix for Visual C++nobu2012-03-261-4/+16
| | | | | | | | not to use S_ISDIR(). [Feature #2408][ruby-core:26925] * ruby.c (load_file_internal): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35134 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_open, rb_w32_wopen): check if the file is anobu2012-03-261-4/+33
| | | | | | | directory when access denied, to set errno to EISDIR. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_fstat, rb_w32_fstati64): convert FILETIMEnobu2012-03-221-25/+24
| | | | | | | | to time_t directly, not to be affected by TZ unnecessarily. * win32/win32.c (unixtime_to_filetime): convert time_t to FILETIME simply. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35109 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/Makefile.sub: put an empty line between stub and script.nobu2012-03-181-5/+8
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c, include/ruby/win32.h (rb_w32_ugetenv): new API tousa2012-03-151-8/+59
| | | | | | | | | | | | | | accept and to return UTF-8 strings. * win32/win32.c (rb_w32_getenv): follow above change. * win32/win32.c (rb_w32_get_environ): returns UTF-8 environment area. * hash.c (env_str_new, rb_f_getenv, env_fetch): follow above changes. [Bug #5570] [ruby-core:40737] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35030 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/makedirs.bat: new command to make intermediatenobu2012-03-013-2/+4
| | | | | | | | | directories, and not to report any errors if the directory already exists. * win32/Makefile.sub (MAKEDIRS): enable command extensions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34862 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/Makefile.sub (MAKEDIRS): use mkdir of cmd.exe instead of ruby.usa2012-02-292-2/+6
| | | | | | | | | [Bug #6103] [ruby-core:43012] * win32/README.win32: added a notice about command extension of cmd.exe. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix indentnobu2012-02-291-11/+11
| | | | | | * win32/file.c (rb_file_load_ok): fix indent. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* clean-platformnobu2012-02-291-1/+1
| | | | | | | * Makefile.in, win32/Makefile.sub (clean-platform): use macro instead hardcoded path names. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34853 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * Makefile.in (PLATFORM_DIR): add a variable for `win32` directory.shirosaki2012-02-282-4/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (clean-platform): add new target. It cleans `win32` directory. * common.mk (clean): add a dependency for `win32` directory. * common.mk (distclean): ditto. * common.mk (distclean-platform): add new target. It cleans `win32` directory. * common.mk ($(PLATFORM_D)): add new target to make `win32` directory. * common.mk (win32/win32.$(OBJEXT)): move win32.o into `win32` directory. * common.mk (win32/file.$(OBJEXT)): add new target for win32/file.c. * configure.in: move win32.o into `win32` directory and add win32/file.o to MISSING. * file.c (file_load_ok, rb_file_load_ok): replace static file_load_ok() with public rb_file_load_ok(). It's to link Windows implementation in win32/file.c. * file.c (rb_find_file_ext_safe): ditto. * file.c (rb_find_file_safe): ditto. * win32/file.c (rb_file_load_ok): new file. Add Windows specific optimized implementation of rb_file_load_ok(). We created a separated file to avoid too many #ifdef macro which is unreadable. * win32/Makefile.sub (PLATFORM_DIR): add a variable for `win32` directory. * win32/Makefile.sub (MISSING): move win32.obj into `win32` directory and add win32/file.obj to MISSING. * win32/Makefile.sub (MAKEDIRS): replace MINIRUBY with BASERUBY. It's because miniruby doesn't exist when making `win32` directory. * win32/Makefile.sub (clean-platform): add new target to clean `win32` directory. * win32/Makefile.sub ({$(srcdir)}.c{}.obj): make it not match win32/file.c to build properly. * win32/Makefile.sub (win32/win32.$(OBJEXT)): move win32.obj into `win32` directory. Patch created with Luis Lavena. [ruby-core:42480] [Feature #5999] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_read): fix an issue that $stdin.read doesn'tshirosaki2012-01-281-1/+6
| | | | | | | terminate by CTRL-C on Windows. [ruby-dev:45149] [Bug #5812] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_thread.rbshirosaki2012-01-281-2/+8
| | | | | | | | | | | | | | | (TestThreadGroup#test_thread_timer_and_interrupt): skip exit status assertion because we cannot get signal status on Windows. * win32/win32.c (CreateChild): create process group to receive the signal by GenerateConsoleCtrlEvent(). * win32/win32.c (kill): use CTRL_BREAK_EVENT instead of CTRL_C_EVENT if a process group is specified. CTRL_C_EVENT signal cannot be generated for process groups for the specification. [ruby-dev:45149] [Bug #5812] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34389 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_chsize): no need to get the current file size.nobu2012-01-161-6/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34315 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (check_valid_dir): strict checking of root.usa2012-01-051-1/+1
| | | | | | | | | GetDriveType() succeeds with non root directory as the argument, even if MSDN says that the API needs the root directory. this patch fixes a failure of test/ruby/test_file_exhaustive.rb. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (check_valid_dir): special case for a root directory.usa2012-01-041-1/+14
| | | | | | | Reported by Masateru OKAMOTO at [Bug #5819]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * common.mk,Makefile.in,win32/Makefile.sub (ECHO1): move platformusa2011-12-141-1/+2
| | | | | | | | | | specific hack from common.mk to Makefile.in (and win32/Makefile.sub). [Bug #5711] * lib/mkmf.rb: we can generate Makefile as we like. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34044 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c, include/ruby/win32.h (rb_w32_fd_is_text): new function.usa2011-12-141-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | * win32/win32.c (init_stdhandle): set default mode of stdin as binmode. * io.c (set_binary_mode_with_seek_cur): new function to replace SET_BINARY_MODE_WITH_SEEK_CUR macro. now returns previous mode of the fd and take care of LF in rbuf. * io.c (do_writeconv): set text mode when needed. * io.c (io_read): need to change the mode of the IO to binmode temporally when the length for IO#read, because IO#read with length must behave so. * test/ruby/test_io_m17n.rb (TestIO_M17N#est_{read_with_length, read_with_length_binmode,get[cs]_and_read_with_binmode, read_with_binmode_and_get[cs],read_write_with_binmode}): tests for above changes. all patches are written by Hiroshi Shirosaki. [ruby-core:41496] [Feature #5714] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34043 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Introduce NEED_READCONV and NEED_WRITECONV to replace universal newline ↵luislavena2011-12-041-11/+3
| | | | | | | | | decorator Use CRLF only when required to improve file reading and writing under Windows. Patch by Hiroshi Shirosaki. [ruby-core:40706] [Feature #5562] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_inet_ntop): constified.nobu2011-11-291-7/+8
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/win32.h, win32/win32.c (GetCurrentThreadHandle): removeusa2011-11-281-17/+0
| | | | | | | unused old API. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33881 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/mkexports.rb (Exports#initialize): remove old symbol name.usa2011-11-281-1/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/mkexports.rb (Exports#read_substitution): need to readnobu2011-11-281-6/+11
| | | | | | from subst.h too. [Bug #5675] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/{Makeilfe.sub,win32.c} (FILE_COUNT, FILE_READPTR): move theusa2011-11-282-2/+4
| | | | | | | | | definitions from config.h to win32.c. I dared to have left such macros, for other future compiler support. [ruby-core:41313] [Bug #5674] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33875 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_uchmod): typo. [Bug#5671] [ruby-dev:44898]usa2011-11-281-1/+1
| | | | | | | * test/ruby/test_file.rb (TestFile#test_chmod_m17n): test of above bug. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33873 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (_pioinfo): need to declare _pioinfo() before usingusa2011-11-221-0/+1
| | | | | | | _osfhnd and other macros which uses _pioinfo() internally. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (_pioinfo): make an inline function.nobu2011-11-221-1/+8
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (dupfd): argument of _osfhnd and so on should notnobu2011-11-221-2/+3
| | | | | | | have side effect. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_cloexec_open): set O_NOINHERIT instead of O_CLOEXEC if it isusa2011-11-181-1/+2
| | | | | | | | | | available (for Windows). * win32/win32.c (fcntl): on F_DUPFD, determine the inheritance of the new handle by O_NOINHERIT flag of original fd. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (unixtime_to_filetime): should check the return valueusa2011-11-091-0/+3
| | | | | | | | of localtime(). reported by snowjail at gmail.com. [ruby-dev:44838] [Bug #5596] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/configure.bat: disable delayed expansion of enironment variable.usa2011-11-031-0/+2
| | | | | | | [Bug #5517] [ruby-core:40531] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread.c (rb_fd_rcopy): suppress warnings on mingw32.nobu2011-11-031-4/+4
| | | | | | | * win32/win32.c (overlapped_socket_io, recvmsg, sendmsg, dupfd): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33621 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (setfl): extract from fcntl().usa2011-10-311-17/+78
| | | | | | | | | | | | | | | * win32/win32.c (dupfd): new function to support F_DUPFD. base on a patch written by akr. * win32/win32.c (fcntl): use above functions. * include/ruby/win32.h (F_DUPFD): define. [experimental] * include/ruby/win32.h (F_SETFL): change the value to correspond with other platforms. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33581 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/Makefile.sub (CONFIG_H): have stdint.h if VC2010. [Bug #5243]arton2011-10-291-19/+23
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (socklist_insert, socklist_lookup, socklist_delete):usa2011-10-201-32/+68
| | | | | | | | | | | | | | | | | | new functions to wrap of st_insert(), st_lookup() and st_delete() to socklist. allocating socklist is deferred until it is really needed. * win32/win32.c (exit_handler): delete socklist only if it is initialized. * win32/win32.c (rb_w32_sysinit, StartSockets): refactoring: move initialization of select_mutex to StartSockets(). * win32/win32.c (exit_handler): refactoring: delete select_mutex only if winsock is used. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/Makefile.sub (INSNS): change command line option -Ks to -Kutarui2011-09-061-1/+1
| | | | | | | | | for generate *.inc. because insns.def encoding has been changed SJIS to UTF-8. if $BASERUBY is 1.9, -Ks cause an error. [Feature #5128] (same as r33194) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_fd_copy): cast explicitly to suppress warnings.nobu2011-09-021-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33166 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_select_with_thread): and my typo. we all mustusa2011-08-301-1/+1
| | | | | | | be more careful. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33133 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c, include/ruby/intern.h (rb_w32_fd_copy): implementusa2011-08-301-0/+16
| | | | | | | | | | | | | for rb_thread_select() in thread.c. the use of rb_fd_copy() is introduced in r33117. [Bug #5229] [ruby-core:39102] * thread.c (rb_thread_select): must call rb_fd_init() before using rb_fdset_t. see the implementations of rb_fd_init()s if you want to know the reason. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/mkexports.rb (Exports::Mswin#each_export): exclude Init_nobu2011-08-161-1/+2
| | | | | | | and _threadptr_ functions, as well as mingw. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* more clarified the license.usa2011-08-051-219/+229
| | | | | | | updated version of r32830, but not included include/ruby/win32.h. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32861 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Mark a code is GPL or not.naruse2011-08-031-1/+219
| | | | | | This is made the comparison between current and initial commit. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32830 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Forwardports r32772 and r32773 from branches/ruby_1_9_3 to trunk.yugui2011-07-311-0/+1
| | | | | | | | | | | | | * common.mk (ECHO1): ":" in a make variable replacement cause a syntax error with /usr/ccs/bin/make on Solaris. Uses $(NULLCMD) instead. * configure.in (NULLCMD): new check. * Makefile.in (NULLCMD): Reflects checking in configure. * win32/Makefile.sub (NULLCMD): new assignment. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32774 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (is_socket, is_console): add prototypes to fix compileusa2011-07-151-0/+3
| | | | | | | problem with gcc introduced at r32549. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32557 b2dd03c8-39d4-4d8f-98ff-823fe69b080e