X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/e464f6225860a0965e266732328d9d0948607c31..refs/pull/474/head:/client/emv/tlv.c?ds=sidebyside

diff --git a/client/emv/tlv.c b/client/emv/tlv.c
index d78f049e..24125cc7 100644
--- a/client/emv/tlv.c
+++ b/client/emv/tlv.c
@@ -308,7 +308,7 @@ void tlvdb_add(struct tlvdb *tlvdb, struct tlvdb *other)
 	tlvdb->next = other;
 }
 
-void tlvdb_visit(const struct tlvdb *tlvdb, tlv_cb cb, void *data)
+void tlvdb_visit(const struct tlvdb *tlvdb, tlv_cb cb, void *data, int level)
 {
 	struct tlvdb *next = NULL;
 
@@ -317,8 +317,9 @@ void tlvdb_visit(const struct tlvdb *tlvdb, tlv_cb cb, void *data)
 
 	for (; tlvdb; tlvdb = next) {
 		next = tlvdb->next;
-		cb(data, &tlvdb->tag);
-		tlvdb_visit(tlvdb->children, cb, data);
+		bool is_leaf = (tlvdb->children == NULL);
+		cb(data, &tlvdb->tag, level, is_leaf);
+		tlvdb_visit(tlvdb->children, cb, data, level+1);
 	}
 }