1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-06 14:30:50 -08:00

Correction to a macro expansion

This commit is contained in:
John Wiegley 2017-12-03 23:22:25 -08:00
parent 62f866caf7
commit 8bf5de28c3

View file

@ -1328,47 +1328,49 @@ no keyword implies `:all'."
(defsubst use-package-hush (context body) (defsubst use-package-hush (context body)
`((condition-case-unless-debug err `((condition-case-unless-debug err
,(macroexp-progn body) ,(macroexp-progn body)
(error (,context err))))) (error (funcall ,context err)))))
(defun use-package-core (name args) (defun use-package-core (name args)
(let* ((context (gensym "use-package--warning")) (let* ((context (gensym "use-package--warning"))
(args* (use-package-normalize-keywords name args)) (args* (use-package-normalize-keywords name args))
(use-package--hush-function #'identity) (use-package--hush-function #'identity))
(process `(use-package-process-keywords ',name ',args*
',(and (plist-get args* :demand)
(list :demand t)))))
(if use-package-expand-minimally (if use-package-expand-minimally
(eval process) (use-package-process-keywords name args*
`((cl-flet (and (plist-get args* :demand)
(list :demand t)))
`((let
((,context ((,context
(err) #'(lambda (err)
(let ((msg (format "%s: %s" ',name (let ((msg (format "%s: %s" ',name (error-message-string err))))
(error-message-string err)))) ,(when (eq use-package-verbose 'debug)
,(when (eq use-package-verbose 'debug) `(progn
`(progn (with-current-buffer (get-buffer-create "*use-package*")
(setq msg (concat msg " (see the *use-package* buffer)")) (goto-char (point-max))
(with-current-buffer (get-buffer-create "*use-package*") (insert
(goto-char (point-max)) "-----\n" msg
(insert ,(concat
"-----\n" msg "\n\n"
,(concat (pp-to-string `(use-package ,name ,@args))
"\n\n" "\n -->\n\n"
(pp-to-string `(use-package ,name ,@args)) (pp-to-string `(use-package ,name ,@args*))
"\n -->\n\n" "\n ==>\n\n"
(pp-to-string `(use-package ,name ,@args*)) (pp-to-string
"\n ==>\n\n" (macroexp-progn
(pp-to-string (let ((use-package-verbose 'errors)
(macroexp-progn (use-package-expand-minimally t))
(let ((use-package-verbose 'errors) (use-package-process-keywords name args*
(use-package-expand-minimally t)) (and (plist-get args* :demand)
(eval process)))))) (list :demand t))))))))
(emacs-lisp-mode)))) (emacs-lisp-mode))
(ignore (display-warning 'use-package msg :error))))) (setq msg (concat msg " (see the *use-package* buffer)"))))
(ignore (display-warning 'use-package msg :error))))))
,(let ((use-package--hush-function ,(let ((use-package--hush-function
(apply-partially #'use-package-hush context))) (apply-partially #'use-package-hush context)))
(macroexp-progn (macroexp-progn
(funcall use-package--hush-function (funcall use-package--hush-function
(eval process))))))))) (use-package-process-keywords name args*
(and (plist-get args* :demand)
(list :demand t)))))))))))
;;;###autoload ;;;###autoload
(defmacro use-package (name &rest args) (defmacro use-package (name &rest args)