* alist.el (del-alist): Simplified.
authorueno <ueno>
Thu, 14 Dec 2000 10:55:02 +0000 (10:55 +0000)
committerueno <ueno>
Thu, 14 Dec 2000 10:55:02 +0000 (10:55 +0000)
ChangeLog
alist.el

index 32d9d27..c0e2f71 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2000-12-14   Daiki Ueno  <ueno@unixuser.org>
+
+       * alist.el (del-alist): Simplified.
+
 2000-12-14  Mikio Nakajima  <minakaji@osaka.email.ne.jp>
 
        * pym.el (static-if): Put t on edebug spec instead of if.
index 4b656de..485107e 100644 (file)
--- a/alist.el
+++ b/alist.el
@@ -40,19 +40,10 @@ return a new alist whose car is the new pair and cdr is ALIST."
 (defun del-alist (key alist)
   "Delete an element whose car equals KEY from ALIST.
 Return the modified ALIST."
-  (if (equal key (car (car alist)))
-      (cdr alist)
-    (let ((pr alist)
-         (r (cdr alist)))
-      (catch 'tag
-       (while (not (null r))
-         (if (equal key (car (car r)))
-             (progn
-               (rplacd pr (cdr r))
-               (throw 'tag alist)))
-         (setq pr r)
-         (setq r (cdr r)))
-       alist))))
+  (let ((pair (assoc item alist)))
+    (if pair
+       (delq pair alist)
+      alist)))
 
 ;;;###autoload
 (defun set-alist (symbol key value)