diff lisp/emacs-lisp/autoload.el @ 81790:8aa7f1b66163

(update-directory-autoloads): Remove duplicates without also removing entries from other directories.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Tue, 10 Jul 2007 14:13:16 +0000
parents 6416cbdef0fa
children e29d41367d51
line wrap: on
line diff
--- a/lisp/emacs-lisp/autoload.el	Tue Jul 10 07:24:19 2007 +0000
+++ b/lisp/emacs-lisp/autoload.el	Tue Jul 10 14:13:16 2007 +0000
@@ -559,6 +559,7 @@
 				 (directory-files (expand-file-name dir)
 						  t files-re))
 			       dirs)))
+         (done ())
 	 (this-time (current-time))
          ;; Files with no autoload cookies or whose autoloads go to other
          ;; files because of file-local autoload-generated-file settings.
@@ -592,10 +593,10 @@
 			   (push file no-autoloads)
 			   (setq files (delete file files)))))))
 		  ((not (stringp file)))
-		  ((not (and (file-exists-p file)
-                             ;; Remove duplicates as well, just in case.
-                             (member file files)))
-		   ;; Remove the obsolete section.
+		  ((or (not (file-exists-p file))
+                       ;; Remove duplicates as well, just in case.
+                       (member file done))
+                   ;; Remove the obsolete section.
 		   (autoload-remove-section (match-beginning 0)))
 		  ((not (time-less-p (nth 4 form)
                                      (nth 5 (file-attributes file))))
@@ -606,6 +607,7 @@
                    (if (autoload-generate-file-autoloads
                         file (current-buffer) buffer-file-name)
                        (push file no-autoloads))))
+            (push file done)
 	    (setq files (delete file files)))))
       ;; Elements remaining in FILES have no existing autoload sections yet.
       (dolist (file files)