with-elapsed-timer: only check verbosity once

This commit is contained in:
Noam Postavsky 2013-08-31 10:30:08 -04:00
parent 9921a76e86
commit 61fd933807

View file

@ -321,18 +321,16 @@
:group 'use-package) :group 'use-package)
(defmacro with-elapsed-timer (text &rest forms) (defmacro with-elapsed-timer (text &rest forms)
`(let ((now ,(if use-package-verbose (if use-package-verbose
'(current-time)))) `(let ((now (current-time)))
,(if use-package-verbose (message "%s..." ,text)
`(message "%s..." ,text)) (prog1 ,@forms
(prog1 (let ((elapsed
,@forms (float-time (time-subtract (current-time) now))))
,(when use-package-verbose (if (> elapsed ,use-package-minimum-reported-time)
`(let ((elapsed (message "%s...done (%.3fs)" ,text elapsed)
(float-time (time-subtract (current-time) now)))) (message "%s...done" ,text)))))
(if (> elapsed ,use-package-minimum-reported-time) `(prog1 ,@forms)))
(message "%s...done (%.3fs)" ,text elapsed)
(message "%s...done" ,text)))))))
(put 'with-elapsed-timer 'lisp-indent-function 1) (put 'with-elapsed-timer 'lisp-indent-function 1)