* win32/Makefile.sub (config.h): defines WIN95 only if unicows.lib
is available.
* win32/setup.mak (-unicows-): checks if unicows.lib is available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22763 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(node_name.inc, known_errors.inc): unified from Makefile.in and
win32/Makefile.sub.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
by UTF-16'ed filename on Windows.
* io.c (rb_file_open_generic, rb_io_s_sysopen, rb_io_reopen,
argf_next_argv): follow above change.
* io.c (rb_scan_open_args): no longer need to convert filepath here on
Windows.
* win32/wio32.c (rb_w32_wopen): new function to open file by UTF-16'ed
filename.
* win32/win32.c (rb_w32_open): call rb_w32_open().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22626 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
cmd.exe's copy command.
* lib/mkmf.rb (create_makefile): no longer need to convert path
separator when copying file.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22621 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
building exts with miniruby, to get rid of overwriting running
program. [ruby-core:22339]
* Makefile.in, win32/Makefile.sub (RUNCMD, MKMAIN_CMD): macros to
run script file.
* ext/extmk.rb (parse_args): added --command-output option which
creates script file to make main program.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22592 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
read entry with specified enc.
* win32/win32.c (readdir_internal): extract from rb_w32_opendir().
* win32/win32.c (opendir_internal): extract from rb_w32_readdir().
* dir.c (dir_read, dir_each): use new READDIR macro instead of readdir()
to pass enc for special version of readdir, such as above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
rb_w32_readdir, check_valid_dir): change backend API from A to W.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
platform.
* lib/mkmf.rb (have_header, find_header): use try_header.
* win32/Makefile.sub (try_header): uses try_compile to get rid of
slow -E option of VC.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21791 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
EPERM on cygwin and mingw.
* Makefile.in ($(LIBRUBY_SO)): use wildcard option of objcopy.
* configure.in (DLDFLAGS): do not export all symbols.
* cygwin/GNUmakefile.in (RUBYDEF): rejects symbols prefixex with
Init_.
* win32/mkexports.rb (Exports::Mingw): includes all symbols except for
prefixed with Init_ as well as mswin32.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
miniprelude.c, newline.c): if dependencies is newer than targets or
targets don't exist, try to create targets with BASERUBY. no need to
detect errors there because the absence of BASERUBY is not abnormal.
after the try, if the targets still don't exist, copy them from
$(srcdir).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
if not, cause compile error in using PRI?VALUE.
* win32/Makefile.sub (config.h): add SIZEOF_INTPTR_T and
SIZEOF_UINTPTR_T for SIZEOF_VALUE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
miniprelude.c, newline.c): shoudn't copy when $(srcdir) != ".", too.
(this is a workaround. we need more strict check.)
* win32/Makefile.sub ($(INSNS)): shound't remove BASERUBY.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
and mswin.
* encoding.c (rb_locale_charmap): use environments on mingw and mswin.
* missing/langinfo.c (nl_langinfo_codeset): MS-Windows Japanese
environment uses Windows-31J derived from Shift_JIS, not EUC-JP.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21517 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
rb_fd_init, rb_fd_term, rb_fd_zero, rb_fd_set, rb_fd_clr, rb_fd_isset,
rb_fd_select, rb_fd_ptr, rb_fd_max, HAVE_RB_FD_INIT): new type,
functions, and macros for Windows.
* win32/win32.c (extract_fd, rb_w32_select): use rb_fdset_t to expand
fd_array if needed. [ruby-core:19946]
* win32/win32.c (copy_fd): new funcion for rb_w32_select().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21487 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
is_internal_cmd.
* win32/win32.c (argv_size, join_argv): escapes redirection, pipe
and carret punctuations with carrets.
* win32/win32.c (rb_w32_aspawn): ditto, and redirections and pipe
have no meanings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
definition from common.mk to {Makefile.in,win32/Makefile.sub}.
[ruby-dev:37678]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
known_errors.inc, miniprelude.c, newline.c): move rules from common.mk
to {Makefile.in,win32/Makefile.sub) for nmake.
[ruby-core:20993]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
at this point.
* io.c (pipe_open): use rb_w32_spawn() instead of rb_w32_pipe_exec()
to use our own redirection scheme.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
error causes in securing, cannot restore the state of accepted
socket.
fixed [ruby-core:19728]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
if cannot find the suitable protocol. a patch from Heesob Park.
fixed [ruby-core:19713]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20166 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (rb_w32_write): write to the end of the file when
FAPPEND is specified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* util.c (freedtoa): used only when MULTIPLE_THREADS is not defined.
* win32/win32.c (rb_w32_pipe): serial is DWORD.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c (get_ppid): mention the return value on Windows.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
MSVCRT if text mode is specified. this case will not be used from
ruby itself.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18951 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
ext/digest/md5/md5.c, ext/openssl/ossl.c (main),
ext/socket/extconf.rb (ipv6, wide-getaddrinfo): main should be int.
* main.c (main), win32/winmain.c, wince/wincemain.c (WinMain): envp is
no longer used so long time. based on a patch from Peter Bowen at
[ruby-core:18208]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
pass a pointer to int which is smaller than st_data_t on mswin64.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (rb_w32_pipe_exec, rb_w32_accept, rb_w32_socket,
rb_w32_socketpair): should check and release fd and sockets/handles
if an error occurs in rb_w32_open_osfhandle().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18196 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
is often used and not supported on all Windows.
* win32/win32.c (overlapped_socket_io): shouldn't use overlapped I/O if
CancelIo() is not supported.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(currently only O_NONBLOCK).
* win32/win32.c (StartSockets, exit_handler): alloc/free socklist.
* win32/win32.c (is_socket): use socklist.
* win32/win32.c (rb_w32_accept, rb_w32_socket, rb_w32_socketpair):
register new socket to socklist.
* win32/win32.c (rb_w32_close): remove closing socket from socklist.
* win32/win32.c (fcntl): register socket options.
* win32/win32.c (overlapped_socket_io): send to/recv from socket with
overlapped operation if the socket is not nonblocking mode.
[experimental]
* win32/win32.c (rb_w32_send, rb_w32_sendto, rb_w32_recv,
rb_w32_recvfrom): use overlapped_socket_io().
* win32/win32.c (open_ifs_socket): set overlapped mode. this is the
default mode of winsock's socket(), so lacking it is an old bug.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
with DLL is broken. save import library which created by lib.exe and
install it.
fixed the problem mentioned at the postscript of [ruby-dev:35448]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18042 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
instead of $(OS) because ENV["OS"] is used in test-all (drb).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18028 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
getppid() on win32 (but only Win2k or later).
* process.c (get_ppid): remove win32 special logic.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
is different from Vista about pipe handle inheritance.
fixed [ruby-core:17367]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17514 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (rb_w32_write): set errno when CRT's errno is EINVAL
for pipe errors.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/socket/addrinfo.h (addrinfo, getaddrinfo, getnameinfo,
freehostent, freeaddrinfo): undef before define because these are
macros in some versions of Windows SDK.
merged from ruby_1_8.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16867 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
written actually.
* win32/Makefile.sub (LDSHARED_0, LINK_SO): get rid of failure of
mt.exe.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (enc.mk, prelude.c): not depend on $(RBCONFIG) on mswin32
to get of compiling twice each time.
* win32/Makefile.sub (prelude.c): not depend on $(PREP).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16668 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
rid of depending PREP with nmake.
* common.mk (encs): depends on libruby.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16637 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c (save_redirect_fd, save_env_i, save_env, run_exec_dup2,
run_exec_open, run_exec_pgroup, run_exec_rlimit, rb_run_exec_options):
save parent's process environments.
!!!remark!!! these are not thread-safe.
* process.c (rb_spawn_internal): remove calling run_exec_options()
because cannot restore after spawn. we'll fix this later.
* io.c (pipe_open): ditto.
* test/ruby/test_process.rb (test_execopts_env): upcase environment
variable name for case insensitive platforms.
* win32/win32.c (init_env): set USER environment variable only when
USERNAME is available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (up): target to update from the repository.
* Makefile.in, {win,bcc}32/Makefile.sub (IFCHANGE): tool to update a
file if changed.
* tool/ifchange: for unixen.
* win32/ifchange.bat: some fix
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
if the path of ruby.exe is quoted.
* win32/setup.mak ($(ARCH)): if a macro is appended by $(APPEND),
a space will be inserted on the top of the line.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15113 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
to get rid of ./ruby.exe.
* win32/enc-setup.mak: workaround for Borland make.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
removing rule of ext/ripper/y.output from common.mk to Makefiles
that depend on platforms.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
compiled output file name explicitly.
* enc/Makefile.in, enc/depend: now makes compiler to put generated
files under directories corresnponding to the each source.
enc/trans supported.
* enc/make_encmake.rb: evaluates depend file before Makefile.in so
that the former can influence to CONFIG.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
+ normal make: MFLAGS are set and command line options and macros
are all passed silently.
+ GNU make: ditto, and all options and macros in MAKEFLAGS are in
effect.
+ nmake: MFLAGS is not set and MAKEFLAGS has only options without
hyphen, no macros exist in any variables.
+ Borland make: ditto, and command line macros cannot override
macros in makefile, so passing them is vain.
* {bcc32,win{32,ce}}/Makefile.sub (SET_MAKE): set MFLAGS which is not
set by default, to get rid of chaotic situation of MFLAGS/MAKEFLAGS.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14570 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (.y.c): not discard the old target until successfully
created.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14194 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
instead of socketpair when mode is RDWR.
* io.c (pipe_open): pass &write_fd to rb_w32_pipe_exec().
* io.c (popen_redirect): define only when HAVE_FORK.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
bison with sed. [ruby-dev:32204]
* ruby.c (proc_options): use yydebug in cmdline_options.
* ruby.c (process_options): set yydebug flag of parser.
* parse.y (yydebug): moved into struct parser_params.
* parse.y (rb_parser_get_yydebug, rb_parser_set_yydebug): parser
generic methods.
* */Makefile.sub (parse.c): moved to common.mk.
* tool/ytab.sed: comment out yydebug definition, and substitute
yyerror with parser_yyerror.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13908 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lex.c.src: copied from keywords. This is the source of lex.c.blt.
* Makefile.in (lex.c): use lex.c.blt if keywords is same as lex.c.src.
* win32/Makefile.sub (lex.c): re-introduce copy rule.
* bcc32/Makefile.sub (lex.c): ditto.
* wince/Makefile.sub (lex.c): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
the ``--target'' option of configure is omitted.
* win32/README.win32: update the descriptions about compiler.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
command.com which can not handle quotes. [ruby-talk:258939]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
but mswin32 use buffering when stderr is not connected to tty.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
cleanup of critical section object for select.
* win32/win32.c (do_select): block reentrance.
* win32/win32.c (rb_w32_select): 0 sec polling of socket. this is
workaround because winsock cannot do select at same socket at the
same time by two or more threads.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
need to reject reentrance. removed.
* rubysig.h (RUBY_CRITICAL): follow above changes.
* rubysig.h (TRAP_BEG, TRAP_END): no need to save errno.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e