summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib.c')
-rw-r--r--lib.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/lib.c b/lib.c
index 61e89907..486ceee8 100644
--- a/lib.c
+++ b/lib.c
@@ -559,6 +559,37 @@ void seq_iter_rewind(seq_iter_t *it)
it->ui.iter = hash_begin(it->inf.obj);
break;
default:
+ switch (it->inf.type) {
+ case RNG:
+ {
+ val rf = from(it->inf.obj);
+
+ switch (type(rf)) {
+ case NUM:
+ it->ui.cn = c_num(rf);
+ break;
+ case CHR:
+ it->ui.cn = c_chr(rf);
+ break;
+ case BGNUM:
+ it->ui.vn = rf;
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case CHR:
+ it->ui.cn = c_chr(it->inf.obj);
+ break;
+ case NUM:
+ case BGNUM:
+ case FLNUM:
+ it->ui.vn = it->inf.obj;
+ break;
+ default:
+ break;
+ }
break;
}
}