#'union doesn't preserve relative order; use #'delete-duplicates instead.

Aidan Kehoe kehoea at parhasard.net
Sun Feb 7 09:46:43 EST 2010


APPROVE COMMIT

NOTE: This patch has been committed.

# HG changeset patch
# User Aidan Kehoe <kehoea at parhasard.net>
# Date 1265553455 0
# Node ID 6b6b0f8ab74960f86133316cd93486e493db00ba
# Parent  0cd784a6ec449bd6df83af28a355a2d0e05d4d4e
#'union doesn't preserve relative order; use #'delete-duplicates instead.

2010-02-07  Aidan Kehoe  <kehoea at parhasard.net>

	* setup-paths.el (paths-find-emacs-roots)
	(paths-construct-info-path):
	* packages.el (packages-find-installation-package-directories):
	#'union doesn't guarantee that it will preserve the relative order
	of elements in its arguments; use #'delete-duplicates
	instead. Thank you for the bug reports, Robert Pluim, Stephen
	Turnbull.

diff -r 0cd784a6ec44 -r 6b6b0f8ab749 lisp/ChangeLog
--- a/lisp/ChangeLog	Sun Feb 07 07:10:01 2010 -0600
+++ b/lisp/ChangeLog	Sun Feb 07 14:37:35 2010 +0000
@@ -1,3 +1,13 @@
+2010-02-07  Aidan Kehoe  <kehoea at parhasard.net>
+
+	* setup-paths.el (paths-find-emacs-roots)
+	(paths-construct-info-path):
+	* packages.el (packages-find-installation-package-directories):
+	#'union doesn't guarantee that it will preserve the relative order
+	of elements in its arguments; use #'delete-duplicates
+	instead. Thank you for the bug reports, Robert Pluim, Stephen
+	Turnbull.
+
 2010-02-06  Ben Wing  <ben at xemacs.org>
 
 	* unicode.el:
diff -r 0cd784a6ec44 -r 6b6b0f8ab749 lisp/packages.el
--- a/lisp/packages.el	Sun Feb 07 07:10:01 2010 -0600
+++ b/lisp/packages.el	Sun Feb 07 14:37:35 2010 +0000
@@ -385,8 +385,10 @@
 (defun packages-find-installation-package-directories (roots)
   "Find the package directories in the XEmacs installation.
 ROOTS is a list of installation roots."
-  (union (paths-find-version-directories roots (list "") nil nil nil t)
-         (paths-find-site-directories roots (list "") nil) :test #'equal))
+  (delete-duplicates
+   (nconc (paths-find-version-directories roots (list "") nil nil nil t)
+          (paths-find-site-directories roots (list "") nil))
+:test #'equal))
 
 (defun packages-find-package-hierarchies (package-directories &optional envvar default)
   "Find package hierarchies in a list of package directories.
diff -r 0cd784a6ec44 -r 6b6b0f8ab749 lisp/setup-paths.el
--- a/lisp/setup-paths.el	Sun Feb 07 07:10:01 2010 -0600
+++ b/lisp/setup-paths.el	Sun Feb 07 14:37:35 2010 +0000
@@ -142,17 +142,19 @@
 				       invocation-name
 				       root-p))
 	 (potential-installation-roots
-	  (union
-	   (and configure-exec-prefix-directory
-		(list (file-name-as-directory
-		       configure-exec-prefix-directory)))
-	   (and configure-prefix-directory
-		(list (file-name-as-directory
-		       configure-prefix-directory)))
+	  (delete-duplicates
+           (append
+            (and configure-exec-prefix-directory
+                 (list (file-name-as-directory
+                        configure-exec-prefix-directory)))
+            (and configure-prefix-directory
+                 (list (file-name-as-directory
+                        configure-prefix-directory))))
            :test #'equal))
 	 (installation-roots
 	  (remove-if-not root-p potential-installation-roots)))
-    (union invocation-roots installation-roots :test #'equal)))
+    (delete-duplicates (nconc invocation-roots installation-roots)
+:test #'equal)))
 
 (defun paths-find-site-lisp-directory (roots)
   "Find the site Lisp directory of the XEmacs hierarchy.
@@ -260,24 +262,26 @@
 LAST-PACKAGE-HIERARCHIES are lists of package hierarchy roots,
 respectively."
   (let ((info-path-envval (getenv "INFOPATH")))
-    (union
-     (append
-      (let ((info-directory
-	     (paths-find-version-directory roots (list "info")
-					   nil nil
-					   configure-info-directory)))
-	(and info-directory
-	     (list info-directory)))
-      (packages-find-package-info-path early-package-hierarchies)
-      (packages-find-package-info-path late-package-hierarchies)
-      (packages-find-package-info-path last-package-hierarchies)
-      (and info-path-envval
-	   (paths-decode-directory-path info-path-envval 'drop-empties)))
-     (and (null info-path-envval)
-	  (union
-	   (paths-directories-which-exist configure-info-path)
-	   (paths-directories-which-exist paths-default-info-directories)
-:test #'equal))
+    (delete-duplicates
+     (nconc
+      (append
+       (let ((info-directory
+              (paths-find-version-directory roots (list "info")
+                                            nil nil
+                                            configure-info-directory)))
+         (and info-directory
+              (list info-directory)))
+       (packages-find-package-info-path early-package-hierarchies)
+       (packages-find-package-info-path late-package-hierarchies)
+       (packages-find-package-info-path last-package-hierarchies)
+       (and info-path-envval
+            (paths-decode-directory-path info-path-envval 'drop-empties)))
+      (and (null info-path-envval)
+           (delete-duplicates
+            (nconc
+             (paths-directories-which-exist configure-info-path)
+             (paths-directories-which-exist paths-default-info-directories))
+:test #'equal)))
      :test #'equal)))
 
 (defun paths-find-doc-directory (roots)


-- 
“Apart from the nine-banded armadillo, man is the only natural host of
Mycobacterium leprae, although it can be grown in the footpads of mice.”
  -- Kumar & Clark, Clinical Medicine, summarising improbable leprosy research



More information about the XEmacs-Patches mailing list