summaryrefslogtreecommitdiffstats
path: root/ruby.c
Commit message (Collapse)AuthorAgeFilesLines
* * ext/stringio/stringio.c (strio_set_string, strio_reopen): checknobu2003-11-061-0/+3
| | | | | | | | | | | | | | | tainted. * ext/stringio/stringio.c (strio_copy, strio_ungetc, strio_write, strio_putc): add infection. * ext/stringio/stringio.c (strio_path): just nil. [ruby-dev:21846] * ruby.c (proc_options): reserve searched script path in the source file name table. [ruby-list:38765] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.c (proc_options): -F set compiled regular expression to $;.matz2003-07-301-1/+1
| | | | | | | | | [ruby-talk:77381] * string.c (Init_String): no setter type check for $; git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.c: typo fix.eban2003-07-301-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * marshal.c (w_object): if object responds to 'marshal_dump',matz2003-07-291-3/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Marshal.dump uses it to dump object. unlike '_dump', marshal_dump returns any kind of object. * marshal.c (r_object0): restore instance by calling 'marshal_load' method. unlike '_load', it's an instance method, to handle cyclic reference. * marshal.c (marshal_load): all objects read from file should be tainted. [ruby-core:01325] * lib/timeout.rb (Timeout::timeout): execute immediately if sec is zero. * ext/socket/socket.c (socks_init): typo fixed. [ruby-talk:77232] * ext/socket/extconf.rb: the default value for --enable-socks is taken from ENV["SOCKS_SERVER"]. [ruby-talk:77232] * ruby.c (proc_options): add -W option. -W0 to shut up all warning messages. [ruby-talk:77227] * error.c (rb_warn): no message will be printed if the value of $VERBOSE is "nil", i.e. perfect silence. * ruby.c (verbose_setter): $VERBOSE value is either true, false, or nil. * io.c (Init_IO): no "read" check for $stdin. in addition some function names has been changed. * regex.c (re_match_exec): incorrect multibyte match. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4220 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_upto): generate sequence according to "succ"matz2003-06-231-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-1/+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
* * ruby.c: don't call VirtualQuery in ruby_init_loadpath()uema22003-04-221-0/+3
| | | | | | | on mswince. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (rb_yield_0): call avalue_to_mrhs() to assign blockmatz2003-03-251-1/+4
| | | | | | | | | parameter |a|. [ruby-dev:19897] * ruby.c (ruby_set_argv): freeze argument strings. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.c (proc_options): script argument is in effect only when -e is not given.nobu2003-02-131-10/+8
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3491 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.c (ruby_init_loadpath): ensures buffer terminatednobu2003-02-131-11/+10
| | | | | | | | | | before use strncpy(). * ruby.c (proc_options): avoid SEGV at -S with no arguments. (ruby-bugs-ja:PR#391) git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* -Wall cleanups (removed unused vars, no 'code has no effect' warnings)michal2003-01-161-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3346 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
* * ruby.c (ruby_init_loadpath): under Windows, get the modulenobu2003-01-051-4/+5
| | | | | | | | | | | | | | path from an internal address instead of hard coded library name. * cygwin/GNUmakefile.in, bcc32/Makefile.sub, win32/Makefile.sub (CPPFLAGS): removed LIBRUBY_SO macro. * bcc32/Makefile.sub, win32/Makefile.sub (config.h): no longer depends on makefiles. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in, defines.h, dir.c, dir.h, dln.c, error.c,uema22002-12-151-0/+3
| | | | | | | | | | | | | | | 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
* * eval.c, file.c, gc.c, io.c, object.c, ruby.c, ruby.h, struct.c,knu2002-10-291-1/+1
| | | | | | | | ext/socket/socket.c: differentiate long and int; use proper printf type specifiers and do casts where appropriate. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bcc32/mkexports.rb: to work on cygwin via telnet.nobu2002-10-031-9/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ruby-win32:358] * ext/tcltklib/tcltklib.c (ip_invoke): requires command name argument. [ruby-dev:18438] * eval.c (ruby_init, ruby_options): Init_stack() with local location. (ruby-bugs-ja:PR#277) * eval.c (rb_call0): disable trace call. [ruby-dev:18074] * eval.c (eval, rb_load): enable trace call. [ruby-dev:18074] * eval.c (rb_f_require): set source file name for extension libraries. [ruby-dev:18445] * ruby.c (translate_char): translate a character in a string; DOSISH only. [ruby-dev:18274] * ruby.c (ruby_init_loadpath): added argv[0] handling under Human68K. [ruby-dev:18274] * ruby.c (proc_options): translate directory separator in $0 to '/'. [ruby-dev:18274] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2929 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (call_trace_func): should not call trace function whilenobu2002-09-221-3/+4
| | | | | | | | | | | | | | compilation. * eval.c (rb_call0): also inside c-func. * parse.y (yycompile): ditto. * ruby.c (require_libraries): preserve source file/line for each require. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (gc_sweep): does reclaim nodes in also compile time, if we can.aamine2002-09-021-1/+4
| | | | | | | | | * ruby.c (load_file): omit GC if we can. * parse.y (ruby_parser_stack_on_heap): new function. * intern.h (ruby_parser_stack_on_heap): added. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2780 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.c (require_libraries): prevent ruby_sorcefile from GC.nobu2002-08-271-4/+6
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* *.c: Int vs Long cleanupmichal2002-08-211-2/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.c (set_arg0): Correct the position of #endif.knu2002-08-121-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y: yyparse #defines moved from intern.hmatz2002-05-291-3/+3
| | | | | | | | | | | | | | | | | | | * ruby.c (proc_options): access prefixed "ruby_yydebug". * applied modifies to pacify some of gcc -Wall warnings. * parse.y (arg): no more ugly hack for "**", so that "-2**2" to be parsed as "(-2)**2", whereas "- 2**2" or "-(2)**2" to be parsed as "-(2**2)". * parse.y (yylex): '-2' to be literal fixnum. [new] * time.c (time_succ): new method for Range support. * time.c (time_arg): nil test against v[6] (usec). git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2500 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.c (proc_options): option parsing problem.nobu2002-05-231-2/+1
| | | | | | | (ruby-bugs-ja:PR#233) git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.c (proc_options): removed "-*-" support for #! line.matz2002-05-231-8/+6
| | | | | | | | | | | | | * io.c (rb_io_s_sysopen): new method to get a raw file descriptor. [new] * ext/socket/socket.c (tcp_sysaccept): new method to return an accepted socket fd (integer). [new] * ext/socket/socket.c (unix_sysaccept,sock_sysaccept): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2492 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.c (proc_options): -T consumes digits only.nobu2002-05-221-1/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2490 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
* * gc.c (rb_source_filename): added. holds unique strings for filenobu2002-03-071-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | names with GC space. * gc.c (rb_gc_mark): mark source file name. * gc.c (gc_sweep): ditto. * gc.c (Init_GC): initialize source file name table. * intern.h (rb_source_filename): added. * eval.c (rb_eval_string): use rb_source_filename(). * parse.y (yycompile): ditto. * ruby.c (proc_options): ditto. * ruby.c (load_file): ditto. * ruby.c (ruby_script): ditto. * ruby.c (ruby_prog_init): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2166 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.c (load_file): avoid SEGV on '#' only input.nobu2002-02-101-0/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * intern.h: add prototypes.nobu2001-12-171-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | rb_gc_enable(), rb_gc_disable(), rb_gc_start(), rb_str_new5() rb_str_buf_append(), rb_str_buf_cat(), rb_str_buf_cat2(), rb_str_dup_frozen() * ruby.h: added declaration. rb_defout, rb_stdin, rb_stdout, rb_stderr, ruby_errinfo * rubyio.h: changed double include guard macro to RUBYIO_H. * array.c (inspect_call): make static. * eval.c (dvar_asgn): ditto. * io.c (rb_io_close_read): ditto. * lex.c (rb_reserved_word): ditto. * ruby.c: (req_list_head, req_list_last): ditto. * ruby.c (require_libraries): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (unix_addr): getsockname(2) may result len = 0.matz2001-10-021-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ext/socket/socket.c (unix_peeraddr): getpeername(2) may result len = 0. * string.c (rb_str_subpat_set): support function for new argument pattern String#[re,offset] = val. [new] * eval.c (POP_BLOCK): rb_gc_force_recycle() was called too much. Should not be called if SCOPE_DONT_RECYCLE is set. * string.c (rb_str_aref_m): new argument pattern String#[re,offset]. [new] * string.c (rb_str_substr): should return an instance of receiver's class. * string.c (rb_str_succ): ditto. * array.c (rb_ary_subseq): ditto. * array.c (rb_ary_initialize): Array.new([1,2,3]) => [1,2,3]. [new] * string.c (rb_str_reverse): should return an instance of receiver's class. * string.c (rb_str_times): ditto. * array.c (rb_ary_times): ditto * string.c (str_gsub): ditto. * string.c (rb_str_ljust): ditto. * string.c (rb_str_rjust): ditto. * string.c (rb_str_center): ditto. * eval.c (eval): retrieves file, line information from binding. * eval.c (intersect_fds): counts intersecting fds. * eval.c (rb_thread_schedule): only fds requested by each thread count as select_value. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.c (proc_option): fix shift ARGV issueeban2001-09-031-1/+3
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.c (proc_options): should not alter origargv[].matz2001-09-031-35/+44
| | | | | | | | | | | | | | | | | | | | | | * ruby.c (set_arg0): long strings for $0 dumped core. * ruby.c (set_arg0): use setprogtitle() if it's available. * io.c (rb_io_popen): accept integer flags as mode. * file.c (rb_find_file_ext): extension table can be supplied from outside. renamed. * eval.c (rb_f_require): replace rb_find_file_noext by rb_find_file_ext. * eval.c (rb_provided): should also check feature without extension. * numeric.c (flo_to_s): do not rely on decimal point to be '.' git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1722 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* commit miss.nobu2001-09-011-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1717 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.c (set_arg0): prevent SEGV when val is longer than thenobu2001-09-011-16/+17
| | | | | | | | | | original arguments. * ruby.c (ruby_process_options): initialize total length of original arguments at first. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1715 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-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* * configure.in: remove unnecessary AC_CANONICAL_BUILDeban2001-05-281-6/+15
| | | | | | | | | | | | | * defins.h: #define HAVE_SETITIMER on Cygwin(bug fixed). * ruby.c: use relative path from LIBRUBY_SO. * ruby.c: don't use -mwin32 option on Cygwin. * cygwin/GNUmakefile.in: ditto. * ext/sdbm/_sdbm: ditto. * ext/tcltklib/extconf.rb: ditto. * ext/tcltklib/stubs.c: ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (block_pass): should not downgrade safe level.matz2001-05-021-8/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* * io.c (argf_seek_m): wrong calling sequence of rb_io_seek().matz2001-03-131-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* * string.c (rb_str_delete_bang): delete! should take at least 1matz2001-02-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | argument. * ruby.c (load_file): add rb_gc() after loading to avoid extraordinary memory growth. * dir.c (rb_glob_helper): "./foo" should match "foo", not "./foo". * eval.c (ev_const_get): retrieve Object's constant if no current class is available (e.g. defining singleton class for Fixnums). * eval.c (ev_const_defined): check Object's constant if no current class is available (e.g. defining singleton class for Fixnums). * time.c (time_timeval): negative time interval shoule not be allowed. * eval.c (proc_call): ignore block to `call' always, despite of being orphan or not. * eval.c (rb_yield_0): should check based on rb_block_given_p() and rb_f_block_given_p(). * configure.in (frame-address): --enable-frame-address to allow __builtin_frame_address() to be used. * eval.c (stack_length): use __builtin_frame_address() based on the macro USE_BUILTIN_FRAME_ADDRESS. * gc.c (rb_gc): ditto. * gc.c (Init_stack): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1223 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * time.c (time_timeval): negative time interval shoule not bematz2001-02-271-0/+4
| | | | | | | | | | allowed. * eval.c (proc_call): ignore block to `call' always, despite of being orphan or not. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1220 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby.c (ruby_init_loadpath): convert '\' to '/'eban2001-02-091-10/+12
| | | | | | | before finding executable file path. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1172 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (str_independent): should not clear str->orig here.matz2001-01-291-1/+1
| | | | | | | it's too early. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1153 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ebaneban2001-01-101-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1104 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.c (load_file): typo(rb_load_fail -> rb_load_failed).eban2001-01-101-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1103 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * enum.c (enum_inject): new method.matz2001-01-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gc.c (rb_gc_call_finalizer_at_exit): clear klass member of terminating object. * eval.c (rb_call): raise exception for terminated object. * bignum.c (bigdivrem): t2 might be too big for signed long; do not use rb_int2big(), but rb_uint2big(). * error.c (rb_load_fail): new func to report LoadError. * ruby.c (load_file): use rb_load_fail. * eval.c (ruby_finalize): should enclosed by PUSH_TAG/POP_TAG. * gc.c (rb_gc_mark): link 2 of NODE_IFUNC should not be explicitly marked. it may contain non object pointer. * re.c (reg_s_last_match): Regexp::last_match(nth) returns nth substring of the match (alternative for $& and $<digit>). * eval.c (rb_mod_define_method): wrong comparison for blocks. * gc.c (id2ref): should handle Symbol too. * gc.c (id2ref): should print original ptr value * eval.c (rb_iterate): NODE_CFUNC does not protect its data (nd_tval), so create new node NODE_IFUNC for iteration C function. * eval.c (rb_yield_0): use NODE_IFUNC. * gc.c (rb_gc_mark): support NODE_IFUNC. * gc.c (mem_error): prohibit recursive mem_error(). (ruby-bugs-ja:PR#36) * eval.c (rb_thread_fd_writable): should not switch context if rb_thread_critical is set. * eval.c (rb_thread_wait_fd): ditto. * eval.c (rb_thread_wait_for): ditto. * eval.c (rb_thread_select): ditto. * eval.c (rb_thread_join): join during critical section causes deadlock. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ebaneban2000-12-131-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* matzmatz2000-11-201-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1049 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* matzmatz2000-10-021-1/+3
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e