void memstream_putc(memstream_t *stream, int c) { if (stream->m_ptr < stream->m_size) stream->m_buf[stream->m_ptr++] = c; memstream_update_ptr(stream); }
int memstream_getc(memstream_t *stream) { if (stream->m_ptr >= stream->m_size) return EOF; else return stream->m_buf[stream->m_ptr++]; memstream_update_ptr(stream); }
size_t memstream_write(memstream_t *stream, const void *data, size_t bytes) { size_t avail = stream->m_size - stream->m_ptr; if (bytes > avail) bytes = avail; memcpy(stream->m_buf + stream->m_ptr, data, bytes); stream->m_ptr += bytes; memstream_update_ptr(stream); return bytes; }