exception for "break". [ruby-dev:21348]
* eval.c (proc_invoke): use result instead of prot_tag->retval.
retval is no longer propagated to the ancestors.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4567 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/openssl/extconf.rb: add check for assert.h.
* ext/openssl/ossl.c (ossl_buf2str): new function to convert
C buffer to String and free buffer.
* ext/openssl/ossl.c (ossl_x509_ary2sk): new function to convert
Array of OpenSSL::X509 to STACK_OF(X509) with exception safe.
* ext/openssl/ossl.c (ossl_to_der, ossl_to_der_if_possible): new
functions to convert object to DER string.
* ext/openssl/ossl.h: ditto.
* ext/openssl/ossl_bio.c (ossl_membio2str): new function to convert
BIO to String object and free BIO.
* ext/openssl/ossl_bio.h: ditto.
* ext/openssl/ossl_pkcs7.c (ossl_pkcs7_to_der): add for "to_der".
* ext/openssl/ossl_x509name.c (ossl_x509name_to_der): ditto.
* ext/openssl/ossl_x509ext.c (ossl_x509ext_to_der): ditto.
* ext/openssl/ossl_x509ext.c (create_ext_from_array): removed
and reimplement in openssl/x509.rb.
* ext/openssl/ossl_x509attr.c: reimplemented and disable some
method temporarily. this class doesn't work fine without ASN.1
data support;-) I'll rewrite in near future.
* ext/openssl/lib/openssl/x509.c (X509::Attribute): get rid off
unused code.
* ext/openssl/lib/openssl/x509.c (X509::ExtensionFactory): refine all.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4558 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
To parse Mac's CR separated CSV, do like this.
CSV.open("mac.csv", "r", ?,,?\r) { |row| p row.to_a }
The 3rd parameter in this example ?, is for column separater and the 4th ?\r
is for row separater. Row separater is nil by default. Nil separater means
"\r\n" or "\n".
* test/csv/test_csv.rb: add tests for above feature.
* test/csv/mac.csv: added. Sample CR separated CSV file.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
expressions instead of prototypes. the functions remain yet for
binary compatibility. [ruby-talk:81758]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
libeay32.dll doesn't export functions defined in conf_api.h.
this workaround is to avoid link error.
* ext/openssl/ossl_config.c (ossl_config_initialize): ditto.
* ext/openssl/ossl_config.c (ossl_config_add_value): ditto.
* ext/openssl/ossl_config.c (set_conf_section_i): should check
if the argument is Array.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c (localjump_destination): stop at the scope where the current
block was created. [ruby-dev:21353]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4539 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
the message.
* lib/webrick/log.rb (BasicLog#log): add "\n" only if needed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4536 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/openssl/ossl_config.c: refine all with backward compatibility.
* ext/openssl/ossl_config.h: export GetConfigPtr() and DupConfigPtr().
* ext/openssl/ossl_x509.c: added new constants under X509 module.
DEFAULT_CERT_AREA, DEFAULT_CERT_DIR, DEFAULT_CERT_FILE,
DEFAULT_CERT_DIR_ENV, DEFAULT_CERT_FILE_ENV and DEFAULT_PRIVATE_DIR.
* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_free): don't free
the members of the struct. it's left to GC.
* ext/openssl/ossl_x509ext.c (ossl_x509_set_config): add for config=.
* ext/openssl/ossl_x509ext.c (Xossl_x509extfactory_initialize):
add attr readers: issuer_certificate, subject_certificate,
subject_request, crl and config.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4531 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/openssl/ossl_config.c: refine all with backward compatibility.
* ext/openssl/ossl_config.h: export GetConfigPtr() and DupConfigPtr().
* ext/openssl/ossl_x509.c: new constants (DEFAULT_CERT_AREA,
DEFAULT_CERT_DIR, DEFAULT_CERT_FILE, DEFAULT_CERT_DIR_ENV,
DEFAULT_CERT_FILE_ENV and DEFAULT_PRIVATE_DIR) in X509 module.
* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_free): don't free
the members of the struct. it's left to GC.
* ext/openssl/ossl_x509ext.c (ossl_x509_set_config): add for config=.
* ext/openssl/ossl_x509ext.c (Xossl_x509extfactory_initialize):
add attr readers: issuer_certificate, subject_certificate,
subject_request, crl and config.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
compatibility stuff. and remove DEFINE_ALLOC_WRAPPER from
all sources.
* ext/openssl/ossl_x509ext.c (X509::Extension.new): new method.
* ext/openssl/ossl_x509ext.c (X509::Extension#oid=): new method.
* ext/openssl/ossl_x509ext.c (X509::Extension#value=): new method.
* ext/openssl/ossl_x509ext.c (X509::Extension#critical=): new method.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4522 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (CreateChild): fix condition about whether to call
shell or not.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4519 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
array as argument.
* test/ruby/test_*.rb: moved invariants to left side in
assert_equal, and use assert_nil, assert_raises and so on.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4516 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
name.
* win32/win32.c (isInternalCmd): distinguish command.com and
cmd.exe.
* win32/win32.c (make_cmdvector): a character just after wildcard
was ignored. [ruby-core:01518]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
system's alloca. [ruby-core:01503]
* io.c (rb_f_gets): should call next_argv() before type check
current_file. [ruby-list:38336]
* eval.c (proc_invoke): should retrieve retval when pcall is true.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_gc.rb: remove useless part which was for dumping test result.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4503 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
sample/test.rb into test/ruby/test_* kindly removed GC test (the last section
in the original test) to reduce things to be worried.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4502 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_*.rb: split sample/test.rb into 28 test/unit testcases. some
tests could not be translates... search '!!' mark to see it.
* test/csv/test_csv.rb: should require 'csv', not '../lib/csv'. test runner
should set load path correctly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4498 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
%w/%W, otherwise they are ignored only when interpolation is
enabled. [ruby-dev:21325]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
valid delimiter.
* misc/ruby-mode.el (ruby-here-doc-end-match): must quote
arbitrary string to use as regexp.
* misc/ruby-mode.el (ruby-font-lock-maybe-here-docs): must not
call `ruby-here-doc-end-match' unless `ruby-here-doc-beg-re'
matched.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
be located in this directory. dir/file name convention;
test/{module_name}/test_{testcase_name}.rb
test/{module_name}/{needed_files}
someday, someone will write testrunner which searches test_*.rb and
run testcases automatically
* test/csv/*: add testcase for lib/csv.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4484 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
the patch is submitted by nmu <nmu@users.sourceforge.jp>.
* ext/socket/getaddrinfo.c (getaddrinfo): should use in6_addr8 on
some platforms.
* ext/socket/getnameinfo.c (getnameinfo): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4481 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/tk/lib/{tk.rb, tkcanvas.rb, tkfont.rb, tktext.rb} :
bug fix and improvement of font control
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4480 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/iconv/iconv.c (iconv_fail): just yield error and return the
result if a block is given.
* ext/iconv/iconv.c (iconv_convert): yield error and append the
result if a block is given.
* ext/iconv/charset_alias.rb (charset_alias): optional third
argument.
* ext/iconv/charset_alias.rb (charset_alias): use CP932 instead of
SHIFT_JIS on cygwin.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Dave Butcher.
* eval.c (Init_Thread): protect thgroup_default. suggested by Guy
Decoux in [ruby-talk:80623]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
thread termination.
* eval.c (rb_thread_start_0): should not error_print() within
terminated thread, because $stderr used by it might be
overriden now. [ruby-dev:21280]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c (POP_TAG): no longer propagate retval. retval is now set
directly by localjump_destination().
* eval.c (localjump_destination): new function to cast
return/break local jump.
* eval.c (rb_yield_0): stop TAG_RETURN/TAG_BREAK escaping.
* variable.c (rb_autoload_load): call const_missing if autoloading
constant is not defined to allow hook.
* eval.c (rb_eval): use rb_const_get_from() instead of
rb_const_get_at().
* eval.c (is_defined): forgot to check NODE_COLON3.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4462 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/tcltklib/tcltklib.c : some methods have no effect if on slave-IP
* ext/tcltklib/tcltklib.c : can create a interpreter without Tk
* ext/tcltklib/tcltklib.c : bug fix on handling exceptions
* ext/tcltklib/MANUAL.euc : modify
* ext/tk/lib/tk.rb : freeze some core modules
* ext/tk/lib/multi-tk.rb : more secure
* ext/tk/lib/tk.rb: TkVariable.new(array) --> treat the array as the
Tk's list
* ext/tk/lib/tk.rb: improve accessibility of TkVariable object
* ext/tk/lib/tk.rb, ext/tk/lib/tkfont.rb, ext/tk/lib/tkcanvas.rb,
ext/tk/lib/tktext.rb : fix bug of font handling
* ext/tk/lib/tkfont.rb TkFont.new() accepts compound fonts
* process.c: bug fix
* process.c: add rb_secure(2) to methods of Process::{UID,GID,Sys}
* process.c: deny handling IDs during evaluating the block given to
the Process::{UID,GID}.switch method
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
included modules, if klass is Object. [ruby-talk:79302]
* numeric.c (check_uint): check should be done using UINT_MAX, not
INT_MAX. this fix is submitted by <lyle@knology.net> in
[ruby-core:01486]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
consistent with *a = [1], which set [[1]] to a.
* node.h: merge NODE_RESTARY to NODE_SPLAT.
* parse.y: rules simplified a bit by removing NODE_RESTARY.
* sample/test.rb: updated for new assignment behavior.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
dispatch. added yaml_org_handler for faster dispatch of
transfers to base types.
* lib/yaml/rubytypes.rb: removed handling of builtins from
Ruby library.
* ext/syck/token.c: quoted and block scalars are now implicit !str
* ext/syck/implicit.c: empty string detected as !null.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4423 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/webrick/https.rb: SSLSocket handling is moved to webrick/ssl.rb.
* lib/webrick/compat.rb (File::fnmatch): remove old migration code.
* lib/webrick/httpserver.rb (HTTPServer#run): ditto.
* lib/webrick/server.rb (GenericServer#listen): the body of this
method is pull out as Utils::create_lisnteners.
* lib/webrick/utils.rb (Utils::create_lisnteners): new method.
* lib/webrick/server.rb (GenericServer#start): should not
through unknown errors. and refine comments.
* ext/openssl/lib/openssl/ssl.rb (SSLServer#accept): should close
socket if SSLSocket raises error.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
a builtin.
* ext/openssl/lib/openssl/buffering.rb (Buffering#close): ditto.
* ext/openssl/lib/openssl/buffering.rb (Buffering#puts): should
add a return to the tails of each line.
* ext/openssl/lib/openssl/ssl.rb: new class OpenSSL::SSL::SSLServer.
* ext/openssl/lib/net/protocols.rb (SSLIO#ssl_connect): use sync_close.
* ext/openssl/sample/echo_svr.rb: use SSLServer.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
headers are inconsistent at this macro. [ruby-core:01432]
* ext/curses/extconf.rb: check if _XOPEN_SOURCE_EXTENDED breaks.
* ext/tcltklib/stubs.c: Status macro in X11/Xthreads.h bothers
winspool.h
* instruby.rb: make list at first instead of iterator.
[ruby-talk:79347]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
method to specify if the underlying IO will be closed in
SSLSocket#close.
* ext/openssl/lib/openssl/buffering.rb: add forwarders to
setsockopt, getsockopt and fcntl.
* ext/openssl/lib/net/protocols.rb: enable sync for SSLSocket.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
is larger than long. [ruby-dev:21194]
http://www.geocities.co.jp/SiliconValley-PaloAlto/1409/ruby/beos.html
* error.c (syserr_eqq): errno might exceed Fixnum limit.
* error.c (Init_Exception): moved base initialization from
init_syserr().
* inits.c (rb_call_inits): postpone initializing errnos until
Bignum is available.
* ext/curses/curses.c (_XOPEN_SOURCE_EXTENDED): needed to let
keyname() and so on be declared.
* ext/curses/curses.c (curses_resizeterm, window_resize):
arguments conflicted with macros in term.h.
* ext/curses/curses.c (Curses module methods): ensure
initialized. [ruby-dev:21191]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
[ruby-core:01408]
* eval.c (Init_Thread): Continuation#[] added. [ruby-talk:79028]
* parse.y (mlhs_node): should allow "::Foo" (colon3) as lhs.
* parse.y (lhs): ditto.
* parse.y (yylex): should return tCOLON3 right after kCLASS.
[ruby-talk:78918]
* error.c (exc_initialize): was converting argument to string too
eagerly. Only check was needed. [ruby-talk:78958]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
class to first argument of Data_Wrap_Struct(). (ruby-bugs PR#1109)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
value even if it's nil. [ruby-dev:21180] by OMAE, jun <jun66j5@ybb.ne.jp>.
* lib/debug.rb(debug_command): incomplete regexp.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
from 1k to 16k bytes. [ruby-talk:78603]
* ext/openssl/ossl_ssl.c (ossl_sslctx_s_alloc): enable
partial write to allow interruption in SSLSocket#sysread.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: Fix Cygwin specific naming of libraries to
be net distribution compliant. (ruby-bugs PR#1077)
cygwin-ruby18.dll -> cygruby18.dll
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Linux/ia64. This makes gc.c compile but miniruby coredumps for
the moment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/extmk.rb (extmake): set library name as source file name in
Init_ext(). [ruby-dev:21137]
* lib/mkmf.rb (Logging::postpone): postpone logging messages after
heading message as the result of the block.
* lib/mkmf.rb (macro_defined?): append newline to src unless ended
with it.
* lib/mkmf.rb (have_library): allow nil function name to just
append a library. (ruby-bugs:PR#1083)
* lib/mkmf.rb (pkg_config): should append additional libraries to
$libs but not $LIBS. [ruby-dev:21137]
* ext/io/wait/extconf.rb: check DOSISH macro instead of platform.
* ext/digest/sha1/extconf.rb: have_library already appends library
name.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4337 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
[ruby-dev:21107]
* marshal.c (w_object): should not call w_extended for USRMARSHAL
dump. [ruby-dev:21106]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io.c (appendline): clearerr(3) before raising exception, since
exception may be captured by rescue. [ruby-talk:77794]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
ancestors unless the recursive flag is set. [ruby-list:38007]
* hash.c (env_each_key): use env_keys to avoid environment modify
on the fly.
* hash.c (env_each_value): use env_values for safety.
* hash.c (env_each): allocate environment array first.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
"self", making it default to "int".
* ext/syck/rubyext.c (syck_emitter_simple_write): ditto.
* gc.c (rb_gc): should mark backing store region on IA64.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4266 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
need to restore previous value. [ruby-talk:77577]
* array.c (rb_ary_fill): array length may be changed during the
block execution. [ruby-talk:77579]
* array.c (rb_ary_zip): ditto.
* array.c (rb_ary_fill): ditto.
* hash.c (env_reject_bang): length may be changed during the block
execution.
* hash.c (env_clear): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
magic number when optimizer turned on, regardless of rlimit
values.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4247 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* marshal.c (w_object): check has been dropped. "_dump must return
string." [ruby-dev:21024]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
iteration. reported on [ruby-talk:77500], and fixed by
K.Sasada <ko1@namikilab.tuat.ac.jp> on [ruby-talk:77504]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/net/ftp.rb (last_response_code): new method. lastresp is now
alias to last_response_code.
* lib/net/ftp.rb (last_response): new method.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
by File::PATH_SEPARATOR.
* lib/mkmf.rb (create_makefile): DLDFLAGS include $LDFLAGS again.
[ruby-talk:76894]
* lib/mkmf.rb (init_mkmf): not default $LDFLAGS to LDFLAGS for
ruby itself, but default $DLDFLAGS to DLDFLAGS.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
[ruby-talk:77381]
* string.c (Init_String): no setter type check for $;
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e