[Mew-dist 09829] addrbook
Kazu Yamamoto ( 山本和彦 )
kazu at example.com
1999年 7月 26日 (月) 11:30:16 JST
下記のパッチを当てると、Addrbok に関し引用ラベル、引用記号、アドレスの
展開がカスタマイズできるようになります。
mew-addrbook-for-* を mew-addrbook-switch を参考に設定してみて下さい。
--かず
-------------- next part --------------
? LOGLESS
? misc
? diff
Index: 00changes
===================================================================
RCS file: /usr/home/kazu/cvsroot/Mew/mew/00changes,v
retrieving revision 1.380
retrieving revision 1.383
diff -c -r1.380 -r1.383
*** 00changes 1999/07/23 04:30:19 1.380
--- 00changes 1999/07/25 16:30:33 1.383
***************
*** 1,5 ****
--- 1,13 ----
<Change Log>
+ 1.94b44
+
+ * Defined mew-addrbook-switch.
+ * A bug fix for undo in Draft.
+ * C-cC-v -> mew-pgp-select.
+ * Enabling timer on Meadow.
+ Hideyuki SHIRAI <shirai at example.com>
+
1.94b43 (99/07/23) mew-dist release
* Toggling mew-protect-privacy-*. (C-cC-p{C-a,C-e} in Draft)
Index: mew-addrbook.el
===================================================================
RCS file: /usr/home/kazu/cvsroot/Mew/mew/mew-addrbook.el,v
retrieving revision 1.33
retrieving revision 1.34
diff -c -r1.33 -r1.34
*** mew-addrbook.el 1999/07/16 03:33:47 1.33
--- mew-addrbook.el 1999/07/25 16:30:33 1.34
***************
*** 63,68 ****
--- 63,73 ----
;;
+ (defmacro mew-addrbook-func (key)
+ (` (cdr (assoc (, key) mew-addrbook-switch))))
+
+ ;;
+
(defmacro mew-alias-get (key)
(` (mew-addrbook-alias-get (, key) mew-addrbook-alist)))
***************
*** 148,153 ****
--- 153,163 ----
))))
;;
+
+ (defun mew-addrbook-shortname-get (addr)
+ (nth 0 (mew-assoc-member
+ (if mew-addrbook-downcase-address (downcase addr) addr)
+ mew-addrbook-alist 1)))
(defun mew-addrbook-nickname-get (addr)
(nth 2 (mew-assoc-member
Index: mew-draft.el
===================================================================
RCS file: /usr/home/kazu/cvsroot/Mew/mew/mew-draft.el,v
retrieving revision 1.114
retrieving revision 1.115
diff -c -r1.114 -r1.115
*** mew-draft.el 1999/07/22 04:29:37 1.114
--- mew-draft.el 1999/07/25 16:30:33 1.115
***************
*** 703,708 ****
--- 703,712 ----
(switch-to-buffer (process-buffer process))
(local-set-key "\C-c\C-q" 'mew-kill-buffer))))
+ ;;
+ ;; Citation
+ ;;
+
(defun mew-draft-yank (&optional arg force)
"Copy and paste a part of message from Message mode WITHOUT
citation prefix and label.
***************
*** 737,764 ****
(push-mark (point) t t) ;; for C-x C-x
(insert cite))))
- (defun mew-cite-strings-with-nickname (lst mew-cite-fields)
- (let ((i 0) (l mew-cite-fields) nickname)
- (catch 'loop
- (while (car l)
- (if (string= mew-from: (car l))
- (throw 'loop i))
- (setq i (1+ i))
- (setq l (cdr l))))
- (setq nickname (mew-addrbook-nickname-get
- (mew-addrstr-parse-address (nth i lst))))
- (if nickname (setcar (nthcdr i lst) nickname)))
- lst)
-
- (defun mew-cite-strings ()
- (if (null mew-cite-fields)
- ""
- (let ((fields (mapcar (function mew-header-get-value) mew-cite-fields)))
- (setq fields (mapcar (function (lambda (x) (or x ""))) fields))
- (if mew-use-nickname
- (setq fields (mew-cite-strings-with-nickname fields mew-cite-fields)))
- (apply (function format) mew-cite-format fields))))
-
(defvar mew-message-citation-buffer nil
"This value is used by mew-gnus.el to specify a buffer from where
you can cite.")
--- 741,746 ----
***************
*** 884,889 ****
--- 866,905 ----
(or (equal (point) (point-max))
(insert prefix))))))
+ (defun mew-cite-get-value (field)
+ (let ((value (mew-header-get-value field))
+ repl func)
+ (if (and (string= mew-from: field) value
+ (setq func (mew-addrbook-func mew-addrbook-for-cite-label)))
+ (progn
+ (setq repl (funcall func (mew-addrstr-parse-address value)))
+ (if repl (setq value repl))))
+ (or value "")))
+
+ (defun mew-cite-strings ()
+ "A function to create cite label according to
+ \"mew-cite-format\" and \"mew-cite-fields\"."
+ (if (null mew-cite-fields)
+ ""
+ (apply (function format)
+ mew-cite-format
+ (mapcar (function mew-cite-get-value) mew-cite-fields))))
+
+ (defun mew-cite-prefix-username ()
+ "A good candidate for mew-cite-prefix-function.
+ The citation style is \"from_address> \", e.g. \"kazu> \""
+ (let ((from (mew-header-parse-address mew-from:))
+ (func (mew-addrbook-func mew-addrbook-for-cite-prefix))
+ prefix)
+ (setq prefix (if func (funcall func from) from))
+ (if mew-ask-cite-prefix
+ (setq prefix (read-string "Citation prefix: " prefix)))
+ (concat prefix mew-cite-prefix)))
+
+ ;;
+ ;;
+ ;;
+
(defun mew-draft-kill ()
"Kill this draft."
(interactive)
***************
*** 980,996 ****
(mew-highlight-header)
(mew-draft-header-keymap)
(mew-highlight-body))
-
- (defun mew-cite-prefix-username ()
- "A good candidate for mew-cite-prefix-function.
- The citation style is \"from_address> \", e.g. \"kazu> \""
- (let ((from (mew-header-parse-address mew-from:))
- prefix)
- (setq prefix (or (and mew-use-nickname (mew-addrbook-nickname-get from))
- (mew-addrstr-extract-user from)))
- (if mew-ask-cite-prefix
- (setq prefix (read-string "Citation prefix: " prefix)))
- (format "%s> " prefix)))
;;
;; Privacy
--- 996,1001 ----
Index: mew-encode.el
===================================================================
RCS file: /usr/home/kazu/cvsroot/Mew/mew/mew-encode.el,v
retrieving revision 1.88
retrieving revision 1.89
diff -c -r1.88 -r1.89
*** mew-encode.el 1999/07/21 06:53:31 1.88
--- mew-encode.el 1999/07/23 13:46:38 1.89
***************
*** 121,126 ****
--- 121,127 ----
(mew-draft-make-single)))
(mew-draft-make-header))
(save-buffer)
+ (setq mew-encode-syntax nil) ;; for undo
(setq buffer-undo-list nil)
(message "Making a MIME letter ... done"))
(mew-draft-undo)))) ;; may not work due to timing
Index: mew-env.el
===================================================================
RCS file: /usr/home/kazu/cvsroot/Mew/mew/mew-env.el,v
retrieving revision 1.45
retrieving revision 1.46
diff -c -r1.45 -r1.46
*** mew-env.el 1999/07/16 03:49:27 1.45
--- mew-env.el 1999/07/23 11:59:18 1.46
***************
*** 19,25 ****
(if (featurep 'mule) (setq mew-mule-p t))
(cond
! ((string-match "XEmacs" emacs-version)
(setq mew-temacs-p nil)
(setq mew-xemacs-p t)
(if (and (valid-image-instantiator-format-p 'xpm) (featurep 'toolbar))
--- 19,25 ----
(if (featurep 'mule) (setq mew-mule-p t))
(cond
! ((featurep 'xemacs)
(setq mew-temacs-p nil)
(setq mew-xemacs-p t)
(if (and (valid-image-instantiator-format-p 'xpm) (featurep 'toolbar))
Index: mew-summary.el
===================================================================
RCS file: /usr/home/kazu/cvsroot/Mew/mew/mew-summary.el,v
retrieving revision 1.196
retrieving revision 1.197
diff -c -r1.196 -r1.197
*** mew-summary.el 1999/07/21 05:54:37 1.196
--- mew-summary.el 1999/07/23 13:46:38 1.197
***************
*** 129,134 ****
--- 129,135 ----
(define-key mew-summary-mode-map "\C-c\C-c" 'mew-summary-flush-queue)
(define-key mew-summary-mode-map "\C-c\C-e" 'mew-summary-execute-external)
(define-key mew-summary-mode-map "\C-c\C-f" 'mew-pgp-fetch-key)
+ (define-key mew-summary-mode-map "\C-c\C-v" 'mew-pgp-select)
(define-key mew-summary-mode-map "\C-c\C-i" 'mew-summary-insert)
(define-key mew-summary-mode-map "\C-c\C-s" 'mew-summary-isearch-forward)
(define-key mew-summary-mode-map "\C-c\C-r" 'mew-summary-isearch-backward)
***************
*** 414,419 ****
--- 415,421 ----
C-cC-p Decrypting/verifying old-fashioned PGP messages.
C-cC-x Display xface.
C-cC-f Fetch the PGP public key whose key ID appears in the X-Mew: field.
+ C-cC-v Select PGP version.
C-cC-a Adding the value of From: in Message mode to Addrbook.
When executed with \"C-u\", it will add an alias.
Index: mew-vars.el
===================================================================
RCS file: /usr/home/kazu/cvsroot/Mew/mew/mew-vars.el,v
retrieving revision 1.155
retrieving revision 1.156
diff -c -r1.155 -r1.156
*** mew-vars.el 1999/07/22 04:29:37 1.155
--- mew-vars.el 1999/07/25 16:30:33 1.156
***************
*** 899,910 ****
(defvar mew-use-bbdb nil
"*Use Insidious Big Brother Database if t")
- (defvar mew-use-petname nil
- "*Historical reason only. Use \"mew-use-nickname\" instead.")
-
- (defvar mew-use-nickname mew-use-petname
- "*If non-nil, labels for citation is converted to nickname of Addrbook.")
-
(defvar mew-use-imap nil
"*If nil, both immv and imrm are called synchronously for speed when
\"x\" is typed. If *non-nil*, they are called asynchronously to catch
--- 899,904 ----
***************
*** 1311,1316 ****
--- 1305,1330 ----
This means that addresses in To: and Cc: in Draft mode are
always learned with an exception \"user\" is defined in Addrbook.
If nil, the old \"user\" entry retains.")
+
+ (defvar mew-addrbook-switch
+ '((shortname . mew-addrbook-shortname-get)
+ (address . identity)
+ (username . mew-addrstr-extract-user)
+ (nickname . mew-addrbook-nickname-get)
+ (name . mew-addrbook-name-get))
+ "Function database to get each field of Addrbook.")
+
+ (defvar mew-addrbook-for-cite-label nil
+ "*How to replace the From: value in cite label
+ with Addrbook. See \"mew-addrbook-switch\".")
+ (defvar mew-addrbook-for-cite-prefix 'username
+ "*How to replace the From: value in cite prefix
+ with Addrbook. See \"mew-addrbook-switch\".")
+ (defvar mew-addrbook-for-address-expansion 'name
+ "*How to replace an address in address fields
+ with Addrbook. See \"mew-addrbook-switch\".")
+
+ ;;(defvar mew-addrbook-for-summary 'nickname) ;; in the future...
;;
;; Privacy
Index: mew-virtual.el
===================================================================
RCS file: /usr/home/kazu/cvsroot/Mew/mew/mew-virtual.el,v
retrieving revision 1.22
retrieving revision 1.23
diff -c -r1.22 -r1.23
*** mew-virtual.el 1999/07/15 04:30:02 1.22
--- mew-virtual.el 1999/07/23 13:46:39 1.23
***************
*** 114,119 ****
--- 114,120 ----
C-cC-p Decrypting/verifying old-fashioned PGP messages.
C-cC-x Display xface.
C-cC-f PGP public key fetch.
+ C-cC-v Select PGP version.
"
(interactive)
(setq major-mode 'mew-virtual-mode)
Index: mew-win32.el
===================================================================
RCS file: /usr/home/kazu/cvsroot/Mew/mew/mew-win32.el,v
retrieving revision 1.30
retrieving revision 1.31
diff -c -r1.30 -r1.31
*** mew-win32.el 1999/07/21 10:35:49 1.30
--- mew-win32.el 1999/07/23 08:38:42 1.31
***************
*** 83,88 ****
--- 83,89 ----
NAME BUFFER PROGRAM PROGRAM-ARGS)))))
)))
(t ;; Mule for Win32
+ (setq mew-use-timer nil)
(setq mew-prog-shell-arg shell-command-option)
(require 'win32-script)
(define-process-argument-editing
***************
*** 206,213 ****
"Application/Vnd.Ms-Powerpoint"
)
mew-mime-content-type-list))
-
- (setq mew-use-timer nil)
(provide 'mew-win32)
--- 207,212 ----
Mew-dist メーリングリストの案内