From: Hidetoshi NAGAI Date: 1998-11-27T12:03:19+09:00 Subject: [ruby-list:11092] Re: tk.rb: font name 永井@知能.九工大です. 大昔の話で申し訳ありません. 諸事情あって,遅くなってしまいました. tei> 考えた挙げ句、Tcl/Tk(私は Tk4 しかしらないのですが) の configure の tei> 帰り値は、外側の 1レベルのブレースは、リスト構造をくくり、 tei> さらにその内側のブレースは、文字リテラルだろうと決めうちして tei> tk.rb の tk_split_list(str) を、ブレースをどこまでリスト構造と扱うかの tei> 上限値の引数を追加してみました。 (中略) tei> とりあえずこれでなんとなく動いているのですが、、ほんとうにこれで tei> いいのでしょうか? (^_^;; 同等の環境がなかったこともあって手間取りましたが, tk4.x の場合は引用メール (ruby-list:10212) の修正で問題なさそうです. が,tk8.x の場合はもう少し修正が必要になりますし, 変更を tkfont.rb の中だけで止めることとして,次のようにしてみました. ただし,今一つ自信が持てませんので(^_^;, 試してみていただけると助かります. ruby-1.1c6 に対するパッチになってます. # 作業しなくちゃと取って来たっきりになってたもんで, # 古いバージョンに対する作業となってしまいました. --- ../../../src/ruby-1.1c6/lib/tkfont.rb Fri Jul 24 17:52:53 1998 +++ tkfont.rb Fri Nov 27 11:28:45 1998 @@ -26,9 +26,9 @@ when /^8\.*/ if window - list(tk_call('font', 'families', '-displayof', window)) + tk_split_simplelist(tk_call('font', 'families', '-displayof', window)) else - list(tk_call('font', 'families')) + tk_split_simplelist(tk_call('font', 'families')) end end end @@ -67,6 +67,7 @@ conf = tk_split_list(tk_call(*args)) if font_inf = conf.assoc('-font') ltn = font_inf[4] + ltn = ltn.join(' ') if ltn.kind_of? Array ltn = nil if ltn == [] else #ltn = nil @@ -74,6 +75,7 @@ end if font_inf = conf.assoc('-kanjifont') knj = font_inf[4] + knj = knj.join(' ') if ltn.kind_of? Array knj = nil if knj == [] else knj = nil @@ -343,7 +345,7 @@ if JAPANIZED_TK @fontslot = {'font'=>@compoundfont} tk_call('font', 'create', @compoundfont, - '-compound', "#{@latinfont} #{@kanjifont}", *hash_kv(keys)) + '-compound', [@latinfont, @kanjifont], *hash_kv(keys)) else tk_call('font', 'create', @compoundfont) latinkeys = {} @@ -409,11 +411,12 @@ tk_call('font', 'actual', font, "-displayof", window, "-#{option}") end else - l = tk_split_list(if window - tk_call('font', 'actual', font, "-displayof", window) - else - tk_call('font', 'actual', font) - end) + l = tk_split_simplelist(if window + tk_call('font', 'actual', font, + "-displayof", window) + else + tk_call('font', 'actual', font) + end) r = [] while key=l.shift if key == '-compound' @@ -455,7 +458,7 @@ elsif option tk_call('font', 'configure', font, "-#{option}") else - l = tk_split_list(tk_call('font', 'configure', font)) + l = tk_split_simplelist(tk_call('font', 'configure', font)) r = [] while key=l.shift if key == '-compound' -- 永井 秀利 (九工大 知能情報) nagai@ai.kyutech.ac.jp