* [PATCH] lisp/custom.el (load-theme): Only compute hash when needed
@ 2015-09-13 19:08 Mark Oteiza
0 siblings, 0 replies; only message in thread
From: Mark Oteiza @ 2015-09-13 19:08 UTC (permalink / raw)
To: emacs-devel
---
Right now, load-theme needlessly computes the hash, whether or not the
user wants to confirm if the theme is "safe". Let's not do that!
lisp/custom.el | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/lisp/custom.el b/lisp/custom.el
index ea5ab7a..30bea19 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -1214,13 +1214,11 @@ Return t if THEME was successfully loaded, nil otherwise."
(put theme 'theme-documentation nil))
(let ((fn (locate-file (concat (symbol-name theme) "-theme.el")
(custom-theme--load-path)
- '("" "c")))
- hash)
+ '("" "c"))))
(unless fn
(error "Unable to find theme file for `%s'" theme))
(with-temp-buffer
(insert-file-contents fn)
- (setq hash (secure-hash 'sha256 (current-buffer)))
;; Check file safety with `custom-safe-themes', prompting the
;; user if necessary.
(when (or no-confirm
@@ -1228,8 +1226,9 @@ Return t if THEME was successfully loaded, nil otherwise."
(and (memq 'default custom-safe-themes)
(equal (file-name-directory fn)
(expand-file-name "themes/" data-directory)))
- (member hash custom-safe-themes)
- (custom-theme-load-confirm hash))
+ (let ((hash (secure-hash 'sha256 (current-buffer))))
+ (or (member hash custom-safe-themes)
+ (custom-theme-load-confirm hash))))
(let ((custom--inhibit-theme-enable t)
(buffer-file-name fn)) ;For load-history.
(eval-buffer))
--
2.5.1
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2015-09-13 19:08 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-13 19:08 [PATCH] lisp/custom.el (load-theme): Only compute hash when needed Mark Oteiza
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).