-;;; @ prefix registration
-;;;
-
-(defcustom mu-cite-registration-file (expand-file-name "~/.mu-cite.el")
- "The name of the user environment file for mu-cite."
- :type 'file
- :group 'mu-cite)
-
-(defcustom mu-cite-allow-null-string-registration nil
- "If non-nil, null-string citation-name is registered."
- :type 'boolean
- :group 'mu-cite)
-
-(defcustom mu-cite-registration-file-coding-system-for-read nil
- "Coding system for reading registration file."
- :group 'mu-cite)
-
-(defcustom mu-cite-registration-file-coding-system-for-write nil
- "Coding system for writing registration file."
- :group 'mu-cite)
-
-(defcustom mu-cite-registration-file-modes 384
- "Mode bits of `mu-cite-registration-file', as an integer."
- :type 'integer
- :group 'mu-cite)
-
-(defvar mu-cite-registration-symbol 'mu-cite-citation-name-alist)
-
-(defvar mu-cite-citation-name-alist nil)
-(unless (eq 'mu-cite-citation-name-alist mu-cite-registration-symbol)
- (setq mu-cite-citation-name-alist
- (symbol-value mu-cite-registration-symbol)))
-(defvar mu-cite-minibuffer-history nil)
-
-;; get citation-name from the database
-(defun mu-cite-get-citation-name (from)
- (cdr (assoc from mu-cite-citation-name-alist)))
-
-;; register citation-name to the database
-(defun mu-cite-add-citation-name (name from)
- (setq mu-cite-citation-name-alist
- (put-alist from name mu-cite-citation-name-alist))
- (mu-cite-save-registration-file))
-
-;; load/save registration file
-;;(defun mu-cite-load-registration-file ()
-;; (let ((file mu-cite-registration-file))
-;; (when (file-readable-p file)
-;; (let ((alist (with-temp-buffer
-;; (eval
-;; (` (let ((, mu-cite-registration-symbol))
-;; (insert-file-contents-as-coding-system
-;; mu-cite-registration-file-coding-system-for-read
-;; file)
-;; (condition-case nil
-;; (progn
-;; (eval-current-buffer)
-;; (, mu-cite-registration-symbol))
-;; (error nil))))))))
-;; (when alist
-;; (setq mu-cite-citation-name-alist alist))))))
-(defun mu-cite-load-registration-file ()
- (let ((file (mu-cite-registration-file)))
- (when (file-readable-p file)
- (let ((alist (with-temp-buffer
- (eval
- (` (let ((, mu-cite-registration-symbol)
- mu-cite/citation-name-alist)
- (insert-file-contents-as-coding-system
- mu-cite-registration-file-coding-system-for-read
- file)
- (condition-case nil
- (progn
- (eval-current-buffer)
- (or mu-cite/citation-name-alist
- (, mu-cite-registration-symbol)))
- (error nil))))))))
- (when alist
- (setq mu-cite-citation-name-alist alist))))))
-(add-hook 'mu-cite-load-hook (function mu-cite-load-registration-file))
-
-(defun mu-cite-save-registration-file ()
- ;;(let ((file mu-cite-registration-file))
- (let ((file (mu-cite-registration-file)))
- (with-temp-buffer
- (setq buffer-file-name file)
- (insert ";;; " (file-name-nondirectory file) "\n")
- (insert ";;; This file is generated automatically by mu-cite "
- mu-cite-version "\n\n")
- (insert "(setq "
- (symbol-name mu-cite-registration-symbol)
- "\n '(")
- (insert (mapconcat
- (function prin1-to-string)
- mu-cite-citation-name-alist "\n "))
- (insert "\n ))\n\n")
- (insert ";;; "
- (file-name-nondirectory file)
- " ends here.\n")
- (write-region 1 1 file nil 'nomsg)
- (condition-case nil
- (set-file-modes file mu-cite-registration-file-modes)
- (error nil))
- (save-buffer-as-coding-system
- mu-cite-registration-file-coding-system-for-write))))
-
-