Commit graph

6771 commits

Author SHA1 Message Date
nobu
2a8989d71c stringio.c: ASCII-8BIT StringIO rejects no encodings
* ext/stringio/stringio.c (strio_write): ASCII-8BIT StringIO
  should be writable any encoding strings, without conversion.
  [ruby-core:65240] [Bug #10285]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47716 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-26 03:52:37 +00:00
normal
4d10c2b91d ext/socket/*.c: trivial struct packing for 64-bit
* ext/socket/ancdata.c ({send,recv}msg_args_struct): 24 => 16 bytes
* ext/socket/init.c (connect_arg): ditto
* ext/socket/raddrinfo.c (getnameinfo_arg): 56 => 48 bytes

Other big stack reductions are less trivial.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-22 00:46:25 +00:00
suke
8bb93fc8ae ext/win32ole/win32ole.c (rbtime2vtdate, vtdate2rbtime): fix
the bug in conversion of milliseconds. [Bug #10258]

test/win32ole/test_win32ole_variant.rb
(test_conversion_dbl2date_with_msec,
test_conversion_time2date_with_msec): use assert_in_delta instead
of assert_equal to treat an acceptable error range.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-21 02:18:37 +00:00
nobu
b0c03f63e5 parse.y: quoted ID key
* parse.y (assoc): allow quoted ID as a key of a hash literal.
  [ruby-core:34453] [Feature #4276]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47649 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-20 01:48:43 +00:00
akr
341376215b * ext/openssl/lib/openssl/x509.rb (OpenSSL::X509::Name#pretty_print):
New method.
  (OpenSSL::X509::Certificate#pretty_print): Ditto.

* ext/openssl/lib/openssl/bn.rb (OpenSSL::BN#pretty_print): Ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-20 01:17:05 +00:00
nobu
dc70a9c422 fbuffer.h: expand arguments
* ext/json/fbuffer/fbuffer.h (fbuffer_to_s): expand arguments, for
  fix with rb_str_new macro.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47626 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-18 14:51:45 +00:00
normal
338cea741d ext/zlib/zlib.c (struct gzfile): pack (288 => 272 bytes) on 64-bit
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47619 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-17 22:01:31 +00:00
normal
7914a8726e socket (rsock_connect): fix and refactor for blocking
* ext/socket/init.c (rsock_connect): refactor for blocking
  (wait_connectable): clear error before wait
  [Bug #9356]

We no longer use non-blocking sockets to emulate blocking behavior,
so eliminate error-prone and confusing platform-dependent code.
According to POSIX, connect() only needs to be called once in the
face of EINTR, so do not loop on it.

Before waiting on connect, drop any pending errors, since
rb_wait_for_single_fd may not clear the existing error
properly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47617 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-17 21:20:58 +00:00
normal
f5e06db39c ext/zlib/zlib.c (zlib_mem_alloc): check overflow
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-17 07:26:12 +00:00
nobu
8ae989f6b6 pathname.rb: fix a Pathname#relative_path_from crash on
* ext/pathname/lib/pathname.rb (SAME_PATHS):
  Pathname#relative_path_from uses String#casecmp to compare strings
  on case-insensitive filesystem platforms (e.g., Windows). This can
  return nil for strings with different encodings, and the code
  previously assumed that it always returned a Fixnum.  [Fix GH-713]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-15 01:29:21 +00:00
nobu
065b6d2b7c fiddle/import.rb: fix typo
* ext/fiddle/lib/fiddle/import.rb (Fiddle::Importer#sizeof): fix typo,
  SIZEOF_LONG_LON.  [Fix GH-714]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-15 00:43:14 +00:00
tenderlove
e548c09d42 * ext/psych/lib/psych.rb: update version
* ext/psych/psych.gemspec: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47581 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-14 02:04:03 +00:00
suke
5b800bef9e * ext/win32ole/win32ole_event.c(ev_advise, ole_event_free,
fev_s_allocate, fev_unadvise): avoid segmentation fault when COM
  server freed before calling Unadvise from WIN32OLE_EVENT object.
* ext/win32ole/win32ole.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47570 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-13 02:28:47 +00:00
nobu
f52dc33270 ext/Setup.nacl: remove trainling space.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-12 15:39:09 +00:00
nobu
24b03b32e4 readline.c: use rb_setup_fake_str
* ext/readline/readline.c (readline_s_delete_text): initialize a
  fake string by rb_setup_fake_str().

* internal.h (rb_setup_fake_str): allow extensions to call.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-12 13:11:13 +00:00
naruse
a8ec4b2cf2 * string.c (sym_find): remove Symbol.find because we have Symbol GC now.
https://bugs.ruby-lang.org/projects/ruby/wiki/DevelopersMeeting20140904Japan
  If you still want this, request again on Redmine. [Feature #7854]
  https://bugs.ruby-lang.org/issues/7854

* ext/-test-/symbol/init.c (sym_find): moved from string.c for tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-11 21:22:52 +00:00
suke
9d0a6f3db7 * ext/win32ole/sample/excel2.rb: remove some commented-out code.
rotate graph more slowly to see graph clearly.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 13:01:21 +00:00
suke
6057695c87 * ext/win32ole/win32ole_variant.c (ole_val2variant_err,
ole_val2variantdata, Init_win32ole_variant): support VT_ERROR
  variant with error code. add WIN32OLE_VARIANT::NoParam.
* test/win32ole/test_win32ole_variant.rb(test_c_noparam,
  test_vt_error_noparam): ditto.
* ext/win32ole/win32ole.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-06 07:52:04 +00:00
akr
d03315d84a * configure.in (dirfd): Check function.
* dir.c (dir_fileno): New method.
  [ruby-dev:48265] [Feature #9880]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-04 15:54:04 +00:00
suke
c5487618f5 * ext/win32ole/win32ole.c (rbtime2vtdate): try to convert millisecond
of Time object to millisecond of VT_DATE VARIANT.
* test/win32ole/test_win32ole_variant.rb
  (test_conversion_time2date_with_msec): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-01 11:16:57 +00:00
normal
3cee6a22c0 zlib: GzipReader#rewind preserves ZSTREAM_FLAG_GZFILE
* ext/zlib/zlib.c (gzfile_reset): preserve ZSTREAM_FLAG_GZFILE
  [Bug #10101]

* test/zlib/test_zlib.rb (test_rewind): test each_byte

We must preserve the ZSTREAM_FLAG_GZFILE flag to prevent
zstream_detach_buffer from:

a) returning Qnil and breaking out of the `each_byte' loop
b) yielding a large string to each_byte

Note: the test case in bug report takes a long time.  I found this
bug because I noticed the massive time descrepancy between
`each_byte' and `readbyte' loop before this patch.  With this patch,
`each_byte' and `readbyte' both take very long.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-30 23:53:28 +00:00
tenderlove
66d3b9750b * ext/psych/lib/psych/visitors/yaml_tree.rb: fix NameError dumping and
loading. Fixes GH #85. Thanks @brentdax for the patch!
* test/psych/test_exception.rb: test for fix

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-29 21:41:02 +00:00
tenderlove
8662841a9b * ext/psych/lib/psych/scalar_scanner.rb: fix loading strings that
look like integers but have a newline. Fixes GH #189
* test/psych/test_string.rb: test for fix

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-29 21:24:33 +00:00
tenderlove
73645bb8e5 * ext/psych/lib/psych/visitors/to_ruby.rb: merge keys with a hash
should merge the hash in to the parent.
* test/psych/test_merge_keys.rb: test for change. Fixes GH #202

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-29 21:11:47 +00:00
tenderlove
7a5dedf25c * ext/psych/lib/psych/visitors/to_ruby.rb: quoted "<<" strings
should not be treated as merge keys.
* ext/psych/lib/psych/visitors/yaml_tree.rb: hashes with keys
  containing "<<" should roundtrip.
* test/psych/test_merge_keys.rb: test for change. Fixes GH #203

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47315 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-29 21:02:19 +00:00
suke
ef7b9bf382 * ext/win32ole/win32ole.c (vtdate2rbtime): try to convert millisecond
of VT_DATE VARIANT to nsec of Time object.
* test/win32ole/test_win32ole_variant.rb
  (test_conversion_dbl2date_with_msec): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-27 10:57:28 +00:00
suke
108c4e4495 * ext/win32ole/win32ole.c(fole_s_connect, fole_initialize): raise a
security error with the tainted string object.
* ext/win32ole/win32ole_event.c(ev_advise): ditto.
* test/win32ole/test_win32ole.rb(test_s_new_exc_svr_tainted,
  test_s_new_exc_host_tainted): ditto.
* test/win32ole/test_win32ole_event.rb(test_s_new_exc_tainted): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-25 11:18:17 +00:00
nobu
34ec7c5b49 win32/test_console_attr.rb: reset attributes
* ext/-test-/win32/console/attribute.c (console_set_attribute):
  set console attribute.

* test/-ext-/win32/test_console_attr.rb (reset): reset attributes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-21 13:10:34 +00:00
nobu
43b00d8a11 win32.c: manage reverse video
* 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
2014-08-21 08:10:34 +00:00
nobu
f9b7a2a33f win32ole.c: check overflow
* ext/win32ole/win32ole.c (ole_invoke): check integer overflow on
  win64 platforms.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-19 01:29:45 +00:00
nobu
a198bb3929 thread.c: check initialized
* ext/thread/thread.c (get_array): check instance variables are
  initialized properly.  [ruby-core:63826][Bug #10062]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47217 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-19 01:13:24 +00:00
suke
b62ce0e964 * ext/win32ole/win32ole.c (ole_invoke): use RHASH_SIZE instead of
calling Hash#length method.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-17 08:10:38 +00:00
suke
bd6e27dc47 * ext/win32ole/win32ole_event.c (evs_length): use RARRAY_LEN instead
of calling Array#length method.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47203 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-16 10:34:24 +00:00
suke
cd3d7fe846 * ext/win32ole/win32ole.c: seperate WIN32OLE_EVENT src from
win32ole.c.
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_event.c: ditto.
* ext/win32ole/win32ole_event.h: ditto.
* ext/win32ole/depend: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-15 11:36:12 +00:00
suke
96b27e5a97 * ext/win32ole/win32ole.c: seperate WIN32OLE_RECORD src from
win32ole.c
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_record.c: ditto.
* ext/win32ole/win32ole_record.h: ditto.
* ext/win32ole/depend: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47174 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-13 15:28:26 +00:00
suke
51b4ccd618 * ext/win32ole/win32ole.c: seperate WIN32OLE_VARIANT src from
win32ole.c.
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_variant.c: ditto.
* ext/win32ole/win32ole_variant.c: ditto.
* ext/win32ole/depend: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47172 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-13 12:46:23 +00:00
suke
fe8b513378 * ext/win32ole/win32ole.c: remove unused variable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47168 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-13 11:10:42 +00:00
suke
651b31e367 * ext/win32ole/win32ole.c(ole_search_handler_method, rescue_callback,
folerecord_inspect): use PRIsVALUE in rb_sprintf.

* ext/win32ole/win32ole_param.c(foleparam_inspect): ditto.

* ext/win32ole/win32ole_variable.c(folevariable_inspect): use
  PRIsVALUE in rb_sprintf, use rb_inspect.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47167 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-13 10:35:20 +00:00
svn
0f3e712e4a * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-12 15:09:46 +00:00
suke
47b2057a02 * ext/win32ole/win32ole.c: seperate WIN32OLE_PARAM src from win32ole.c
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_param.c: ditto.
* ext/win32ole/win32ole_param.h: ditto.
* ext/win32ole/depend: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-12 15:09:29 +00:00
svn
f4534ea38f * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47156 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-12 14:21:37 +00:00
suke
aeb8791dab * ext/win32ole/win32ole.c: refactoring. move some methods
into win32ole_type.c / win32ole_method.c
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_method.c: ditto.
* ext/win32ole/win32ole_method.h: ditto.
* ext/win32ole/win32ole_type.h: ditto.
* ext/win32ole/win32ole_type.h: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-12 14:21:22 +00:00
suke
7bf7bb84d3 * ext/win32ole/win32ole.c: refactoring. move
ole_typelib_from_itypeinfo into win32ole_typelib.c.
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_typelib.h: ditto.
* ext/win32ole/win32ole_typelib.h: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47154 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-12 14:00:45 +00:00
suke
eac5e58bb4 * ext/win32ole/win32ole.c (ole_create_dcom): use the converted
result if the argument can be converted to a string, to get rid
  of invalid access. Thanks to nobu. [ruby-dev:48467] [Bug #10127]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47153 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-12 12:51:36 +00:00
suke
1a83b21189 * ext/win32ole/win32ole.c: seperate WIN32OLE_METHOD src from
win32ole.c.
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_method.c: ditto.
* ext/win32ole/win32ole_method.h: ditto.
* ext/win32ole/depend: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-11 21:20:10 +00:00
suke
812c7a9efa * ext/win32ole/win32ole_variable.c(folevariable_inspect): refactoring.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-11 13:20:11 +00:00
suke
0aa9e15ea0 * ext/win32ole/win32ole.c: seperate WIN32OLE_VARIABLE src from
win32ole.c
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_variable.c: ditto.
* ext/win32ole/win32ole_variable.h: ditto.
* ext/win32ole/depend: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-11 11:50:17 +00:00
suke
cfb519a25e * ext/win32ole/win32ole_type.c: refactoring.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47125 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-10 03:23:39 +00:00
suke
98f1494664 * ext/win32ole/win32ole.c: separate WIN32OLE_TYPE src from win32ole.c.
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_type.c: ditto.
* ext/win32ole/win32ole_type.h: ditto.
* ext/win32ole/depend: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47107 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-08 15:37:32 +00:00
suke
707ff7bfb7 * ext/win32ole/win32ole_typelib.c (foletypelib_version): return
version string.

* test/win32ole/test_win32ole_typelib.rb (test_version): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47096 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-07 12:52:25 +00:00