# HG changeset patch # User Luc Teirlinck # Date 1120344747 0 # Node ID 7f7d0de0584558d1240e286e03efbf019ca7316d # Parent 992bbd6f8834f3916e753de21a27b8a42b04cbce (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'. diff -r 992bbd6f8834 -r 7f7d0de05845 lisp/custom.el --- a/lisp/custom.el Sat Jul 02 22:49:42 2005 +0000 +++ b/lisp/custom.el Sat Jul 02 22:52:27 2005 +0000 @@ -121,7 +121,7 @@ `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 @@ (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 @@ (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 @@ 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."