diff lisp/gnus/mm-util.el @ 65846:a4e8d78ae3fb

Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-574 Merge from gnus--rel--5.10 2005-10-04 Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/mm-url.el (mm-url-predefined-programs): Add switches for curl. * lisp/gnus/gnus-util.el (gnus-remove-duplicates): Remove. * lisp/gnus/nnmail.el (nnmail-article-group): Use mm-delete-duplicates instead of gnus-remove-duplicates. * lisp/gnus/message.el (message-remove-duplicates): Remove. (message-idna-to-ascii-rhs-1): Use mm-delete-duplicates instead of message-remove-duplicates. * lisp/gnus/mm-util.el (mm-delete-duplicates): Use `delete-dups' if available, else use implementation from `delete-dups'.
author Miles Bader <miles@gnu.org>
date Tue, 04 Oct 2005 22:51:06 +0000
parents fafd692d1e40
children 1077b8039c32 aa89c814f853
line wrap: on
line diff
--- a/lisp/gnus/mm-util.el	Tue Oct 04 21:50:34 2005 +0000
+++ b/lisp/gnus/mm-util.el	Tue Oct 04 22:51:06 2005 +0000
@@ -568,14 +568,21 @@
     ;; This is for XEmacs.
     (mm-mule-charset-to-mime-charset charset)))
 
-(defun mm-delete-duplicates (list)
-  "Simple substitute for CL `delete-duplicates', testing with `equal'."
-  (let (result head)
-    (while list
-      (setq head (car list))
-      (setq list (delete head list))
-      (setq result (cons head result)))
-    (nreverse result)))
+(if (fboundp 'delete-dups)
+    (defalias 'mm-delete-duplicates 'delete-dups)
+  (defun mm-delete-duplicates (list)
+    "Destructively remove `equal' duplicates from LIST.
+Store the result in LIST and return it.  LIST must be a proper list.
+Of several `equal' occurrences of an element in LIST, the first
+one is kept.
+
+This is a compatibility function for Emacsen without `delete-dups'."
+    ;; Code from `subr.el' in Emacs 22:
+    (let ((tail list))
+      (while tail
+	(setcdr tail (delete (car tail) (cdr tail)))
+	(setq tail (cdr tail))))
+    list))
 
 ;; Fixme:  This is used in places when it should be testing the
 ;; default multibyteness.  See mm-default-multibyte-p.