diff options
author | David Robillard <d@drobilla.net> | 2018-06-15 09:26:17 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2020-10-27 13:13:58 +0100 |
commit | ce6fbad56fb6970fe507186d6560ad4fac981d74 (patch) | |
tree | bb08acadb802660b221fd29b322e1cb083dd17e6 /src/writer.c | |
parent | c5fb8c6326dfe8c46fe2247e611ae1bf94275da0 (diff) | |
download | serd-ce6fbad56fb6970fe507186d6560ad4fac981d74.tar.gz serd-ce6fbad56fb6970fe507186d6560ad4fac981d74.tar.bz2 serd-ce6fbad56fb6970fe507186d6560ad4fac981d74.zip |
Bring read/write interface closer to C standard
Diffstat (limited to 'src/writer.c')
-rw-r--r-- | src/writer.c | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/src/writer.c b/src/writer.c index b2c6ad72..dbbdfbef 100644 --- a/src/writer.c +++ b/src/writer.c @@ -373,9 +373,11 @@ write_text(SerdWriter* writer, TextContext ctx, } static size_t -uri_sink(const void* buf, size_t len, void* stream) +uri_sink(const void* buf, size_t size, size_t nmemb, void* stream) { - return write_uri((SerdWriter*)stream, (const char*)buf, len); + (void)size; + assert(size == 1); + return write_uri((SerdWriter*)stream, (const char*)buf, nmemb); } static void @@ -873,7 +875,7 @@ serd_writer_new(SerdSyntax syntax, SerdStyle style, SerdEnv* env, const SerdURI* base_uri, - SerdSink ssink, + SerdWriteFunc ssink, void* stream) { const WriteContext context = WRITE_CONTEXT_NULL; @@ -998,24 +1000,21 @@ serd_writer_env(SerdWriter* writer) } size_t -serd_file_sink(const void* buf, size_t len, void* stream) +serd_buffer_sink(const void* buf, size_t size, size_t nmemb, void* stream) { - return fwrite(buf, 1, len, (FILE*)stream); -} + assert(size == 1); + (void)size; -size_t -serd_buffer_sink(const void* buf, size_t len, void* stream) -{ SerdBuffer* buffer = (SerdBuffer*)stream; - buffer->buf = (char*)realloc(buffer->buf, buffer->len + len); - memcpy((uint8_t*)buffer->buf + buffer->len, buf, len); - buffer->len += len; - return len; + buffer->buf = (char*)realloc(buffer->buf, buffer->len + nmemb); + memcpy((uint8_t*)buffer->buf + buffer->len, buf, nmemb); + buffer->len += nmemb; + return nmemb; } char* serd_buffer_sink_finish(SerdBuffer* stream) { - serd_buffer_sink("", 1, stream); + serd_buffer_sink("", 1, 1, stream); return (char*)stream->buf; } |