# HG changeset patch # User Richard M. Stallman # Date 898713306 0 # Node ID 36171df7d571242421eff936f0db33f3218117fb # Parent c3ffffc994d182332b98c8431c2d1b91085c5aa9 (custom-set-default): New function. (custom-set-variables): Use custom-set-default. (custom-local-buffer): New variable. (defcustom): Doc fix. diff -r c3ffffc994d1 -r 36171df7d571 lisp/custom.el --- 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.