diff options
-rw-r--r-- | lib.c | 22 | ||||
-rw-r--r-- | lib.h | 1 |
2 files changed, 23 insertions, 0 deletions
@@ -6668,6 +6668,28 @@ val vectorv(struct args *args) return vec; } +val vec(val first, ...) +{ + va_list vl; + val vec = vector(zero, nil); + val next; + int count; + + va_start (vl, first); + + for (next = first, count = 0; + next != nao && count < 32; + next = va_arg(vl, val), count++) + { + vec_push(vec, next); + } + + if (count == 32 && next != nao) + internal_error("runaway arguments in vec function"); + + return vec; +} + val vec_list(val list) { val vec = vector(zero, nil); @@ -893,6 +893,7 @@ val vec_push(val vec, val item); val length_vec(val vec); val size_vec(val vec); val vectorv(struct args *); +val vec(val first, ...); val vec_list(val list); val list_vec(val vector); val copy_vec(val vec); |