X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mu-cite.el;h=6c21aff4df91a64ef1e34cdb2627d49db127721e;hb=eee5d5a3e2ad61328d0b757852f3e6627f879696;hp=19334edb7ae95865d1a6568bf8f38fc5e8cd477c;hpb=2b3e2eaf50824264fed1299a55ee05f17d1841ef;p=elisp%2Fmu-cite.git diff --git a/mu-cite.el b/mu-cite.el index 19334ed..6c21aff 100644 --- a/mu-cite.el +++ b/mu-cite.el @@ -27,15 +27,15 @@ ;;; Commentary: ;; - How to use -;; 1. bytecompile this file and copy it to the apropriate directory. -;; 2. put the following lines to your ~/.emacs: -;; for EMACS 19 or later and XEmacs +;; 1. Bytecompile this file and copy it to the apropriate directory. +;; 2. Put the following lines in your ~/.emacs file: +;; For EMACS 19 or later and XEmacs ;; (autoload 'mu-cite-original "mu-cite" nil t) ;; ;; for all but message-mode ;; (add-hook 'mail-citation-hook (function mu-cite-original)) ;; ;; for message-mode only ;; (setq message-cite-function (function mu-cite-original)) -;; for EMACS 18 +;; For EMACS 18 ;; ;; for all but mh-e ;; (add-hook 'mail-yank-hooks (function mu-cite-original)) ;; ;; for mh-e only @@ -47,7 +47,6 @@ (require 'poe) (require 'pcustom) -(require 'widget) (require 'std11) (require 'alist) @@ -63,38 +62,7 @@ ;;; @ version ;;; -(defconst mu-cite-version "8.0") - - -;;; @ obsoletes -;;; - -;; This part will be abolished in the future. - -(eval-when-compile - (require 'static) - (defmacro mu-cite-obsolete-variable-alist () - ''((mu-cite/cited-prefix-regexp mu-cite-cited-prefix-regexp) - (mu-cite/default-methods-alist mu-cite-default-methods-alist) - (mu-cite/get-field-value-method-alist - mu-cite-get-field-value-method-alist) - (mu-cite/instantiation-hook mu-cite-instantiation-hook) - (mu-cite/ml-count-field-list mu-cite-ml-count-field-list) - (mu-cite/post-cite-hook mu-cite-post-cite-hook) - (mu-cite/pre-cite-hook mu-cite-pre-cite-hook) - (mu-cite/prefix-format mu-cite-prefix-format) - (mu-cite/top-format mu-cite-top-format)))) - -(static-if (featurep 'xemacs) - (dolist (def (mu-cite-obsolete-variable-alist)) - (apply (function define-obsolete-variable-alias) def))) - -(define-obsolete-function-alias - (function mu-cite/cite-original) (function mu-cite-original)) -(define-obsolete-function-alias - (function mu-cite/get-field-value) (function mu-cite-get-field-value)) -(define-obsolete-function-alias - (function mu-cite/get-value) (function mu-cite-get-value)) +(defconst mu-cite-version "8.1") ;;; @ macro @@ -115,7 +83,7 @@ ;;; (defgroup mu-cite nil - "yet another citation tool for GNU Emacs." + "Yet another citation tool for GNU Emacs." :prefix "mu-cite-" :group 'mail :group 'news) @@ -207,7 +175,7 @@ If match, mu-cite doesn't insert citation prefix." (defcustom mu-cite-prefix-format '(prefix-register-verbose "> ") "List to represent citation prefix. -Each elements must be string or method name." +Each elements must be a string or a method name." :type (list 'repeat (list @@ -233,7 +201,7 @@ Each elements must be string or method name." (defcustom mu-cite-top-format '(in-id ">>>>>\t" from " wrote:\n") "List to represent top string of citation. -Each elements must be string or method name." +Each elements must be a string or a method name." :type (list 'repeat (list @@ -301,7 +269,7 @@ registered in variable `mu-cite-get-field-value-method-alist' is called." (defcustom mu-cite-ml-count-field-list '("X-Ml-Count" "X-Mail-Count" "X-Seqno" "X-Sequence" "Mailinglist-Id") - "List of header fields which contain sequence number of mailing list." + "List of header fields which contains a sequence number of the mailing list." :type '(repeat (choice :tag "Field Name" (choice-item "X-Ml-Count") (choice-item "X-Mail-Count") @@ -317,12 +285,12 @@ registered in variable `mu-cite-get-field-value-method-alist' is called." (defun mu-cite-get-ml-count-method () "A mu-cite method to return a ML-count. This function searches a field about ML-count, which is specified by -variable `mu-cite-ml-count-field-list', in a header. +the variable `mu-cite-ml-count-field-list', in a header. If the field is found, the function returns a number part of the field. Notice that please use (mu-cite-get-value 'ml-count) -instead of call the function directly." +instead of to call the function directly." (let ((field-list mu-cite-ml-count-field-list)) (catch 'tag (while field-list @@ -344,7 +312,7 @@ instead of call the function directly." (run-hooks 'mu-cite-instantiation-hook)) (defun mu-cite-get-value (item) - "Return current value of ITEM." + "Return a current value of ITEM." (let ((ret (cdr (assoc item mu-cite-methods-alist)))) (if (functionp ret) (prog1 @@ -406,8 +374,8 @@ function according to the agreed upon standard." :group 'mu-cite) (defun-maybe-cond char-category (character) - "Return string of category mnemonics for CHAR in TABLE. -CHAR can be any multilingual character + "Return a string of category mnemonics for CHAR in TABLE. +CHAR can be any multilingual character, TABLE defaults to the current buffer's category table." ((and (subr-fboundp 'char-category-set) (subr-fboundp 'category-set-mnemonics)) @@ -436,18 +404,20 @@ TABLE defaults to the current buffer's category table." (let ((i 0) (prefix (buffer-substring (line-beginning-position) - (line-end-position))) - str ret) - (while (and (= (forward-line) 0) - (setq str (buffer-substring - (progn (beginning-of-line)(point)) - (progn (end-of-line)(point)))) - (setq ret (string-compare-from-top prefix str))) - (setq prefix - (if (stringp ret) - ret - (cadr ret))) - (setq i (1+ i))) + (line-end-position)))) + (let ((init prefix) + str ret) + (while (and (= (forward-line) 0) + (setq str (buffer-substring + (progn (beginning-of-line)(point)) + (progn (end-of-line)(point)))) + (setq ret (string-compare-from-top prefix str))) + (setq prefix + (if (stringp ret) + ret + (car (cdr ret)))) + (or (string-equal init prefix) + (setq i (1+ i))))) (cond ((> i 1) prefix) ((> i 0) (goto-char (point-min)) @@ -472,7 +442,7 @@ TABLE defaults to the current buffer's category table." (goto-char (match-end 0)) (if (looking-at "[ \t]+") (goto-char (match-end 0))) - (buffer-substring (point-min)(point))) + (buffer-substring (line-beginning-position)(point))) (t ""))))) ;;;###autoload @@ -486,7 +456,11 @@ TABLE defaults to the current buffer's category table." (setq end (match-end 0))) (narrow-to-region beg end) (let* ((fill-prefix (detect-paragraph-cited-prefix)) - (pat (concat fill-prefix "\n"))) + (fill-column (max (+ 1 (current-left-margin) + (string-width fill-prefix)) + (current-fill-column))) + (pat (concat fill-prefix "\n")) + filladapt-mode) (goto-char (point-min)) (while (search-forward pat nil t) (let ((b (match-beginning 0)) @@ -569,23 +543,4 @@ TABLE defaults to the current buffer's category table." (run-hooks 'mu-cite-load-hook) -;; This part will be abolished in the future. - -(static-unless (featurep 'xemacs) - (let ((rest (mu-cite-obsolete-variable-alist)) - def new-sym old-sym) - (while rest - (setq def (car rest)) - (apply (function make-obsolete-variable) def) - (setq old-sym (car def) - new-sym (car (cdr def))) - (or (get new-sym 'saved-value) ; saved? - (not (eq (eval (car (get new-sym 'standard-value))) - (symbol-value new-sym))) ; set as new name? - (and (boundp old-sym) ; old name seems used - (or (eq (symbol-value new-sym) - (symbol-value old-sym)) - (set new-sym (symbol-value old-sym))))) - (setq rest (cdr rest))))) - ;;; mu-cite.el ends here