[#9811] Ruby book — WATANABE Tetsuya <tetsu@...>

今日のひとこと(10/05)

22 messages 1998/10/05
[#9812] Re: Ruby book — matz@... (Yukihiro Matsumoto) 1998/10/05

まつもと ゆきひろです

[#9813] Re: Ruby book — "D.Kanda" <MAP2303@...> 1998/10/05

[#9815] Re: Ruby book — matz@... (Yukihiro Matsumoto) 1998/10/05

まつもと ゆきひろです

[#9827] Are there any NNTP Client Class? — Takeshi UME Imai <takeshi@...>

はじめまして。今井といいます。

17 messages 1998/10/05
[#9828] Re: Are there any NNTP Client Class? — aamine@... 1998/10/05

はじめまして、あおきともうします。

[#9869] man-1.1/Marshal.html — ttate@...

立石です。

47 messages 1998/10/07
[#9872] Re: man-1.1/Marshal.html — matz@... (Yukihiro Matsumoto) 1998/10/08

まつもと ゆきひろです

[#9880] comments on manual (Re: man-1.1/Marshal.html) — Motoyuki Kasahara <m-kasahr@...> 1998/10/08

SRA の笠原です。

[#9881] Re: comments on manual (Re: man-1.1/Marshal.html) — matz@... (Yukihiro Matsumoto) 1998/10/08

まつもと ゆきひろです

[#9909] Re: comments on manual (Re: man-1.1/Marshal.html) — Motoyuki Kasahara <m-kasahr@...> 1998/10/09

SRA の笠原です。

[#9936] Re: comments on manual (Re: man-1.1/Marshal.html) — matz@... (Yukihiro Matsumoto) 1998/10/09

まつもと ゆきひろです

[#9939] Re: comments on manual (Re: man-1.1/Marshal.html) — Shin-ichro Hara <sinara@...> 1998/10/09

原です。

[#9940] Re: comments on manual (Re: man-1.1/Marshal.html) — matz@... (Yukihiro Matsumoto) 1998/10/09

まつもと ゆきひろです

[#9941] Re: comments on manual (Re: man-1.1/Marshal.html) — Shin-ichro Hara <sinara@...> 1998/10/09

原です。

[#9942] Re: comments on manual (Re: man-1.1/Marshal.html) — matz@... (Yukihiro Matsumoto) 1998/10/09

まつもと ゆきひろです

[#9944] read(nil) (Re: comments on manual) — Shin-ichro Hara <sinara@...> 1998/10/09

原です。

[#9884] List of UserInterface Kits for Ruby ? — a.furudo@...

20 messages 1998/10/08
[#9906] Re: List of UserInterface Kits for Ruby ? — matz@... (Yukihiro Matsumoto) 1998/10/09

まつもと ゆきひろです

[#9885] 文字化け失礼、再送 — Akihiro Furudo <a.furudo@...>

26 messages 1998/10/08
[#9888] Re: 文字化け失礼、再送 — ttate@... 1998/10/08

立石です。

[#9897] お礼と、 Ruby/Gtk(i18n) について質問 — Akihiro Furudo <A.Furudo@...> 1998/10/08

[#9982] Re: お礼と、 Ruby/Gtk(i18n) について質問 — Daisuke Kanda <MAP2303@...> 1998/10/11

[#10320] Ruby/Gtk を FreeBSD にインストール (re:9982) — Akihiro Furudo <a.furudo@...> 1998/10/24

[#10328] Re: Ruby/Gtk を FreeBSD にインストール (re:9982) — Daisuke Kanda <MAP2303@...> 1998/10/25

[#9976] ruby:struct -> ext module -> ruby — Kikutani Makoto <kikutani@...>

きくたにです。

17 messages 1998/10/11

[#9999] ruby on HP-UX — AU6M-IWM@... (Iwama Misao)

20 messages 1998/10/12
[#10001] Re: ruby on HP-UX — matz@... (Yukihiro Matsumoto) 1998/10/12

まつもと ゆきひろです

[#10030] Ruby/Gtk text widget — TAKAHASHI Masayoshi <maki@...>

高橋です。

29 messages 1998/10/12
[#10035] Re: Ruby/Gtk text widget — Daisuke Kanda <MAP2303@...> 1998/10/12

[#10038] ruby/gtk method naming (Re: Re: Ruby/Gtk text widget) — "D.Kanda" <MAP2303@...> 1998/10/13

[#10067] Re: ruby/gtk method naming (Re: Re: Ruby/Gtk text widget) — Kazumi Okamoto <kazusan@...> 1998/10/13

岡本です。

[#10092] for が修飾子だったら — ARIMA Yasuhiro <fit0298@...>

有馬@FITECです。

46 messages 1998/10/14
[#10093] Re: for が修飾子だったら — matz@... (Yukihiro Matsumoto) 1998/10/14

まつもと ゆきひろです

[#10236] Array.html again — Motoyuki Kasahara <m-kasahr@...>

笠原です。こんにちは。

18 messages 1998/10/22
[#10237] Re: Array.html again — Kanda <MAP2303@...> 1998/10/22

[#10239] Re: Array.html again — matz@... (Yukihiro Matsumoto) 1998/10/22

まつもと ゆきひろです

[#10311] Re: 大規模プログラムの友 — m_seki@... (SEKI)

At 11:23 PM 98.10.23 +0900, Takashi Nakai wrote:

24 messages 1998/10/23
[#10312] Re: 大規模プログラムの友 — Takashi Nakai <nakai@...1.sys.to.casio.co.jp> 1998/10/23

ど〜も、(またしても)中井です。

[#10369] Re: 大規模プログラムの友 — matz@... (Yukihiro Matsumoto) 1998/10/27

まつもと ゆきひろです

[#10415] split — flare@... (Takashi Ikeda)

ふれあです。

20 messages 1998/10/28

[#10473] case with Class — MineroAoki <aamine@...>

あおきです。

46 messages 1998/10/29
[#10483] Re: case with Class — matz@... (Yukihiro Matsumoto) 1998/10/30

まつもと ゆきひろです

[#10521] Re: case with Class — aamine@... 1998/10/30

こんにちは。あおきです。

[#10523] Re: case with Class — gotoken@... (GOTO Kentaro) 1998/10/30

ごとけんです

[#10530] Re: case with Class — aamine@... 1998/10/31

あおきです。

[#10544] Re: case with Class — shugo@... (MAEDA Shugo) 1998/10/31

前田です。

[#10548] Re: case with Class — Wakou Aoyama <wakou@...> 1998/10/31

青山です。

[#10555] Re: case with Class — shugo@... (MAEDA Shugo) 1998/11/01

前田です。

[#10566] Re: case with Class — Wakou Aoyama <wakou@...> 1998/11/01

青山です。

[ruby-list:10212] Re: tk.rb: font name

From: TEI meiki <tei@...>
Date: 1998-10-19 23:46:02 UTC
List: ruby-list #10212
鄭です。

NAGAI Hidetoshi writes:
 > 永井@知能.九工大です.
 > 
 > >>>>> "T" == TEI meiki <tei@harmony.co.jp> writes:
 > T> またまた Ruby/Tk で助けて下さい。
 > T> Sun Solaris 2.5.1 の CDE 環境では、フォント名に
 > T> -dt-interface user-medium-r-normal-m*-*-*-*-*-*-*-*-*
 > T> などという途中にスペースを含んだ名前が標準で使われています。
 > 
 > あちゃ〜.
 > tkfont.rb を書いてた時は,この case については頭にありませんでした.
 > 対策をちょいと考えてみますが,今,忙しいので時間がかかるかもしれません.
 > 応急としては,問題となっている tk_split_list(str) を
 > tk_split_simplelist(str) に置き換えて試してみていただけませんか.

だめでした。

考えた挙げ句、Tcl/Tk(私は Tk4 しかしらないのですが) の configure の
帰り値は、外側の 1レベルのブレースは、リスト構造をくくり、
さらにその内側のブレースは、文字リテラルだろうと決めうちして
tk.rb の tk_split_list(str) を、ブレースをどこまでリスト構造と扱うかの
上限値の引数を追加してみました。

--- tk.rb-org	Tue Sep  1 15:50:29 1998
+++ tk.rb	Mon Oct 19 12:45:09 1998
@@ -62,6 +62,8 @@
     when /^\./
       Tk_WINDOWS[val] ? Tk_WINDOWS[val] : _genobj_for_tkwidget(val)
     when / /
+      # これは必要か??? 
+      # 上で  if val.include? ?\s しているから不要のような気がするが?
       val.split.collect{|elt|
 	tk_tcl2ruby(elt)
       }
@@ -72,6 +74,8 @@
     end
   end
 
+if nil
+# 以下 tk_split_list(str) オリジナルコード
   def tk_split_list(str)
     return [] if str == ""
     idx = str.index('{')
@@ -96,6 +100,43 @@
     list += tk_split_list(str[i+1..-1])
     list
   end
+end
+
+# 以下 tk_split_list(str) テストコード
+  def tk_split_list(str, maxnest = nil, nest = 0)
+    str = str.strip
+    return [] if str == ""
+    result = []
+    while str.length > 0 
+      if str[0] == ?{ then
+	i = 0
+	brace = 1
+	str[1..-1].each_byte {|c|
+	  i += 1
+	  brace += 1 if c == ?{
+	  brace -= 1 if c == ?}
+	  break if brace == 0
+	}
+	result << str[0..i-1] # 先頭の '{' はまだ残しておく。
+	str = str[i+1..-1].strip
+      else
+	i = str.index(" ") || str.length
+	result << str[0,i]
+	str = str[i+1..-1].strip
+      end
+    end
+    result.collect{ |element|
+      if element[0] == ?{ then
+	if ! maxnest || maxnest > nest then
+	  tk_split_list( element[1..-1], maxnest, nest+1 )
+	else
+	   (element == "{") ? [] : element[1..-1]
+	end
+      else
+	tk_tcl2ruby(element)
+      end
+    }
+  end
 
   def tk_split_simplelist(str)
     return [] if str == ""

そして、tkfont.rb の init_widget_font を以下のようにしてみました。

--- tkfont.rb-org	Tue Sep  1 15:50:29 1998
+++ tkfont.rb	Tue Oct 20 05:55:47 1998
@@ -64,7 +64,7 @@
   def TkFont.init_widget_font(path, *args)
     case (Tk::TK_VERSION)
     when /^4\.*/
-      conf = tk_split_list(tk_call(*args))
+      conf = tk_split_list(tk_call(*args),1)
       if font_inf = conf.assoc('-font')
 	ltn = font_inf[4]
 	ltn = nil if ltn == []
@@ -81,7 +81,7 @@
       TkFont.new(ltn, knj).call_font_configure(path, *(args + [{}]))
 
     when /^8\.*/
-      conf = tk_split_list(tk_call(*args))
+      conf = tk_split_list(tk_call(*args),1)
       unless font_inf = conf.assoc('-font')
 	raise RuntimeError, "unknown option '-font'"
       end

とりあえずこれでなんとなく動いているのですが、、ほんとうにこれで
いいのでしょうか?  (^_^;;

ところで、このあいだも書きましたけど tk.rb の TkObject#method_missing で、

  def method_missing(id, *args)
    name = id.id2name
    case args.length
    when 1
      configure name, args[0]
      self  # これを追加
    when 0
      fail NameError, "undefined local variable or method `#{name}' for #{self.to_s}", error_at
    else
      fail NameError, "undefined method `#{name}' for #{self.to_s}", error_at
    end
  end

と、self を返すようにすると便利な気がするのですが、だめでしょうか?
>まつもとさん、その他 tk*.rb の関係者のみなさん。

-- 
                         ┌─鄭  明毅───────────────────┐
                         └──tei@harmony.co.jp──tei@mirage.linc.or.jp─┘

In This Thread