`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.
(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.
(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))
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."