char *buffer = ds_put_uninit (st, try_bytes);
size_t got_bytes = fread (buffer, size, cnt, stream);
ds_truncate (st, ds_length (st) - (try_bytes - got_bytes));
char *buffer = ds_put_uninit (st, try_bytes);
size_t got_bytes = fread (buffer, size, cnt, stream);
ds_truncate (st, ds_length (st) - (try_bytes - got_bytes));