changeset 4919:9c6ea1581159

Remove a couple of XEmacs-specific duplicate functions, find-paths.el 2010-02-03 Aidan Kehoe <kehoea@parhasard.net> Delete a couple of XEmacs-specific functions that duplicate CL functions. * find-paths.el (paths-filter, paths-uniq-append): Remove #'paths-filter, a reimplementation of #'remove-if-not, and #'paths-uniq-append, a reimplementation of #'union with test #'equal. (paths-decode-directory-path): Don't use #'path-filter here. * packages.el (packages-package-hierarchy-directory-names): Don't use #'path-filter here. (packages-find-installation-package-directories): Use #'union, not #'paths-uniq-append here. * setup-paths.el (paths-find-invocation-roots) (paths-find-emacs-roots, paths-construct-info-path) (paths-construct-info-path): Replace #'paths-filter with #'remove-if-not, #'paths-uniq-append with #'union.
author Aidan Kehoe <kehoea@parhasard.net>
date Wed, 03 Feb 2010 09:04:35 +0000
parents bedf3747a6d7
children a96517f26e3a
files lisp/ChangeLog lisp/find-paths.el lisp/packages.el lisp/setup-paths.el
diffstat 4 files changed, 38 insertions(+), 39 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Feb 03 00:20:08 2010 +0000
+++ b/lisp/ChangeLog	Wed Feb 03 09:04:35 2010 +0000
@@ -1,3 +1,23 @@
+2010-02-03  Aidan Kehoe  <kehoea@parhasard.net>
+
+	Delete a couple of XEmacs-specific functions that duplicate CL
+	functions.
+
+	* find-paths.el (paths-filter, paths-uniq-append):
+	Remove #'paths-filter, a reimplementation of #'remove-if-not, and
+	#'paths-uniq-append, a reimplementation of #'union with test
+	#'equal.
+	(paths-decode-directory-path): Don't use #'path-filter here.
+	* packages.el (packages-package-hierarchy-directory-names):
+	Don't use #'path-filter here.
+	(packages-find-installation-package-directories):
+	Use #'union, not #'paths-uniq-append here.
+	* setup-paths.el (paths-find-invocation-roots)
+	(paths-find-emacs-roots, paths-construct-info-path)
+	(paths-construct-info-path):
+	Replace #'paths-filter with #'remove-if-not, #'paths-uniq-append
+	with #'union. 
+
 2010-02-01  Aidan Kehoe  <kehoea@parhasard.net>
 
 	* loadhist.el (symbol-file):
--- a/lisp/find-paths.el	Wed Feb 03 00:20:08 2010 +0000
+++ b/lisp/find-paths.el	Wed Feb 03 09:04:35 2010 +0000
@@ -352,25 +352,6 @@
       (setq directories (cdr directories)))
     (reverse reverse-directories)))
 
-(defun paths-uniq-append (list-1 list-2)
-  "Append LIST-1 and LIST-2, omitting EQUAL duplicates."
-  (let ((reverse-survivors '()))
-    (while list-2
-      (if (null (member (car list-2) list-1))
-	  (setq reverse-survivors (cons (car list-2) reverse-survivors)))
-      (setq list-2 (cdr list-2)))
-    (append list-1
-	    (reverse reverse-survivors))))
-
-(defun paths-filter (predicate list)
-  "Delete all matches of PREDICATE from LIST."
-  (let ((reverse-result '()))
-    (while list
-      (if (funcall predicate (car list))
-	  (setq reverse-result (cons (car list) reverse-result)))
-      (setq list (cdr list)))
-    (nreverse reverse-result)))
-
 (defun paths-decode-directory-path (string &optional drop-empties)
   "Split STRING at path separators into a directory list.
 Non-\"\" components are converted into directory form.
@@ -384,9 +365,7 @@
 			(file-name-as-directory component)))
 		  components)))
     (if drop-empties
-	(paths-filter #'(lambda (component)
-			  (null (string-equal "" component)))
-		      directories)
+        (delete "" directories)
       directories)))
 
 ;;; find-paths.el ends here
--- a/lisp/packages.el	Wed Feb 03 00:20:08 2010 +0000
+++ b/lisp/packages.el	Wed Feb 03 09:04:35 2010 +0000
@@ -106,11 +106,10 @@
   "Returns a list package hierarchy directory names.
 These are the valid immediate directory names of package
 directories, directories with higher priority first"
-  (paths-filter #'(lambda (x) x)
-		`("site-packages"
-		  ,(when (featurep 'infodock) "infodock-packages")
-		  ,(when (featurep 'mule) "mule-packages")
-		  "xemacs-packages")))
+  (delq nil `("site-packages"
+              ,(when (featurep 'infodock) "infodock-packages")
+              ,(when (featurep 'mule) "mule-packages")
+              "xemacs-packages")))
 
 (defun package-get-key-1 (info key)
   "Locate keyword `key' in list."
@@ -386,8 +385,8 @@
 (defun packages-find-installation-package-directories (roots)
   "Find the package directories in the XEmacs installation.
 ROOTS is a list of installation roots."
-  (paths-uniq-append (paths-find-version-directories roots (list "") nil nil nil t)
-		     (paths-find-site-directories roots (list "") nil)))
+  (union (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.
--- a/lisp/setup-paths.el	Wed Feb 03 00:20:08 2010 +0000
+++ b/lisp/setup-paths.el	Wed Feb 03 09:04:35 2010 +0000
@@ -127,8 +127,7 @@
 	 (maybe-root-2 (file-name-as-directory
 			(paths-construct-path '(".." "..") executable-directory))))
 
-    (paths-filter root-p
-		  (list maybe-root-1 maybe-root-2))))
+    (delete-if-not root-p (list maybe-root-1 maybe-root-2))))
 
 (defun paths-find-emacs-roots (invocation-directory
 			       invocation-name
@@ -143,17 +142,17 @@
 				       invocation-name
 				       root-p))
 	 (potential-installation-roots
-	  (paths-uniq-append
+	  (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)))))
+		       configure-prefix-directory)))
+           :test #'equal))
 	 (installation-roots
-	  (paths-filter root-p potential-installation-roots)))
-    (paths-uniq-append invocation-roots
-		       installation-roots)))
+	  (remove-if-not root-p potential-installation-roots)))
+    (union invocation-roots installation-roots :test #'equal)))
 
 (defun paths-find-site-lisp-directory (roots)
   "Find the site Lisp directory of the XEmacs hierarchy.
@@ -261,7 +260,7 @@
 LAST-PACKAGE-HIERARCHIES are lists of package hierarchy roots,
 respectively."
   (let ((info-path-envval (getenv "INFOPATH")))
-    (paths-uniq-append
+    (union
      (append
       (let ((info-directory
 	     (paths-find-version-directory roots (list "info")
@@ -275,9 +274,11 @@
       (and info-path-envval
 	   (paths-decode-directory-path info-path-envval 'drop-empties)))
      (and (null info-path-envval)
-	  (paths-uniq-append
+	  (union
 	   (paths-directories-which-exist configure-info-path)
-	   (paths-directories-which-exist paths-default-info-directories))))))
+	   (paths-directories-which-exist paths-default-info-directories)
+           :test #'equal))
+     :test #'equal)))
 
 (defun paths-find-doc-directory (roots)
   "Find the documentation directory.