aboutsummaryrefslogtreecommitdiffstats
path: root/src/reader.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2021-01-13 12:08:30 +0100
committerDavid Robillard <d@drobilla.net>2021-03-08 23:23:05 -0500
commit7c6c3159d1804f4855d9a4e0cd52486f61fcbab6 (patch)
tree1a678106cccba9bbbfb44deeadfa5bca3606e72c /src/reader.c
parenta90341129953e9b8e0e1d96fa52b10cbf34d1ea1 (diff)
downloadserd-7c6c3159d1804f4855d9a4e0cd52486f61fcbab6.tar.gz
serd-7c6c3159d1804f4855d9a4e0cd52486f61fcbab6.tar.bz2
serd-7c6c3159d1804f4855d9a4e0cd52486f61fcbab6.zip
Add SerdCursor
Diffstat (limited to 'src/reader.c')
-rw-r--r--src/reader.c30
1 files changed, 17 insertions, 13 deletions
diff --git a/src/reader.c b/src/reader.c
index 76b28295..f6c5e056 100644
--- a/src/reader.c
+++ b/src/reader.c
@@ -35,8 +35,7 @@ r_err(SerdReader* reader, SerdStatus st, const char* fmt, ...)
{
va_list args;
va_start(args, fmt);
- const Cursor* const cur = &reader->source.cur;
- const SerdError e = {st, cur->filename, cur->line, cur->col, fmt, &args};
+ const SerdError e = {st, &reader->source.cur, fmt, &args};
serd_world_error(reader->world, &e);
va_end(args);
return st;
@@ -231,7 +230,7 @@ serd_reader_start_stream(SerdReader* reader,
SerdReadFunc read_func,
SerdStreamErrorFunc error_func,
void* stream,
- const char* name,
+ const SerdNode* name,
size_t page_size)
{
return serd_byte_source_open_source(
@@ -252,20 +251,25 @@ serd_reader_start_file(SerdReader* reader, const char* uri, bool bulk)
return SERD_ERR_UNKNOWN;
}
- return serd_byte_source_open_source(&reader->source,
- bulk ? (SerdReadFunc)fread
- : serd_file_read_byte,
- (SerdStreamErrorFunc)ferror,
- (SerdStreamCloseFunc)fclose,
- fd,
- uri,
- bulk ? SERD_PAGE_SIZE : 1);
+ SerdNode* const name = serd_new_uri(SERD_MEASURE_STRING(uri));
+ const SerdStatus st = serd_byte_source_open_source(
+ &reader->source,
+ bulk ? (SerdReadFunc)fread : serd_file_read_byte,
+ (SerdStreamErrorFunc)ferror,
+ (SerdStreamCloseFunc)fclose,
+ fd,
+ name,
+ bulk ? SERD_PAGE_SIZE : 1u);
+ serd_node_free(name);
+ return st;
}
SerdStatus
-serd_reader_start_string(SerdReader* reader, const char* utf8)
+serd_reader_start_string(SerdReader* reader,
+ const char* utf8,
+ const SerdNode* name)
{
- return serd_byte_source_open_string(&reader->source, utf8);
+ return serd_byte_source_open_string(&reader->source, utf8, name);
}
static SerdStatus