sparkey_returncode buf_add()

in src/buf.c [60:76]


sparkey_returncode buf_add(sparkey_buf *buf, int fd, const uint8_t *data, ptrdiff_t len) {
  while (1) {
    ptrdiff_t remaining = buf_remaining(buf);
    if (remaining >= len) {
      memcpy(buf->cur, data, len);
      buf->cur += len;
      return SPARKEY_SUCCESS;
    } else {
      memcpy(buf->cur, data, remaining);
      buf->cur += remaining;
      data += remaining;
      len -= remaining;
      RETHROW(buf_flushfile(buf, fd));
    }
  }
  return SPARKEY_SUCCESS;
}