summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2006-08-31 17:10:34 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2006-08-31 17:10:34 +0000
commita67dbbc979b9e7efe3d453851eed8459bbebb696 (patch)
tree7b69f4c24f689ae51061e6d738dc9aa5d7c76dcb
parent7a57f1f81f5ac51aa6e19fe4b32b8da70c524a2f (diff)
downloademacs-a67dbbc979b9e7efe3d453851eed8459bbebb696.tar.gz
(custom-theme-set-variables): Autoload packages before sorting the variables.
-rw-r--r--lisp/ChangeLog13
-rw-r--r--lisp/custom.el16
2 files changed, 21 insertions, 8 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 06baa35a5e2..7148bfdfb7c 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,9 +1,14 @@
+2006-08-31 Michael Mauger <mmaug@yahoo.com>
+
+ * custom.el (custom-theme-set-variables): Autoload packages before
+ sorting the variables.
+
2006-08-30 Michael Kifer <kifer@cs.stonybrook.edu>
-
- * viper-cmd.el (viper-special-read-and-insert-char): convert events to
+
+ * viper-cmd.el (viper-special-read-and-insert-char): Convert events to
chars if XEmacs.
- (viper-after-change-undo-hook): check if undo-in-progress is bound.
-
+ (viper-after-change-undo-hook): Check if undo-in-progress is bound.
+
2006-08-30 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/python.el (python-eldoc-function): Re-enable quit while
diff --git a/lisp/custom.el b/lisp/custom.el
index 2e5c0a59d9b..104e63126f0 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -874,6 +874,18 @@ COMMENT is a comment string about SYMBOL.
EXP itself is saved unevaluated as SYMBOL property `saved-value' and
in SYMBOL's list property `theme-value' \(using `custom-push-theme')."
(custom-check-theme theme)
+
+ ;; Process all the needed autoloads before anything else, so that the
+ ;; subsequent code has all the info it needs (e.g. which var corresponds
+ ;; to a minor mode), regardless of the ordering of the variables.
+ (dolist (entry args)
+ (let* ((symbol (indirect-variable (nth 0 entry))))
+ (unless (or (get symbol 'standard-value)
+ (memq (get symbol 'custom-autoload) '(nil noset)))
+ ;; This symbol needs to be autoloaded, even just for a `set'.
+ (custom-load-symbol symbol))))
+
+ ;; Move minor modes and variables with explicit requires to the end.
(setq args
(sort args
(lambda (a1 a2)
@@ -904,10 +916,6 @@ in SYMBOL's list property `theme-value' \(using `custom-push-theme')."
(when requests
(put symbol 'custom-requests requests)
(mapc 'require requests))
- (unless (or (get symbol 'standard-value)
- (memq (get symbol 'custom-autoload) '(nil noset)))
- ;; This symbol needs to be autoloaded, even just for a `set'.
- (custom-load-symbol symbol))
(setq set (or (get symbol 'custom-set) 'custom-set-default))
(put symbol 'saved-value (list value))
(put symbol 'saved-variable-comment comment)