From 6ddcc62357c8e332ebcd6d81d812753e4f2ac1bc Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Tue, 27 Feb 2024 06:47:47 -0800 Subject: seq_build: allow initialization from iterator. * lib.c (seq_build_init): Replicate a feature of make_like: if the reference object is an iterator, then we recurse: we initialize according to the object it is iterating. --- lib.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib.c b/lib.c index 2f5a46ba..314fde4f 100644 --- a/lib.c +++ b/lib.c @@ -1545,6 +1545,12 @@ void seq_build_init(seq_build_t *bu, val likeobj) bu->ops = &sb_buf_ops; break; case COBJ: + if (likeobj->co.cls == seq_iter_cls) + { + struct seq_iter *si = coerce(struct seq_iter *, likeobj->co.handle); + seq_build_init(bu, si->inf.obj); + break; + } if (obj_struct_p(likeobj)) { val from_list_meth = get_special_slot(likeobj, from_list_m); -- cgit v1.2.3