Commit graph

1539 commits

Author SHA1 Message Date
nobu
262b10210f win32.c: fchmod
* win32/win32.c (fchmod): implement by using
  SetFileInformationByHandle.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51704 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-27 04:01:37 +00:00
nobu
a2da0f7e42 win32.c: get attributes and VSN at once
* win32/win32.c (wrename): get attributes and VSN at once for each
  path names.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-27 03:58:10 +00:00
nobu
f64d6357b6 win32.c: open_special
* win32/win32.c (open_special): extract to open existing file with
  backup semantics.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-27 03:57:56 +00:00
nobu
b79d7910f5 win32.c: use backslashes
* win32/win32.c (w32_symlink): must use backslashes instead of
  slashes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-26 17:24:32 +00:00
nobu
8504c817e3 win32.c: ELOOP at wrename
* win32/win32.c (wrename): fail with ELOOP if failed to resolve
  the old path name.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-26 16:22:56 +00:00
nobu
a25de2c6e1 win32.c: fix return value of reparse_symlink
* win32/win32.c (reparse_symlink): return raw Windows error code
  since r51676.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51694 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-26 16:01:48 +00:00
nobu
91f5ee89ef win32.c: unlink symlinkd
* win32/win32.c (wunlink): SYMLINKD has to be removed as a
  directory but not a file.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-26 14:46:29 +00:00
nobu
14ae6199bf win32.c: fix for old platforms
* win32/win32.c (open_dir_handle): fix for old platforms where
  GetFinalPathNameByHandleW is not supported.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-26 14:12:43 +00:00
nobu
8e6259e0d9 win32.c: find by final path
* win32/win32.c (open_dir_handle): find by final path name.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-26 08:11:33 +00:00
nobu
dd67521bd1 win32.c: ELOOP by _wopen
* win32/win32.c (rb_w32_wopen): map the exact error for ELOOP when
  EINVAL is returned by _wopen of vc runtime.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51688 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-26 06:53:32 +00:00
nobu
597da7b2d0 win32.c: fake lchown
* win32/win32.c (lchown, rb_w32_ulchown): fake lchown.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-26 05:21:41 +00:00
nobu
f4b66d24bb win32.c: ELOOP
* win32/win32.c (errmap): map ERROR_CANT_RESOLVE_FILENAME to
  ELOOP.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-26 04:47:37 +00:00
nobu
14aed229ea win32.c: fix offset
* win32/win32.c (opendir_internal): fix offset not to overwrite a
  backslash.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-25 05:11:35 +00:00
nobu
2f6fdd3aeb win32.c: rb_w32_reparse
* win32/win32.c (rb_w32_reparse): read reparse point in a dynamic
  buffer.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-25 05:11:19 +00:00
nobu
2e5c105ff2 win32.c: symlink
* win32/win32.c (w32_symlink): implement symlink().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51674 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-24 21:34:45 +00:00
nobu
457ca4dc29 win32.c: licenses
* win32/win32.c (rb_w32_wreadlink, rb_w32_wopen): add missing
  licenses.  [ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-24 08:55:09 +00:00
nobu
18d8ba2594 Makefile.sub: link libraries for extensions
* win32/Makefile.sub ($(LIBRUBY_SO)): needs additional libraries
  for extension libraries to link statically.
  [ruby-core:70499] [Feature #9018]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-21 10:48:19 +00:00
nobu
82da3da5ac win32.c: support known reparse points only
* dir.c (replace_real_basename), win32/win32.c (opendir_internal):
  check reparse point tags and treat supported tags only as
  symbolic links.  [ruby-core:70454] [Bug #11462]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-19 23:31:19 +00:00
nobu
006fad3fe3 win32.c: support known reparse points only
* win32/win32.c (winnt_lstat): check reparse point tags and treat
  supported tags only as symbolic links.
  [ruby-core:70454] [Bug #11462]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-19 14:48:09 +00:00
nobu
3c402604db win32.c: use ruby_strdup
* win32/win32.c (getifaddrs): use ruby_strdup instead of
  combination ruby_xmalloc, lstrlen and lstrcpy.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51517 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-10 05:19:25 +00:00
nobu
e60d35e302 win32/file.c: use allocv buffer and API
* win32/file.c (rb_freopen): convert path name into allocv buffer
  and get rid of conversion failure in the case non-terminated
  string.  [ruby-core:69780] [Bug #11320]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51469 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-02 05:15:02 +00:00
nobu
1f22556040 internal.h: moved RClass
* internal.h (struct RClass): moved from ruby/ruby.h to hide the
  internals.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-28 01:32:15 +00:00
nobu
9a26485e40 Makefile.sub: fix clean-ext
* win32/Makefile.sub (clean-ext): fix usage of for /R, and adjust
  messages as other platforms.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-27 01:55:58 +00:00
nobu
4c4d0389f5 ruby.h: ASSUME
* include/ruby/ruby.h (ASSUME): hint for optimization, the
  expression is assumed to be true always.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-22 11:27:46 +00:00
nobu
e9cb9d1060 Makefile.sub: UNREACHABLE
* win32/Makefile.sub (config.h): define UNREACHABLE by __assume.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-21 11:29:12 +00:00
nobu
613d97c525 win32.c: symlink constants fallback
* win32/win32.c (rb_w32_wreadlink): define symlink constants for
  VC6.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-21 10:51:56 +00:00
nobu
4ba1038af3 rtname.cmd: extract at once
* win32/rtname.cmd: extract runtime DLL names at once, and other
  refactoring.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-14 08:13:18 +00:00
usa
b3544b2551 * win32/win32.c (waitpid): fixed return value of previous commit. thanks, nobu!
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51203 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-09 06:38:16 +00:00
usa
fcb79d5324 * 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/trunk@51202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-09 06:10:47 +00:00
nobu
3e5988b29d file.c: _wfreopen_s on mingw
* win32/file.c: some mingw compilers need a tweek for the
  declarations of _wfreopen_s.  [Bug #11320]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51117 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-03 05:30:21 +00:00
nobu
24a72a177d file.c: not xfree
* win32/file.c (rb_freopen): should free rb_w32_mbstr_to_wstr
  result instead of xfree.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-30 14:04:00 +00:00
usa
b4718bf4f0 * win32/file.c (rb_freopen): remove debug code.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-30 09:41:40 +00:00
usa
3e01334fae * win32/file.c (rb_freopen): need to terminate by NUL.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51070 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-30 09:38:51 +00:00
nobu
93446fedd3 io.c: reopen OS encoding path
* io.c (rb_io_reopen): freopen(3) with OS encoding path.
  [ruby-core:69780] [Bug #11320]
* win32/file.c (rb_freopen): wrapper of wchar version freopen(3).
  use _wfreopen_s() if available.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51069 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-30 08:28:28 +00:00
nobu
a2cd78a559 win32.c: use numberof
* win32/win32.c (open_dir_handle): use numberof() macro.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-22 00:21:34 +00:00
hsbt
5d6ca9e950 * include/ruby/ruby.h: $SAFE=2 is now obsolete.
* dir.c, ext/fiddle/handle.c, ext/socket/basicsocket.c, file.c
  gc.c, io.c, process.c, safe.c, signal.c, win32/file.c:
  removed code for $SAFE=2
* test/erb/test_erb.rb, test/fiddle/test_handle.rb
  test/ruby/test_env.rb: removed tests for $SAFE=2.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-18 14:21:03 +00:00
nobu
0b3ef899f2 file.c: open without gvl
* file.c (rb_file_load_ok): try opening file without gvl not to
  lock entire process.  [Bug #11060]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50887 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-14 08:20:43 +00:00
naruse
4ff07119e9 * file.c (rb_stat_ino): get inode from the interval of struct st.
* win32/win32.c (stati64_set_inode): get nFilIndexHigh/Low, and set it
  to the interval of struct st as inode.

* win32/win32.c (stati64_set_inode_handle): call stati64_set_inode.

* win32/win32.c (rb_w32_fstati64): call stati64_set_inode_handle.

* win32/win32.c (stati64_handle): call stati64_set_inode.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-13 11:46:38 +00:00
usa
2bc2802096 * file.c (File::SHARE_DELETE): new flag to be able to delete opened file
on Windows.

* include/win32/win32.c (O_SHARE_DELETE): new pseudo file mode flag.

* win32/win32.c (rb_w32_{w,}open): support above flag.  [EXPERIMENTAL]

* NEWS: mention about this feature.
  [Feature #11218] [ruby-dev:49022]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50848 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-12 12:14:06 +00:00
naruse
d4bafbb45f * 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/trunk@50637 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-25 02:35:31 +00:00
nobu
8b5ffc3683 win32.c: suppress a warning
* win32/win32.c (rb_w32_write_console): fix the type to suppress a
  warning of difference in signedness.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50616 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-23 11:07:18 +00:00
usa
7ceb9ecc31 * win32/win32.c (rb_w32_write_console): should return the count of
actually eaten characters, include escape sequences.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-22 18:13:32 +00:00
usa
3f4aab1621 * win32/win32.c (constat_apply): fixed comment. [skip ci]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50609 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-22 17:37:15 +00:00
nobu
c4d216793b intern.h: rb_f_notimplement for ext on Windows
* include/ruby/intern.h (rb_f_notimplement): should not respond to
  not-implemented methods.  as the address inside a DLL and the
  imported address are different on Windows, use an exported
  variable to share the same address.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50527 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-18 06:31:42 +00:00
usa
4eb4f1fd7e * win32/win32.c (rb_w32_accept): simplified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50505 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-16 11:00:07 +00:00
nobu
75319221a2 dln.c: fix EXTERNAL_PREFIX
* configure.in (EXPORT_PREFIX): revert r50410.

* dln.c (EXTERNAL_PREFIX): define by predefined macros.
  configured EXPORT_PREFIX is different thing.

* win32/Makefile.sub: r50414-50415.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-01 07:27:03 +00:00
nobu
e15f8b2273 Makefile.sub: EXPORT_PREFIX
* win32/Makefile.sub (config.h): fix typo.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-01 06:57:17 +00:00
nobu
3f5daebcb8 Makefile.sub: EXPORT_PREFIX
* win32/Makefile.sub (config.h): add EXPORT_PREFIX for r50410.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-01 06:46:59 +00:00
usa
347d44ca41 * win32/win32.c: restore a license comment accidentally removed at r50381.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-24 14:48:24 +00:00
nobu
d6d393d268 win32.c: fix for mingw
* win32/win32.c (_pioinfo): necessary on mingw too.

* win32/win32.c (init_stdhandle): remove stale function for
  Borland C.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-24 04:16:13 +00:00