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.