Commit graph

354 commits

Author SHA1 Message Date
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
eban
512db243d7 * configure.in: cleanup for autoconf 2.5x.
* configure.in: use gcc -shared instead of dllwrap on Cygwin/MinGW.
* ext/extmk.rb, lib/mkmf.rb: get rid of "--def=".


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-19 07:39:40 +00:00
eban
71e36853ee * ext/socket/extconf.rb: include <windows.h>, <winsock.h> on _WIN32.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-19 07:29:59 +00:00
ttate
75ebf39107 ext/dl/ptr.c: remove rb_dlptr_cast().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-19 04:05:54 +00:00
nobu
a411f0365b copied from ext/etc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-18 06:13:43 +00:00
knu
59c8d11b83 * ext/Setup*, ext/bigfloat/*: Back out the import of BigFloat in
favor of its forthcoming successor, BigDecimal.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-17 15:00:23 +00:00
matz
9a24232fd2 * pack.c (pack_unpack): should treat 'U' in character unit, not in
byte unit.

* error.c (exc_initialize): should clear backtrace information.

* io.c (rb_io_fptr_cleanup): should close IO created by IO.new(fd).

* rubyio.h: remove FMODE_FDOPEN


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-15 07:48:47 +00:00
ttate
cb944528b6 Correct.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-14 17:19:44 +00:00
ttate
66484faf1b Edit the documentation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-14 15:21:23 +00:00
ttate
3a202ff2b4 raise() -> rb_raise(). (Thanks Tetsuya Watanabe)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-11 09:38:26 +00:00
ttate
3bd7404423 Add DL::Importable::Internal::Struct#alloc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-11 08:07:01 +00:00
ttate
2990a00153 Add dl.txt instead of README.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-11 07:09:33 +00:00
ttate
27a30bbf18 remove README and README.html
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-11 06:55:12 +00:00
ttate
96d0ef6670 Support "unsigned short".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2357 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-11 06:35:48 +00:00
ttate
38698dbbe3 Add "unsigned short".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-11 05:32:22 +00:00
ttate
1ee89595bc define alias "struct" and "union" in the module Importable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-11 03:06:33 +00:00
ttate
061ed0d389 Add/Fix types.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2353 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-10 14:45:22 +00:00
ttate
8bd818494d Implement the substitution for structure members.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2352 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-10 14:13:39 +00:00
matz
19c42c0740 * variable.c (rb_obj_remove_instance_variable): raise NameError if
specified instance variable is not defined.

* variable.c (generic_ivar_remove): modified to check ivar
  existence.

* file.c (rb_file_s_extname): new method based on the proposal
  (and patch) from Mike Hall. [new]

* eval.c (error_handle): default to 1 unless status is set.

* eval.c (ruby_options): guard error_handle() with PROT_NONE.

* eval.c (ruby_stop): ditto.

* math.c (math_acosh): added. [new]

* math.c (math_asinh): ditto.

* math.c (math_atanh): ditto.

* struct.c (rb_struct_each_pair): method added. [new]

* class.c (rb_singleton_class): wrong condition; was creating
  unnecessary singleton class.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-10 08:45:26 +00:00
nobu
e223518948 * ext/stringio/stringio.c (check_modifiable): performance
improvement.  avoid calling rb_str_modify() twice.

* ext/stringio/stringio.c (strio_ungetc): ditto.

* ext/stringio/stringio.c (strio_putc): ditto.

* ext/stringio/stringio.c (strio_write): ditto, and use
  rb_str_cat() as possible.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-09 03:52:39 +00:00
ttate
dbdde236cb improve the prototype parser.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2341 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-05 17:12:48 +00:00
ttate
f027ab80dc "extern" and "[]" of the module Importable returns a symbol.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2340 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-05 16:33:01 +00:00
ttate
8d08d9f513 Add dl/struct.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-05 05:11:11 +00:00
ttate
289fe2b8ee Get rid of ineffective encoding/decoding procedures.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-04 14:17:19 +00:00
ttate
5f8d02cbbc DLSTR(argv[i]) => DLSTR(RSTRING(argv[i])->ptr)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2337 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-04 11:29:56 +00:00
ttate
556556e450 bugfix (a few bugs seems to be remaining yet.)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-04 11:17:23 +00:00