diff options
author | David Robillard <d@drobilla.net> | 2018-06-15 09:26:17 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2020-06-21 18:12:03 +0200 |
commit | 10bf7f7ce76d8b679449bfc9ba8b1814a79407fb (patch) | |
tree | ccb0aef1a21bdb603e4125e1b112d6ffd8b4ab53 /src/node.c | |
parent | 531b6c972df84a8f7545af2158236e9d0c3a460c (diff) | |
download | serd-10bf7f7ce76d8b679449bfc9ba8b1814a79407fb.tar.gz serd-10bf7f7ce76d8b679449bfc9ba8b1814a79407fb.tar.bz2 serd-10bf7f7ce76d8b679449bfc9ba8b1814a79407fb.zip |
Bring read/write interface closer to C standard
Diffstat (limited to 'src/node.c')
-rw-r--r-- | src/node.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -211,12 +211,12 @@ serd_uri_string_length(const SerdURI* uri) } static size_t -string_sink(const void* buf, size_t len, void* stream) +string_sink(const void* buf, size_t size, size_t nmemb, void* stream) { char** ptr = (char**)stream; - memcpy(*ptr, buf, len); - *ptr += len; - return len; + memcpy(*ptr, buf, size * nmemb); + *ptr += size * nmemb; + return nmemb; } SerdNode* @@ -286,15 +286,15 @@ serd_node_new_file_uri(const char* path, SerdBuffer buffer = { uri, uri_len }; for (size_t i = 0; i < path_len; ++i) { if (evil && path[i] == '\\') { - serd_buffer_sink("/", 1, &buffer); + serd_buffer_sink("/", 1, 1, &buffer); } else if (path[i] == '%') { - serd_buffer_sink("%%", 2, &buffer); + serd_buffer_sink("%%", 1, 2, &buffer); } else if (!escape || is_uri_path_char(path[i])) { - serd_buffer_sink(path + i, 1, &buffer); + serd_buffer_sink(path + i, 1, 1, &buffer); } else { char escape_str[4] = { '%', 0, 0, 0 }; snprintf(escape_str + 1, sizeof(escape_str) - 1, "%X", path[i]); - serd_buffer_sink(escape_str, 3, &buffer); + serd_buffer_sink(escape_str, 1, 3, &buffer); } } serd_buffer_sink_finish(&buffer); |