grand *rr = va_arg(ap, grand *);
rr->ops->fill(rr, g->d.p, g->d.sz);
} break;
- case DSARAND_PASSES:
- g->d.passes = va_arg(ap, unsigned);
- break;
+ case DSARAND_PASSES: {
+ unsigned n = va_arg(ap, unsigned);
+ rc = g->d.passes;
+ if (n > 0) g->d.passes = n;
+ } break;
case DSARAND_SEEDSZ:
rc = g->d.sz;
break;
"dsarand",
0, 0,
gmisc, gdestroy,
- grand_word, grand_byte, grand_word, grand_range, gfill
+ grand_defaultword, grand_defaultbyte, grand_defaultword,
+ grand_defaultrange, gfill
};
/* --- @dsarand_create@ --- *