Add arch taglines
[bpt/emacs.git] / lisp / custom.el
index b3458bf..976787d 100644 (file)
@@ -191,27 +191,27 @@ The following keywords are meaningful:
         Include an external link after the documentation string for this
         item.  This is a sentence containing an active field which
         references some other documentation.
-   
+
         There are three alternatives you can use for LINK-DATA:
-   
+
         (custom-manual INFO-NODE)
              Link to an Info node; INFO-NODE is a string which specifies
              the node name, as in \"(emacs)Top\".  The link appears as
              `[manual]' in the customization buffer.
-   
+
         (info-link INFO-NODE)
              Like `custom-manual' except that the link appears in the
              customization buffer with the Info node name.
-   
+
         (url-link URL)
              Link to a web page; URL is a string which specifies the URL.
              The link appears in the customization buffer as URL.
-   
+
         You can specify the text to use in the customization buffer by
         adding `:tag NAME' after the first element of the LINK-DATA; for
         example, (info-link :tag \"foo\" \"(emacs)Top\") makes a link to the
         Emacs manual which appears in the buffer as `foo'.
-   
+
         An item can have more than one external link; however, most items
         have none at all.
 :initialize
@@ -502,6 +502,14 @@ LOAD should be either a library file name, or a feature name."
   "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.
@@ -772,7 +780,7 @@ in SYMBOL's list property `theme-value' \(using `custom-push-theme')."
                      ((default-boundp symbol)
                       ;; Something already set this, overwrite it.
                       (funcall set symbol (eval value))))
-             (error 
+             (error
               (message "Error setting %s: %s" symbol data)))
              (setq args (cdr args))
              (and (or now (default-boundp symbol))
@@ -797,6 +805,17 @@ this sets the local binding in that buffer instead."
        (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))
@@ -815,7 +834,7 @@ this sets the local binding in that buffer instead."
 (defun customize-mark-to-save (symbol)
   "Mark SYMBOL for later saving.
 
-If the default value of SYMBOL is different from the standard value, 
+If the default value of SYMBOL is different from the standard value,
 set the `saved-value' property to a list whose car evaluates to the
 default value.  Otherwise, set it to nil.
 
@@ -844,9 +863,9 @@ Return non-nil iff the `saved-value' property actually changed."
 (defun customize-mark-as-set (symbol)
   "Mark current value of SYMBOL as being set from customize.
 
-If the default value of SYMBOL is different from the saved value if any, 
+If the default value of SYMBOL is different from the saved value if any,
 or else if it is different from the standard value, set the
-`customized-value' property to a list whose car evaluates to the 
+`customized-value' property to a list whose car evaluates to the
 default value.  Otherwise, set it to nil.
 
 Return non-nil iff the `customized-value' property actually changed."
@@ -856,7 +875,7 @@ Return non-nil iff the `customized-value' property actually changed."
         (old (or (get symbol 'saved-value) (get symbol 'standard-value))))
     ;; Mark default value as set iff different from old value.
     (if (or (null old)
-           (not (equal value (condition-case nil 
+           (not (equal value (condition-case nil
                                  (eval (car old))
                                (error nil)))))
        (put symbol 'customized-value (list (custom-quote value)))
@@ -1052,4 +1071,5 @@ This means reset VARIABLE to its value in TO-THEME."
 
 (provide 'custom)
 
+;;; arch-tag: 041b6116-aabe-4f9a-902d-74092bc3dab2
 ;;; custom.el ends here