;;; custom.el --- tools for declaring and initializing options
;;
-;; Copyright (C) 1996, 1997, 1999, 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1999, 2001, 2002, 2004
+;; Free Software Foundation, Inc.
;;
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Maintainer: FSF
"Initialize SYMBOL with VALUE.
This will do nothing if symbol already has a default binding.
Otherwise, if symbol has a `saved-value' property, it will evaluate
-the car of that and used as the default binding for symbol.
+the car of that and use it as the default binding for symbol.
Otherwise, VALUE will be evaluated and used as the default binding for
symbol."
(unless (default-boundp symbol)
"Declare SYMBOL as a customizable variable that defaults to VALUE.
DOC is the variable documentation.
-Neither SYMBOL nor VALUE needs to be quoted.
+Neither SYMBOL nor VALUE need to be quoted.
If SYMBOL is not already bound, initialize it to VALUE.
The remaining arguments should have the form
Specifies that SYMBOL should be set after the list of variables
VARIABLES when both have been customized.
+If SYMBOL has a local binding, then this form affects the local
+binding. This is normally not what you want. Thus, if you need
+to load a file defining variables with this form, or with
+`defvar' or `defconst', you should always load that file
+_outside_ any bindings for these variables. \(`defvar' and
+`defconst' behave similarly in this respect.)
+
Read the section about customization in the Emacs Lisp manual for more
information."
;; It is better not to use backquote in this file,
Third argument DOC is the face documentation.
-If FACE has been set with `custom-set-face', set the face attributes
+If FACE has been set with `custom-set-faces', set the face attributes
as specified by that function, otherwise set the face attributes
according to SPEC.
`type' (the value of `window-system')
Under X, in addition to the values `window-system' can take,
- `motif', `lucid' and `x-toolkit' are allowed, and match when
- the Motif toolkit, Lucid toolkit, or any X toolkit is in use.
+ `motif', `lucid', `gtk' and `x-toolkit' are allowed, and match when
+ the Motif toolkit, Lucid toolkit, GTK toolkit or any X toolkit is in use.
`class' (the frame's color support)
Should be one of `color', `grayscale', or `mono'.
`background' (what color is used for the background text)
Should be one of `light' or `dark'.
+`min-colors' (the minimum number of colors the frame should support)
+ Should be an integer, it is compared with the result of
+ `display-color-cells'.
+
+`supports' (only match frames that support the specified face attributes)
+ Should be a list of face attributes. See the documentation for
+ the function `display-supports-face-attributes-p' for more
+ information on exactly how testing is done.
+
Read the section about customization in the Emacs Lisp manual for more
information."
;; It is better not to use backquote in this file,
"Load all dependencies for SYMBOL."
(unless custom-load-recursion
(let ((custom-load-recursion t))
+ ;; Load these files if not already done,
+ ;; to make sure we know all the dependencies of SYMBOL.
+ (condition-case nil
+ (require 'cus-load)
+ (error nil))
+ (condition-case nil
+ (require 'cus-start)
+ (error nil))
(dolist (load (get symbol 'custom-loads))
(cond ((symbolp load) (condition-case nil (require load) (error nil)))
;; This is subsumed by the test below, but it's much faster.
(error "Keyword %s is missing an argument" keyword))
(setq args (cdr args))
(cond ((eq keyword :short-description)
- (put theme 'theme-short-description short-description))
+ (put theme 'theme-short-description value))
((eq keyword :immediate)
- (put theme 'theme-immediate immediate))
+ (put theme 'theme-immediate value))
((eq keyword :variable-set-string)
- (put theme 'theme-variable-set-string variable-set-string))
+ (put theme 'theme-variable-set-string value))
((eq keyword :variable-reset-string)
- (put theme 'theme-variable-reset-string variable-reset-string))
+ (put theme 'theme-variable-reset-string value))
((eq keyword :face-set-string)
- (put theme 'theme-face-set-string face-set-string))
+ (put theme 'theme-face-set-string value))
((eq keyword :face-reset-string)
- (put theme 'theme-face-reset-string face-reset-string)))))))
+ (put theme 'theme-face-reset-string value)))))))
(defmacro deftheme (theme &optional doc &rest args)
"Declare custom theme THEME.
(set variable value))
(set-default variable value)))
+(defun custom-set-minor-mode (variable value)
+ ":set function for minor mode variables.
+Normally, this sets the default value of VARIABLE to nil if VALUE
+is nil and to t otherwise,
+but if `custom-local-buffer' is non-nil,
+this sets the local binding in that buffer instead."
+ (if custom-local-buffer
+ (with-current-buffer custom-local-buffer
+ (funcall variable (or value 0)))
+ (funcall variable (or value 0))))
+
(defun custom-quote (sexp)
"Quote SEXP iff it is not self quoting."
(if (or (memq sexp '(t nil))
(provide 'custom)
+;;; arch-tag: 041b6116-aabe-4f9a-902d-74092bc3dab2
;;; custom.el ends here