[Mew-dist 13787] Re: b51

Shun-ichi GOTO gotoh at example.com
2000年 8月 8日 (火) 08:57:29 JST


余談ですが...

>>>>> at Tue, 8 Aug 2000 03:31:52 +0900
>>>>> nara == NARA Susumu <nara at example.com> said,

nara> edebug で mew-summary-sort をトレースしようと思いましたが、すぐに最後
nara> にとんでしまっているようで、良く分りませんでした。

Mew では summary-mode かどうかのチェックなど、マクロで全体を囲む事が多い
のですが、そういったmacro を単純にedebug するとそういう挙動になります。

そういった場合のために macro に 'edebug-form-spec プロパティをつけておくと
edebug もOKです。

で、あたしは以下のようなdebug 用に設定を使ってます
深くこだわらないので、form-spec は全て (&rest body) としてしまってます。
本来はマトモに def-edebug-spec する必要があるとは思いますが。。。
あとsymbol のlist は全てのマクロの網羅してあるわけでは
ありませんので必要に応じて足して下さい。

## こういう使い方で正しいかどうかはよく知らんけど、機能はしてます

;; Adapt for source debugging with edebug
;; These functions are take argument as &rest body.
(mapcar '(lambda (x)
	   (if (not (functionp x))
	       (message "%s is not a founction" x)
	     (let ((f (symbol-function x)))
	       (if (and (listp f)
			(eq (car f) 'macro))
		   (let ((argl (if (listp (cdr f))
				   ;; not compiled
				   (elt f 2)
				 ;; compiled
				 (aref (cdr f) 0))))
		     (put x 'edebug-form-spec '(&rest form))
		     (if (memq '&rest argl)
			 (put x 'lisp-indent-function
			      (- (length argl) (length (memq '&rest argl))))))
		 (message "%s is not a macro")))))
	'(mew-summary-only
	  mew-summary-msg-or-part
	  mew-summary-msg
	  mew-summary-part
	  mew-summary-multi-msgs
	  mew-summary-prepare-draft
	  mew-decode-narrow-to-header
	  mew-flet
	  mew-plet
	  mew-piolet
	  ;mew-pioalet
	  mew-flet
	  mew-frwlet
	  mew-elet
	  ))


P.S.
mew 本体の方で def-edebug-spec してあるとなおうれしい

--- Regards,
 Shun-ichi Goto  <gotoh at example.com>
   R&D Group, TAIYO Corp., Tokyo, JAPAN



Mew-dist メーリングリストの案内