* win32/win32.c (w32_wopendir): remove filename parameter, and
check the drive letter in wpath instead. rename from
opendir_internal.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (rb_w32_read_reparse_point): name the prefix
length to be dropped.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53706 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (opendir_internal): defer counting the length just
before the loop where it is used.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/file.c (rb_readlink): drop garbage after the substitute
name, as rb_w32_read_reparse_point returns the expected buffer
size but "\??\" prefix is dropped from the result.
* win32/win32.c (w32_readlink): ditto, including NUL-terminator.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
mount point should be treated as directory, not symlink.
[ruby-core:72483] [Bug #11874]
* win32/win32.c (rb_w32_read_reparse_point): check the reparse point is
a volume mount point or not.
* win32/file.c (rb_readlink): follow above change (but this pass won't
be used).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53688 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (dupfd): promote argument type for old VC.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52829 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
because POSIX platforms just do so. fixes test errors revealed by
r52647.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (rb_w32_open): should not fallback to ANSI-version
in MSVCRT, fallback to WCHAR-version in rb_w32_wopen instead.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51917 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (rb_w32_sysinit, rb_w32_readdir): compare by
encoding index to get rid of encoding initialization before VM
object space allocation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (rb_w32_dup2): should return the new fd on
success, while msvcrt returns 0 wrongly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51841 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (insert): should use plain strdup() instead of
ruby_strdup() at startup time, and plain free()ed in cmdglob().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (get_attr_vsn): assume GetLastError() never return
0, to suppress a maybe-uninitialized warning in wrename().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51773 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/file.c (rb_readlink): use ALLOCV to get rid potential
memory leak by NoMemoryError in ALLOCV.
* win32/win32.c (w32_readlink): allocate WCHAR path name and
reparse buffer together.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (wrename): fix type of attributes to suppress
warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51716 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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