[Mew-dist 10397] about mew-guess.el

Ninomiya Hideyuki nin at example.com
1999年 8月 24日 (火) 18:41:40 JST


こんにちは	二宮 @ お四国 です。

Shun-ichi GOTO <gotoh at example.com> は
	  Wed, 18 Aug 1999 18:30:12 +0900 頃に
    Subject:    [Mew-dist 10196]  <snip> JLA Doc-CDへの収録許可のお願いの件
    Message-ID: <19990818182914S.GOTOH at example.com>
        に於いて、以下のようにおっしゃっていました。
※都合により手を加えさせて頂く事があります。御了承下さいマセマセ....
gotoh> 後藤@太陽計測です
gotoh> 
gotoh> >>>>> at Wed, 18 Aug 1999 18:07:44 +0900
gotoh> >>>>> nin <nin at example.com> said,
gotoh> 
gotoh> nin> # さてこれから、チョー(はよせ)スマートな定型文挿入の
gotoh> nin> # 開発に入ります(うそ、うそ、c-sig 流用するだけー)

 c-sig を流用して、 template いれる方法は一応出来ました。
けどっ、送り先によって書き換えるのはなかなか大変そうなので

gotoh> 最近話題に出ている mew-guess.el のテンプレート挿入機能は
gotoh> いかがでしょうか。

 mew-guess.el ってのが有るのは知ってましたが、ヘッダ置換だけかと思って
ました。試してみるとなかなか良さげなので、乗り換えます(^^)

gotoh> またそれでは十分でない点などがあるようでしたら、提案して
gotoh> みるというのも手ですよ。

 ちょっと自分なりに下手な elisp コード 追加してみましたが、狙った
通りになかなか動いてくれません。やっぱ付け焼き刃じゃダメですねっ

 一応人に見せるのも恥ずかしいパッチを付けときます。っがっ、これを
そのまま当てるのはお勧めしませんf^^;; 動きが変なとこ有ります。
見てもらったらだいたい解ると思いますが、template ファイルに
|<special-item>|を書いとくとその処理をするつもりのモノです。
special-item としては、ファイルを読み込む include:ファイルパス と
引用の挿入位置を指定する citation-point ってのを用意してみました。

include: の方は 一応使えます。
citation-point の方は、変です。自分じゃこれで良いと思ってコード
書いてみたのですが、全然変なとこを指してます。それに、ほんとに
挿入位置を指定する為には、mew-draft.el mew-draft-cite.el も変更
しないといけないし.....

 point の動きを全然理解できてないのだろうきっと....

 コードはほとんど、コピー&ペーストで入れてますので、ダサダサで
独自性も全く有りません。興味無いしとは出来ればみないで下さい。f^^;;

こんな事してるのは、template で署名も全て用意できればっと思った
からです。あと、最初から自動で template が用意できれば完璧じゃんと
思ってますが、、、いかがなもんでしょか ?
---
                                         二宮 秀幸@愛媛 鬼北 広見町
PGP-Fingerprint: 6C59 EC08 5B23 6490 44D0  7CD3 DA40 219F 7114 8553
                                           mailto:nin at example.com
                           http://user.shikoku.ne.jp/nin/index.html
-------------- next part --------------
*** mew-guess.el.org	Mon Aug 23 23:24:29 1999
--- mew-guess.el	Tue Aug 24 17:22:51 1999
***************
*** 274,280 ****
            (if (not (file-exists-p efile))
                (message "No template file %s" efile)
              (progn
!               (forward-char
                 (mew-draft-insert-file-and-replace
                  efile 'top (list kwlist mew-draft-replace-alist)))))))))
  
--- 274,280 ----
            (if (not (file-exists-p efile))
                (message "No template file %s" efile)
              (progn
!               (goto-char
                 (mew-draft-insert-file-and-replace
                  efile 'top (list kwlist mew-draft-replace-alist)))))))))
  
***************
*** 313,327 ****
        (forward-line -1)
        (end-of-line)
        (insert "\n"))))
!   (let (bytes)
!     (save-restriction
        (narrow-to-region
         (point) (+ (point) (car (cdr (insert-file-contents file)))))
!       (while alists
          (mew-draft-replace-by-alist (car alists))
          (setq alists (cdr alists)))
!       (mew-fib-delete-frame)
!       (setq bytes (- (point-max) (point-min))))))
  
  (defun mew-draft-replace-by-alist (alist)
    "Fill |>item<| by alist."
--- 313,346 ----
        (forward-line -1)
        (end-of-line)
        (insert "\n"))))
!   (make-local-variable 'citation-point)	;これはほんとは mew-draft.el で
!     (save-restriction			;初期化しとくべきやねっ 本番じゃ
        (narrow-to-region
         (point) (+ (point) (car (cdr (insert-file-contents file)))))
! 	(let (begin end str file)	;ここから
! 	  (goto-char (point-min))
! 	  (while (re-search-forward "|<\\([^>]+\\)>|" nil t)
! 	    (setq begin (match-beginning 1)
! 		  end (match-end 1)
! 		  str (buffer-substring begin end))
! 	    (delete-region (- begin 2) (+ end 3))	;ここがいい加減
! 	    (cond ((string-match "include:*" str)	;こんなんいかがでしょ?
! 		   (if (not (file-exists-p
! 			     (setq file (expand-file-name (substring str 8)))))
! 		       (message "No include file %s" file)
! 		     (insert-file-contents file)))
! 		  ((string= str "citation-point")	;ここ怪しいですが
! 		   (progn				;現在意味無しです。
! 		     (beginning-of-line)
! 		     (message "citation point is : %d"
! 			      (setq citation-point (point))))
! 		   )
! 		  (t (insert str)))))	;ここまで どっかでみた事有るのと
!       (while alists			;そっくりなのをいれてみました。
          (mew-draft-replace-by-alist (car alists))
          (setq alists (cdr alists)))
!       (mew-fib-delete-frame))
!   citation-point)
  
  (defun mew-draft-replace-by-alist (alist)
    "Fill |>item<| by alist."
***************
*** 345,352 ****
  		      (if (and (boundp obj)
  			       (stringp (symbol-value obj)))
  			  (symbol-value obj))))
!                    (t str))))))))
! 
! (provide 'mew-guess)
  
  ;;; mew-guess.el ends here
--- 364,373 ----
  		      (if (and (boundp obj)
  			       (stringp (symbol-value obj)))
  			  (symbol-value obj))))
! 		   ((listp obj)
! 		    (nth (random (length obj)) obj))	;こんなんも追加して
! 		   (t str))))))))			;みました。テストして
! 							;ないけど
! (provide 'mew-guess)                   
  
  ;;; mew-guess.el ends here


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