summaryrefslogtreecommitdiff
path: root/lisp/custom.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/custom.el')
-rw-r--r--lisp/custom.el34
1 files changed, 26 insertions, 8 deletions
diff --git a/lisp/custom.el b/lisp/custom.el
index f3cbd1404e9..a8c9b864537 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -21,8 +21,8 @@
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Commentary:
;;
@@ -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.
@@ -486,8 +486,10 @@ both appear in constructs like `custom-set-variables'."
(defun custom-add-option (symbol option)
"To the variable SYMBOL add OPTION.
-If SYMBOL is a hook variable, OPTION should be a hook member.
-For other types variables, the effect is undefined."
+If SYMBOL's custom type is a hook, OPTION should be a hook member.
+If SYMBOL's custom type is an alist, OPTION specifies a symbol
+to offer to the user as a possible key in the alist.
+For other custom types, this has no effect."
(let ((options (get symbol 'custom-options)))
(unless (member option options)
(put symbol 'custom-options (cons option options)))))
@@ -560,7 +562,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 +928,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 +964,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."