[Mew-dist 05460] Re: Mew 1.93b44, x-cite, mew-summary-reply-with-citation()

Makoto MATSUSHITA ( まつしたまこと ) matusita at example.com
1998年 7月 9日 (木) 22:13:27 JST


kazu> mew-cite-hook が mew-cite-original と両立しないことが原因でしょうか?

先に defvar して mew-cite-hook の値を mew-cite-original (現状ではだめ
ですが,とにかくそれに相当するもの)としてしまうと,自分で supercite し
たい人が「hook だよね」と思いつつ add-hook してしまうと‥‥と思ったの
で,Mew は(そういう利用者のことを考えて)ひかえめな実装にしているのかな,
と思いました.

なので,このことについてはまあ「どっちでもいい」のかなと思います.黙っ
ていても Mew を使う限りはそれなりの cite 機能が使えることに意味がある
のではないかと思いますし‥‥

kazu> mew-cite-original がどこかで hook を呼ぶと、regex よりももっと汎
kazu> 用的にできるような気がしますが、どうでしょう?

なんとなくそれは無茶なのかなあとか最初思って先の方法で書いたのですが,
やってみたらやれてしまった気がしています.つまり,こういうことを言われ
てらっしゃるのでしょうか?

-- -
Makoto `MAR' MATSUSHITA

mew-cite-current-prefix という変数を新たに定義する必要があるかどうかに
ついては何も知りません _o_ ただ,hook で呼ばれる側ではやっぱり prefix
の値を知りたいと思うので,少なくともこうすればできるなあと思ってやって
いるだけ,です.mew-vars.el の中に書いてあることには深い意味はなくて,
単に comment を書く必要があるだろうと思って書いています.

以下では mew-cite-original-hook (名前が多分ださい) という hook を定義
します.cite の処理が実行される時には,各行に対してこの hook で示され
る関数が適用されます.default の動作は,単に(事前に定義された) prefix 
を単に挿入するだけ,です(つまり動作は変更されません).

この hook にさらに自分の処理を add-hook するとどうなるかは考えてません.
また,とりあえず「あ,なんかできた」と思っただけで本当にこれでいいのか
についても考えてません.ごめんなさい.

--- mew-draft.el.dist	Sun Jul  5 20:32:32 1998
+++ mew-draft.el	Thu Jul  9 22:01:17 1998
@@ -863,10 +863,12 @@
 			   (point))))
       (insert label)
       (push-mark (point) t t) ;; for C-x C-x
-      (and (bolp) (insert prefix))
-      (while (equal 0 (forward-line))
-	(or (equal (point) (point-max))
-	    (insert prefix)))
+      (let ((mew-cite-current-prefix prefix))
+	(and (bolp)
+	     (run-hooks 'mew-cite-original-hook))
+	(while (equal 0 (forward-line))
+	  (or (equal (point) (point-max))
+	      (run-hooks 'mew-cite-original-hook))))
       ) ;; restriction
     )
   )
--- mew-vars.el.dist	Thu Jul  2 14:23:13 1998
+++ mew-vars.el	Thu Jul  9 22:01:44 1998
@@ -502,10 +502,14 @@
 
 (defvar mew-cite-prefix "> "
   "*Prefix of citation.")
+(defvar mew-cite-current-prefix nil
+  "Prefix to be inserted. You may want to use in mew-cite-original-hook.")
 (defvar mew-cite-hook nil
   "*If you want to use super-cite, (setq mew-cite-hook 'sc-cite-original).")
 (defvar mew-before-cite-hook nil
   "Called in mew-summary-reply-with-citation before citation.")
+(defvar mew-cite-original-hook '(lambda () (insert mew-cite-current-prefix))
+  "*Called in mew-site-original when citation is done.")
 
 (defvar mew-cite-prefix-function nil
   "*Function called on citations. A good candidate is 



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