>From e2e1dd4834536d439600ec0db3a4ec061408d821 Mon Sep 17 00:00:00 2001 From: "Basil L. Contovounesios" Date: Wed, 2 May 2018 21:18:24 +0100 Subject: [PATCH 3/8] Fix custom-available-themes file expansion * lisp/custom.el: (custom-available-themes): Use directory-files instead of performing arbitrary wildcard expansion in filenames. --- lisp/custom.el | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/lisp/custom.el b/lisp/custom.el index 1fed5dce53..b286f49ff9 100644 --- a/lisp/custom.el +++ b/lisp/custom.el @@ -1299,17 +1299,15 @@ custom-available-themes loaded, and no effort is made to check that the files contain valid Custom themes. For a list of loaded themes, check the variable `custom-known-themes'." - (let (sym themes) + (let ((suffix "-theme\\.el\\'") + themes) (dolist (dir (custom-theme--load-path)) - (when (file-directory-p dir) - (dolist (file (file-expand-wildcards - (expand-file-name "*-theme.el" dir) t)) - (setq file (file-name-nondirectory file)) - (and (string-match "\\`\\(.+\\)-theme.el\\'" file) - (setq sym (intern (match-string 1 file))) - (custom-theme-name-valid-p sym) - (push sym themes))))) - (nreverse (delete-dups themes)))) + (dolist (file (directory-files dir nil suffix)) + (let ((theme (intern (substring file 0 (string-match-p suffix file))))) + (and (custom-theme-name-valid-p theme) + (not (memq theme themes)) + (push theme themes))))) + (nreverse themes))) (defun custom-theme--load-path () (let (lpath) -- 2.17.0