Граф коммитов

1142 Коммитов

Автор SHA1 Сообщение Дата
nobu 88270e7773 win32.c: suppress warning
* 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-04 14:41:38 +00:00
usa 736f97b278 * win32/win32.c (rb_w32_select_with_thread): rounding up the fraction of
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 02:28:14 +00:00
usa 61ce3f5744 * win32/win32.c (do_select): constify timeout.
* 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-09-03 02:02:05 +00:00
nobu ec02633065 Makefile.sub: SIZEOF_CLOCK_T
* win32/Makefile.sub (config.h): now SIZEOF_CLOCK_T is needed for
  unsigned_clock_t.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-23 02:07:20 +00:00
usa 5a096eddb3 * include/ruby/win32.h (CLOCK_MONOTONIC): typo.
* 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-19 04:29:41 +00:00
usa f653019d55 * win32/win32.c (clock_gettime): improve precision when freq is less
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 09:41:40 +00:00
usa 866cee6162 * include/ruby/win32.h, win32/Makefile.sub, win32/win32.c
(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-15 05:32:02 +00:00
nobu b0391268a2 win32.c: fix conversion
* 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-06 08:42:25 +00:00
nobu 8ea8dfd88c win32.c: conversion from WCHAR
* 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-06 08:02:20 +00:00
nobu 42bd951087 win32.c: supprss warning
* 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-06 05:12:48 +00:00
nobu 8d564597fa win32.c: conversion to WCHAR
* 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-05 08:38:39 +00:00
nobu 0f6cd1bb10 win32.c: fix wrong trimming
* 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-08-05 08:33:22 +00:00
nobu da8406f0ac win32.c: use enum
* 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-28 21:54:34 +00:00
nobu 56150eba92 win32.c: fix pipe name formatting
* 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-28 01:54:30 +00:00
nobu 48443714b7 win32/file.c: suppress warning
* win32/file.c (convert_mb_to_wchar): omit never-true NULL check to
  suppress maybe-uninitialized warning in rb_file_load_ok().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42191 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-26 08:50:33 +00:00
nobu c4c78f758f win32/file.c: fix target encoding
* win32/file.c (fix_string_encoding): fix target encoding.  the
  parameter `encoding' is not the target encoding but the original
  encoding.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-26 08:49:31 +00:00
nobu e9b8488fe5 win32/file.c: adjust indent
* win32/file.c (get_user_from_path): adjust indent.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-26 06:43:33 +00:00
nobu 8948280c67 load.c: search in OS path encoding
* load.c (rb_load_internal): use rb_load_file_str() to keep path
  encoding.
* load.c (rb_require_safe): search in OS path encoding for Windows.
* ruby.c (rb_load_file_str): load file with keeping path encoding.
* win32/file.c (rb_file_load_ok): use WCHAR type API assuming incoming
  path is encoded in UTF-8.  [ruby-core:56136] [Bug #8676]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-26 04:04:23 +00:00
nobu 320a0dd218 win32/file.c: refine fix_string_encoding
* win32/file.c (fix_string_encoding): simplify with rb_str_conv_enc().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-26 04:01:07 +00:00
nobu 45fbfd0a81 win32/file.c: refine convert_mb_to_wchar
* win32/file.c (convert_mb_to_wchar): use bare pointer instead of
  VALUE, and remove useless argument.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-26 04:00:28 +00:00
nobu 3c9e6f1e62 win32.c: fix infinite recursion
* 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-11 12:30:24 +00:00
nobu f9e1c078ba win32.c: suppress warnings
* 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-08 14:23:24 +00:00
nobu 3d7fa44b05 win32.c: for strict ANSI
* 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-08 14:13:13 +00:00
nobu 444f08f661 win32: for strict ANSI
* 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-08 14:12:26 +00:00
usa 5716c5ef2c * win32/win32.c (w32_spawn): r41710 made that if the command starts with
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-07-05 02:12:55 +00:00
nobu 5197f451de win32.c: use backslash
* 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-30 01:59:25 +00:00
nobu 8d2ce0fb1f win32.c: codepage awareness
* 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-30 01:59:16 +00:00
nobu b64f79c838 win32.c: rb_w32_udln_find_exe_r,
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-30 01:59:12 +00:00
nobu dc0b06aa38 win32.c: UTF-8 spawn
* 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-30 01:59:07 +00:00
nobu 64d39448d3 win32.c: UTF-8 aspawn
* 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-30 01:59:03 +00:00
nobu a65261c2c1 win32.c: w32_getenv
* 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-30 01:58:59 +00:00
nobu cc3ec30ac9 win32.c: w32_stati64
* 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-30 01:58:55 +00:00
nobu 2f787c4eed * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-23 17:46:05 +00:00
zzak 94a324aa6b * win32/README.win32: grammar typo by @blankenshipz [Fix GH-334]
https://github.com/ruby/ruby/pull/334


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-23 17:43:10 +00:00
nobu 3cef99564b Makefile.sub: timestamp
* win32/Makefile.sub (CONFIG_H): touch timestamp target file.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41514 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-21 00:52:33 +00:00
nobu 206b28ca15 win32.c: GetLastError once
* 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-19 18:08:30 +00:00
nobu 7ce9f9c25a win32.c: no error after retry
* 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-19 18:08:28 +00:00
nobu 4c25e2fb8b win32.c: wait until exit
* 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-19 17:44:47 +00:00
naruse 4ff3b7cf05 Revert r41179 "partially revert r41163 because r41173 didn't fix failure"
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-08 16:49:49 +00:00
naruse e431c67ea7 partially revert r41163 because r41173 didn't fix failure
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-08 13:00:42 +00:00
naruse 1ba82b765c * win32/Makefile.sub: r41163 changed win32/win32.c and configure.in
but it didn't treat about mswin32/mswin64, so fix it.
  NOTE: this needs a review by usa whether additional condition is
  required or not.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-08 10:26:36 +00:00
nobu 5713c59531 win32.c: NET_LUID
* 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-08 05:17:04 +00:00
naruse 6e4cfd9475 * win32/win32.c (NET_LUID): define it on MinGW32.
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
2013-06-05 15:32:28 +00:00
nobu a815b56d84 win32.c: check error of SetFilePointer
* 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
2013-05-22 06:19:03 +00:00
nobu 38302ca719 win32.c: extract setup_overlapped and finish_overlapped
* win32/win32.c (setup_overlapped, finish_overlapped): extract from
  rb_w32_read() and rb_w32_write().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40887 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-22 06:17:33 +00:00
ktsj edb98f8b91 fix typos. Patch by k_takata.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-19 03:10:21 +00:00
nobu 67f562a417 Makefile.in: loadpath from loadpath.c
* Makefile.in (loadpath): $LOAD_PATH in miniruby is empty by default
  now.

* win32/Makefile.sub (loadpath): separate for quirky cmd.exe syntax.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-16 07:54:04 +00:00
nobu 87e352c5a3 win32/Makefile.sub: fix verconf
* win32/Makefile.sub (verconf.in): no longer used.
* win32/Makefile.sub (config.status): fix typo.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-16 07:20:00 +00:00
nobu fa827c8b5a common.mk, Makefile.sub: fix build failure on mswin
* common.mk (verconf.h): $< cannot be used in explicit rules with
  nmake.
* win32/Makefile.sub (CONFIG_H): create verconf.in instead of
  verconf.h.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40770 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-15 16:44:55 +00:00
nobu cd9165458b iphlpapi is unavailable with older VC
* 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
2013-05-14 08:24:58 +00:00
usa 77753bd9ec * win32/win32.c (NET_LUID): mingw may have NET_LUID and not defined
_IFDEF_.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-14 03:22:06 +00:00
usa dd4687313c * win32/win32.c (getipaddrs): use alternamtive interface name if
available, because if_nametoindex() requires them.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40694 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-13 12:21:53 +00:00
usa cb3fcdcdc3 * win32/win32.c, include/ruby/win32.h (getipaddrs): [experimental]
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
2013-05-13 11:29:32 +00:00
ko1 83aba04862 * include/ruby/ruby.h: constify RBasic::klass and add
RBASIC_CLASS(obj) macro which returns a class of `obj'.
  This change is a part of RGENGC branch [ruby-trunk - Feature #8339].
* object.c: add new function rb_obj_reveal().
  This function reveal interal (hidden) object by rb_obj_hide().
  Note that do not change class before and after hiding.
  Only permitted example is:
  klass = RBASIC_CLASS(obj);
  rb_obj_hide(obj);
  ....
  rb_obj_reveal(obj, klass);
  TODO: API design. rb_obj_reveal() should be replaced with others.
  TODO: modify constified variables using cast may be harmful for
  compiler's analysis and optimizaton.
  Any idea to prohibt inserting RBasic::klass directly?
  If rename RBasic::klass and force to use RBASIC_CLASS(obj),
  then all codes such as `RBASIC(obj)->klass' will be
  compilation error. Is it acceptable? (We have similar
  experience at Ruby 1.9,
  for example "RARRAY(ary)->ptr" to "RARRAY_PTR(ary)".
* internal.h: add some macros.
* RBASIC_CLEAR_CLASS(obj) clear RBasic::klass to make it internal
  object.
* RBASIC_SET_CLASS(obj, cls) set RBasic::klass.
* RBASIC_SET_CLASS_RAW(obj, cls) same as RBASIC_SET_CLASS
  without write barrier (planned).
* RCLASS_SET_SUPER(a, b) set super class of a.
* array.c, class.c, compile.c, encoding.c, enum.c, error.c, eval.c,
  file.c, gc.c, hash.c, io.c, iseq.c, marshal.c, object.c,
  parse.y, proc.c, process.c, random.c, ruby.c, sprintf.c,
  string.c, thread.c, transcode.c, vm.c, vm_eval.c, win32/file.c:
  Use above macros and functions to access RBasic::klass.
* ext/coverage/coverage.c, ext/readline/readline.c,
  ext/socket/ancdata.c, ext/socket/init.c,
* ext/zlib/zlib.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-13 10:49:11 +00:00
kosaki 93d061a8fd * process.c: move '#define SPAWNV 1' to win32/Makefile.sub.
* win32/Makefile.sub: see above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-12 08:42:19 +00:00
kosaki e79f790798 * configure.in: removes AC_CHECK_FUNC(fseeko, fseeko64, ftello,
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
2013-05-12 08:41:12 +00:00
nobu 6d32a4e32b win32.c: fix build error
* win32/win32.c (poll_child_status): fix build error on older mingw.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-03 04:22:24 +00:00
nobu c61af20411 win32.c: optimization
* win32/win32.c (poll_child_status): trivial optimization.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-03 04:22:20 +00:00
usa 30afde959b * win32/win32.c (poll_child_status): constified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-02 03:35:37 +00:00
usa 50cc7057af * test/ruby/test_process.rb (TestProcess#test_no_curdir): maybe now
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
2013-05-02 03:34:15 +00:00
usa 25acda257c * win32/win32.c (poll_child_status): [experimental] set the cause of
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
2013-05-02 02:34:11 +00:00
nobu 93f8341792 configure.bat: remove stale message
* win32/configure.bat (help): remove stale message.  win95 support had
  been thrown away long ago.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-01 03:03:58 +00:00
nobu 111f4a8fe5 win32.c: pass through unknown sequence
* 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
2013-04-03 08:11:24 +00:00
nobu ff9c262f6c win32.c: missing break
* win32/win32.c (constat_attr): fix missing break.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40069 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-02 14:58:06 +00:00
nobu 8825a084eb win32/configure.bat: option arguments
* win32/configure.bat: try to fix option arguments split by commas and
  equals here.  this batch file no longer run with old command.com.
* tool/mkconfig.rb: no hacks for cmd.exe.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40019 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-31 06:40:37 +00:00
usa b7d708c3f1 * win32/file.c (code_page): use cp1252 instead of cp20127 as US-ASCII.
fix [ruby-core:53079] [Bug #7996]
  reported and patched by mmeltner (Michael Meltner).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-29 19:00:05 +00:00
usa 35cc29c872 * win32/win32.c (wrename): use MoveFileExW instead of MoveFileW,
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
2013-03-29 18:52:51 +00:00
nobu 2418b20897 Makefile.sub: configurations
* win32/Makefile.sub (prog): needs to update configurations.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39999 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-29 12:02:16 +00:00
nobu 2f1e7f6a71 Makefile.sub: SIGNEDNESS_OF_TIME_T
* win32/Makefile.sub (config.h): add SIGNEDNESS_OF_TIME_T for
  TIMET_MAX and TIMET_MIN.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-27 07:40:43 +00:00
nobu de9911f597 Makefile.sub: fix mswin build
* win32/Makefile.sub (config.h): fix mswin build, also VC has time.h
  and struct timeval.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-16 14:48:33 +00:00
nobu 2642e0203a Makefile.sub: __FUNCTION__
* win32/Makefile.sub (config.h): __FUNCTION__ is available at least
  VC9.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39756 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-14 16:21:54 +00:00
luislavena 2caf0bc820 Refactor rb_file_expand_path_internal for dir_string corner cases
* win32/file.c (get_user_from_path):  add internal function that retrieves
  username from supplied path (refactored).
* win32/file.c (rb_file_expand_path_internal):  refactor expansion of user
  home to use get_user_from_path and cover dir_string corner cases.
  [ruby-core:53168] [Bug #8034]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39751 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-14 03:56:09 +00:00
luislavena ee90455a44 Expand home directory when used in dir_string
* win32/file.c (rb_file_expand_path_internal):  Expand home directory when
  used as second parameter (dir_string).  [ruby-core:53168] [Bug #8034]
* test/ruby/test_file_exhaustive.rb: add test to verify.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-10 14:39:09 +00:00
nobu dbb6526e29 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39580 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-04 08:05:13 +00:00
nobu 773248551b mswin: static-linked-ext
* enc/depend (CPPFLAGS), lib/mkmf.rb (MakeMakefile#create_makefile):
  define RUBY_EXPORT for static-linked-ext mswin.  [Bug #7960]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-02 15:04:23 +00:00
nobu d613f283be Makefile.sub: MAKEDIRS
* win32/Makefile.sub (config.status): set MAKEDIRS to use
  makedirs.bat.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-02 13:50:08 +00:00
nobu 2250b195a9 Makefile.sub: static-linked-ext
* win32/Makefile.sub (EXTOBJS, EXTOBJS, config.h): definitions for
  static-linked-ext.  [Bug #7960]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-02 13:49:49 +00:00
nobu 731acc0950 win32.c: fix type
* win32/win32.c (constat_attr): fix type of attributes.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39535 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-28 04:30:50 +00:00
nobu 8ac0f28399 win32.c: suppress warning
* 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
2013-02-28 04:30:26 +00:00
nobu 46e0ce84d5 win32.c: suppress warnings
* 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
2013-02-27 04:47:12 +00:00
nobu 140934c661 win32.c: style
* win32/win32.c (rb_w32_fd_is_text): adjust style.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39253 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-15 09:31:16 +00:00
nobu 507477af54 Makefile.sub: sitearch
* win32/Makefile.sub (config.status): site and vendor directories
  should use sitearch, not arch.  [ruby-dev:46964] [Bug #7823]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39201 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-11 04:15:14 +00:00
nobu 41dbe74b94 common.mk: no expansion
* common.mk (showconfig): get rid of variable expansion by shell.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39177 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-09 15:16:15 +00:00
usa 2314a8fc4f * win32/Makefile.sub (config.status): added variables which were
missing at r39130.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39132 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-07 11:55:14 +00:00
nobu c206b802db Makefile.sub: rubyarchdir in config.status
* win32/Makefile.sub (config.status): now rbconfig.rb needs
  rubyarchdir.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39130 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-07 07:21:33 +00:00
nobu 2d9c37a895 win32.c: missing initialization
* win32/win32.c (rb_w32_spawn, rb_w32_aspawn_flags): fix missing
  initialization.  pointed out by phasis68 (Heesob Park) at
  [ruby-core:51579].  [Bug #7721]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-23 07:29:15 +00:00
nobu fa30ebc3c7 win32.c: acp_to_wstr results check
* 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
2013-01-23 03:28:25 +00:00
nobu 8d816aef2e setup.mak: -runtime-
* win32/setup.mak (-runtime-): see msvcrt from link header on mswin
  instead of running testing executable file, for cross compiling.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38791 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-12 07:12:49 +00:00
nobu 51914fcce6 setup.mak: -osname-
* win32/setup.mak (-osname-): separate from -runtime- and just
  compile.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-11 10:21:52 +00:00
nobu 101d458fdf win32/rm.bat: remove each files
* win32/rm.bat: removing by wildcard errs on network file system, so
  remove each files.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38782 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-11 10:21:49 +00:00
nobu 2b131e1eb6 win32/setup.mak: remove each files
* win32/setup.mak (-runtime-): removing by wildcard errs on network
  file system, so remove each files.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38773 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-11 02:02:18 +00:00
nobu 1a920c7f9b Makefile.in: continue if Makefile unchanged
* Makefile.in, win32/Makefile.sub ($(MKFILES)): continue if Makefile
  unchanged.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-10 08:45:42 +00:00
nobu b7b183f682 win32/rm.bat: fix infinite loop
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38763 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-10 08:44:19 +00:00
usa 6e4b187bfe * Makefile.in, common.mk (fake, yes-fake, no-make): these dependecies
are not platform dependent.

* win32/Makefile.sub ($(arch)-fake.rb): workaround.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-07 06:23:15 +00:00
yugui f849917a70 * win32/Makefie.sub: Fix build with VC.
Patch by Charlie Savage. Fixes [ruby-core:51261]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-06 10:08:22 +00:00
yugui 275a9dcb8c * Makefile.in (RBCONFIG): Moved from common.mk in order to use the
variable in Makefile.in.

* win32/Makefie.sub (RBCONFIG): Ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38694 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-04 11:19:19 +00:00
usa 9848f0d0ca * win32/{dir.h,win32.c} (rb_w32_readdir): removed old rb_w32_readdir()
and renamed from rb_w32_readdir_with_enc().
  [ruby-core:24864] [Feature #1927]

* dir.c (READDIR): follow above change.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-21 13:06:17 +00:00
nobu a0f7f36a5a mkmf.rb: each_compile_rules
* lib/mkmf.rb (MakeMakefile#each_compile_rules): splat $(*VPATH*) for
  each VPATH elements.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-28 12:19:49 +00:00
usa 79d42a8831 * README: mention about README.win32.
* win32/README.win32: small changes.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37869 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-26 16:01:51 +00:00
nobu 6a858bc109 Makefile.sub: fix r37821
* win32/Makefile.sub (DLNOBJ): missing in r37821.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-26 03:11:12 +00:00
usa f317a1562e * common.mk, win32/Makefile.sub (probes.dmyh): now be made in current
(=build) directory if build from the repository.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37806 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-22 12:49:59 +00:00
usa 8e8d7bb7fc * common.mk, Makefile.in, win32/Makefile.sub (.dmyh.h): nmake merges
explicit rules for same target, but not merges exlicit rules and
  implicit rules -- always explict rules win.  So, need to add an
  explist rule for probes.h.
  reported by Heesob Park at [Bug #7421] [ruby-core:49839]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-22 09:16:48 +00:00
usa 0c3d96756a * win32/win32.c (rb_w32_read): Windows 8 fixed one of a bug of console
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
2012-11-20 03:07:23 +00:00
nobu a824a6187d common.mk: no purelib
* common.mk (RUBYLIB): purelib option in runruby.rb is deprecated
  since r28841, so set to an empty list to get rid of a bogus path in
  child processes, which caused an insecure operation exception in
  test/ruby/test_encoding.rb:test_unsafe.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37719 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-19 07:08:13 +00:00
usa 3918bbfac4 * Makefile.in, common.mk (probes.h): moved to common.mk and changed to
see $(srcdir).

* common.mk (probes.dmyh): now created it on $(srcdir) always.

* win32/Makefile.sub (.SUFFIXES): removed common suffix.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-19 05:56:38 +00:00
luislavena 55915036a6 Swap logic around wildcard character detection
* win32/file.c (replace_to_long_name): correct logic around wildcard
  characters detection and ensure wide-chars are used as pattern.
  [ruby-core:49451] [Bug #7374]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37706 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-17 17:53:21 +00:00
luislavena 6285597653 Skip path expansion for all wildcard characters
* win32/file.c (replace_to_long_name): skip expansion for all wildcard
  characters.
  [ruby-core:49451] [Bug #7374]

* test/ruby/test_file_exhaustive.rb: add more assertions to test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37700 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-17 12:46:17 +00:00
luislavena 25058a58a2 skip long name conversion if last character is a wildcard one
* win32/file.c (replace_to_long_name): skip automatic path expansion
  when wildcard character is used.  [ruby-core:49451] [Bug #7374]

* test/ruby/test_file_exhaustive.rb: add a test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-16 22:43:22 +00:00
nobu eb40d20e30 probes.h: select by suffix rules
* Makefile.in, common.mk, configure.in, win32/Makefile.sub (probes.h):
  select generating with dtrace or copying dummy file by suffix rules.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-16 15:22:37 +00:00
nobu 620a2b6c65 Makefile.in: probes.h
* Makefile.in, win32/Makefile.sub (probes.h): fix copying dmyprobes.h
  path when outplace-build.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37674 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-16 06:42:38 +00:00
naruse db31b3dad5 * common.mk (dmyprobes.h): always create for make dist.
* Makefile.in (probes.h): create or copy dmyprobes.h

* win32/Makefile.sub: only do copy dmyprobes.h.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-13 07:49:09 +00:00
usa aec93c2283 * common.mk Makefile.in win32/Makefile.sub (.d.h): it's not common.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-13 06:35:30 +00:00
usa 8e72bb717a * win32/README.win32: added mention about build directory. currently
we can not build ruby in win32 directory.  this problem is reported
  by Masahiro Kitajima <katonbo@katontech.com>.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37635 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-13 03:32:06 +00:00
usa 198b740019 * win32/mkexports.rb (each_export): skip garbages generated by VS2012's
nmake.
  reported and patched by Yoshida Masato at [Bug #7333] [ruby-dev:46484]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37625 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-12 05:29:52 +00:00
usa acd82f6e24 * win32/win32.c (has_redirection): should use shell (cmd.exe) when
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
2012-10-25 08:50:55 +00:00
nari 8d53a08ed8 * gc.c: Use the non-recursive marking instead of recursion. The
recursion marking of CRuby needs checking stack overflow and the
  fail-safe system, but these systems not good at partial points,
  for example, marking deep tree structures. [ruby-dev:46184]
  [Feature #7095]

* configure.in (GC_MARK_STACKFRAME_WORD): removed. It's used by
  checking stack overflow of marking.

* win32/Makefile.sub (GC_MARK_STACKFRAME_WORD): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-03 12:30:21 +00:00
nobu ad2e34c670 win32/file.c: simplify
* win32/file.c (rb_file_expand_path_internal): simplify a condition.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36908 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-09-05 05:29:44 +00:00
nobu f961b80a78 win32/file.c: prototype and cosmetic changes
* win32/file.c (home_dir, system_code_page): use prototype, adjust
  indent, and fix typo.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36907 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-09-05 05:29:41 +00:00
usa 234378d8bb * win32/Makefile.sub (Makefile): make to depend on common.mk, to
stop and force to re-run make process when common.mk is changed.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36837 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-28 00:27:21 +00:00
luislavena 3d8d595932 Remove incorrectly committed timestamp file
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-24 03:48:11 +00:00
luislavena 86df08dac6 Improve require/File.expand_path performance on Windows
* configure.in (mingw): add shlwapi to the list of dependency
  libs for Windows.
* win32/Makefile.sub (EXTSOLIBS): ditto.

* internal.h: declare internal functions rb_w32_init_file,
  rb_file_expand_path_internal and rb_file_expand_path_fast.

* file.c (Init_File): invoke Windows initialization rb_w32_init_file

* win32/file.c (rb_file_load_path_internal): new function.
  Windows-specific implementation that replaces file_expand_path.
  [Bug #6836][ruby-core:46996]

* win32/file.c (rb_w32_init_file): new function. Initialize codepage
  cache for faster conversion encodings lookup.

* file.c (file_expand_path): rename to rb_file_expand_path_internal.
  Conditionally exclude from Windows.

* file.c (rb_file_expand_path_fast): new function. delegates to
  rb_file_expand_path_internal without performing a hit to the
  filesystem.

* file.c (file_expand_path_1): use rb_file_expand_path_internal without
  path expansion (used by require).
* file.c (rb_find_file_ext_safe): ditto.
* file.c (rb_find_file_safe): ditto.

* load.c (rb_get_expanded_load_path): use rb_file_expand_path_fast.
* load.c (rb_feature_provided): ditto.

* file.c (rb_file_expand_path): use rb_file_expand_path_internal with
  path expansion.
* file.c (rb_file_absolute_path): ditto.

* test/ruby/test_file_exhaustive.rb: new tests to exercise
  rb_file_expand_path_internal implementation and compliance with
  existing behaviors.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-24 03:44:56 +00:00
usa 44a7c87076 * win32/Makefile.sub: refactoring. remove unused rules, and update
some rules which are not used usually to fit current macros.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-23 10:18:23 +00:00
usa 742a0d164e * win32/configure.bat: added help message of --with(out)?-ext.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36794 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-23 03:33:53 +00:00
usa 7370aa3126 * win32/configure.bat: support --with(out)?-ext(ensions) options.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-23 03:30:58 +00:00
usa 68c09dec0e * win32/Makefile.sub (scriptbin.mk): no need to include twice.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-21 05:29:42 +00:00
usa cb4e2b590e * win32/win32.c (check_valid_dir): reject "..." as directory name.
[Bug #6851]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-14 07:05:12 +00:00
shirosaki dcd7f09be2 Optimize winnt_stat
* 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
2012-08-09 11:34:48 +00:00
nobu f9368f65b1 win32.c: rb_w32_inet_ntop should be const
* win32/win32.c (rb_w32_inet_ntop): type should be const.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-29 14:56:52 +00:00
shirosaki 21aad667a5 win32/win32.c: suppress warning redeclared
* 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
2012-07-28 21:41:37 +00:00
shirosaki ce2a1e109c win32/win32.c: fix localtime_r() on x64-mingw
* 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
2012-07-28 07:36:51 +00:00
usa 3f539a5b59 * win32/mkexports.rb: should not export DllMain().
reported by luis at [ruby-core:46743] [Bug #6790], solved by
  Heesob Park, and confirmed by nobu.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-27 03:14:49 +00:00
usa 8122db83ce * win32/win32.c (rb_w32_socket, rb_w32_socketpair): remember the family
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
2012-07-24 06:05:29 +00:00
nobu fbee46fe66 enc/Makefile.in: TARGET_NAME TARGET_ENTRY
* enc/Makefile.in (TARGET_NAME, TARGET_ENTRY): needed for EXTDLDFLAGS
  on some platforms.  [ruby-core:46600] [Bug #6768]
* enc/depend: no longer needs tweaking DLDFLAGS for TARGET names.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36502 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-23 14:58:42 +00:00
usa 2e5dcb53ce * win32/win32.c (win95_stat): remove unnecessary macro.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-09 08:38:19 +00:00
usa 9d2711691e * win32/configure.bat, win32/setup.mak, win32/Makefile.sub: omit Win9x
support.  remove --enable/disable-win95 option.

* include/ruby/win32.h, file.c, win32/win32.c: ditto.

* win32/README.win32: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-09 08:25:06 +00:00
nobu 3fceaf10ab make runnable
* common.mk (runnable): make symbolic links to run in build directory.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-03 02:16:08 +00:00
usa f047b1f0dc * win32/win32.c, include/ruby/win32.h (rb_w32_wrap_io_handle): new API.
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
2012-06-06 04:29:38 +00:00
usa 4c3e402cda * win32/win32.c (rb_w32_close): of course, console handle is not socket.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35936 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-06 04:18:53 +00:00
nobu 07e222d720 no windows dialog
* 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
2012-06-04 12:54:00 +00:00
nobu 82aa43407c win32: VT100 escape
* win32/win32.c (constat_apply): apply VT100 functions.
  [ruby-core:44958] [Feature #6418]
* win32/win32.c (constat_parse): parse some VT100 escape sequence.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35907 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 06:39:40 +00:00
usa 87c8c5edf4 * win32/win32.c (finish_overlapped_socket, overlapped_socket_io):
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
2012-05-23 01:21:33 +00:00
nobu a906a9d9be Bug #6462: EXTSOLIBS
* Makefile.in (LIBRUBY_SO): link EXTSOLIBS too.
* ext/extmk.rb (mf.macro): use EXTSOLIBS instead of SOLIBS to get rid
  of discard libraries needed by default.  [Bug #6462]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35722 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-20 03:25:14 +00:00
yugui 76bc2d1ed7 Imports Ruby's port to NativeClient (a.k.a NaCl).
Patch by Google Inc. [ruby-core:45073].

* configure.in (RUBY_NACL): New M4 func to configure variables for
  NaCl.
  (RUBY_NACL_CHECK_PEPPER_TYPES): New M4 func to check the old names
  of Pepper interface types.
  (BTESTRUBY): New variable to specify which ruby should be run on
  "make btest". NaCl can run the built binary by sel_ldr, but it need
  rbconfig.rb. So this variable is distinguished from $MINIRUBY.
  
* thread_pthread.c: Disabled some features on NaCl.

* io.c: ditto.

* process.c: ditto.

* signal.c: ditto.

* file.c: ditto.

* missing/flock.c: ditto.

* nacl/pepper_main.c: An example implementation of Pepper application
  that embeds Ruby.

* nacl/example.html: An example of web page that uses the Pepper
  application.

* nacl/nacl-config.rb: Detects variants of NaCl SDK.

* nacl/GNUmakefile.in: Makefile template for NaCl specific build
  process.

* nacl/package.rb: script for packaging a NaCl-Ruby embedding
  application. 

* nacl/reate_nmf.rb: Wrapper script of create_nmf.py

* dln.c (dln_load): Added a hack to call on NaCl.

* util.c (ruby_getcwd): Path to the current directort is not available
  on NaCl.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-17 02:48:59 +00:00
shirosaki 5ccee663e9 * include/ruby/win32.h (FD_SET): change function to macro.
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
2012-05-08 12:47:25 +00:00
nobu c327407bdc distclean verconf.h
* Makefile.in, win32/Makefile.sub (distclean-local): another generated
  header.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-03 16:57:51 +00:00
usa 24f00be686 * win32/win32.c (waitpid): need to check the return value of
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
2012-04-24 08:05:25 +00:00
usa ee8c98e5cc * win32/win32.c (szInternalCmds, internal_match, internal_cmd_match):
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
2012-04-23 11:47:02 +00:00
usa ab649ef3c4 * win32/file.c (INVALID_FILE_ATTRIBUTES): commit miss of r35384.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-04-18 05:50:45 +00:00
nobu f2979f3101 * win32/win32.c (gmtime_r, localtime_r): POSIX compliant reentrant
versions.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-04-16 07:22:43 +00:00
nobu 72fffe5cee * configure.in (RUBY_MSVCRT_VERSION): define on mingw too.
* 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
2012-04-16 07:08:27 +00:00