X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=wl%2Fwl-address.el;h=d41537d861b093de2d115c0183271003c29ae6ef;hb=0dde8858aebea5d441e0156d7649f766706d45d7;hp=439b73767831e7bcc232ad9087a99f4301c1f10b;hpb=42f82edbfeff92ec0a0565df9c49fef0d6e54a87;p=elisp%2Fwanderlust.git diff --git a/wl/wl-address.el b/wl/wl-address.el index 439b737..d41537d 100644 --- a/wl/wl-address.el +++ b/wl/wl-address.el @@ -37,7 +37,7 @@ (require 'wl-vars) (require 'std11) -(defvar wl-address-complete-header-list +(defvar wl-address-complete-header-list '("To:" "From:" "Cc:" "Bcc:" "Mail-Followup-To:" "Reply-To:" "Return-Receipt-To:")) (defvar wl-address-complete-header-regexp nil) ; auto-generated. @@ -524,7 +524,7 @@ Refresh `wl-address-list', `wl-address-completion-list', and (wl-address-expand-aliases alist (1+ nest-count)))))) (defun wl-address-make-alist-from-alias-file (file) - (elmo-set-work-buf + (with-temp-buffer (let ((case-fold-search t) alias expn alist) (insert-file-contents file) @@ -542,23 +542,23 @@ Refresh `wl-address-list', `wl-address-completion-list', and ))) (defun wl-address-make-address-list (path) - (if (and path (file-readable-p path)) - (elmo-set-work-buf - (let (ret - (coding-system-for-read wl-cs-autoconv)) - (insert-file-contents path) - (goto-char (point-min)) - (while (not (eobp)) - (if (looking-at - "^\\([^#\n][^ \t\n]+\\)[ \t]+\\(\".*\"\\)[ \t]+\\(\".*\"\\)[ \t]*.*$") - (setq ret - (cons - (list (wl-match-buffer 1) - (read (wl-match-buffer 2)) - (read (wl-match-buffer 3))) - ret))) - (forward-line)) - (nreverse ret))))) + (when (and path (file-readable-p path)) + (with-temp-buffer + (let (ret + (coding-system-for-read wl-cs-autoconv)) + (insert-file-contents path) + (goto-char (point-min)) + (while (not (eobp)) + (if (looking-at "\ +^\\([^#\n][^ \t\n]+\\)[ \t]+\\(\".*\"\\)[ \t]+\\(\".*\"\\)[ \t]*.*$") + (setq ret + (cons + (list (wl-match-buffer 1) + (read (wl-match-buffer 2)) + (read (wl-match-buffer 3))) + ret))) + (forward-line)) + (nreverse ret))))) (defsubst wl-address-header-extract-address (str) @@ -620,13 +620,13 @@ Deletion is done by using `elmo-list-delete'." list)))))) (defmacro wl-address-concat-token (string token) - (` (cond - ((eq 'quoted-string (car (, token))) - (concat (, string) "\"" (cdr (, token)) "\"")) - ((eq 'comment (car (, token))) - (concat (, string) "(" (cdr (, token)) ")")) - (t - (concat (, string) (cdr (, token))))))) + `(cond + ((eq 'quoted-string (car ,token)) + (concat ,string "\"" (cdr ,token) "\"")) + ((eq 'comment (car ,token)) + (concat ,string "(" (cdr ,token) ")")) + (t + (concat ,string (cdr ,token))))) (defun wl-address-string-without-group-list-contents (sequence) "Return address string from lexical analyzed list SEQUENCE. @@ -733,6 +733,31 @@ If already registerd, change it." (wl-address-init) (list (or new-addr address) the-petname the-realname))))) +;; Read addresses from minibuffer with completion. +(defvar wl-address-minibuffer-history nil) +(defvar wl-address-minibuffer-local-map nil + "Keymap to use when reading address from the minibuffer.") + +(unless wl-address-minibuffer-local-map + (let ((map (make-sparse-keymap))) + (set-keymap-parent map minibuffer-local-map) + (define-key map "\C-i" + (lambda () + (interactive) + (wl-complete-field-body wl-address-completion-list + ?@ nil wl-use-ldap))) + (setq wl-address-minibuffer-local-map map))) + +(defun wl-address-read-from-minibuffer (prompt &optional + initial-contents + default-value) + (read-from-minibuffer prompt + initial-contents + wl-address-minibuffer-local-map + nil + 'wl-address-minibuffer-history + default-value)) + (require 'product) (product-provide (provide 'wl-address) (require 'wl-version))