]> git.eshelyaron.com Git - emacs.git/commitdiff
(custom-initialize-safe-set, custom-initialize-safe-default): New functions.
authorLuc Teirlinck <teirllm@auburn.edu>
Sun, 10 Jul 2005 16:32:59 +0000 (16:32 +0000)
committerLuc Teirlinck <teirllm@auburn.edu>
Sun, 10 Jul 2005 16:32:59 +0000 (16:32 +0000)
lisp/custom.el

index 8c2c50b6454e7b63f8ad4c9d14bac25a19712676..3f8608361c614f6d23744f83308c54c9c7f1f5c6 100644 (file)
@@ -76,6 +76,28 @@ if any, or VALUE."
                 (eval (car (get symbol 'saved-value)))
               (eval value)))))
 
+(defun custom-initialize-safe-set (symbol value)
+  "Like `custom-initialize-set', but catches errors.
+If an error occurs during initialization, SYMBOL is set to nil
+and no error is thrown.  This is meant for use in pre-loaded files
+where some variables used to compute VALUE are not yet defined.
+You can then re-evaluate VALUE in startup.el, for instance using
+`custom-reevaluate-setting'."
+  (condition-case nil
+      (custom-initialize-set symbol value)
+    (error (set-default symbol nil))))
+
+(defun custom-initialize-safe-default (symbol value)
+  "Like `custom-initialize-default', but catches errors.
+If an error occurs during initialization, SYMBOL is set to nil
+and no error is thrown.  This is meant for use in pre-loaded files
+where some variables used to compute VALUE are not yet defined.
+You can then re-evaluate VALUE in startup.el, for instance using
+`custom-reevaluate-setting'."
+  (condition-case nil
+      (custom-initialize-default symbol value)
+    (error (set-default symbol nil))))
+
 (defun custom-initialize-reset (symbol value)
   "Initialize SYMBOL based on VALUE.
 Set the symbol, using its `:set' function (or `set-default' if it has none).