summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/clj/clojure/zip.clj10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/clj/clojure/zip.clj b/src/clj/clojure/zip.clj
index 81b09060..00cc3be5 100644
--- a/src/clj/clojure/zip.clj
+++ b/src/clj/clojure/zip.clj
@@ -31,12 +31,18 @@
(defn seq-zip
"Returns a zipper for nested sequences, given a root sequence"
[root]
- (zipper seq? identity (fn [node children] children) root))
+ (zipper seq?
+ identity
+ (fn [node children] (with-meta children (meta node)))
+ root))
(defn vector-zip
"Returns a zipper for nested vectors, given a root vector"
[root]
- (zipper vector? seq (fn [node children] (apply vector children)) root))
+ (zipper vector?
+ seq
+ (fn [node children] (with-meta (vec children) (meta node)))
+ root))
(defn xml-zip
"Returns a zipper for xml elements (as from xml/parse),