changeset 72580:2da08bd76792

(custom-theme-set-variables): Autoload packages before sorting the variables.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Thu, 31 Aug 2006 17:10:34 +0000
parents 5ab6646918c5
children 9ef3c2ead027
files lisp/ChangeLog lisp/custom.el
diffstat 2 files changed, 21 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Thu Aug 31 03:39:42 2006 +0000
+++ b/lisp/ChangeLog	Thu Aug 31 17:10:34 2006 +0000
@@ -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
--- a/lisp/custom.el	Thu Aug 31 03:39:42 2006 +0000
+++ b/lisp/custom.el	Thu Aug 31 17:10:34 2006 +0000
@@ -874,6 +874,18 @@
 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 @@
 	    (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)