Mercurial > emacs
changeset 22606:36171df7d571
(custom-set-default): New function.
(custom-set-variables): Use custom-set-default.
(custom-local-buffer): New variable.
(defcustom): Doc fix.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Wed, 24 Jun 1998 18:35:06 +0000 |
parents | c3ffffc994d1 |
children | 3c91c17a1a0f |
files | lisp/custom.el |
diffstat | 1 files changed, 21 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/custom.el Wed Jun 24 18:32:53 1998 +0000 +++ b/lisp/custom.el Wed Jun 24 18:35:06 1998 +0000 @@ -184,11 +184,11 @@ `custom-initialize-default' :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 `set-default'. + give it. The default choice of function is `custom-set-default'. :get VALUE should be a function to extract the value of symbol. The function takes one argument, a symbol, and should return the current value for that symbol. The default choice of function - is `default-value'. + is `custom-default-value'. :require VALUE should be a feature symbol. If you save a value for this option, then when your `.emacs' file loads the value, @@ -383,6 +383,14 @@ ;;; Initializing. +(defvar custom-local-buffer nil + "Non-nil, in a Customization buffer, means customize a specific buffer. +If this variable is non-nil, it should be a buffer, +and it means customize the local bindings of that buffer. +This variable is a permanent local, and it normally has a local binding +in every Customization buffer.") +(put 'custom-local-buffer 'permanent-local t) + (defun custom-set-variables (&rest args) "Initialize variables according to user preferences. @@ -400,7 +408,7 @@ (value (nth 1 entry)) (now (nth 2 entry)) (requests (nth 3 entry)) - (set (or (get symbol 'custom-set) 'set-default))) + (set (or (get symbol 'custom-set) 'custom-set-default))) (put symbol 'saved-value (list value)) (cond (now ;; Rogue variable, set it now. @@ -422,6 +430,16 @@ (put symbol 'saved-value (list value))) (setq args (cdr (cdr args))))))) +(defun custom-set-default (variable value) + "Default :set function for a customizable variable. +Normally, this sets the default value of VARIABLE to VALUE, +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 + (set variable value)) + (set-default variable value))) + ;;; The End. ;; Process the defcustoms for variables loaded before this file.