aboutsummaryrefslogtreecommitdiffstats
path: root/ext
Commit message (Collapse)AuthorAgeFilesLines
* * ext/stringio/stringio.c (strio_initialize): RSTRING(mode)->ptrnobu2002-08-281-6/+17
| | | | | | | | | can be NULL. * ext/stringio/stringio.c (strio_ungetc): fix buffer overflow. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (rb_thread_cleanup): should not modify the globalmatz2002-08-211-0/+19
| | | | | | | variable curr_thread. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (sort_2): *a - *b may overflow.matz2002-08-191-19/+37
| | | | | | | | | | | | | | | | * array.c (ary_new): len*sizeof(VALUE) may be a positive value. * array.c (rb_ary_initialize): ditto. * object.c (rb_class_allocate_instance): move singleton class check from rb_obj_alloc(). * re.c (rb_reg_initialize): should not modify frozen Regexp. * ext/tcltklib/tcltklib.c (ip_init): allocation framework. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ole_invoke: retry when calling by reference is fail.suke2002-08-131-2/+20
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (rb_hash_replace): should copy ifnone.matz2002-08-132-10/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * hash.c (rb_hash_dup): should preserve HASH_PROC_DEFAULT and HASH_DELETED flags. * hash.c (rb_hash_shift): shift from empty hash should not return its default proc. * hash.c (rb_hash_default_proc): new method. [new] * array.c (rb_ary_aref): no need for Bignum check. * array.c (rb_ary_aset): explicit Bignum check removd. * numeric.c (fix_aref): normalize bignum before bit-op. * bignum.c (rb_big_rand): max may be Bignum zero. * bignum.c (rb_cstr_to_inum): should normalize bignums, to avoid returning fixable bignum value. * bignum.c (rb_uint2big): there should be no zero sized bignum. * ext/extmk.rb.in: extmake() that works properly for both tkutil (tk/tkutil.so) and digest/sha1. * hash.c (rb_hash_equal): should check HASH_PROC_DEFAULT too. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2706 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (rb_big_cmp): use dbl2big() for Floats, instead ofmatz2002-08-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | big2dbl(). * bignum.c (Init_Bignum): rb_big_zero_p() removed. There may be Bignum zero. * eval.c (rb_call0): new argument added for original method name. preserve original method name in frame->orig_func. * eval.c (is_defined): use frame->orig_func, not last_func. * eval.c (rb_eval): ditto. * eval.c (method_call): supply data->oid also to rb_call0(). * object.c (rb_class_allocate_instance): call rb_obj_alloc() when called from alias, thus invoke original "allocate". * eval.c (remove_method): removing allocate from classes should cause NameError. * hash.c (rb_hash_equal): should check default values. * ext/socket/socket.c (s_recvfrom): update RSTRING len. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32ole.c(WIN32OLE#ole_methods): list up all methods.suke2002-08-101-115/+172
| | | | | | | * win32ole.c(WIN32OLE#ole_method_help): get all method information. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/Win32API/extconf.rb: check existence of <windows.h>.eban2002-08-091-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/racc/cparse/cparse.c: reduce goto.aamine2002-08-061-46/+46
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* typonobu2002-08-061-17/+17
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/racc/cparse/cparse.c (parse_main): avoid GCC 3 warning.eban2002-08-061-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * MANIFEST: add lib/racc/parser.rb.aamine2002-08-052-385/+443
| | | | | | | | * ext/racc/cparse/cparse.c: code refine. * ext/racc/cparse/MANIFEST: add depend. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2688 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Multiple call of the initialize.ttate2002-08-053-0/+9
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Conform to the allocation framework.ttate2002-08-045-49/+83
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/curses/curses.c: follow allocation framework.nobu2002-08-041-23/+35
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/strscan/strscan.c: follow allocation framework.aamine2002-08-021-109/+208
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (tokadd_string): ignore backslashed spaces in %w.matz2002-08-011-4/+9
| | | | | | | | * enum.c (enum_find): do not use rb_eval_cmd(); should not accept a string for if_none. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Get rid of "return".ttate2002-07-301-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2675 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/tcltklib/stubs.c (ruby_tcltk_stubs): win32_getenv returnseban2002-07-301-0/+6
| | | | | | | | | the same address always, so allocate string by ruby_strdup. * win32/win32.c: prototype; rb_w32_open_osfhandle(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/extmk.rb.in: always use File.expand_path for $top_srcdir.eban2002-07-291-6/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/extmk.rb.in (create_makefile): use Regexp in gsub.eban2002-07-261-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2657 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * random.c: replace with Mersenne Twister RNG.matz2002-07-261-10/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * eval.c (jump_tag_but_local_jump): preserve retval in LocalJumpError exceptions. * parse.y (command): no more check for "super outside of method". * eval.c (rb_mod_define_method): should set last_class and last_func in the block->frame. * eval.c (error_handle): should handle TAG_THROW as well. * parse.y (yylex): new decimal notation '0d4567'. * parse.y (yylex): new octal notation '0o777'. * parse.y (string_content): every string_content node should return string only. use NODE_EVSTR to coercing. * eval.c (rb_eval): NODE_EVSTR support. * re.c (rb_reg_quote): avoid unnecessary string allocation. * string.c (get_pat): quote metachracters before compiling a string into a regex. * string.c (rb_str_split_m): special treatment of strings of size 1, but AWK emulation. now uses get_pat(). * string.c (rb_str_match_m): quote metacharacters. * string.c (rb_str_match2): ditto. * ext/socket/socket.c (sock_addrinfo): make all 3 versions of getaddrinfo happy. [ruby-core:00184] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/stringio/stringio.c (strio_gets_internal): fixed for recordnobu2002-07-111-2/+2
| | | | | | | separator longer than 1. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2635 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_slice_bang): if there's no correspondingmatz2002-07-112-2/+16
| | | | | | | | | | | | | | | | | | | | substring, slice! should return nil without exception. * array.c (rb_ary_insert): type fixed. * string.c (rb_str_split_m): accept separator value nil as well. * string.c (rb_str_become): was leaking memory. * class.c (rb_include_module): should not alter other classes/modules by inclusion. by this fix, local order may not be preserved for some cases. * class.c (include_class_new): module may be T_ICLASS; retrieve original module information. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2632 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * re.c (rb_reg_expr_str): need to process backslashes properly.matz2002-06-283-39/+39
| | | | | | | | | | | | | | | | | | * object.c (rb_any_to_a): declare Object#to_a to be obsolete. * object.c (rb_Array): do not convert nil into [] automagically. * object.c (rb_Integer): use "to_int" instead of "to_i". [experimental] * object.c (nil_to_f): new method. * object.c (rb_Integer): Symbols and nil should cause error. * object.c (rb_Float): nil should cause error. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2608 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add Importable::symbol.ttate2002-06-271-39/+55
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (rb_eval): NODE_EVSTR is no longer used.nobu2002-06-242-2/+2
| | | | | | | | | | | | | | | | | * eval.c (eval): not enforce to make assigned variables dynamic. * parse.y (string): split rules to strings/xstring/regexp to allow arbitrary statements inside string interpolation. * parse.y (here_document): splitted into three phases. * parse.y (literall_append, literal_concat): added. append/concatinate string literals. * sample/test.rb (valid_syntax): adjust line number for BEGIN. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/readline/readline.c (readline_readline): get rid ofnobu2002-06-201-0/+3
| | | | | | | libreadline's bug. (ruby-bugs-ja:PR#268) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2588 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/extmk.rb, lib/mkmf.rb (xsystem): open the log file if xsystem is called.eban2002-06-191-2/+6
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (yylex): obsolete '?<whitespace>'; use '?\s', '?\n',matz2002-06-181-1/+1
| | | | | | | | | | | | | | | | etc, instead. * parse.y (yylex): no here document after a dot. * parse.y (yylex): should have set lex_state after '`'. * parse.y (yylex): should have set lex_state properly after tOP_ASGN. * bignum.c (rb_big2dbl): return canonical HUGE_VAL for infinity. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/exmk.rb.in, lib/singleton.rb: remove nested ""s.matz2002-06-131-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* avoid some warningssuke2002-06-122-11/+10
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Include ctype.h for isdigit().ttate2002-06-111-0/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Check the length of proto.ttate2002-06-111-0/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2554 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Get rid of STR2CSTR. (Thanks N.Nakada)ttate2002-06-113-5/+7
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* bugfix. (Thanks U.Nakamura)ttate2002-06-112-4/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (rb_eval): ruby_frame->last_func may be null, if it'smatz2002-06-111-22/+28
| | | | | | | | | | | | | | | | | | | | | | | | | called outside of a method. * parse.y (arg): use INT2NUM, not INT2FIX for tUMINUS. * parse.y (arg): unnecessary negative tPOW treatment. * parse.y (tokadd_escape): wrong backslash escapement. * parse.y (stmt,arg): too much void value check. * parse.y (stmt,arg): need to check void value on rules which does not use node_assign(). * ext/socket/socket.c (ipaddr): need not to taint hostnames. * range.c (range_include): should be based on "<=>", whereas member? still is based on "each". * range.c (range_min,range_max): redefine methods based on "<=>". git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* new platform [bccwin32] merged.H_Konishi2002-06-1110-40/+160
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* bugfix.ttate2002-06-103-1/+19
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2542 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add DL::Importable::Internal::callback().ttate2002-06-101-9/+47
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* dl.c (rb_dl_scan_callback_args): memcpy() -> cast and substitutionttate2002-06-101-4/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Get rid of rb_dl_set_callback() and rb_dl_get_callback().ttate2002-06-091-2/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/dl: change the callback mechanism.ttate2002-06-097-243/+213
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2532 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * tcltklib.c:nagai2002-06-051-26/+42
| | | | | | | Stop the running zombi-eventloop when mainloop_watchdog is killed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/Win32API/extconf.rb: refactoring.eban2002-06-041-5/+6
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2522 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/extconf.rb: The IPv6 stack of Cygwin is still incomplete.eban2002-06-041-3/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/tcltklib/tcltklib.c (Init_tcltklib): moved the definition before actions.eban2002-06-041-6/+7
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/tk/lib/tkentry.rb: typo fix(!! -> ||).eban2002-06-041-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2519 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_aset): should raise error if an indexing stringmatz2002-06-042-4/+5
| | | | | | | | | | | | is not found in the receiver. * sprintf.c (rb_f_sprintf): "%d" should convert objects into integers using Integer(). * lib/tempfile.rb (Tempfile::size): added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2517 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * tkfont.rb: Fix bugs on TkFont.init_widget_font for Tk8.x.nagai2002-06-0410-171/+721
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tkafter.rb: Add self to 1st argument of interval- and loop-proc TkAfter#current_interval returns an interval (sleep) time value TkAfter#current_args returns an array of arguments TkAfter#return_value returns a return value of last loop-proc e.g. TkAfter.new( proc{|obj| 500 - obj.current_interval}, 10, [proc{|obj| p obj.current_args}, 'proc', 1], proc{|obj| p obj.current_args; ['return', 2]}, [proc{|obj| p obj.return_value p ['proc', obj.current_args[0].call(obj.return_value[1], obj.current_args[1])]}, proc{|*args| args[0] + args[1]}, 1], proc{p ['proc', 4]} ).start(100) * tk*.rb: Allow to use Symbols for parameters. Allow new notation of constructor (also allow old notation). e.g. TkFrame.new('classname'=>'User'){|base| pack f = TkFrame.new(base, :classname=>'ButtonFrame').pack TkButton.new( :parent => f, :text => 'Quit', :command => proc{exit} ).pack( :fill => :x, :pady => 2 ) } * tkcanvas.rb: (TkcItem) Add 'coords' parameter to the canvas item constructor (for new notation of constructor). e.g. c = TkCanvas.new.pack l = TkcLine.new(c, :coords=>[[0,0], [100,100]]) * tcltklib.c: New 'mainloop' and 'mainloop_watchdog'. The priority of their event-loop can be controlled. They accept an optional argument. If it false, they don't exit although the root widget is destroyed. This function is sometimes useful, if it is used with 'restart'. 'mainloop' can't treat Thread#join/value in a callback routine. (e.g. TkButton.new(:command=>proc{p Thread.new{button.invoke}.value}) ) 'mainloop_watchdog' can treat them, but watchdog thread is always running (so, a little heavier than 'mainloop'). If the purpose of using Thread#join/value is to do something under some safe-level, please use Proc object. (e.g. :command=>proc{$SAFE=1;proc{$SAFE=2;button.invoke}.call;p $SAFE}) * tk.rb: Support functions of new 'mainloop' and 'mainloop_watchdog'. * tk.rb: (Tk.restart) Add 'app-name' paramater and 'use' parameter. 'app-name' specifies the name and the resource class of the application. If 'app-name' is specified to 'xxx', the application class on the resource database is set to 'Xxx' and the application name is changed by the same rule of Tk.appname method. 'use' specifies the main window for embedding the root widget instead of generating a new window. * tk.rb: Add new parameter 'widgetname' to the widget constructor to support effective use of Resource Database. For example, the resource 'Xxx*quit.text: QUIT' can set the text of the button generated by the following code. e.g. Tk.restart('Xxx') TkButton.new(nil, 'widgetname'=>'quit', 'command'=>proc{exit}).pack Tk.mainloop * tk.rb: TkOption::get always returns a tainted string. Add TkOption::new_proc_class. It generates a class to import procedures defined on the resource database. For example, there is a following resource file. ----< resource-test >------------ *CMD.foo: {|*args| p [$SAFE, :foo, args]} *CMD.XXX.bar: {|*args| p [$SAFE, :bar, args]} *Button.command: ruby {p self; p $SAFE; TkOption::CMD::XXX.bar(1,2,3)} --------------------------------- The following code is a sample of use of the resource file. e.g. require 'tk' TkOption.readfile 'resource-test' p TkOption.new_proc_class(:CMD, [:foo], 1) p TkOption.new_proc_class(:XXX, [:bar], 2, false, TkOption::CMD) TkButton.new(:text=>'test').pack Tk.mainloop git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e