if (whence == SEEK_END)
pos += len;
if (pos < 0 || pos > len)
- bthrow(b, "fb.seek", "Seek out of range");
+ bthrow(b, "seek", "Seek out of range");
b->bptr = b->buffer + pos;
b->bstop = b->buffer;
b->pos = 0;
b->spout = fbgrow_spout;
b->seek = fbgrow_seek;
b->can_overwrite_buffer = 1;
- return fb_tie(b);
+ return b;
}
struct fastbuf *fbgrow_create(unsigned basic_size)
brewind(b);
}
+uns fbgrow_get_buf(struct fastbuf *b, byte **buf)
+{
+ byte *end = FB_GBUF(b)->end;
+ end = MAX(end, b->bptr);
+ if (buf)
+ *buf = b->buffer;
+ return end - b->buffer;
+}
+
#ifdef TEST
int main(void)