-;;; wl-addrmgr.el -- Address manager for Wanderlust.
+;;; wl-addrmgr.el --- Address manager for Wanderlust.
;; Copyright (C) 2001 Kitamoto Tsuyoshi <tsuyoshi.kitamoto@city.sapporo.jp>
;; Copyright (C) 2001 Yuuichi Teranishi <teranisi@gohome.org>
"Major mode for Wanderlust address management.
See info under Wanderlust for full documentation.
-\\{wl-addrmgr-mode}"
+\\{wl-addrmgr-mode-map}"
(kill-all-local-variables)
(setq mode-name "Address"
major-mode 'wl-addrmgr-mode)
(forward-char 4)))))
(defun wl-addrmgr-quit-yes ()
- (if (and wl-addrmgr-draft-buffer
- (buffer-live-p wl-addrmgr-draft-buffer)
- (null (get-buffer-window wl-addrmgr-draft-buffer)))
- (switch-to-buffer wl-addrmgr-draft-buffer)
- (unless (one-window-p)
- (delete-window)))
- (kill-buffer wl-addrmgr-buffer-name))
+ (let ((draft-buffer wl-addrmgr-draft-buffer))
+ (if (and draft-buffer
+ (buffer-live-p draft-buffer)
+ (null (get-buffer-window draft-buffer 'visible)))
+ (switch-to-buffer draft-buffer)
+ (unless (one-window-p)
+ (delete-window)))
+ (kill-buffer wl-addrmgr-buffer-name)
+ (if (and draft-buffer (not (one-window-p)))
+ (switch-to-buffer-other-window draft-buffer))))
(defun wl-addrmgr-quit ()
"Exit from electric reference mode without inserting reference."
(setq realname (nth 2 (wl-addrmgr-address-entry)))
(cond
((string= mark "To:")
- (setq to-list (cons (if full (concat
- (wl-address-quote-specials realname)
- " <" addr">")
- addr)
- to-list)))
+ (setq to-list (cons
+ (if (and full
+ (not (or (string= realname "")
+ (string-match ".*:.*;$" addr))))
+ (concat
+ (wl-address-quote-specials realname)
+ " <" addr">")
+ addr)
+ to-list)))
((string= mark "Cc:")
- (setq cc-list (cons (if full (concat
- (wl-address-quote-specials realname)
- " <" addr">")
- addr)
- cc-list)))
+ (setq cc-list (cons
+ (if (and full
+ (not (or (string= realname "")
+ (string-match ".*:.*;$" addr))))
+ (concat
+ (wl-address-quote-specials realname)
+ " <" addr">")
+ addr)
+ cc-list)))
((string= mark "Bcc:")
- (setq bcc-list (cons (if full (concat
- (wl-address-quote-specials realname)
- " <" addr">")
- addr)
- bcc-list)))))
+ (setq bcc-list (cons
+ (if (and full
+ (not (or (string= realname "")
+ (string-match ".*:.*;$" addr))))
+ (concat
+ (wl-address-quote-specials realname)
+ " <" addr">")
+ addr)
+ bcc-list)))))
(list to-list cc-list bcc-list))))
(defun wl-addrmgr-apply-exec (rcpt)
(when (or (null wl-addrmgr-draft-buffer)
(not (buffer-live-p wl-addrmgr-draft-buffer)))
(setq wl-addrmgr-draft-buffer (save-window-excursion
- (wl-draft)
- (current-buffer))))
+ (call-interactively 'wl-draft)
+ (current-buffer))))
(with-current-buffer wl-addrmgr-draft-buffer
(setq from (std11-field-body "From"))
(if from