Function: mh-dlet*

mh-dlet* is a macro defined in mh-acros.el.gz.

Signature

(mh-dlet* BINDERS &rest BODY)

Documentation

Like let* but always dynamically scoped.

Source Code

;; Defined in /usr/src/emacs/lisp/mh-e/mh-acros.el.gz
(defmacro mh-dlet* (binders &rest body)
  "Like `let*' but always dynamically scoped."
  (declare (debug let) (indent 1))
  ;; Works in both lexical and non-lexical mode.
  `(progn
     (with-suppressed-warnings ((lexical
                                 ,@(mapcar (lambda (binder)
                                             (if (consp binder)
                                                 (car binder)
                                               binder))
                                           binders)))
       ,@(mapcar (lambda (binder)
                   `(defvar ,(if (consp binder) (car binder) binder)))
                 binders)
       (let* ,binders ,@body))))