| 558 | } |
| 559 | |
| 560 | ssize_t strbuf_read_once(struct strbuf *sb, int fd, size_t hint) |
| 561 | { |
| 562 | size_t oldalloc = sb->alloc; |
| 563 | ssize_t cnt; |
| 564 | |
| 565 | strbuf_grow(sb, hint ? hint : 8192); |
| 566 | cnt = xread(fd, sb->buf + sb->len, sb->alloc - sb->len - 1); |
| 567 | if (cnt > 0) |
| 568 | strbuf_setlen(sb, sb->len + cnt); |
| 569 | else if (oldalloc == 0) |
| 570 | strbuf_release(sb); |
| 571 | return cnt; |
| 572 | } |
| 573 | |
| 574 | ssize_t strbuf_write(struct strbuf *sb, FILE *f) |
| 575 | { |
no test coverage detected