akr
bd3b3c1b51
update doc.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-07 21:01:40 +00:00
usa
add77a592b
* include/ruby/encoding.h (ECONV_NEWLINE_DECORATOR_READ_MASK,
...
ECONV_NEWLINE_DECORATOR_WRITE_MASK): new macro.
* io.c (rb_io_extract_modeenc, pipe_open, prep_stdio, argf_next_argv):
set TEXTMODE_NEWLINE_DECORATOR_ON_WRITE for textmode on creating IO
if the flag is available.
* io.c (make_writeconv): drop decorators for reading.
* io.c (make_readconv): drop decorators for writing.
* io.c (do_writeconv): existing writeconv is not the condition to raise
ArgumentError. should check textmode or not.
* test/ruby/test_io_m17n.rb
(TestIO_M17N#test_{cr,lf,crlf}_decorator_on_stdout): test above
changes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-07 17:48:11 +00:00
usa
66595f3894
* io.c (io_fflush): remove fsync().
...
* io.c (rb_io_flush, rb_io_rewind): fsync() here.
these changes reduces fsync() calls to improve performance.
first reported at [ruby-list:48515] by ak7 at mail.goo.ne.jp .
[Bug #5585 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-07 11:08:39 +00:00
akr
987c03a387
* io.c (rb_close_before_exec): use F_MAXFD if available.
...
F_MAXFD is available on NetBSD since NetBSD 2.0.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-07 10:44:02 +00:00
akr
333c847f19
* io.c (rb_cloexec_fcntl_dupfd): don't clear try_dupfd_cloexec if
...
fcntl(F_DUPFD) failed as fcntl(F_DUPFD_CLOEXEC).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-05 10:13:00 +00:00
nobu
413f24d3b0
* whitespace cleanup.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-04 07:19:23 +00:00
usa
a3ce319639
* io.c (make_writeconv): fixed typo of previous commit.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33629 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-03 19:06:43 +00:00
usa
102ec1171d
* io.c (make_writeconv): fixed typo of previous commit.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33628 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-03 18:45:41 +00:00
usa
932d63efe0
* io.c (make_writeconv): unversal_newline converter is for reading.
...
so, if the io is text mode and has ECONV_UNIVERSAL_NEWLINE_DECORATOR
flag, use crlf_newline converter for writing.
this change fixes the problem about the luck of CR up Kernel.p and
Kernel.puts to stdout/stderr on Windows.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-03 16:59:53 +00:00
naruse
f0bd639693
* io.c (rb_cloexec_pipe): remove workaround of r33587.
...
The bug of NetBSD is fixed on Mon Oct 31 21:31:29 UTC 2011.
http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=45545
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33606 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-01 12:43:47 +00:00
akr
809006f407
* io.c (rb_io_reopen): call rb_fd_fix_cloexec instead of
...
rb_maygvl_fd_fix_cloexec.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33605 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-01 10:49:40 +00:00
akr
89a1258110
* io.c (rb_io_reopen): call rb_maygvl_fd_fix_cloexec after freopen().
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-01 10:01:01 +00:00
naruse
f926980902
* io.c (nogvl_io_cntl): rb_cloexec_fcntl_dupfd's 2nd argument is int.
...
* process.c (move_fds_to_avoid_crash): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33602 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-01 05:56:51 +00:00
akr
c16f98ab0a
* io.c (rb_maygvl_fd_fix_cloexec): renamed from fd_set_cloexec.
...
* internal.h (rb_maygvl_fd_fix_cloexec): declared.
* ext/socket/init.c (cloexec_accept): use rb_maygvl_fd_fix_cloexec.
(rsock_s_accept_nonblock): use rb_update_max_fd.
(rsock_s_accept): use rb_update_max_fd.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-01 03:04:03 +00:00
akr
24176a8d5d
add comment.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33595 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 23:24:25 +00:00
naruse
6a96646de2
Fix previous commit (r33586).
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33588 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 13:50:32 +00:00
naruse
ca6311b0b5
* io.c (rb_cloexec_pipe): NetBSD 6.0 will support pipe2(2),
...
but its return value is -1 or larger than 0.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33587 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 13:21:03 +00:00
akr
1a70dfe6f4
* include/ruby/intern.h (rb_fd_fix_cloexec): renamed from
...
rb_fd_set_cloexec.
* io.c: follow the above renaming.
* ext/pty/pty.c: ditto.
* ext/socket/init.c: ditto.
* ext/socket/socket.c: ditto.
* ext/socket/ancdata.c: ditto.
* ext/socket/unixsocket.c: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 12:49:16 +00:00
akr
687c41dc4d
* io.c (fd_set_cloexec): clear CLOEXEC flag for standard file
...
descriptors.
(rb_cloexec_dup): use rb_cloexec_fcntl_dupfd.
(rb_cloexec_fcntl_dupfd): use F_DUPFD_CLOEXEC if available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33583 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 11:17:15 +00:00
akr
da5ae5544d
* io.c (rb_cloexec_dup2): check oldfd == newfd at first.
...
pointed by KOSAKI Motohiro. [ruby-dev:44713]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 03:07:26 +00:00
usa
bdc85361e4
* io.c (rb_cloexec_fcntl_dupfd): this function needs F_DUPFD.
...
* io.c (nogvl_io_cntl): use rb_cloexec_fcntl_dupfd() only if the
platform has F_DUPFD.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 01:52:21 +00:00
akr
5c19f07700
* include/ruby/intern.h (rb_cloexec_fcntl_dupfd): declared.
...
* io.c (rb_cloexec_fcntl_dupfd): new function.
(nogvl_io_cntl): use rb_cloexec_fcntl_dupfd.
* process.c (move_fds_to_avoid_crash): use rb_cloexec_fcntl_dupfd.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-30 15:17:27 +00:00
akr
e7f8c03818
* configure.in: check pipe2.
...
* io.c (rb_cloexec_pipe): use pipe2 if available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33574 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-30 13:48:35 +00:00
akr
0d2a92e0b3
* include/ruby/intern.h (rb_cloexec_pipe): declared.
...
* io.c (rb_cloexec_pipe): new function.
(rb_pipe): use rb_cloexec_pipe.
* thread_pthread.c (rb_thread_create_timer_thread): use
rb_cloexec_pipe.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-30 12:13:05 +00:00
akr
6e0ed044b6
* io.c (rb_cloexec_dup): refine control flow.
...
(rb_cloexec_dup2): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33571 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-30 11:07:09 +00:00
nobu
54816d10eb
* io.c (rb_cloexec_dup, rb_cloexec_dup2): CLOEXEC has been set if
...
dup3 succeeded.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-30 01:47:23 +00:00
akr
f0b021c0ce
* io.c (rb_cloexec_dup): don't allocate standard file descriptors.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33564 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-30 01:02:46 +00:00
akr
e745a03cfa
* io.c (rb_cloexec_dup2): don't set CLOEXEC for standard file
...
descriptors.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 23:30:34 +00:00
akr
cb9f3040d7
* configure.in: check dup3.
...
* io.c (rb_cloexec_dup2): use dup3 if available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 22:48:41 +00:00
akr
0a9cb21e62
* include/ruby/intern.h (rb_cloexec_dup2): declared.
...
* io.c (rb_cloexec_dup2): new function.
(io_reopen): use rb_cloexec_dup2.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33557 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 13:11:01 +00:00
akr
54d7e82613
* io.c (rb_cloexec_dup): use F_DUPFD_CLOEXEC if available.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 11:59:46 +00:00
akr
a9648d1e58
add a comment.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33554 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 11:58:30 +00:00
akr
4ae2b92576
* include/ruby/intern.h (rb_cloexec_dup): declared.
...
* io.c (rb_cloexec_dup): new function.
(ruby_dup): use rb_cloexec_dup.
* ext/pty/pty.c (pty_getpty): use rb_cloexec_dup.
* ext/openssl/ossl_bio.c (ossl_obj2bio): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 11:02:32 +00:00
akr
baa2d74dae
* io.c (rb_cloexec_open): use O_CLOEXEC if available.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 05:27:32 +00:00
akr
3ae3cd741d
* include/ruby/intern.h (rb_cloexec_open): declared.
...
* io.c (fd_set_cloexec): extracted from rb_fd_set_cloexec.
(rb_cloexec_open): new function.
(sysopen_func): use rb_cloexec_open.
(rb_sysopen_internal): use rb_update_max_fd instead of
rb_fd_set_cloexec.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33549 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 02:33:28 +00:00
akr
b317a4cd28
* io.c: use "__sun" instead of "sun" to detect SunOS.
...
* dln.c: ditto.
* cont.c: ditto.
* ext/sdbm/_sdbm.c: ditto.
[ruby-dev:44693]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-24 13:49:58 +00:00
akr
a28fe36c89
* io.c (copy_stream_fallback_body): check nil for EOF of read method.
...
patch by Eric Wong. [ruby-core:39134] [Bug #5237 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-23 23:19:14 +00:00
akr
e7ff29581b
* io.c (rb_fd_set_cloexec): set close-on-exec flag only if F_GETFD is
...
defined. reported by Luis Lavena. [ruby-core:40281] [Bug #5470 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-22 23:03:02 +00:00
akr
b574a4d4a1
* include/ruby/intern.h (rb_fd_set_cloexec): declared.
...
* io.c (rb_fd_set_cloexec): new function.
(ruby_dup): call rb_fd_set_cloexec to set close-on-exec flag.
(rb_sysopen_internal): ditto.
(rb_pipe): ditto.
(io_reopen): ditto.
(io_cntl): ditto.
* process.c (rb_f_exec): change the default :close_others option to
true.
(rb_f_system): ditto.
(move_fds_to_avoid_crash): call rb_fd_set_cloexec to set
close-on-exec flag.
(ruby_setsid): ditto.
(rb_daemon): ditto.
* thread_pthread.c (rb_thread_create_timer_thread): call
rb_fd_set_cloexec to set close-on-exec flag.
* ruby.c (load_file_internal): ditto.
* file.c (rb_file_s_truncate): ditto.
(file_load_ok): ditto.
* random.c (fill_random_seed): ditto.
* ext/pty/pty.c (chfunc): ditto.
(get_device_once): ditto.
* ext/openssl/ossl_bio.c (ossl_obj2bio): ditto.
* ext/socket/init.c (rsock_socket): ditto.
(rsock_s_accept_nonblock): ditto.
(rsock_s_accept): ditto.
* ext/socket/socket.c (rsock_sock_s_socketpair): ditto.
* ext/socket/ancdata.c (discard_cmsg): ditto.
(make_io_for_unix_rights): ditto.
* ext/socket/unixsocket.c (unix_recv_io): ditto.
* ext/io/console/console.c (console_dev): ditto.
[ruby-core:38140] [Feature #5041 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33507 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-22 09:58:15 +00:00
ktsj
02e4428ec5
* io.c: fix documentation of ARGF.lineno=.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-02 01:56:51 +00:00
nobu
8e6e8e6288
* use RB_TYPE_P which is optimized for constant types, instead of
...
comparison with TYPE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33357 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-09-29 11:07:45 +00:00
matz
1796817e46
* io.c (Init_IO): update BINARY comment. it should not change the
...
encoding of the result to ASCII-8BIT. [ruby-talk:387719]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33260 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-09-12 20:38:17 +00:00
nobu
74f724de1a
* io.c (argf_next_argv): open in default text mode.
...
[ruby-core:39234] [Bug #5268 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33171 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-09-03 14:52:18 +00:00
nobu
7dc7da3d86
* io.c (validate_enc_binmode, prep_stdio): default to text mode on
...
dosish platforms. [ruby-core:38822] [Bug #5164 ]
* transcode.c (rb_econv_prepare_options): keep default ecflags
unchanged if no options.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33165 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-09-02 12:11:17 +00:00
usa
f9e9eee677
* util.c, include/ruby/util.h (ruby_add_suffix): remove the function.
...
[Bug #5153 ] [ruby-core:38736]
* io.c (argf_next_argv): remove the call of above function.
* ext/-test-/add_suffix, test/-ext-/test_add_suffix.rb: remove the test
extension module because this is only for testsing ruby_add_suffix().
* LEGAL: remove the mention about a part of util.c, because now we
removed the part.
* io.c (argf_next_argv): now the new filename is not guranteed to
use, so should check the return value of rename(2).
* test/ruby/test_argf.rb (TestArgf#test_inplace_rename_impossible):
now we expect same result with other platforms on no_safe_rename
platforms (=Windows).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-03 07:10:56 +00:00
nobu
f46cff647e
* io.c (rb_pipe): pipe on cygwin can succeed half but fail
...
half.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-31 09:59:01 +00:00
naruse
4ac69a57b5
* io.c (rb_io_each_byte): remove unused variable e.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32766 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-30 16:31:36 +00:00
nobu
321346cfa5
* io.c (rb_io_each_byte): rbuf can be refreshed during yield.
...
[Bug #5119 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-30 14:14:46 +00:00
akr
2bcd502a71
* io.c (rb_update_max_fd): validate fd.
...
* ext/socket/rubysocket.h (rsock_discard_cmsg_resource): add
msg_peek_p argument for the declaration.
* ext/socket/ancdata.c (discard_cmsg): add msg_peek_p argument.
assume FreeBSD, NetBSD and MacOS X doesn't generate passed fd
when MSG_PEEK.
(rsock_discard_cmsg_resource): add msg_peek_p argument.
(bsock_recvmsg_internal): call rsock_discard_cmsg_resource with
msg_peek_p argument.
* ext/socket/unixsocket.c (unix_recv_io): call
rsock_discard_cmsg_resource with msg_peek_p argument.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-23 08:13:37 +00:00
kazu
55b0c9fb6c
* io.c (rb_update_max_fd): remove parentheses. they are not in macro.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32588 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-20 15:00:00 +00:00