[#2810] [BUG] IO#eof? when Thread using — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

31 messages 1998/06/08
[#2826] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/10

まつもと ゆきひろです

[#2827] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/10

けいじゅ@日本ラショナルソフトウェアです.

[#2828] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/10

まつもと ゆきひろです

[#2829] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/10

けいじゅ@日本ラショナルソフトウェアです.

[#2831] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/10

まつもと ゆきひろです

[#2841] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/10

けいじゅ@日本ラショナルソフトウェアです.

[#2842] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/10

まつもと ゆきひろです

[#2843] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/10

けいじゅ@日本ラショナルソフトウェアです.

[#2845] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/11

まつもと ゆきひろです

[#2846] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/11

けいじゅ@日本ラショナルソフトウェアです.

[#2847] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/11

まつもと ゆきひろです

[#2848] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/11

けいじゅ@日本ラショナルソフトウェアです.

[#2849] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/11

まつもと ゆきひろです

[#2854] experimental release 1.1b9_25 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

23 messages 1998/06/11
[#2870] Re: experimental release 1.1b9_25 — Takahiro Maebashi <maebashi@...> 1998/06/15

前橋です。

[#2911] experimental release 1.1b9_26 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

33 messages 1998/06/18
[#2912] Re: experimental release 1.1b9_26 — WATANABE Hirofumi <watanabe@...> 1998/06/18

わたなべです.

[#2913] Re: experimental release 1.1b9_26 — matz@... (Yukihiro Matsumoto) 1998/06/18

まつもと ゆきひろです

[#2916] Re: experimental release 1.1b9_26 — Takahiro Maebashi <maebashi@...> 1998/06/18

前橋です。

[#2917] Re: experimental release 1.1b9_26 — matz@... (Yukihiro Matsumoto) 1998/06/18

まつもと ゆきひろです

[#2940] experimental release 1.1b9_27 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

21 messages 1998/06/19

[#2965] feature freeze for 1.1c — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

25 messages 1998/06/22

[#3056] experimental release 1.1b9_28 — matz@... (Yukihiro Matsumoto)

subject says all.

28 messages 1998/06/26
[#3104] Re: experimental release 1.1b9_28 — Takahiro Maebashi <maebashi@...> 1998/06/30

前橋です。

[#3086] Re: Enumerable#reverse ([ruby-list:8579]) — gotoken@... (GOTO Kentaro)

ごとけんです

19 messages 1998/06/29
[#3120] Re: Enumerable#reverse ([ruby-list:8579]) — keiju@... (Keiju ISHITSUKA) 1998/06/30

けいじゅ@日本ラショナルソフトウェアです.

[#3130] Re: Enumerable#reverse ([ruby-list:8579]) — gotoken@... (GOTO Kentaro) 1998/06/30

ごとけんです

[#3146] [REQ] trace_func — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

15 messages 1998/06/30
[#3190] Re: [REQ] trace_func — matz@... (Yukihiro Matsumoto) 1998/07/02

まつもと ゆきひろです

[#3807] Re: [REQ] trace_func — keiju@... (石塚圭樹 ) 1998/12/14

けいじゅ@日本ラショナルソフトウェアです.

[ruby-dev:2885] Re: TkMenu's bug

From: NAGAI Hidetoshi <nagai@...>
Date: 1998-06-16 08:26:36 UTC
List: ruby-dev #2885
永井@知能.九工大です.

>>>>> "M" == Yukihiro Matsumoto <matz@netlab.co.jp> writes:
M> tkutilのレベルではTkUtil.eval_cmdを評価結果をそのまま返すよ
M> うにしようと思います.

あ,そうですね.
TkUtil.eval_cmd の方は,評価結果をそのまま返すのでいいのでした.

M> その後,install_cmdなどをどう取扱うか
M> はまた別として.とりあえずパッチを付けますから,それを元にど
M> のようにするのがよいのか検討しましょう.

どうもありがとうございます.(_O_)

tk.rb の利用者には,Tcl/Tk のパス文字列に変換しなければならないなどと
意識させたくはないので,現状では,たとえば initialize において
--------------------------------------------------------
if keys['create']
  @p_create = keys['create']
  if @p_create.kind_of? Proc
    keys['create'] = proc{@id = @p_create.call; @id.path}
  end
end
--------------------------------------------------------
というような感じに wrap してやろうかと思っています.

M> |その関連で,Tk.tk_call('ruby', 'TkButton.new.path') なんてのを
M> |試していたのですが,これ,戻り値が '.w0010.w0010' などと
M> |いうようになってしまいます.
M> |これは tcltklib.c の 135 行目付近,
M> |Tcl_AppendResult(...) の直前に Tcl_ResetResult(...) を行うことで
M> |きちんと '.w0010' となり解消されますが,
M> |本当にこの修正でいいのでしょうか?
M> 以前にも同じような問題がありましたから,それで良いと思います.
M> これもパッチを付けておきます.

ありがとうございます.

ついでにまだ報告していなかったバグらしきものの報告です.
tk.rb における tk_split_list ですが,定義の 5 行目の
-----------------------------------------------------------
   list = tk_tcl2ruby(str[0,idx])
-----------------------------------------------------------
で,str 先頭が '{' で始まる場合,list が "" になってしまいます.
この行の後ろに
-----------------------------------------------------------
   list = [] if list == ""
-----------------------------------------------------------
が必要ではないかと思います.

次に,hash_kv ですが,値として TkObject のサブクラスが来た場合には,
その path を値にしてやる必要があるのではないでしょうか?
つまり,
-----------------------------------------------------------
      for k, v in keys
        conf push("-#{k}")
        v = install_cmd(v) if v.kind_of? Proc
        conf.push(v)
      end
-----------------------------------------------------------
となっている部分を
-----------------------------------------------------------
      for k, v in keys
        conf push("-#{k}")
        if v.kind_of? Proc
          v = install_cmd(v) 
        elsif v.kind_of? TkObject
          v = v.path
        end
        conf.push(v)
      end
-----------------------------------------------------------
としなければならないのではないかということです.

以下は,「これはあってもいいかも?」というものです.

module Tk に次の定数を追加.
-----------------------------------------------------------
  TCL_VERSION = INTERP._invoke("info", "tclversion")
  TK_VERSION  = INTERP._invoke("set", "tk_version")
-----------------------------------------------------------

次のメソッドを追加.
-----------------------------------------------------------
  def Tk.setPalette(*args)
    if args.length == 1 && ! args[0].kind_of? Hash
      tk_call 'tk_setPalette', args[0]
    else
      tk_call 'tk_setPalette', *hash_kv(args)
    end
  end

  def Tk.bisque
    tk_call 'tk_bisque'
  end
-----------------------------------------------------------
# これ ↑ は重要性は低いかもしれません.
# ただし,setPalette は widget demo 中で使われています.

TkObject に次のメソッドを追加.
-----------------------------------------------------------
  def configinfo(slot = nil)
    if slot
      conf = tk_split_list( tk_call(path, 'configure', "-#{slot}") )
      conf[0] = conf[0][1..-1]
      conf
    else
      tk_split_list( tk_call(path, 'configure') ).collect{|conf|
        conf[0] = conf[0][1..-1]
        conf
      }
    end
  end
-----------------------------------------------------------

さらに,まだ書き換えてはいませんが,
現在の tk.rb の bind では Tcl/Tk における 
bind . <Control-x><Control-c> ... のような
イベント列を扱うことができません.
ここは mine のようにイベント列を "Control-x Control-c" のように
指定するか (mine では ',' で区切ってるようですが,ここでは空白文字に
してます),["Control-x", "Control-c"] のように配列で指定するかが
できるようにする必要がありそうです.

-- 
                                         永井 秀利 (九工大 知能情報)
                                             nagai@ai.kyutech.ac.jp

In This Thread