Function: byte-optimize-concat
byte-optimize-concat is a byte-compiled function defined in
byte-opt.el.gz.
Signature
(byte-optimize-concat FORM)
Documentation
Merge adjacent constant arguments to concat.
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/byte-opt.el.gz
(defun byte-optimize-concat (form)
"Merge adjacent constant arguments to `concat'."
(let ((args (cdr form))
(newargs nil))
(while args
(let ((strings nil)
val)
(while (and args (macroexp-const-p (car args))
(progn
(setq val (eval (car args)))
(and (or (stringp val)
(and (or (listp val) (vectorp val))
(not (memq nil
(mapcar #'characterp val))))))))
(push val strings)
(setq args (cdr args)))
(when strings
(let ((s (apply #'concat (nreverse strings))))
(when (not (zerop (length s)))
(push s newargs)))))
(when args
(push (car args) newargs)
(setq args (cdr args))))
(if (= (length newargs) (length (cdr form)))
form ; No improvement.
(cons 'concat (nreverse newargs)))))