Function: completion-table-merge
completion-table-merge is a byte-compiled function defined in
minibuffer.el.gz.
Signature
(completion-table-merge &rest TABLES)
Documentation
Create a completion table that collects completions from all TABLES.
Probably introduced at or before Emacs version 24.4.
Source Code
;; Defined in /usr/src/emacs/lisp/minibuffer.el.gz
(defun completion-table-merge (&rest tables)
"Create a completion table that collects completions from all TABLES."
;; FIXME: same caveats as in `completion-table-in-turn'.
(lambda (string pred action)
(cond
((null action)
(let ((retvals (mapcar (lambda (table)
(try-completion string table pred))
tables)))
(if (member string retvals)
string
(try-completion string
(mapcar (lambda (value)
(if (eq value t) string value))
(delq nil retvals))
pred))))
((eq action t)
(apply #'append (mapcar (lambda (table)
(all-completions string table pred))
tables)))
(t
(completion--some (lambda (table)
(complete-with-action action table string pred))
tables)))))