;;; mh-alias.el --- MH-E mail alias completion and expansion
-;; Copyright (C) 1994, 1995, 1996, 1997,
-;; 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1994-1997, 2001-2013 Free Software Foundation, Inc.
;; Author: Peter S. Galbraith <psg@debian.org>
;; Maintainer: Bill Wohler <wohler@newt.com>
(completing-read prompt mh-alias-alist nil nil) ",")))))
(if (not mh-alias-expand-aliases-flag)
(mapconcat 'identity the-answer ", ")
- ;; Loop over all elements, checking if in passwd aliast or blind first
+ ;; Loop over all elements, checking if in passwd alias or blind first
(mapconcat 'mh-alias-expand the-answer ",\n ")))))
;;;###mh-autoload
(the-name (buffer-substring-no-properties beg (point))))
(if (mh-assoc-string the-name mh-alias-alist t)
(message "%s -> %s" the-name (mh-alias-expand the-name))
- ;; Check if if was a single word likely to be an alias
+ ;; Check if it was a single word likely to be an alias
(if (and (equal mh-alias-flash-on-comma 1)
(not (string-match " " the-name)))
(message "No alias for %s" the-name))))))
(defun mh-alias-letter-expand-alias ()
"Expand mail alias before point."
(mh-alias-reload-maybe)
- (let* ((end (point))
- (begin (mh-beginning-of-word))
- (input (buffer-substring-no-properties begin end)))
- (mh-complete-word input mh-alias-alist begin end)
- (when mh-alias-expand-aliases-flag
- (let* ((end (point))
- (expansion (mh-alias-expand (buffer-substring begin end))))
- (delete-region begin end)
- (insert expansion)))))
-
+ (let* ((begin (mh-beginning-of-word))
+ (end (save-excursion
+ (goto-char begin)
+ (mh-beginning-of-word -1))))
+ (when (>= end (point))
+ (list
+ begin (if (fboundp 'completion-at-point) end (point))
+ (if (not mh-alias-expand-aliases-flag)
+ mh-alias-alist
+ (lambda (string pred action)
+ (case action
+ ((nil)
+ (let ((res (try-completion string mh-alias-alist pred)))
+ (if (or (eq res t)
+ (and (stringp res)
+ (eq t (try-completion res mh-alias-alist pred))))
+ (or (mh-alias-expand (if (stringp res) res string))
+ res)
+ res)))
+ ((t) (all-completions string mh-alias-alist pred))
+ ((lambda) (mh-test-completion string mh-alias-alist pred)))))))))
\f
;;; Alias File Updating
(message "Making passwd aliases...")
(setq passwd-matches
(mapconcat
- '(lambda (elem)
- (if (or (string-match regexp (car elem))
- (string-match regexp (cadr elem)))
- (format "%s: %s\n" (car elem) (cadr elem))))
+ (lambda (elem)
+ (if (or (string-match regexp (car elem))
+ (string-match regexp (cadr elem)))
+ (format "%s: %s\n" (car elem) (cadr elem))))
mh-alias-passwd-alist ""))
(message "Making passwd aliases...done")))
(if (and (string-equal "" matches)
;; sentence-end-double-space: nil
;; End:
-;; arch-tag: 49879e46-5aa3-4569-bece-e5a58731d690
;;; mh-alias.el ends here