[Mew-dist 07738] mew-ff.el in 1.94b9
OBATA Noboru
obata at example.com
1999年 2月 25日 (木) 14:43:19 JST
小幡です。
contrib/ に置いて頂いた mew-ff.el (定型文を挿入する) ですが、残
念ながら今のままでは、次のように怒られます。
Symbol's function definition is void: mew-fib-fill-by-alist
mew-ff.el を利用するためには、mew-fib.el に添付のパッチをあてな
いといけません。([Mew-dist 07559] で添付したものに僅かな修正をし
ています) このパッチも採用して頂けると嬉しいです。
パッチで修正される点は次のとおりです。今までの使い方をする限りで
は、動作に違いはない(はず)です。
- mew-fib-item-file から連想配列を作る処理と、連想配列から実際の
置換を行う処理を分けました。後者を mew-ff.el から利用します。
- その置換処理で、置換後の文字列として変数や関数を記述できるよう
にしました。([Mew-dist 07528] の後藤さんのコードを拝借しました)
--
小幡 昇 (obata at example.com)
-------------- next part --------------
--- mew-fib.el.orig Mon Aug 24 23:45:18 1998
+++ mew-fib.el Thu Feb 25 14:31:14 1999
@@ -11,7 +11,6 @@
(require 'mew-func)
(defvar mew-fib-item-file "~/.mew-fib")
-(defvar mew-fib-item-alist nil)
(defun mew-fib-split (str)
(let (ret match)
@@ -28,7 +27,6 @@
(save-excursion
(let ((fib-file (expand-file-name mew-fib-item-file))
item val ret tmp-val)
- (setq mew-fib-item-alist nil)
(mew-set-buffer-tmp)
(if (file-exists-p fib-file)
(insert-file-contents fib-file))
@@ -43,12 +41,11 @@
(mew-fib-split item)))))
ret)))
-(defun mew-fib-fill-default ()
- "Fill |>item<| from .mew-fib."
+(defun mew-fib-fill-by-alist (alist)
+ "Fill |>item<| by alist."
(interactive)
(save-excursion
(let (begin end str)
- (setq mew-fib-item-alist (mew-fib-make-alist))
(goto-char (point-min))
(while (re-search-forward "|>\\([^<]+\\)<|" nil t)
(setq begin (match-beginning 1)
@@ -56,8 +53,23 @@
str (buffer-substring begin end))
(delete-region begin end)
(backward-char 2)
- (insert (or (cdr (assoc (downcase str) mew-fib-item-alist)) str)))
- )))
+ (insert (let ((obj (cdr (assoc (downcase str) alist))))
+ (cond
+ ((null obj) str)
+ ((stringp obj) obj)
+ ((functionp obj) (funcall obj))
+ ((symbolp obj)
+ (if (fboundp obj) (funcall obj)
+ (if (and (boundp obj)
+ (stringp (symbol-value obj)))
+ (symbol-value obj))))
+ (t str)))))
+ )))
+
+(defun mew-fib-fill-default ()
+ "Fill |>item<| from .mew-fib."
+ (interactive)
+ (mew-fib-fill-by-alist (mew-fib-make-alist)))
(defun mew-fib-delete-frame ()
"Delete all quotations, i.e. |> <|."
Mew-dist メーリングリストの案内