Commit graph

66 commits

Author SHA1 Message Date
ko1
b79c868296 * include/ruby/ruby.h, thread.c: rename is_ruby_native_thread() to
ruby_native_thread_p().
* ext/tk/tcltklib.c: apply it.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-25 07:28:51 +00:00
nagai
59a07a0690 Ruby/Tk :: provisional support on Ruby-VM and Tcl/Tk8.5.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-21 08:57:35 +00:00
nobu
0dec7d5788 * ext/tk/tcltklib.c (Init_tcltklib): use rb_set_end_proc().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13105 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-18 08:44:44 +00:00
nobu
f1622c195d * file.c (rb_file_s_rename): deleted code to get rid of a bug of
old Cygwin.

* file.c (rb_file_truncate): added prototype of GetLastError()
  on cygwin.  [ruby-dev:31239]

* include/ruby/intern.h (is_ruby_native_thread): prototype.

* missing/strftime.c (strftime): fix printf format and actual
  arguments.

* ext/Win32API/Win32API.c (Win32API_initialize): ditto.

* ext/tk/tcltklib.c (ip_finalize): ditto.

* ext/win32ole/win32ole.c (lcid_installed): ditto.

* ext/socket/getnameinfo.c: include stdio.h always.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-22 05:33:54 +00:00
nobu
2b592580bf * include/ruby: moved public headers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-10 03:06:15 +00:00
ko1
e7a993656c * ext/tk/tcltklib.c : fix to compile on YARV
ruby_errinfo -> rb_errinfo(),
          ruby_safe_level -> rb_safe_level().



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11449 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-12-31 23:12:35 +00:00
nagai
938d00b54b * ext/tk/tcltklib.c: shouldn't run the killed thread at callback.
[ruby-talk: 227408]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-12-01 07:43:05 +00:00
nobu
ca9d8f0930 * ext/tk/tcltklib.c: use rb_ary_new3() since RARRAY_LEN() is not l-value.
* ext/tk/tkutil/tkutil.c: use RARRAY_PTR() and RARRAY_LEN() and etc.
  fixed: [ruby-dev:29473]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-05 13:07:06 +00:00
matz
2156870525 * ruby.h (struct RArray): embed small arrays.
(RARRAY_LEN): defined for accessing array members.
  (RARRAY_PTR): ditto.

* array.c: use RARRAY_LEN and RARRAY_PTR.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-02 14:42:08 +00:00
usa
6790891ef0 * ext/Win32API/Win32API.c (Win32API_initialize): use RSTRING_PTR and
RSTRING_LEN.

* ext/tk/stubs.c, ext/tk/tcltklib.c, ext/tk/tkutil/tkutil.c: ditto.

* ext/win32ole/win32ole.c (ole_val2olevariantdata): ditto.

* lib/mkmf.rb (create_makefile): follow nil.to_s.

* win32/resource.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-31 11:56:42 +00:00
nagai
d2271cbdd1 * ext/tk/tcltklib.c: make SEGV risk lower at exit.
* ext/tk/lib/tk.rb: ditto.

* ext/tk/lib/multi-tk.rb: fail to call function-style methods on slave
  interpreters. The strategy (MultiTkIp_PseudoToplevel_Evaluable) to
  fix the problem is a little tricky. You may have to take care of
  conflicting with it.
* ext/tk/lib/tk.rb: a little change for the pseudo-toplevel strategy.
* ext/tk/lib/tk/font.rb: ditto.
* ext/tk/lib/tk/msgcat.rb: ditto.
* ext/tk/lib/tkextlib/itk/incr_tk.rb: ditto.

* ext/tk/sample/demos-en/widget: fail to call function-style methods
  on sample scripts. To fix it, a strategy which similar to the way
  on MultiTiIp is used. Please take care when re-write and re-run a
  demo script on the Widget-Demo code viewer.
* ext/tk/sample/demos-jp/widget: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10505 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-10 09:52:30 +00:00
nagai
835ea57cd3 * ext/tk/tcltklib.c (ip_make_menu_embeddable): help to make a menu
widget embeddable (pack, grid, and so on) like as a general widget.
  However, an embeddable menu may require to be definied some event
  bindings for general use.
* ext/tk/lib/tk/event.rb: [bug fix] Tk.callback_break and
  Tk.callback_continue don't work on MultiTkIp.
* ext/tk/lib/multi-tk.rb: ditto.
* ext/tk/lib/tk.rb: lack of Tk.callback_return.
* ext/tk/lib/tk/menu.rb: improve creating clone menus.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-03 10:08:11 +00:00
nagai
efb806f46c * ext/tk/tcltklib.c: forgot to update TCLTKLIB_RELEASE_DATE.
* ext/tk/lib/tk.rb (tk_tcl2ruby): [bug fix] somtimes fail to convert
  a tcl string to a ruby object if the tcl string includes "\n".


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-27 13:51:45 +00:00
nagai
6fa7d6cb01 * ext/tk/tcltklib.c (ip_delete): fix SEGV when a slave-ip is deleted
on callback.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-26 09:41:34 +00:00
usa
bc6a1d8dcf * ext/socket/getaddrinfo.c (freeaddrinfo, get_name): fixed typo.
* ext/tk/tcltklib.c (tcl_eval, tcl_global_eva): ditto.

* ext/zlib/zlib.c (rscheck): constified.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-21 08:32:22 +00:00
matz
1b7465e893 * eval.c, file.c, etc.: code-cleanup patch from Stefan Huehner
<stefan at huehner.org>.  [ruby-core:08029]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10351 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-20 18:02:17 +00:00
nobu
3e5f70a815 * math.c (log2): may be a macro.
* parse.y (args, block_param, f_args): pass f_post_arg to #params.

* util.c (powersOf10): constified.

* ext/readline/readline.c: include extconf.h first.

* ext/ripper/eventids2.c: removed tLAMBDA_ARG.

* ext/tk/tcltklib.c (lib_fromUTF8_core): removed conflict.

* ext/tk/tkutil/tkutil.c (cbsubst_get_subst_arg): rb_id2name() is
  defined as const now.

* ext/win32ole/win32ole.c (fole_missing): ditto.

* lib/mkmf.rb (create_makefile): force to create extconf header.

* lib/optparse.rb (order!): use Proc#yield.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-09 23:18:04 +00:00
matz
9b383bd6cf * sprintf.c (rb_str_format): allow %c to print one character
string (e.g. ?x).

* lib/tempfile.rb (Tempfile::make_tmpname): put dot between
  basename and pid.  [ruby-talk:196272]
* parse.y (do_block): remove -> style block.

* parse.y (parser_yylex): remove tLAMBDA_ARG.

* eval.c (rb_call0): binding for the return event hook should have
  consistent scope.  [ruby-core:07928]

* eval.c (proc_invoke): return behavior should depend whether it
  is surrounded by a lambda or a mere block.

* eval.c (formal_assign): handles post splat arguments.

* eval.c (rb_call0): ditto.

* st.c (strhash): use FNV-1a hash.

* parse.y (parser_yylex): removed experimental ';;' terminator.

* eval.c (rb_node_arity): should be aware of post splat arguments.

* eval.c (rb_proc_arity): ditto.

* parse.y (f_args): syntax rule enhanced to support arguments
  after the splat.

* parse.y (block_param): ditto for block parameters.

* parse.y (f_post_arg): mandatory formal arguments after the splat
  argument.

* parse.y (new_args_gen): generate nodes for mandatory formal
  arguments after the splat argument.

* eval.c (rb_eval): dispatch mandatory formal arguments after the
  splat argument.

* parse.y (args): allow more than one splat in the argument list.

* parse.y (method_call): allow aref [] to accept all kind of
  method argument, including assocs, splat, and block argument.

* eval.c (SETUP_ARGS0): prepare block argument as well.

* lib/mathn.rb (Integer): remove Integer#gcd2. [ruby-core:07931]

* eval.c (error_line): print receivers true/false/nil specially.

* eval.c (rb_proc_yield): handles parameters in yield semantics.

* eval.c (nil_yield): gives LocalJumpError to denote no block
  error.

* io.c (rb_io_getc): now takes one-character string.

* string.c (rb_str_hash): use FNV-1a hash from Fowler/Noll/Vo
  hashing algorithm.

* string.c (rb_str_aref): str[0] now returns 1 character string,
  instead of a fixnum.	[Ruby2]

* parse.y (parser_yylex): ?c now returns 1 character string,
  instead of a fixnum.	[Ruby2]

* string.c (rb_str_aset): no longer support fixnum insertion.

* eval.c (umethod_bind): should not update original class.
  [ruby-dev:28636]

* eval.c (ev_const_get): should support constant access from
  within instance_eval().  [ruby-dev:28327]

* time.c (time_timeval): should round for usec floating
  number.  [ruby-core:07896]

* time.c (time_add): ditto.

* dir.c (sys_warning): should not call a vararg function
  rb_sys_warning() indirectly.	[ruby-core:07886]

* numeric.c (flo_divmod): the first element of Float#divmod should
  be an integer. [ruby-dev:28589]

* test/ruby/test_float.rb: add tests for divmod, div, modulo and remainder.

* re.c (rb_reg_initialize): should not allow modifying literal
  regexps.  frozen check moved from rb_reg_initialize_m as well.

* re.c (rb_reg_initialize): should not modify untainted objects in
  safe levels higher than 3.

* re.c (rb_memcmp): type change from char* to const void*.

* dir.c (dir_close): should not close untainted dir stream.

* dir.c (GetDIR): add tainted/frozen check for each dir operation.

* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_symbol_arg):
  typo fixed.  a patch from Florian Gross <florg at florg.net>.

* eval.c (EXEC_EVENT_HOOK): trace_func may remove itself from
  event_hooks.	no guarantee for arbitrary hook deletion.
  [ruby-dev:28632]

* util.c (ruby_strtod): differ addition to minimize error.
  [ruby-dev:28619]

* util.c (ruby_strtod): should not raise ERANGE when the input
  string does not have any digits.  [ruby-dev:28629]

* eval.c (proc_invoke): should restore old ruby_frame->block.
  thanks to ts <decoux at moulon.inra.fr>.  [ruby-core:07833]
  also fix [ruby-dev:28614] as well.

* signal.c (trap): sig should be less then NSIG.  Coverity found
  this bug.  a patch from Kevin Tew <tewk at tewk.com>.
  [ruby-core:07823]

* math.c (math_log2): add new method inspired by
  [ruby-talk:191237].

* math.c (math_log): add optional base argument to Math::log().
  [ruby-talk:191308]

* ext/syck/emitter.c (syck_scan_scalar): avoid accessing
  uninitialized array element.	a patch from Pat Eyler
  <rubypate at gmail.com>.  [ruby-core:07809]

* array.c (rb_ary_fill): initialize local variables first.  a
  patch from Pat Eyler <rubypate at gmail.com>.	 [ruby-core:07810]

* ext/syck/yaml2byte.c (syck_yaml2byte_handler): need to free
  type_tag.  a patch from Pat Eyler <rubypate at gmail.com>.
  [ruby-core:07808]

* ext/socket/socket.c (make_hostent_internal): accept ai_family
  check from Sam Roberts <sroberts at uniserve.com>.
  [ruby-core:07691]

* util.c (ruby_strtod): should not cut off 18 digits for no
  reason.  [ruby-core:07796]

* array.c (rb_ary_fill): internalize local variable "beg" to
  pacify Coverity.  [ruby-core:07770]

* pack.c (pack_unpack): now supports CRLF newlines.  a patch from
  <tommy at tmtm.org>.	[ruby-dev:28601]

* applied code clean-up patch from Stefan Huehner
  <stefan at huehner.org>.  [ruby-core:07764]

* lib/jcode.rb (String::tr_s): should have translated non
  squeezing character sequence (i.e. a character) as well.  thanks
  to Hiroshi Ichikawa <gimite at gimite.ddo.jp> [ruby-list:42090]

* ext/socket/socket.c: document update patch from Sam Roberts
  <sroberts at uniserve.com>.  [ruby-core:07701]

* lib/mathn.rb (Integer): need not to remove gcd2.  a patch from
  NARUSE, Yui <naruse at airemix.com>.	[ruby-dev:28570]

* parse.y (arg): too much NEW_LIST()

* eval.c (SETUP_ARGS0): remove unnecessary access to nd_alen.

* eval.c (rb_eval): use ARGSCAT for NODE_OP_ASGN1.
  [ruby-dev:28585]

* parse.y (arg): use NODE_ARGSCAT for placeholder.

* lib/getoptlong.rb (GetoptLong::get): RDoc update patch from
  mathew <meta at pobox.com>.  [ruby-core:07738]

* variable.c (rb_const_set): raise error when no target klass is
  supplied.  [ruby-dev:28582]

* prec.c (prec_prec_f): documentation patch from
  <gerardo.santana at gmail.com>.  [ruby-core:07689]

* bignum.c (rb_big_pow): second operand may be too big even if
  it's a Fixnum.  [ruby-talk:187984]

* README.EXT: update symbol description.  [ruby-talk:188104]

* COPYING: explicitly note GPLv2.  [ruby-talk:187922]

* parse.y: remove some obsolete syntax rules (unparenthesized
  method calls in argument list).

* eval.c (rb_call0): insecure calling should be checked for non
  NODE_SCOPE method invocations too.

* eval.c (rb_alias): should preserve the current safe level as
  well as method definition.

* process.c (rb_f_sleep): remove RDoc description about SIGALRM
  which is not valid on the current implementation. [ruby-dev:28464]

 Thu Mar 23 21:40:47 2006  K.Kosako  <sndgk393 AT ybb.ne.jp>

* eval.c (method_missing): should support argument splat in
  super.  a bug in combination of super, splat and
  method_missing.  [ruby-talk:185438]

* configure.in: Solaris SunPro compiler -rapth patch from
  <kuwa at labs.fujitsu.com>.  [ruby-dev:28443]

* configure.in: remove enable_rpath=no for Solaris.
  [ruby-dev:28440]

* ext/win32ole/win32ole.c (ole_val2olevariantdata): change behavior
  of converting  OLE Variant object with VT_ARRAY|VT_UI1 and Ruby
  String object.

* ruby.1: a clarification patch from David Lutterkort
  <dlutter at redhat.com>.  [ruby-core:7508]

* lib/rdoc/ri/ri_paths.rb (RI::Paths): adding paths from rubygems
  directories.	a patch from Eric Hodel <drbrain at segment7.net>.
  [ruby-core:07423]

* eval.c (rb_clear_cache_by_class): clearing wrong cache.

* ext/extmk.rb: use :remove_destination to install extension libraries
  to avoid SEGV.  [ruby-dev:28417]

* eval.c (rb_thread_fd_writable): should not re-schedule output
  from KILLED thread (must be error printing).

* array.c (rb_ary_flatten_bang): allow specifying recursion
  level.  [ruby-talk:182170]

* array.c (rb_ary_flatten): ditto.

* gc.c (add_heap): a heap_slots may overflow.  a patch from Stefan
  Weil <weil at mail.berlios.de>.

* eval.c (rb_call): use separate cache for fcall/vcall
  invocation.

* eval.c (rb_eval): NODE_FCALL, NODE_VCALL can call local
  functions.

* eval.c (rb_mod_local): a new method to specify newly added
  visibility "local".

* eval.c (search_method): search for local methods which are
  visible only from the current class.

* class.c (rb_class_local_methods): a method to list local methods.

* object.c (Init_Object): add BasicObject class as a top level
  BlankSlate class.

* ruby.h (SYM2ID): should not cast to signed long.
  [ruby-core:07414]

* class.c (rb_include_module): allow module duplication.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-09 21:20:17 +00:00
nagai
3df4f07a6b * ext/tk/tcltklib.c (delete_slaves): maybe increment the reference
count of a NULL Tcl_Obj [ruby-core:07759].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10109 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-04-25 09:02:00 +00:00
nagai
09cc0b160e * ext/tk/tcltklib.c (lib_eventloop_ensure): refer freed pointer
[ruby-core:07744] and memory leak.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10104 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-04-21 06:22:43 +00:00
nagai
bce4ed2f72 * ext/tk/lib/multi-tk.rb: add a binding to a container for a slave IP.
* ext/tk/lib/tk.rb: update RELEASE_DATE.
* ext/tk/tcltklib.c: forget to reset a Tcl interpreter.
* ext/tk/stubs.c: fix potential bugs about handling rb_argv0.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10096 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-04-18 08:43:10 +00:00
nagai
8ba823c485 * ext/tk/tcltklib.c: fix SEGV when embedding to an application.
[ruby-core:7600]
* ext/tk/tcltklib.c: fix SEGV at exit. [ruby-talk:186489]
* ext/tk/tkutil/tkutil.c: follow to changing specification of
  instance_eval on ruby-1.9.x.
* ext/tk/lib/tk.rb: ditto.
* ext/tk/lib/multi-tk.rb: ditto.
* ext/tk/lib/tk.rb: remove warning about redefinition of methods.
* ext/tk/lib/tk/variable.rb: remove warning about unseting Tcl
 variables.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-04-05 16:08:45 +00:00
nagai
dfcbc92614 * ext/tk/tcltklib.c: forgot to update RELEASE_DATE.
* ext/tk/lib/tk.rb: ditto.
* ext/tk/sample/demos-en/menu.rb: commit miss.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-06 16:24:22 +00:00
nagai
976124788e * ext/tk/README.macosx-aqua: [new document] tips to avoid the known
bug on platform specific dialogs of Tcl/Tk Aqua on MacOS X.
* ext/tk/tcltklib.c: fix bug on switching threads and waiting on the
  deleted interpreter on vwait and tkwait command.
* ext/tk/lib/multi-tk.rb: kill the meaningless loop for the deleted Tk
  interpreter.
* ext/tk/sample/demos-jp/image3.rb: [bug fix] wrong argument.
* ext/tk/sample/demos-en/image3.rb: ditto.
* ext/tk/sample/demos-jp/menu.rb: fix message for MacOS X.
* ext/tk/sample/demos-jp/menu8x.rb: ditto.
* ext/tk/sample/demos-en/menu.rb: ditto.
* ext/tk/sample/demos-jp/widget; update version-info.
* ext/tk/sample/demos-en/widget; ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-06 16:05:50 +00:00
nagai
ed9a1f3e8f * ext/tk/lib/multi-tk.rb: add restriction to access the entried
command table and manipulate other IPs (for reason of security).
  Now, a IP object can be controlled by only its master IP or the
  default IP.
* ext/tk/lib/remote-tk.rb: add restriction to manipulate.
* ext/tk/tcltklib.c (ip_is_slave_of_p): add TclTkIp#slave_of?(ip)
  to check manipulability.
* ext/tk/lib/tk.rb: bug fix on handling of Tcl's namespaces.
* ext/tk/lib/tk/namespace.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-18 08:39:29 +00:00
nagai
f1d4dfca2b * ext/tk/stubs.c (_nativethread_consistency_check): use simpler
(low cost) way to check whether the Tcl interpreter was compiled
  with threads enabled of not.
* ext/tk/tcltklib.c: reduce warnings.
* ext/tk/tkutil/tkutil.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9512 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-07 04:47:08 +00:00
nagai
0e05806f36 * ext/tk/tcltklib.c (ip_rbUpdateObjCmd, ip_rb_threadUpdateObjCmd): passed improper flags to DoOneEvent().
* ext/tk/tkutil/tkutil.c: use rb_obj_respond_to() instead of rb_respond_to().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-02 10:06:29 +00:00
nagai
64edb6d31d * ext/tk/tcltklib.c: cannot compile with Tcl/Tk8.0.x
[ruby-dev:27335].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-28 01:48:53 +00:00
nagai
c1566b7490 * ext/tk/tcltklib.c: remove dangerous 'rb_jump_tag's.
* ext/tk/lib/tk.rb: add __val2ruby_optkeys and __ruby2val_optkeys to
  help to convert option values between ruby and tcl.
* ext/tk/lib/tk/itemconfig.rb: add __item_val2ruby_optkeys and
  __item_ruby2val_optkeys to help to convert option values between
  ruby and tcl.
* ext/tk/lib/tk/radiobutton.rb: use __ruby2val_optkeys for 'variable'
  option (for the reason of backward compatibility).
* ext/tk/lib/tk/composite.rb: clarify the arguments of super().
* ext/tk/lib/tk/spinbox.rb: ditto.
* ext/tk/lib/tk/text.rb: ditto.
* ext/tk/lib/tk/validation.rb: ditto.
* ext/tk/lib/tkextlib/*: support to treat tkvariable-type
  configure options.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-09 06:16:29 +00:00
ocean
e84219391f * ext/tk/tcltklib.c: restored some DUMPs
* ext/tk/tcltklib.c (ip_ruby_cmd): moved rb_ary_new2 because this
  raises exception if argc < 3.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-08 16:18:29 +00:00
ocean
8eb3323a69 * ext/tk/tcltklib.c: combined tcl_protect and tcl_check_result.
[ruby-dev:26753]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8936 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-06 16:27:12 +00:00
ocean
d9498f743b * ext/tk/tcltklib.c: rectoring - tcl_protect.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-05 11:22:51 +00:00
ocean
993ad912a2 * ext/tk/tcltklib.c: refactoring - extracted status check as function.
(tcl_check_result) ... previous commit is actually "extracted protect call"


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8927 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-05 09:20:13 +00:00
ocean
a39d6b1f80 * ext/tk/tcltklib.c: refactoring - extracted status check as function. (tcl_protect)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-05 08:12:53 +00:00
ocean
74d91a4c31 * ext/tk/tcltklib.c: fixed memory leak when tk_funcall raised
exception. (copies argv into heap in tk_funcall instead of
  caller)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-05 03:51:50 +00:00
ocean
6c8633ab99 * ext/tk/tcltklib.c: refactoring - extract ruby string <->
tcl object conversion as get_str_from_obj and get_obj_from_str.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-04 15:26:05 +00:00
nagai
c9ec812897 * ext/tk/tcltklib.c: cannot compile for Tcl7.6/Tk4.2.
* ext/tk/tcltklib.c: add nativethread consistency check.
* ext/tk/stubs.c: ditto.
* ext/tk/lib/tk.rb: forgot to define TclTkIp.encoding and encoding=
  when Tcl is 7.6 or 8.0.
* ext/tk/lib/tk/wm.rb: support to make some methods as options of
  root or toplevel widget. [ruby-talk:150336]
* ext/tk/lib/tk/root.rb: ditto.
* ext/tk/lib/tk/toplevel.rb: ditto.
* ext/tk/lib/tkextlib/SUPPRT_STATUS: update RELEASE_DATE


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8911 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-04 09:41:57 +00:00
ocean
91d7a02959 * ext/tk/tcltklib.c: use Tcl_[GS]etVar2Ex instead of
Tcl_Obj[GS]etVar2. (avoid Tcl_NewStringObj on supported platforms)

* ext/tk/tcltklib.c: use ip_{get,set,unset}_variable2_core from
  ip_{get,set,unset}_variable.

* ext/tk/tcltklib.c: replaced Tcl_Panic with rb_bug.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-02 01:25:01 +00:00
ocean
87ecfbd773 * ext/tk/tcltklib.c: refactoring - replaced rb_ivar_defined &
rb_ivar_get with single rb_attr_get call.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-01 10:09:28 +00:00
ocean
5b9896ea24 * ext/tk/tcltklib.c (Tcl_GetStringResult): refactoring - define
alternative macro on Tcl7.x or earlier.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8877 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-01 09:47:54 +00:00
ocean
80ed1f46d1 * ext/tk/tcltklib.c (deleted_ip): refactoring - interpreter deletion
check.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8873 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-01 04:57:28 +00:00
nagai
41d41fbdb9 * ext/tk/stubs.c: When --enable-tcltk-stubs, the initialize
routine creates a Tcl/Tk interpreter and deletes it. However,
  init cost of Tk's MainWindow is not so small. And that makes it
  impossible to use libraries written with Tcl functions only on
  an environment without a graphical display. This changes support
  delaying initalization of Tk_Stubs until the script needs Tk.
* ext/tk/stubs.h: New file. Define prototypes and return codes of
  functions on stubs.c.
* ext/tk/tcltklib.c: Support delaying initalization of Tk_Stubs
  until the script needs Tk.
* ext/tk/tcltklib.c: Show friendly error messages for errors on
  initialization.
* ext/tk/tcltklib.c: Avoid SEGV on ip_finalize() when ruby is
  exiting and $DEBUG is true. (Not fix. If you know the reason of
  why, please fix it.)
* ext/tk/tkutil/tkutil.c (ary2list, ary2list2): bug fix on handling
  of encoding.
* ext/tk/lib/multi-tk.rb: MultiTkIp#eval_string and bg_eval_string
  don't work propery.
* ext/tk/lib/tk.rb: Forget extending Tk::Encoding module to Tk.
* ext/tk/lib/tk/variable.rb: TkVarAccess fails to initialize the
  object for an element of a Tcl's array variable.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8860 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-28 09:14:59 +00:00
nagai
17743ce0a8 * ext/tk/tkutil/tkutil.c (tk_conv_args): forget to revert
thread_critical and gc_disable when raise ArgumentError.
* ext/tk/lib/remote-tk.rb: RemoteTkIp doesn't need to include TkUtil.
* ext/tk/tcltklib.c: add TclTkIp#has_mainwindow? method.
* ext/tk/lib/tk.rb: add Tk.has_mainwindow? method.
* ext/tk/lib/multi-tk.rb: add MultiTkIp#has_mainwindow? method.
* ext/tk/lib/remote-tk.rb: add RemoteTkIp#has_mainwindow? method.
* ext/tk/lib/multi-tk.rb: slave IP fail to exit itself when $SAFE==4.
* ext/tk/lib/multi-tk.rb: remove constants from MultiTkIp module to
  avoid access from external.
* ext/tk/lib/multi-tk.rb: check_root flag is ignored on slave IPs'
  mainloop.
* ext/tk/lib/multi-tk.rb: hang-up Tk.mainloop called on a slave IP
  with $SAFE==4.
* ext/tk/lib/multi-tk.rb: MultiTkIp#bg_eval_proc doesn't work
  properly.
* ext/tk/lib/multi-tk.rb: add MultiTkIp#set_cb_error(proc) and
  cb_error(exc) to log errors at callbacks on safe slave IPs.
* ext/tk/lib/multi-tk.rb: fail to get an available slave IP object
  when call Tk.mainloop in the block which is given to new_* method,
  because cannot finish initialize while the root widget is alive.
* ext/tk/lib/multi-tk.rb: fail to control a slave IP when Tk.mainloop
  runs on the IP.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8818 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-21 22:05:04 +00:00
ocean
9042a601c8 * ext/tk/tcltklib.c: rbtk_eventloop_depth is used as int.
* ext/tk/tcltklib.c: rbtk_pending_exception is tested with
  NIL_P, so should assign Qnil instead of 0 (Qfalse).

* ext/tk/tcltklib.c (ip_invoke_real): fixed memory leak when
  ip is deleted.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8797 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-19 05:12:52 +00:00
nagai
4d52e65787 * ext/tk/tcltklib.c: TclTkLib.do_one_event doesn't work.
* ext/tk/lib/tk.rb: Tk.thread_update is available.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8755 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-13 03:47:05 +00:00
nagai
e3849ae987 * ext/tk/tcltklib.c: bug fix on treating Unicode strings.
* ext/tk/tcltklib.c: add methods to treat encoding mode.
* ext/tk/MANUAL_tcltklib.eng: add description of TclTkLib#encoding,
  encoding_system, and so on.
* ext/tk/MANUAL_tcltklib.eucj: ditto.
* ext/tk/tkutil/tkutil.c: fail to create a Tcl's list string from
  an array including multiple kind of encoded strings.
* ext/tk/lib/tk.rb: ditto.
* ext/tk/lib/multi-tk.rb: 2nd arg of _{to|from}UTF8 is omissible.
* ext/tk/lib/remote-tk.rb: ditto.
* ext/tk/lib/tk.rb: override TclTkLib#encoding and encoding= to
  use TkCore::INTERP.encoding and encoding=.
* ext/tk/lib/tk.rb: when "require 'tk'" and $KCODE=='NONE', check
  DEFAULT_TK_ENCODING to decide Ruby/Tk's system encoding mode.
* ext/tk/lib/tk/encodedstr.rb: check both of Tk.encoding and
  Tk.encoding_system. Tk.encoding has higher priority.
* ext/tk/lib/tk/optiondb.rb: ditto.
* ext/tk/lib/tk/spinbox.rb: ditto.
* ext/tk/lib/tk/validation.rb: ditto.
* ext/tk/lib/tk/namespace.rb: arguemnts for TclTkIp#_merge_tklist
  should be UTF-8 strings.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8722 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-05 05:56:31 +00:00
ocean
4fb012a86a * ext/tk/tcltklib.c (ip_rb_threadVwaitCommand): Tcl_Release was missing.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-16 06:22:19 +00:00
nagai
6fc7b39b62 * ext/tk/tcltklib.c (ip_invoke_core): call Tcl's "::unknown"
command when can't get information of target command.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-04-26 14:00:20 +00:00
ocean
1a02612963 commit miss
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-04-23 11:05:23 +00:00
ocean
4e9a14b715 * ext/tcltklib/tcltklib.c (ip_RubyExitCommand): exit with status code
via TclTkIp#_eval didn't work. [ruby-talk:139390]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-04-23 11:04:00 +00:00