branch: elpa/parseclj
commit fcebf650759929256ec9c4bb83b677240622be8a
Author: Arne Brasseur <[email protected]>
Commit: Arne Brasseur <[email protected]>
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 <[email protected]>
;; 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.