* io.c (Init_IO): use directive hack to make ARGF documentable
in other tools. [ruby-core:42515][Bug #6007]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* misc/rdoc-mode.el (rdoc-imenu-create-index): Add imenu support
to rdoc-mode.
* misc/rdoc-mode.el (rdoc-mode): Fix regexp patterns containing
"\s " where CR/LF is not supposed to match.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34574 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* misc/rdoc-mode.el (rdoc-mode): Add provide so that requiring
this library succeeds.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/tempfile.rb (Tempfile#unlink, Tempfile::Remover#call): Just
call File.unlink and ignore ENOENT because existence check
before unlinking does not help in terms of race condition.
* lib/tempfile.rb (Tempfile#unlink, Tempfile::Remover#call): My
comment about thread safeness is obsolete.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/shellwords.rb: Fix rdoc markups.
* lib/shellwords.rb (Shellwords#shellsplit): Fix a bug where
consecutive backslashes in double quotes are all removed except
the one at the tail.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34571 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/shellwords.rb (Shellwords#shellescape): Drop the //n flag
that only causes warnings with no real effect. [Bug #5637]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34570 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/merger.rb (#default_merge_branch): Add support for
Subversion 1.7 which adopted a whole new working directory
structure.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34569 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* regint.h (PLATFORM_UNALIGNED_WORD_ACCESS): Power PC does not
allow unaligned word access.
* st.c (UNALIGNED_WORD_ACCESS): x86_64 allows unaligned word
access as well as i386.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c, include/ruby/win32.h (rb_w32_io_cancelable_p): renamed
from rb_w32_has_cancel_io(). now it takes a parameter as fd to check
the fd is console or not, because we cannot cancel console input even
if we have cancel_io function.
* io.c (WAIT_FD_IN_WIN32): call above function instead of the old one,
so now we can kill the thread which calls STDIN.gets.
the problem was reported by ko1 via IRC.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34558 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/openssl/test_ssl.rb (test_multibyte_read_write): start server
for each length to avoid race condition.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* dir.c (fnmatch): The * needs to be escaped to avoid formatting in
fnmatch comment.
patched by @dalton. https://github.com/ruby/ruby/pull/91
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c, include/ruby/win32.h (rb_w32_fd_is_text): new function.
* win32/win32.c (init_stdhandle): set default mode of stdin as binmode.
* io.c (set_binary_mode_with_seek_cur): new function to replace
SET_BINARY_MODE_WITH_SEEK_CUR macro. now returns previous mode of the
fd and take care of LF in rbuf.
* io.c (do_writeconv): set text mode when needed.
* io.c (io_read): need to change the mode of the IO to binmode
temporally when the length for IO#read, because IO#read with length
must behave so.
* test/ruby/test_io_m17n.rb (TestIO_M17N#est_{read_with_length,
read_with_length_binmode,get[cs]_and_read_with_binmode,
read_with_binmode_and_get[cs],read_write_with_binmode}): tests for
above changes.
all patches are written by Hiroshi Shirosaki. [ruby-core:41496]
[Feature #5714]
* test/ruby/test_io_m17n.rb
(TestIO_M17N#test_{read_with_binmode_and_get[cs]}): only for Windows.
* test/ruby/test_io_m17n.rb (TestIO_M17N#test_{read_with_length,
* io.c (rb_sys_fail_path): move the definition.
Move above for using it in set_binary_mode_with_seek_cur().
* io.c (set_binary_mode_with_seek_cur): fix improper seek cursor.
Seeking file cursor with setting binary mode has possibility to
cause infinite loop. Fixed the bug and refined error handling.
Introduced at r34043.
And cleanups as below.
Remove unnecessary parentheses of `fptr`.
Use return value of setmode().
* test/ruby/test_io_m17n.rb
(TestIO_M17N#test_seek_with_setting_binmode): add a test for abobe.
[ruby-core:41671] [Bug #5714]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/rexml/test_order.rb (OrderTester#test_more_ordering): use
GZip::GzReader.open instead of GZip::GzReader.new with File.new.
fixed a test error on Windows introduced at r33946.
fixed test errors on Windows introduced at r33953.
fixed test errors on Windows introduced at r33947.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34545 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/zlib/zlib.c (rb_gzreader_initialize): revert a part of r33937.
1st, to change the mode of an IO is very sensitive problem, so
the maintainer of this library should judge it.
2nd, usually Zlib::GzReader.new is not called directly. #initialize
is called via .open, and in the method the I/O is opened in binary
mode, so there is no problem without changing the mode in #initialize.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
------------------------------------------------------------------------
r33662 | usa | 2011-11-08 02:48:11 +0900 (Tue, 08 Nov 2011) | 18 lines
* 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.
------------------------------------------------------------------------
* 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.
* io.c (argf_next_argv): wrong timing of setting ecflags.
fixed the failure of TestArgf#test_textmode introduced at r33662.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34542 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_io_m17n.rb (TestIO_M17N#test_{default_mode_on_dosish,
default_mode_on_unix,text_mode,binary_mode}): sorry for wrong test
committed in r33144. I'd misunderstood the spec of ruby's universal
newline.
* test/ruby/test_io_m17n.rb
(TestIO_M17N#test_default_stdout_stderr_mode): new test for
r33627-33629. see [backport #5565]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* variable.c (set_const_visibility): Module#private_constant has
changed the visibility of only the first argument. Now it changes
all of them. [ruby-list:48558]
* test/ruby/test_module.rb: add a test for above.
* variable.c (set_const_visibility): print a warning when no argument
is passwd to Module#private_constant. [ruby-list:48558]
* vm_method.c (set_method_visibility): ditto for
Module#private_class_method.
* variable.c (set_const_visibility): clear inine-cache when constant's
visibility is modified. [ruby-dev:44929]
* test/ruby/test_module.rb (test_private_constants_clear_inlinecache):
add test for it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* array.c: Fix rdoc for Array#select!
patched by b t [ruby-core:42478] [Bug #5998]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34537 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/openssl/buffering.rb: Force multi-byte strings to be treated as
binary data.
* test/openssl/test_ssl.rb: Add test for it.
Thanks to Niklas Baumstark for reporting the issue!
[Ruby 1.9 - Bug #5233] [ruby-core:39120]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/set.rb (SortedSet.setup): don't remove old_init. The remove
makes the warning prevention fragile. [ruby-dev:44892]
* lib/set.rb (SortedSet.setup): remove old_init after initialize
method is redefined. The remove before redefinition makes the
warning prevention fragile. [ruby-dev:44892]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
------------------------------------------------------------------------
r33517 | naruse | 2011-10-24 15:41:57 +0900 (Mon, 24 Oct 2011) | 6 lines
Follow the error format changed by FreeBSD 9.
FreeBSD 8.2's last line is
"./configure: Can't open ./configure: No such file or directory\n""
but FreeBSD 9's is
"cannot open ./configure: No such file or directory\n"".
------------------------------------------------------------------------
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34531 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/openssl/ossl_ssl.c: Add SSL constants and allow to unset SSL
option to prevent BEAST attack. See [Bug #5353].
In OpenSSL, OP_DONT_INSERT_EMPTY_FRAGMENTS is used to prevent
TLS-CBC-IV vulunerability described at
http://www.openssl.org/~bodo/tls-cbc.txt
It's known issue of TLSv1/SSLv3 but it attracts lots of attention
these days as BEAST attack. (CVE-2011-3389)
Until now ossl sets OP_ALL at SSLContext allocation and call
SSL_CTX_set_options at connection. SSL_CTX_set_options updates the
value by using |= so bits set by OP_ALL cannot be unset afterwards.
This commit changes to call SSL_CTX_set_options only 1 time for each
SSLContext. It sets the specified value if SSLContext#options= are
called and sets OP_ALL if not.
To help users to unset bits in OP_ALL, this commit also adds several
constant to SSL such as
OpenSSL::SSL::OP_DONT_INSERT_EMPTY_FRAGMENTS. These constants were
not exposed in Ruby because there's no way to unset bits in OP_ALL
before.
Following is an example to enable 0/n split for BEAST prevention.
ctx.options = OP_ALL & ~OP_DONT_INSERT_EMPTY_FRAGMENTS
* test/openssl/test_ssl.rb: Test above option exists.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34524 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* cont.c (cont_mark): mark original Thread object from saved_thread.
[ruby-dev:44567] [Bug #5386]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34513 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* cont.c (HAVE_GETCONTEXT): see getcontext(3) because DragonFly BSD
x64 port doesn't have it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34512 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/dl/lib/types.rb: Win64 support.
* ext/fiddle/conversions.c (value_to_generic): src is not guranteed as
a Bignum if the type is LONG_LONG. it may be a Fixnum if the value
is small.
* ext/dl/lib/value.rb (DL::ValueUtil.{unsigned_value,signed_value}):
currenly pack/unpack does not accept "q!" and "Q!".
* test/ruby/memory_status.rb (Memory::Win32): 64bit support.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/dbm/extconf.rb: detect gdbm_version in libgdbm.
* ext/dbm/dbm.c: make DBM::VERSION more informative for gdbm, qdbm and
Berkeley DB 1.x. [ruby-dev:44944]
* ext/dbm/dbm.c: use db_version() instead of DB_VERSION_STRING to
detect runtime Berkeley DB version.
use dpversion instead of _QDBM_VERSION to detect runtime QDBM
version.
[ruby-dev:44948]
* ext/dbm/dbm.c (Init_dbm): fix a build error on mswin32.
use `extern __declspec(dllimport)` for dll link with VC.
[ruby-core:41996] [Bug #5869]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34502 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* numeric.c (rb_enc_uint_char): raise RangeError when added codepoint
is invalid. [Feature #5855] [Bug #5863] [Bug #5864]
* string.c (rb_str_concat): ditto.
* string.c (rb_str_concat): set encoding as ASCII-8BIT when the string
is US-ASCII and the argument is an integer greater than 127.
* regenc.c (onigenc_mb2_code_to_mbclen): rearrange error code.
* enc/euc_jp.c (code_to_mbclen): ditto.
* enc/shift_jis.c (code_to_mbclen): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/openssl/ossl_x509name.c: Use the numerical representation of
unrecognized OIDs instead of the sn "UNDEF".
* test/openssl/test_x509name.rb: Add tests for the fixed behavior.
Patch provided by Paul Kehrer, thank you!
[ruby-core:41769] [Feature #5787]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e