;;; Copyright (C) 1995 MINOURA Makoto
;;;
;;; Author: MINOURA Makoto <minoura@leo.bekkoame.or.jp>
+;;; modified by MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;;; Created: 1995/12/27 by MINOURA Makoto <minoura@leo.bekkoame.or.jp>
+;;; Version:
+;;; $Id: mu-register.el,v 1.12 1996-01-17 05:35:06 morioka Exp $
;;;
-;;; This file is not part of tm (Tools for MIME).
+;;; This file is part of tl (Tiny Library).
;;;
;;; This program is free software; you can redistribute it and/or
;;; modify it under the terms of the GNU General Public License as
\f
;;; Code:
+(require 'mu-cite)
+
+
+;;; @ variables
+;;;
+
(defvar mu-register/registration-file
(expand-file-name "~/.mu-register")
"*The name of the user environment file for mu-register.")
+(defvar mu-register/registration-symbol 'mu-register/citation-name-alist)
+
(defvar mu-register/citation-name-alist nil)
(load mu-register/registration-file t t t)
-
+(or (eq 'mu-register/citation-name-alist mu-register/registration-symbol)
+ (setq mu-register/citation-name-alist
+ (symbol-value mu-register/registration-symbol))
+ )
(defvar mu-register/minibuffer-history nil)
-;;
-;; from \e$B$+$i0zMQL>$rF@$k\e(B
-(defsubst mu-register/get-citation-name (from)
- (cdr (assoc from mu-register/citation-name-alist)))
+;;; @ database accessers
+;;;
+
+;; get citation-name from the database
+(defmacro mu-register/get-citation-name (from)
+ (` (cdr (assoc (, from) mu-register/citation-name-alist))))
-;;
-;; \e$B0zMQL>$rEPO?$9$k\e(B
+;; register citation-name to the database
(defun mu-register/add-citation-name (name from)
(let* ((elt (assoc from mu-register/citation-name-alist)))
(if elt
(mu-register/save-to-file)
))
-;;
-;; \e$B<B:]$K8F$S=P$5$l$k4X?t\e(B
+;; save to file
+(defun mu-register/save-to-file ()
+ (let* ((filename mu-register/registration-file)
+ (buffer (get-buffer-create " *mu-register*")))
+ (save-excursion
+ (set-buffer buffer)
+ (setq buffer-file-name filename)
+ (erase-buffer)
+ (insert ";; generated automatically by mu-register.\n")
+ (insert (format "(setq %s
+ '(" mu-register/registration-symbol))
+ (insert (mapconcat
+ (function prin1-to-string)
+ mu-register/citation-name-alist "\n "))
+ (insert "\n ))\n")
+ (save-buffer))
+ (kill-buffer buffer)))
+
+
+;;; @ main functions
+;;;
+
(defun mu-register/citation-name ()
(let* ((from
(rfc822/address-string
(if (null return1)
(setq return1 fullname))
(setq return
- (read-string "Citation name? "
- return1
- 'mu-register/minibuffer-history))
- (if (not (string-equal return return1))
- (let ((ans)
- (cursor-in-echo-area t))
- (while (null ans)
- (message (format "Register \"%s\" (y/n)? " return))
- (setq ans (read-event))
- (if (not (or (eq ans ?y)
- (eq ans ?n)))
- (setq ans nil)))
- (message "")
- (if (eq ans ?y)
- (mu-register/add-citation-name return from))))
+ (tl:read-string "Citation name? "
+ return1
+ 'mu-register/minibuffer-history))
+ (if (and (not (string-equal return return1))
+ (y-or-n-p (format "Register \"%s\"? " return))
+ )
+ (mu-register/add-citation-name return from)
+ )
+ return))
+
+(defun mu-register/citation-name-quietly ()
+ (let* ((from
+ (rfc822/address-string
+ (car (rfc822/parse-address
+ (rfc822/lexical-analyze
+ (mu-cite/get-value 'from))))))
+ (fullname (mu-cite/get-value 'full-name))
+ (return1
+ (mu-register/get-citation-name from))
+ return)
+ (if (null return1)
+ (progn
+ (setq return
+ (tl:read-string "Citation name? "
+ fullname
+ 'mu-register/minibuffer-history))
+ (if (and (not (string-equal return return1))
+ (y-or-n-p (format "Register \"%s\"? " return))
+ )
+ (mu-register/add-citation-name return from)
+ ))
+ (setq return return1)
+ )
return))
-;;
-;; \e$B%U%!%$%k$KJ]B8\e(B
-(defun mu-register/save-to-file ()
- (let* ((filename mu-register/registration-file)
- (buffer (get-buffer-create " *mu-register*")))
- (save-excursion
- (set-buffer buffer)
- (setq buffer-file-name filename)
- (erase-buffer)
- (insert ";; generated automatically by mu-register.\n")
- (insert "(setq mu-register/citation-name-alist\n\
- (quote\n\
- ")
- (insert (prin1-to-string mu-register/citation-name-alist))
- (insert "))\n")
- (save-buffer))
- (kill-buffer buffer)))
\f
-;;
-;; Installation
+;;; @ Installation
+;;;
-(require 'mu-cite)
-(if (null (assoc 'registered mu-cite/default-methods-alist))
- (setq mu-cite/default-methods-alist
- (cons (cons 'registered (function mu-register/citation-name))
- mu-cite/default-methods-alist)))
+(set-alist 'mu-cite/default-methods-alist
+ 'prefix-register
+ (function mu-register/citation-name-quietly))
+(set-alist 'mu-cite/default-methods-alist
+ 'prefix-register-verbose
+ (function mu-register/citation-name))
+
+
+;;; @ end
+;;;
-;;
-;; provide
(provide 'mu-register)
;;; mu-register.el ends here