summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMeikel Brandmeyer <mb@kotka.de>2009-06-23 22:39:19 +0200
committerChouser <chouser@n01se.net>2009-07-25 01:28:21 -0400
commitdc5b4e60b88b9183e40a2427ef91b64c45c42ac3 (patch)
treebb7b9ca98601a5dffc530275a787f7ec69c2660b
parent3e60eff602652e753a54ba88b25dbdd2615c3b2e (diff)
Move metadata in vector-zip and seq-zip
Fixes #134 Signed-off-by: Chouser <chouser@n01se.net>
-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),