emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/compat 12c750656c 06/13: Move assoc-delete-all to emacs


From: ELPA Syncer
Subject: [elpa] externals/compat 12c750656c 06/13: Move assoc-delete-all to emacs-27
Date: Sun, 13 Mar 2022 19:57:32 -0400 (EDT)

branch: externals/compat
commit 12c750656c9d0fd4b41f6b7dfe17397ee896aefa
Author: Philip Kaludercic <philipk@posteo.net>
Commit: Philip Kaludercic <philipk@posteo.net>

    Move assoc-delete-all to emacs-27
---
 compat-26.el | 18 ------------------
 compat-27.el | 21 +++++++++++++++++++++
 2 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/compat-26.el b/compat-26.el
index a21e8552ed..564ad9c76d 100644
--- a/compat-26.el
+++ b/compat-26.el
@@ -320,24 +320,6 @@ PREFIX is a string, and defaults to \"g\"."
                      (1+ gensym-counter)))))
     (make-symbol (format "%s%d" (or prefix "g") num))))
 
-(compat-defun assoc-delete-all (key alist &optional test)
-  "Delete from ALIST all elements whose car is KEY.
-Compare keys with TEST.  Defaults to `equal'.
-Return the modified alist.
-Elements of ALIST that are not conses are ignored."
-  :version "26.2"
-  (unless test (setq test #'equal))
-  (while (and (consp (car alist))
-             (funcall test (caar alist) key))
-    (setq alist (cdr alist)))
-  (let ((tail alist) tail-cdr)
-    (while (setq tail-cdr (cdr tail))
-      (if (and (consp (car tail-cdr))
-              (funcall test (caar tail-cdr) key))
-         (setcdr tail (cdr tail-cdr))
-       (setq tail tail-cdr))))
-  alist)
-
 ;;;; Defined in files.el
 
 (declare-function temporary-file-directory nil)
diff --git a/compat-27.el b/compat-27.el
index 94cf2d4eae..31b6b0eb58 100644
--- a/compat-27.el
+++ b/compat-27.el
@@ -350,6 +350,27 @@ return nil."
   "Standard regexp guaranteed not to match any string at all."
   :constant t)
 
+(compat-defun assoc-delete-all (key alist &optional test)
+  "Delete from ALIST all elements whose car is KEY.
+Compare keys with TEST.  Defaults to `equal'.
+Return the modified alist.
+Elements of ALIST that are not conses are ignored."
+  :prefix t
+  :cond (condition-case nil
+            (or (assoc-delete-all nil nil #'ignore) t)
+          (wrong-number-of-arguments nil))
+  (unless test (setq test #'equal))
+  (while (and (consp (car alist))
+             (funcall test (caar alist) key))
+    (setq alist (cdr alist)))
+  (let ((tail alist) tail-cdr)
+    (while (setq tail-cdr (cdr tail))
+      (if (and (consp (car tail-cdr))
+              (funcall test (caar tail-cdr) key))
+         (setcdr tail (cdr tail-cdr))
+       (setq tail tail-cdr))))
+  alist)
+
 ;;;; Defined in simple.el
 
 ;;* UNTESTED



reply via email to

[Prev in Thread] Current Thread [Next in Thread]