前田です。

In message "[ruby-list:9613] can't clone Fixnum"
Kikutani Makoto <kikutani / sprintmail.com> wrote:

|前田さんのruby-jedパッチをJed 0.98.7+J0.5.3に無理やりあてて
|makeしたんですが、ruby_shellモードが動きません。
|何かruby文を入れても「can't clone Fixnum」と言われてます。

すみません、とりあえずこのパッチをあててみてください。

--[[application/octet-stream; type=patch
Content-Disposition: attachment; filename="buffer.rb.diff"][7bit]]
--- buffer.rb~	Mon Jun 22 23:18:19 1998
+++ buffer.rb	Mon Sep 21 18:32:54 1998
@@ -26,7 +26,11 @@
 	if defined? @#{name}
 	  @#{name}
 	else
-	  @#{name} = DEFAULT_VALUES['#{name}'].clone
+	  begin
+	    @#{name} = DEFAULT_VALUES['#{name}'].clone
+	  rescue
+	    @#{name} = DEFAULT_VALUES['#{name}']
+	  end  
 	end
       end
       
--[[text/plain]]

In message "[ruby-list:9621] Re: can't clone Fixnum"
Yukihiro Matsumoto <matz / netlab.co.jp> wrote:

|現在のcloneのデフォルトの定義はFixnumのようにcloneという操作
|が定義できないものに対しては例外を発生させます(「1」のコピーっ
|てなに?).これについては
|
|  * clone操作が定義できない場合はcloneせずにそのものを返す
|
|とか,
|
|  * とりあえずFixnumについてはcloneとはそのものを返すことで
|    あると定義する
|
|とかのRuby側の対処法が考えられますし,ruby_shell側で無闇に
|cloneを行わないという選択肢もありえます.

immutableなオブジェクトの場合、cloneで自分自身を返しても
たぶん問題ないですよね。
とするとそうした方が例外処理しないでよい分便利かな。

ただメソッド名と内容が一致しないのが気持ち悪いですが...。

-- 
前田 修吾 <shugo / aianet.ne.jp>