pos += len;
if (pos < 0 || pos > len)
bthrow(f, "seek", "Seek out of range");
- f->bptr = f->buffer + pos;
- f->bstop = f->buffer;
- f->pos = 0;
+ f->bstop = f->bptr = f->buffer + pos;
+ f->pos = pos;
return 1;
}
void
-fbbuf_init_read(struct fastbuf *f, byte *buf, uns size, uns can_overwrite)
+fbbuf_init_read(struct fastbuf *f, byte *buf, uint size, uint can_overwrite)
{
*f = (struct fastbuf) {
.buffer = buf,
}
void
-fbbuf_init_write(struct fastbuf *f, byte *buf, uns size)
+fbbuf_init_write(struct fastbuf *f, byte *buf, uint size)
{
*f = (struct fastbuf) {
.buffer = buf,
.bptr = buf,
.bufend = buf + size,
.name = "fbbuf-write",
- .pos = size,
.spout = fbbuf_spout,
};
}