altos/lisp: add length, pack, unpack and flush
[fw/altos] / src / lisp / ao_lisp_cons.c
index cd8a8d1d03b9920716fece9c834e101f3d70b55f..b75ffaa0d611ffa5427e7b191d4d68d996e74534 100644 (file)
@@ -107,3 +107,14 @@ ao_lisp_cons_patom(ao_poly c)
                cons = ao_lisp_poly_cons(cons->cdr);
        }
 }
+
+int
+ao_lisp_cons_length(struct ao_lisp_cons *cons)
+{
+       int     len = 0;
+       while (cons) {
+               len++;
+               cons = ao_lisp_poly_cons(cons->cdr);
+       }
+       return len;
+}