summaryrefslogtreecommitdiffstats
path: root/dln.c
Commit message (Collapse)AuthorAgeFilesLines
* * dln.c (conv_to_posix_path): should initialize posix.eban2005-11-261-0/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@9617 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_inspect): replace sprintf() with "%s" format allmatz2005-07-191-2/+3
| | | | | | | | | | over the place by snprintf() to avoid integer overflow. * sample/svr.rb: service can be stopped by ill-behaved client; use tsvr.rb instead. git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@8799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * Makefile.in, common.mk: miniruby depens on MINIOBJS.nobu2005-04-201-0/+10
| | | | | | | | | | * dmydln.c (dln_load): dummy function to raise LoadError. * cygwin/GNUmakefile.in, {bcc32,win32,wince}/Makefile.sub: miniruby can't load extensions on Windows. git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@8364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c: typo fix.eban2005-02-071-2/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@7910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * stable version 1.8.2 released.matz2004-12-251-1/+1
| | | | | | | | | | | | | | | | | * lib/fileutils.rb (mkdir, mkdir_p): should ensure directory permission. (backportted from HEAD, 1.47) * lib/fileutils.rb (traverse, remove_dir): untaint trasted objects. (backportted from HEAD, 1.46) * io.c: cancel io_reopen() change on Dec. 24th. * dln.c: use <dlfcn.h> for NetBSD. [ruby-dev:25313] * io.c (rb_f_select): [ruby-dev:25312] git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@7655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update for VMS ports.akiyoshi2004-08-191-7/+64
| | | | | | | | * dln.c (dln_load): Modify to call lib$find_image_symbol for VMS. * io.c (rb_io_fwrite): Use fputc() for VMS non-stream file. git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@6793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c, io.c, lib/benchmark.rb, lib/cgi.rb, lib/csv.rb, lib/date.rb,nobu2004-04-181-2/+2
| | | | | | | | | | | | | lib/ftools.rb, lib/getoptlong.rb, lib/logger.rb, lib/matrix.rb, lib/monitor.rb, lib/set.rb, lib/thwait.rb, lib/timeout.rb, lib/yaml.rb, lib/drb/drb.rb, lib/irb/workspace.rb, lib/net/ftp.rb, lib/net/http.rb, lib/net/imap.rb, lib/net/telnet.rb, lib/racc/parser.rb, lib/rinda/rinda.rb, lib/rinda/tuplespace.rb, lib/shell/command-processor.rb, lib/soap/rpc/soaplet.rb, lib/test/unit/testcase.rb, lib/test/unit/testsuite.rb: typo fix. git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@6179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in: backport from 1.9 for Interix.eban2004-02-021-0/+3
| | | | | | | * dln.c (dln_load): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@5613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* dln.c: remove last second typo.matz2003-12-201-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5233 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (rb_with_disable_interrupt): prohibit thread contextmatz2003-12-201-1/+1
| | | | | | | switch during proc execution. [ruby-dev:21899] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c (aix_loaderror): should not use member named 'errno' whichmatz2003-12-041-2/+2
| | | | | | | | | | | | | might be a macro (e.g. on AIX). * io.c (read_all): do not depend on lseek position. [ruby-dev:22026] * eval.c (rb_eval): preserve $! value when retry happens in the rescue clause. [ruby-talk:86697] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5113 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (Init_stack): stack region is far smaller than usual ifmatz2003-11-221-6/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pthread is used. * marshal.c (w_extended): singleton methods should not be checked when dumping via marshal_dump() or _dump(). [ruby-talk:85909] * file.c (getcwdofdrv): avoid using getcwd() directly, use my_getcwd() instead. * merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine <sunshine@sunshineco.com>. [ruby-core:01596] * marshal.c (w_object): LINK check earlier than anything else, i.e. do not dump TYPE_IVAR for already dumped objects. (ruby-bugs PR#1220) * eval.c (rb_eval): call "inherited" only when a new class is generated; not on reopening. * eval.c (eval): prepend error position in evaluating string to * configure.in: revived NextStep, OpenStep, and Rhapsody ports which had become unbuildable; enhanced --enable-fat-binary option so that it accepts a list of desired architectures (rather than assuming a fixed list), or defaults to a platform-appropriate list if user does not provide an explicit list; made the default list of architectures for MAB (fat binary) more comprehensive; now uses -fno-common even when building the interpreter (in addition to using it for extensions), thus allowing the interpreter to be embedded into a plugin module of an external project (in addition to allowing embedding directly into an application); added checks for <netinet/in_systm.h> (needed by `socket' extension) and getcwd(); now ensures that -I/usr/local/include is employed when extensions' extconf.rb scripts invoke have_header() since extension checks on NextStep and OpenStep will fail without it if the desired resource resides in the /usr/local tree; fixed formatting of --help message. * Makefile.in: $(LIBRUBY_A) rule now deletes the archive before invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives (see configure's --enable-fat-binary option); added rule for new missing/getcwd.c. * defines.h: fixed endian handling during MAB build (see configure's --enable-fat-binary option) to ensure that all portions of the project see the correct WORDS_BIGENDIAN value (some extension modules were getting the wrong endian setting); added missing constants GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H define in NeXT section. * dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on NextStep since, on some installations, this value always resolves uselessly to zero. * dln.c: added error reporting to NextStep extension loader since the previous behavior of failing silently was not useful; now ensures that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined for OpenStep and Rhapsody; no longer includes <mach-o/dyld.h> twice on Rhapsody since this header lacks multiple-include protection, which resulted in "redefinition" compilation errors. * main.c: also create hard reference to objc_msgSend() on NeXT platforms (in addition to Apple platforms). * lib/mkmf.rb: now exports XCFLAGS from configure script to extension makefiles so that extensions can be built MAB (see configure's --enable-fat-binary option); also utilize XCFLAGS in cc_command() (but not cpp_command() because MAB flags are incompatible with direct invocation of `cpp'). * ext/curses/extconf.rb: now additionally checks for presence of these curses functions which are not present on NextStep or Openstep: bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(), setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(), wscrl(), wsetscrreg() * ext/curses/curses.c: added appropriate #ifdef's for additional set of curses functions now checked by extconf.rb; fixed curses_bkgd() and window_bkgd() to correctly return boolean result rather than numeric result; fixed window_getbkgd() to correctly signal an error by returning nil rather than -1. * ext/etc/etc.c: setup_passwd() and setup_group() now check for null pointers before invoking rb_tainted_str_new2() upon fields extracted from `struct passwd' and `struct group' since null pointers in some fields are common on NextStep/OpenStep (especially so for the `pw_comment' field) and rb_tainted_str_new2() throws an exception when it receives a null pointer. * ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for platforms such as NextStep and OpenStep which lack strdup(). * ext/socket/getaddrinfo.c: cast first argument of getservbyname(), gethostbyaddr(), and gethostbyname() from (const char*) to non-const (char*) for older platforms such as NextStep and OpenStep. * ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for platforms such as NextStep and OpenStep which lack strdup(); include <netinet/in_systm.h> if present for NextStep and OpenStep; cast first argument of gethostbyaddr() and getservbyname() from (const char*) to non-const (char*) for older platforms. * ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for platforms such as NextStep and OpenStep which lack strdup(). git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (tcp_s_gethostbyname): was usingmatz2003-07-251-3/+3
| | | | | | | | | uninitialized size_t value. [ruby-talk:76946] * Minor cleanups. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4156 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gcc -Wall clean-up.matz2003-07-241-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_upto): generate sequence according to "succ"matz2003-06-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | order. formerly check was done by dictionary order. [ruby-talk:74138] * string.c (rb_string_value): fill constant empty string along with setting ELTS_SHARED if str->ptr is NULL. [ruby-core:01179] * string.c (rb_string_value_ptr): ditto. * string.c (rb_check_string_type): ditto. * string.c (str_gsub): move END(0) check before mbclen2(). * string.c (scan_once): reduce END(0) check. * io.c (rb_io_initialize): accept fixnum mode. * eval.c (error_print): replace strchr() by memchr(), einfo may contain "\0". * pack.c (pack_unpack): range check for "@" move; initialize check for "m". * error.c (syserr_initialize): avoid buffer overflow. * file.c (rb_file_s_readlink): expand buffer until readlink succeed. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * defines.h (PATH_ENV): name of PATH environment. [new].usa2003-06-201-5/+1
| | | | | | | | | | | | | | | * defines.h (ENV_IGNORECASE): define for case insensitive platforms to access environment variables. * dln.c (dln_find_exe): use PATH_ENV instead of "PATH". * hash.c (env_delete, rb_f_getenv, env_fetch, rb_env_path_tainted, env_aset): ditto. * ruby.c (proc_options): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* commit miss.nobu2003-03-261-1/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3619 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c (dln_find_1): break if path list end, even for too longnobu2003-03-261-1/+3
| | | | | | | path names. (ruby-bugs-ja:PR#412) git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3618 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Updated Copyrights of Matz to 2003.michal2003-01-161-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in: Improve OpenBSD support. [obtained from: OpenBSDknu2002-12-311-1/+1
| | | | | | | | | ports] * dln.c (FUNCNAME_PATTERN): Ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3252 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (gc_sweep): adjust GC trigger.nobu2002-12-291-5/+6
| | | | | | | | | | | | | | * dln.c (init_funcname_len): get rid of gcc-3 -O3 warning. * eval.c (copy_node_scope): ditto. * hash.c (rb_hash_foreach, delete_if_i, select_i, each_value_i, each_key_i, each_pair_i, envix): ditto. * range.c (range_each_func): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in, defines.h, dir.c, dir.h, dln.c, error.c,uema22002-12-151-9/+11
| | | | | | | | | | | | | | | eval.c, file.c, hash.c, io.c, main.c, missing.c, process.c, ruby.c, rubysig.h, signal.c, st.c, util.c, util.h, bcc/Makefile.sub, win32/Makefile.sub, win32/win32.h, ext/Win32API/Win32API.c, ext/socket/getaddrinfo.c, ext/socket/getnameinfo.c, ext/socket/socket.c, ext/tcltklib/stubs.c : replace "NT" with "_WIN32", add DOSISH_DRIVE_LETTER * wince/exe.mak : delete \r at the end of lines. * wince/mswince-ruby17.def : delete rb_obj_become git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* WinCE patch mergedmatz2002-12-021-8/+17
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c (init_funcname_len): remove MAXPATHLEN dependency.matz2002-11-271-17/+7
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3096 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c: devert and add the MAXPATHLEN definition on mswin32/mingw32.eban2002-11-241-3/+9
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c: move the MAXPATHLEN definition in front.eban2002-11-241-4/+3
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (rb_find_file_ext): should not terminate searching withmatz2002-11-221-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | empty path, just ignore. * dir.c: remove <sys/parm.h> inclusion. * compar.c (cmp_eq,cmp_gt,cmp_ge,cmp_lt,cmp_le): check using rb_cmpint(). * error.c (init_syserr): remove sys_nerr dependency. * numeric.c (num_cmp): added to satisfy Comparable assumption. * eval.c (rb_add_method): "initialize" should be public if it is a singleton method. * regex.c (re_match): avoid dereferencing if size == 0. (ruby-bugs-ja:PR#360) * time.c (time_cmp): should return nil if an operand is not a number nor time. (ruby-bugs-ja:PR#359) * file.c (rb_stat_cmp): should return nil if an operand is not File::Stat. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3076 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c, eval.c: Use (*_NSGetEnviron()) instead of environ onknu2002-10-171-6/+3
| | | | | | | | | | | Darwin for namespace cleanness. [ruby-core:00537] * dln.c (dln_load): Fix Darwin support that has been disabled and switch to using it on Darwin instead of the system dlopen(). [ruby-core:00541] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix mem leaks (ruby-core:405, ruby-core:407)michal2002-09-051-14/+20
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c: remove definition rb_loaderror().H_Konishi2002-06-251-1/+0
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2595 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c: remark definition rb_loaderror().H_Konishi2002-06-241-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c (dln_load): rb_notimplement takes no argument.eban2002-06-171-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c (dln_load): need to preserve dln_strerror() result,nobu2002-06-171-3/+13
| | | | | | | calling other dl family can clear it. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (rb_clear_cache_by_class): new function.matz2002-05-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | * eval.c (set_method_visibility): should have clear cache forq updated visibility. * numeric.c (flo_to_s): default format precision to be "%.16g". * util.c (ruby_strtod): use own strtod(3) implementation to avoid locale hell. Due to this change "0xff".to_f no longer returns 255.0 * eval.c (avalue_to_yvalue): new function to distinguish yvalue (no-arg == Qundef) from svalue (no-arg == Qnil). * eval.c (rb_yield_0): use avalue_to_yvalue(). * eval.c (assign): warn if val == Qundef where it means rhs is void (e.g. yield without value or call without argument). * parse.y (value_expr): need not to warn for WHILE and UNTIL, since they can have return value (via valued break). git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (rb_quad_pack): get rid of escape sequences.eban2002-03-261-1/+1
| | | | | | | * dln.c (dln_load, __VMS): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c (dln_argv0): unused unless USE_DLN_A_OUT.nobu2002-03-251-0/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2266 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * the VMS support patch submitted by Akiyoshi, Masamichimatz2002-03-221-1/+33
| | | | | | | | | | | | <Masamichi.Akiyoshi@jp.compaq.com> is merged. * eval.c (exec_under): changing ruby_class is OK, but should not alter cbase. * eval.c (yield_under_i): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2258 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c (dln_load): use LoadLibrary instead of LoadLibraryEx.eban2002-03-061-2/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2165 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c (dln_load): fix typo.akr2002-02-281-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (expr_value, arg_value, primary_value): value_expr()matz2002-02-181-12/+35
| | | | | | | | | | | | | | | | | | | | | | | | | check in place. * eval.c (block_pass): "&nil" should clear block given. * dir.c (push_braces): remove MAXPATHLEN dependency. * dir.c (dir_s_globd): ditto. * dln.c (init_funcname): ditto. * dln.c (load_1): ditto. * dln.c (dln_load): ditto. * configure.in: add GNU/Hurd switches. * pack.c (pack_pack): allows comment in template strings. * pack.c (pack_unpack): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c (dln_strerror): fix a bug that sometimes made null message onusa2001-08-241-1/+1
| | | | | | | | | win32 (Tietew <tietew@tietew.net>'s patch). * win32/win32.c (mystrerror): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regex.c (re_search): should consider reverse search.matz2001-07-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * dir.c (dir_s_chdir): warn only when invoked from multiple threads or block is not given. * object.c (rb_convert_type): should use rb_rescue(), not rb_rescue2(). * range.c (range_init): ditto. * object.c (rb_obj_dup): should free generic_ivar if original owns them. * string.c (rb_str_each_line): should propagate taint mark. * ext/nkf/nkf.c (rb_nkf_kconv): ditto. * eval.c (rb_f_require): revamp for simpler implementation. * file.c (rb_find_file_noext): use String object, instead of passing char* around. * file.c (rb_find_file): ditto. * dln.c (dln_load): should use NSLINKMODULE_OPTION_BINDNOW. * ruby.c (load_file): local variables 'c' remain uninitialized on xflag. * regex.c (re_match): prefetched escaped character too early. * eval.c (rb_call0): add argument check for attr_readers. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * error.c (exc_exception): clone the receiver exception instead ofmatz2001-07-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | creating brand new exception object of the receiver. * eval.c (rb_eval_string_wrap): extend new ruby_top_self, not original self. * eval.c (rb_eval_cmd): respect ruby_wrapper if set. * eval.c (eval): do not update ruby_class unless scope is not provided. * eval.c (eval): preserve wrapper information. * eval.c (proc_invoke): ditto. * eval.c (block_pass): ditto. * parse.y (void_expr): too much warnings for void context (e.g. foo[1] that can be mere Proc call). * error.c (rb_name_error): new function to raise NameError with name attribute set. * eval.c (rb_f_missing): set name and args in the exception object. [new] * error.c (name_name): NameError#name - new method. * error.c (nometh_args): NoMethodError#args - new method. * lex.c (rb_reserved_word): lex_state after tRESCUE should be EXPR_MID. * gc.c (add_heap): allocation size of the heap unit is doubled for each allocation. * dir.c (isdelim): space, tab, and newline are no longer delimiters for glob patterns. * eval.c (svalue_to_avalue): new conversion scheme between single value and array values. * eval.c (avalue_to_svalue): ditto. * eval.c (rb_eval): REXPAND now uses avalue_to_svalue(), return and yield too. * eval.c (rb_yield_0): use avalue_to_svalue(). * eval.c (proc_invoke): Proc#call gives avaules, whereas Proc#yield gives mvalues. * eval.c (bmcall): convert given value (svalue) to avalue. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.c (proc_options): unexpected SecurityError happens when -T4.matz2001-05-301-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * regex.c (re_compile_pattern): * \1 .. \9 should be backreferences always. * regex.c (re_match): backreferences corresponding to unclosed/unmatched parentheses should fail always. * string.c (rb_str_cat): use rb_str_buf_cat() if possible. [new] * string.c (rb_str_append): ditto. * string.c (rb_str_buf_cat): remove unnecessary check (type, taint, modify) to gain performance. * string.c (rb_str_buf_append): ditto. * string.c (rb_str_buf_new): buffering string function. [new] * string.c (rb_str_buf_append): ditto. * string.c (rb_str_buf_cat): ditto. * time.c (make_time_t): local time adjustment revised. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (rb_ary_and): should not push frozen key string.matz2001-05-161-0/+1
| | | | | | | | | | | | | | | | | | * array.c (rb_ary_or): ditto. * eval.c (rb_thread_schedule): should save context before raising deadlock, saved context for current thread might be obsolete. * time.c (make_time_t): non DST timezone shift supported (hopefully). * time.c (make_time_t): strict range detection for negative time_t. * signal.c: SIGINFO added. * eval.c (rb_ensure): should not SEGV when prot_tag is NULL. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (block_pass): should not downgrade safe level.matz2001-05-021-10/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ext/dbm/extconf.rb: allow specifying dbm-type explicitly. * ext/dbm/extconf.rb: avoid gdbm if possible, because it leaks memory, whereas gdbm.so doesn't. potential incompatibility. * string.c (rb_str_insert): new method. * parse.y (yylex): lex_state after RESCUE_MOD should be EXPR_BEG. * array.c (rb_ary_insert): new method. * array.c (rb_ary_update): new utility function. * io.c (set_outfile): should check if closed before assignment. * eval.c (rb_eval): should preserve value of ruby_errinfo. * eval.c (rb_thread_schedule): infinite sleep should not cause dead lock. * array.c (rb_ary_flatten_bang): proper recursive detection. * eval.c (yield_under): need not to prohibit at safe level 4. * pack.c (pack_pack): p/P packs nil into NULL. * pack.c (pack_unpack): p/P unpacks NULL into nil. * pack.c (pack_pack): size check for P template. * ruby.c (set_arg0): wrong predicate when new $0 value is bigger than original space. * gc.c (id2ref): should use NUM2ULONG() * object.c (rb_mod_const_get): check whether name is a class variable name. * object.c (rb_mod_const_set): ditto. * object.c (rb_mod_const_defined): ditto. * marshal.c (w_float): precision changed to "%.16g" * eval.c (rb_call0): wrong retry behavior. * numeric.c (fix_aref): a bug on long>int architecture. * eval.c (rb_eval_string_wrap): should restore ruby_wrapper. * regex.c (re_compile_pattern): char class at either edge of range should be invalid. * eval.c (handle_rescue): use === to compare exception match. * error.c (syserr_eqq): comparison between SytemCallErrors should based on their error numbers. * eval.c (safe_getter): should use INT2NUM(). * bignum.c (rb_big2long): 2**31 cannot fit in 31 bit long. * regex.c (calculate_must_string): wrong length calculation. * eval.c (rb_thread_start_0): fixed memory leak. * parse.y (none): should clear cmdarg_stack too. * io.c (rb_fopen): use setvbuf() to avoid recursive malloc() on some platforms. * file.c (rb_stat_dev): device functions should honor stat field types (except long long such as dev_t). * eval.c (rb_mod_nesting): should not push nil for nesting array. * eval.c (rb_mod_s_constants): should not search array by rb_mod_const_at() for nil (happens for singleton class). * class.c (rb_singleton_class_attached): should modify iv_tbl by itself, no longer use rb_iv_set() to avoid freeze check error. * variable.c (rb_const_get): error message "uninitialized constant Foo at Bar::Baz" instead of "uninitialized constantBar::Baz::Foo". * eval.c (rb_mod_included): new hook called from rb_mod_include(). * io.c (opt_i_set): should strdup() inplace_edit string. * eval.c (exec_under): need to push cref too. * eval.c (rb_f_missing): raise NameError for "undefined local variable or method". * error.c (Init_Exception): new exception NoMethodError. NameError moved under ScriptError again. * eval.c (rb_f_missing): use NoMethodError instead of NameError. * file.c (Init_File): should redifine "new" class method. * eval.c (PUSH_CREF): sharing cref node was problematic. maintain runtime cref list instead. * eval.c (rb_eval): copy defn node before registering. * eval.c (rb_load): clear ruby_cref before loading. * variable.c (rb_const_get): no recursion to show full class path for modules. * eval.c (rb_set_safe_level): should set safe level in curr_thread as well. * eval.c (safe_setter): ditto. * object.c (rb_obj_is_instance_of): nil belongs to false, not true. * time.c (make_time_t): proper (I hope) daylight saving time handling for both US and Europe. I HATE DST! * eval.c (rb_thread_wait_for): non blocked signal interrupt should stop the interval. * eval.c (proc_eq): class check aded. * eval.c (proc_eq): typo fixed ("return" was ommitted). * error.c (Init_Exception): move NameError under StandardError. * class.c (rb_mod_clone): should copy method bodies too. * bignum.c (bigdivrem): should trim trailing zero bdigits of remainder, even if dd == 0. * file.c (check3rdbyte): safe string check moved here. * time.c (make_time_t): remove HAVE_TM_ZONE code since it sometimes reports wrong time. * time.c (make_time_t): remove unnecessary range check for platforms where negative time_t is available. * process.c (proc_waitall): should push Process::Status instead of Finuxm status. * process.c (waitall_each): should add all entries in pid_tbl. these changes are inspired by Koji Arai. Thanks. * process.c (proc_wait): should not iterate if pid_tbl is 0. * process.c (proc_waitall): ditto. * numeric.c (flodivmod): a bug in no fmod case. * process.c (pst_wifsignaled): should apply WIFSIGNALED for status (int), not st (VALUE). * io.c (Init_IO): value of $/ and $\ are no longer restricted to strings. type checks are done on demand. * class.c (rb_include_module): module inclusion should be check taints. * ruby.h (STR2CSTR): replace to StringType() and StringTypePtr(). * ruby.h (rb_str2cstr): ditto. * eval.c (rb_load): should not copy topleve local variables. It cause variable/method ambiguity. Thanks to L. Peter Deutsch. * class.c (rb_include_module): freeze check at first. * eval.c (rb_attr): sprintf() and rb_intern() moved into conditional body. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/Win32API/Win32API.c: remove Init_win32api().eban2001-03-261-3/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1278 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (argf_seek_m): wrong calling sequence of rb_io_seek().matz2001-03-131-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * parse.y (cond0): no special treatment of string literal in condition. * math.c: add acos, asin, atan, conh, sinh, tanh and hypot to Math. * configure.in: check hypot availablility. * missing/hypot.c: public domain rewrite of hypot. * parse.y (warn_unless_e_option): warning condition was wrong. * parse.y (warning_unless_e_option): ditto. * enum.c (enum_all): new method 'all?', which returns true if block returns true for all elements. * enum.c (enum_any): new method 'any?', which returns true if block retruns true for any of elements. * marshal.c (marshal_load): do not give warning unless explicitly set to verbose. * eval.c (rb_exit): give string value "exit" to SystemExit. * ruby.c (proc_options): -v should not print version if proc_options called via moreswitches(). * parse.y (stmt): while/until modifier must work for empty body. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (proc_call): should not modify ruby_block->frame.itermatz2001-02-261-1/+1
| | | | | | | | | | | | | | based on ruby_frame->iter altered by PUSH_ITER(). * eval.c (rb_thread_fd_close): should save current context before raising exception. * io.c (set_stdin): preserve original stdin. * io.c (set_outfile): preserve original stdout/stderr. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dir.c (dir_s_glob): supprt backslash escape of metacharactersmatz2001-02-141-1/+1
| | | | | | | | | | | | | | | | | | | and delimiters. * dir.c (remove_backslases): remove backslashes from path before calling stat(2). * dir.c (dir_s_glob): call rb_yield directly (via push_pattern) if block is given to the method. * dir.c (push_pattern): do not call rb_ary_push; yield directly. * eval.c (blk_copy_prev): reduced ALLOC_N too much. * eval.c (frame_dup): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e