Function: mail-resolve-all-aliases-1

mail-resolve-all-aliases-1 is a byte-compiled function defined in mailabbrev.el.gz.

Signature

(mail-resolve-all-aliases-1 SYM &optional SO-FAR)

Source Code

;; Defined in /usr/src/emacs/lisp/mail/mailabbrev.el.gz
(defun mail-resolve-all-aliases-1 (sym &optional so-far)
  (if (memq sym so-far)
      (error "Mail alias loop detected: %s"
	     (mapconcat #'symbol-name (cons sym so-far) " <- ")))
  (let ((definition (and (boundp sym) (symbol-value sym))))
    (if definition
	(let ((result '())
	      (start 0))
	  (while start
	    (let ((end (string-match "[ \t\n]*,[, \t\n]*" definition start)))
	      (setq result (cons (substring definition start end) result)
		    start (and end (match-end 0)))))
	  (setq definition
                (mapconcat (lambda (x)
			     (or (mail-resolve-all-aliases-1
                                  (intern-soft (downcase x) mail-abbrevs)
                                  (cons sym so-far))
                                 x))
			   (nreverse result)
			   mail-alias-separator-string))
	  (set sym definition))))
  (symbol-value sym))