-;;; custom.el -- Tools for declaring and initializing options.
+;;; custom.el --- tools for declaring and initializing options
;;
-;; Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1999, 2001 Free Software Foundation, Inc.
;;
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Maintainer: FSF
(defun custom-initialize-changed (symbol value)
"Initialize SYMBOL with VALUE.
-Like `custom-initialize-reset', but only use the `:set' function if the
+Like `custom-initialize-reset', but only use the `:set' function if
not using the standard setting.
-For the standard setting, use the `set-default'."
+For the standard setting, use `set-default'."
(cond ((default-boundp symbol)
(funcall (or (get symbol 'custom-set) 'set-default)
symbol
The following keywords are meaningful:
:type VALUE should be a widget type for editing the symbols value.
- The default is `sexp'.
:options VALUE should be a list of valid members of the widget type.
:group VALUE should be a customization group.
Add SYMBOL to that group.
VALUE should be a function used to initialize the
variable. It takes two arguments, the symbol and value
given in the `defcustom' call. The default is
- `custom-initialize-default'
+ `custom-initialize-reset.'
:set VALUE should be a function to set the value of the symbol.
It takes two arguments, the symbol to set and the value to
give it. The default choice of function is `custom-set-default'.
VALUE should be a string specifying that the variable was
first introduced, or its default value was changed, in Emacs
version VERSION.
+:set-after VARIABLE
+ Specifies that SYMBOL should be set after VARIABLE when
+ both have been customized.
Read the section about customization in the Emacs Lisp manual for more
information."
If there already is an entry for OPTION and WIDGET, nothing is done."
(let ((members (get group 'custom-group))
(entry (list option widget)))
- (message "adding %s" entry)
(unless (member entry members)
(put group 'custom-group (nconc members (list entry))))))
(cond ((and 1-then-2 2-then-1)
(error "Circular custom dependency between `%s' and `%s'"
sym1 sym2))
+ (1-then-2 t)
(2-then-1 nil)
- (t t))))))
+ ;; Put symbols with :require last. The macro
+ ;; define-minor-mode generates a defcustom
+ ;; with a :require and a :set, where the
+ ;; setter function calls the mode function.
+ ;; Putting symbols with :require last ensures
+ ;; that the mode function will see other
+ ;; customized values rather than default
+ ;; values.
+ (t (nth 3 a2)))))))
(while args
(let ((entry (car args)))
(if (listp entry)