Function: cl--expand-do-loop
cl--expand-do-loop is a byte-compiled function defined in
cl-macs.el.gz.
Signature
(cl--expand-do-loop STEPS ENDTEST BODY STAR)
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/cl-macs.el.gz
(defun cl--expand-do-loop (steps endtest body star)
`(cl-block nil
(,(if star 'let* 'let)
,(mapcar (lambda (c) (if (consp c) (list (car c) (nth 1 c)) c))
steps)
(while (not ,(car endtest))
,@body
,@(let ((sets (mapcar (lambda (c)
(and (consp c) (cdr (cdr c))
(list (car c) (nth 2 c))))
steps)))
(setq sets (delq nil sets))
(and sets
(list (cons (if (or star (not (cdr sets)))
'setq 'cl-psetq)
(apply #'append sets))))))
,@(or (cdr endtest) '(nil)))))