luna.el: method with &rest

Keiichiro Nagano (=?ISO-2022-JP?B?GyRCMUpMbjc9MGxPOhsoQg==?=) knagano @ sodan.org
2001年 8月 13日 (月) 00:47:12 JST


初めまして、永野と申します。

luna.el で不可解な挙動を見つけましたので報告させていただきます。
ソースを読んでみたのですが、力不足のため修正することはできませんでした。
申し訳ございません。

症状は引数リストに &rest を持つ method について、luna-send で message 
を送った時と generic を使った時とで、method に渡る引数が変わるというも
のです。以下のコードを参照下さい。

--
(luna-define-class sample () ())
(luna-define-method sample-uses-rest ((this sample) &rest lst)
  lst)
(luna-define-generic sample-uses-rest (sample &rest lst))

(setq s (luna-make-entity 'sample))
(luna-send s 'sample-uses-rest s 'a 'b)
	=> (a b)

(sample-uses-rest s 'a 'b)
	=> ((a b))
--

このように、luna-send を用いた場合には &rest として自然な引数が渡るの
ですが、これを generic で呼び出すと、1段深い list になって渡ってきます。

環境は
	SLIM/1.13.7, APEL/10.2, Emacs/20.7
	LIMIT/1.14.7, APEL/10.3, Emacs/21.0.104

このうち LIMIT の方の ChangeLog で、最後に luna.el が更新された log は

> 2000-12-13  Kenichi Handa     <handa @ etl.go.jp>
> 
> 	  * luna.el: Fix and add DOCs and comments; fix coding style.

となっております。

luna は (w3m.el の shimbun や Wanderlust の elmo-lunafy で) たくさん使
われているわりには、document が全くなく、苦労しながら遊んでおります。
投稿に不備がありましても、どうぞご容赦下さい。

-- 
Keiichiro Nagano




More information about the Emacs-mime-ja mailing list