Commit graph

4629 commits

Author SHA1 Message Date
matz
f0221db462 * re.c (rb_reg_expr_str): need to process backslashes properly.
* 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
2002-06-28 14:42:46 +00:00
ttate
98007267bc Add Importable::symbol.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-27 15:09:47 +00:00
nobu
33061b45b4 * eval.c (rb_eval): NODE_EVSTR is no longer used.
* 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
2002-06-24 07:20:42 +00:00
nobu
47993929c4 * ext/readline/readline.c (readline_readline): get rid of
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
2002-06-20 12:14:33 +00:00
eban
fa1f7befa9 * ext/extmk.rb, lib/mkmf.rb (xsystem): open the log file if xsystem is called.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-19 05:54:24 +00:00
matz
1979d9ae1f * parse.y (yylex): obsolete '?<whitespace>'; use '?\s', '?\n',
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
2002-06-18 06:29:07 +00:00
matz
8a6092725d ext/exmk.rb.in, lib/singleton.rb: remove nested ""s.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-13 04:53:39 +00:00
suke
698e61aaa7 avoid some warnings
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-12 12:23:10 +00:00
ttate
28b8274e51 Include ctype.h for isdigit().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-11 14:59:43 +00:00
ttate
2690939122 Check the length of proto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2554 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-11 14:54:51 +00:00
ttate
5434d73ef7 Get rid of STR2CSTR. (Thanks N.Nakada)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-11 14:44:53 +00:00
ttate
176542da7f bugfix. (Thanks U.Nakamura)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-11 11:16:56 +00:00
matz
22010642b2 * eval.c (rb_eval): ruby_frame->last_func may be null, if it's
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
2002-06-11 07:02:23 +00:00
H_Konishi
d0b3651906 new platform [bccwin32] merged.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-11 01:27:48 +00:00
ttate
ceade7b926 bugfix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2542 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-10 18:23:39 +00:00
ttate
5c1bdda10c Add DL::Importable::Internal::callback().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-10 17:47:48 +00:00
ttate
abca067fb6 dl.c (rb_dl_scan_callback_args): memcpy() -> cast and substitution
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-10 07:52:10 +00:00
ttate
48bd82e993 Get rid of rb_dl_set_callback() and rb_dl_get_callback().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-09 17:56:34 +00:00
ttate
2d5b7f7365 * ext/dl: change the callback mechanism.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2532 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-09 17:47:34 +00:00
nagai
a9f672c47b * tcltklib.c:
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
2002-06-05 01:56:47 +00:00
eban
160a9f79ef * ext/Win32API/extconf.rb: refactoring.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2522 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-04 09:52:28 +00:00
eban
9ba6e0738a * ext/socket/extconf.rb: The IPv6 stack of Cygwin is still incomplete.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-04 09:33:39 +00:00
eban
1320f85fb0 * ext/tcltklib/tcltklib.c (Init_tcltklib): moved the definition before actions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-04 08:03:43 +00:00
eban
4a470051b6 * ext/tk/lib/tkentry.rb: typo fix(!! -> ||).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2519 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-04 07:48:30 +00:00
matz
b7bc0cae53 * string.c (rb_str_aset): should raise error if an indexing string
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
2002-06-04 07:34:19 +00:00
nagai
4cb164ee2a * tkfont.rb: Fix bugs on TkFont.init_widget_font for Tk8.x.
* 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
2002-06-04 07:03:33 +00:00
nobu
dc010ff515 * ext/socket/getaddrinfo.c (gai_strerror): make literals const.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2513 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-03 16:02:16 +00:00
nobu
5df72288f8 * ext/socket/addrinfo.h: typo.
* ext/socket/getaddrinfo.c (gai_strerror): get rid of warning.

* ext/socket/socket.c (init_inetsock): ensures resources are
  freed at exceptions.

* ext/socket/socket.c (init_unixsock): ditto.

* ext/socket/socket.c (udp_connect): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2511 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-03 15:52:28 +00:00
suke
a52442f27e change PLATFORM with RUBY_PLATFORM.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2510 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-03 11:44:08 +00:00
suke
f14180707d merge win32ole from rough
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2508 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-01 12:34:30 +00:00
H_Konishi
d7c1784297 Wed May 29 18:55:47 2002 KONISHI Hiromasa <H_Konishi@ruby-lang.org>
* function renames my* and win32_* to rb_w32_* in win32/win32.c
	  fixed files win32/win32.c, win32/win32.h, win32/dir.h,
	              hash.c, rubysig.h, signal.c, ext/socket/socket.c


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-05-29 10:22:19 +00:00
matz
4ab1577db3 * parse.y: yyparse #defines moved from intern.h
* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@2500 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-05-29 05:20:39 +00:00
matz
6e87a54aec * ruby.c (proc_options): removed "-*-" support for #! line.
* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@2492 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-05-23 05:35:32 +00:00
ttate
15ac468a24 Get rid of a function.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-05-20 15:50:28 +00:00
ttate
77aad8b2f3 Get rid of a few functions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-05-20 15:47:59 +00:00
ttate
4bf76b4e6c rename PtrData::alloc and Struct#alloc to malloc respectively.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-05-20 15:35:48 +00:00
ttate
a2db8e72c1 Get rid of the declaration of rb_str_cat2().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2475 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-05-20 09:38:23 +00:00
ttate
849fb05bb1 Add DL::DLSTACK.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-05-15 06:23:05 +00:00
ttate
88cc3b3954 cast to long from char, short and int in ASM_PUSH_XXXX.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-05-12 19:54:10 +00:00
ttate
be122d47be * ext/dl: enable dl's stack emulation for constructing function call.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-05-11 23:30:40 +00:00
ttate
22b07f5488 enable dl's stack emulation for constructing function call.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-05-11 23:13:34 +00:00
matz
253581c432 * re.c (rb_reg_s_quote): # also should be quoted.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-05-07 08:32:01 +00:00
nobu
ba90943088 * ext/iconv/iconv.c (iconv_try): should initialize exceptions
properly. (ruby-bugs-ja:PR#232)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-05-07 07:09:02 +00:00
eban
2b4ad0cc22 * ext/extmk.rb.in, lib/mkmf.rb: use 'do...end' instead of '{}' for Borland make.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-05-02 09:31:29 +00:00
ttate
b5a8ba178f Catch the exception SystemExit in extconf.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2422 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-05-01 15:21:34 +00:00
ttate
ca55fe4f0d L641: rb_float_new(*((float*)ptr)) -> rb_float_new(*((double*)ptr)).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-05-01 04:13:28 +00:00
ttate
076a82105a ext/dl/ptr.c: missing break in switch statements.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-26 07:03:32 +00:00
nobu
b596fbbc37 * ext/stringio/stringio.c (strio_mark): must check if ptr is NULL
first.  [ruby-talk:38873]

* lib/mkmf.rb (create_makefile): should print depend file when
  make is other than nmake.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-23 16:22:25 +00:00
usa
ad8dbab888 * ext/extmk.rb.in (create_makefile): use `{$(srcdir)}' directive instead
of `$(srcdir)/' when including depend file.

* lib/mkmf.rb (create_makefile): add `{$(srcdir)}' when including depend
  file.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-23 15:43:26 +00:00
ttate
73331b45e0 Add a sample which shows how to deal with C++ libraries.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-20 16:09:44 +00:00