[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 メーリングリストの案内