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

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

[nongnu] elpa/parseclj fcebf65075 180/185: Provide parseclj-alist-merge


From: ELPA Syncer
Subject: [nongnu] elpa/parseclj fcebf65075 180/185: Provide parseclj-alist-merge for older Emacsen
Date: Tue, 28 Dec 2021 14:05:34 -0500 (EST)

branch: elpa/parseclj
commit fcebf650759929256ec9c4bb83b677240622be8a
Author: Arne Brasseur <arne@arnebrasseur.net>
Commit: Arne Brasseur <arne@arnebrasseur.net>

    Provide parseclj-alist-merge for older Emacsen
---
 CHANGELOG.md      |  4 ++++
 parseclj-alist.el | 11 +++++++++++
 parseclj.el       |  2 +-
 3 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index db9490b7fb..32565015c8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Unreleased
 
+## 1.0.4 (2021-09-30)
+
+- Provide parseclj-alist-merge, since we can't use `(map-merge 'alist)` yet in 
Emacs 25/26.
+
 ## 1.0.3 (2021-09-29)
 
 - Remove remaining a.el usage (this time for real)
diff --git a/parseclj-alist.el b/parseclj-alist.el
index 1537293284..824f491667 100644
--- a/parseclj-alist.el
+++ b/parseclj-alist.el
@@ -77,6 +77,17 @@ For example: (parseclj-hash-table :foo 123 :bar 456)"
             kv-pairs)
     hash-map))
 
+(defun parseclj-alist-merge (l1 l2)
+  "Merge two association lists."
+  ;; Emacs 27: (map-merge 'alist l1 l2)
+  (let ((keys (delete-dups (append (mapcar #'car l1) (mapcar #'car l2))))
+        (res '()))
+    (seq-doseq (key keys)
+      (push (or (assoc key l2)
+                (assoc key l1))
+            res))
+    (nreverse res)))
+
 (provide 'parseclj-alist)
 
 ;;; parseclj-alist.el ends here
diff --git a/parseclj.el b/parseclj.el
index f2aecb8ac3..eed113ef33 100644
--- a/parseclj.el
+++ b/parseclj.el
@@ -5,7 +5,7 @@
 ;; Author: Arne Brasseur <arne@arnebrasseur.net>
 ;; Keywords: lisp clojure edn parser
 ;; Package-Requires: ((emacs "25"))
-;; Version: 1.0.3
+;; Version: 1.0.4
 
 ;; This file is not part of GNU Emacs.
 



reply via email to

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