From 9c4b6e94bf6c993cb1ecea4ebd9f683c9b4c63fc Mon Sep 17 00:00:00 2001 From: Luc Teirlinck Date: Sat, 2 Jul 2005 22:52:27 +0000 Subject: [PATCH] (custom-declare-variable): Fix typos in comment. (custom-known-themes): Doc fix. (custom-theme-directory): New defcustom. (require-theme): Make it check `custom-theme-directory'. --- lisp/custom.el | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/lisp/custom.el b/lisp/custom.el index f3cbd1404e9..a438ee7d5fe 100644 --- a/lisp/custom.el +++ b/lisp/custom.el @@ -121,7 +121,7 @@ compatibility, DEFAULT is also stored in SYMBOL's property `standard-value'. At the same time, SYMBOL's property `force-value' is set to nil, as the value is no longer rogue." ;; Remember the standard setting. The value should be in the standard - ;; theme, not in this property. However, his would require changeing + ;; theme, not in this property. However, this would require changing ;; the C source of defvar and others as well... (put symbol 'standard-value (list default)) ;; Maybe this option was rogue in an earlier version. It no longer is. @@ -560,7 +560,7 @@ LOAD should be either a library file name, or a feature name." (t (condition-case nil (load load) (error nil)))))))) (defvar custom-known-themes '(user standard) - "Themes that have been define with `deftheme'. + "Themes that have been defined with `deftheme'. The default value is the list (user standard). The theme `standard' contains the Emacs standard settings from the original Lisp files. The theme `user' contains all the the settings the user customized and saved. @@ -926,6 +926,19 @@ Return non-nil iff the `customized-value' property actually changed." (defvar custom-loaded-themes nil "Themes in the order they are loaded.") +(defcustom custom-theme-directory + (if (eq system-type 'ms-dos) + ;; MS-DOS cannot have initial dot. + "~/_emacs.d/" + "~/.emacs.d/") + "Directory in which Custom theme files should be written. +`require-theme' searches this directory in addition to load-path. +The command `customize-create-theme' writes the files it produces +into this directory." + :type 'string + :group 'customize + :version "22.1") + (defun custom-theme-loaded-p (theme) "Return non-nil when THEME has been loaded." (memq theme custom-loaded-themes)) @@ -949,8 +962,11 @@ Usually the `theme-feature' property contains a symbol created by `custom-make-theme-feature'." ;; Note we do no check for validity of the theme here. ;; This allows to pull in themes by a file-name convention - (require (or (get theme 'theme-feature) - (custom-make-theme-feature theme)))) + (let ((load-path (if (file-directory-p custom-theme-directory) + (cons custom-theme-directory load-path) + load-path))) + (require (or (get theme 'theme-feature) + (custom-make-theme-feature theme))))) (defun custom-remove-theme (spec-alist theme) "Delete all elements from SPEC-ALIST whose car is THEME." -- 2.39.2