Function: backquote-listify
backquote-listify is a byte-compiled function defined in
backquote.el.gz.
Signature
(backquote-listify LIST OLD-TAIL)
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/backquote.el.gz
;; backquote-listify takes (tag . structure) pairs from backquote-process
;; and decides between append, list, backquote-list*, and cons depending
;; on which tags are in the list.
(defun backquote-listify (list old-tail)
(let ((heads nil) (tail (cdr old-tail)) (list-tail list) (item nil))
(if (= (car old-tail) 0)
(setq tail (eval tail)
old-tail nil))
(while (consp list-tail)
(setq item (car list-tail))
(setq list-tail (cdr list-tail))
(if (or heads old-tail (/= (car item) 0))
(setq heads (cons (cdr item) heads))
(setq tail (cons (eval (cdr item)) tail))))
(cond
(tail
(if (null old-tail)
(setq tail (list 'quote tail)))
(if heads
(let ((use-list* (or (cdr heads)
(and (consp (car heads))
(eq (car (car heads))
backquote-splice-symbol)))))
(cons (if use-list* 'backquote-list* 'cons)
(append heads (list tail))))
tail))
(t (cons 'list heads)))))