* 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/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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* win32/rtname.cmd: support vcruntime140.dll.
* time.c (localtime_with_gmtoff_zone): MSVC14 doesn't have tzname and
daylight but have _tzname and _daylight.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (try_compile): pass the given werror flag to try_do
to check if stderr is empty.
* lib/mkmf.rb (try_cflags, try_ldflags): default werror to true.
* win32/Makefile.sub (WERRORFLAG): remove useless option. VC does
not make warnings of unknown command option an error.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/stub.c (stub_sysinit): use argv[0] unchanged and just
insert full path name.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (fileattr_to_unixmode, winnt_lstat): deal with
symbolic link than directory, and set executable bits.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50120 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/file.c (rb_readlink): include the terminator, since
rb_w32_mbstr_to_wstr appends a terminator only when the length
is not given explicitly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/file.c (rb_readlink): move from file.c for better buffer
allocation and the result encoding.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (winnt_stat): stat with following symbolic links.
* win32/win32.c (winnt_lstat): rename old winnt_stat, which does
not follow symbolic links.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50060 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/file.c (rb_file_expand_path_internal): check arguments
lengths and should not loose preci quielty.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50054 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (path_drive): extract from winnt_stat, return the
drive number in the path, or the current drive.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50052 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (fileattr_to_unixmode): do not set S_IWGRP and
S_IWOTH reset in wstati64.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* dir.c (glob_helper): use d_type to reduce lstat system calls.
* win32/dir.h (struct direct): add d_type instead of d_isdir and
d_isrep. SYMLINKD is unreliable, since the target can be
replaced after a link was created.
* win32/win32.c (readdir_internal): set d_type.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* dir.c (glob_helper): match patterns against legacy short names
too, not only ordinary names. [ruby-core:67954] [Bug #10819]
* win32/dir.h (struct direct): add short name members.
* win32/win32.c (opendir_internal, readdir_internal): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (MINIOBJS): no longer need dmyenc.o.
* miniinit.c (Init_enc): declare minimum built-in encodings so
that these Encoding constants will be available in miniruby.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49891 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/Makefile.sub (config.status): now RUBY_PROGRAM_VERSION is
necessary for fake.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (fake.rb): generate from same template on all
platforms including win32.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/Makefile.sub (ruby_pc): without fake.rb.
* tool/expand-config.rb: no longer depends on fake.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49883 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/mkconfig.rb: use arguments instead of built-in constants
to work without fake.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49882 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (szInternalCmds): reduce memory size, from 506 on
32bit and 702 on 64bit to 490 bytes, and remove relocations.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.in (LIBRUBY_SO): make symbols for static IDs which
begin with ruby_static_id_ local too.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (different_device_p): compare by volume serial
numbers, not by path names.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/file.c (rb_file_expand_path_internal): neither the drive
of base directory nor the current drive are involved in the
result if different than the drive of path.
[ruby-core:68130] [Bug #10858]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (wrename): return EXDEV if moving a directory to
another drive, since MoveFileExW does not set proper error code.
[ruby-core:68162] [Bug #10865]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/file.c (rb_file_expand_path_internal): do not make invalid
(or ADS) path if the path has a drive letter, the result also
should have be under it. [ruby-core:68130] [Bug #10858]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49618 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/rmdirs.bat: remove last "." since rmdir fails to remove it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.in (VPATH, NEWLINE_C), common.mk (common-srcs): make
and use newline.c under enc/trans directory, not toplevel. no
longer search enc directory implicitly.
* configure.in, enc/Makefile.in (BUILTIN_ENCS, BUILTIN_TRANSES):
prefix respective directory names to builtin encodings and
transcoder source names.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* dir.c (ruby_glob0): no need to check never-NULL pointer.
reported by Denis Denisov <denji0k AT gmail.com>.
* win32/file.c (rb_file_expand_path_internal): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
`cmd`, so must not free before using `cmd`.
[ruby-core:66648] [Bug #10563]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/Makefile.sub (verconf.h): so depends on verconf.mk, which
is rebuilt by setup.mak.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby.c (ruby_set_argv): convert argv from UTF-8.
* win32/win32.c (rb_w32_sysinit, cmdglob, w32_cmdvector): convert
wide char command line to UTF-8 argv, and glob in UTF-8 so that
metacharacters would match multibyte characters.
[ruby-dev:48752] [Bug #10555]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48648 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (win32_direct_conv, rb_w32_readdir): convert UTF-8
and filesystem code page by using Win32 API directly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
is to get rid of the side effect of ENV["TZ"]. then, if ENV["TZ"] is
not set, no need to adjust. this change makes File#stat about 60%
faster.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (init_env): save USER environment variable in
login name if it is set. [ruby-core:66163] [Bug #10493]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
function to support nonblock-mode of pipes.
* win32/win32.c (rb_w32_read): nonblock-mode pipe returns ERROR_NO_DATA
if there is no data, but also returns it if remote-end is closed.
* win32/win32.c (rb_w32_write): if cannot to write any data, it may be
blocking.
* io.c (rb_io_set_nonblock): use rb_w32_set_nonblock for Windows.
* ext/io/nonblock/nonblock.c (rb_io_nonblock_set): use ruby's API when
setting nonblock-mode.
* test/ruby/test_io.rb: test nonblock pipes on Windows.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Moreover its error "make[1]: *** No rule to make target
`lib/unicode_normalize/tables.rb', needed by `srcs-lib'. Stop." is not
a good error message.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
the arguments, so it causes error if the arguments are expected to be
a macro definition. this fix resolve the build error introduced at
r48210.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48211 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/Makefile.sub, win32/setup.mak (MACHINE): get target
architecture from the compiler, instead of environment variable
at build time, which is irrelevant to runtime environment, and
not set when running in cygwin sshd.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (UNICODE_FILES): revert the rule that Unicode data
files depend on downloader target, and add missing dependency of
lib/unicode_normalize/tables.rb
* common.mk (after-configure): removed as srcdir should be
read-only after update.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
any VCS (it means that the worktree may be from the release package).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (constat_attr): manage reverse video internally
since Windows console window does not manage it. based on the
patch by white leaf in [ruby-dev:48483]. [Bug #10158]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/file.c (user_length_in_path): count user name length in
path.
* win32/file.c (append_wstr): append WCHAR string to Ruby string
directly without an intermediate buffer, if possible.
* win32/file.c (rb_file_expand_path_internal): use above functions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47118 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/file.c (rb_file_expand_path_internal, rb_file_load_ok):
use functions defined in win32/win32.c.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47117 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/Makefile.sub (PACKED_STRUCT): __pragma extension is
available since VC9.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/Makefile.sub (LIBS): oldnames.lib is not used already.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/configure.bat: bail out if run in win32 directory.
[ruby-core:63648] [Bug #10027]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (clean-rdoc, clean-capi, clean-platform): integrate
from Makefile.in and win32/Makefile.sub.
* win32/Makefile.sub (RMALL): now use rm.bat instead of rmall.bat
which does not handle any options and convert slashes.
* win32/rmall.bat: no longer used. use rm.bat with -r instead.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (DEFAULT_PRELUDES): no longer configurable since
r43278, move from Makefile.in and win32/Makefile.sub.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in (--with-static-linked-ext): fix for extensions to
be linked statically.
* Makefile.in, common.mk: use ENCSTATIC for enc directory.
* ext/extmk.rb: supply dependencies of statically linked extension
libraries.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/setup.mak (verconf.mk): rename RUBY_PROGRAM_VERSION as
RUBY_RELEASE_DATE, same as other platforms.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/setup.mak (verconf.mk): separate RUBY_RELEASE_DATE from
Makefile so that build would not stop everyday.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
hey nobu, why don't you write Changelog for such serious changes?
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/Makefile.sub (enc/jis/props.h): nmake needs special rule
to copy from the source directory, because it can't handle VPATH.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c: include "missing/nextafter.c" and address
finite() and isnan() macros, to get rid of infinite recursion.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46004 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/Makefile.sub (MISSING, CONFIG_H): msvcr120.dll provides
nextafter() as well as other mathematic functions. finite() and
isnan() used in missing/nextafter.c are not by older runtimes.
[Feature #9834]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (ustatfs): need a linkage to get rid of conflict.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45770 b2dd03c8-39d4-4d8f-98ff-823fe69b080e