Function: message--name-table

message--name-table is a byte-compiled function defined in message.el.gz.

Signature

(message--name-table ORIG-STRING)

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/message.el.gz
(defun message--name-table (orig-string)
  (let ((orig-words (split-string orig-string "[ \t]+"))
        eudc-responses
        bbdb-responses)
    (lambda (string pred action)
      (pcase action
        ('metadata '(metadata (category . email)))
        ('lambda t)
        ((or 'nil 't)
         (when orig-words
           (when (and (memq 'eudc message-expand-name-databases)
		      (boundp 'eudc-protocol)
		      eudc-protocol)
	     (setq eudc-responses (eudc-query-with-words orig-words)))
	   (when (memq 'bbdb message-expand-name-databases)
	     (setq bbdb-responses (message--bbdb-query-with-words orig-words)))
	   (ecomplete-setup)
	   (setq orig-words nil))
         (let ((candidates
                ;; FIXME: Add `expand-abbrev'!
                (append (all-completions string eudc-responses pred)
                        (all-completions string bbdb-responses pred)
                        (when (and (bound-and-true-p ecomplete-database)
                                   (fboundp 'ecomplete-completion-table))
                          (all-completions string
                                           (ecomplete-completion-table 'mail)
                                           pred)))))
	   (if action candidates (try-completion string candidates))))))))