# HG changeset patch # User Aidan Kehoe # Date 1265553455 0 # Node ID 6b6b0f8ab74960f86133316cd93486e493db00ba # Parent 0cd784a6ec449bd6df83af28a355a2d0e05d4d4e #'union doesn't preserve relative order; use #'delete-duplicates instead. 2010-02-07 Aidan Kehoe * 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 + + * 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 * 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)