aboutsummaryrefslogtreecommitdiffstats
path: root/src/reader.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2018-06-03 22:15:53 +0200
committerDavid Robillard <d@drobilla.net>2019-04-13 19:15:32 +0200
commitd77ae556562490d6ce70fed690eca69a18ee4c46 (patch)
treeb1be64c2ce33e7c6fe217503fd173091829133b0 /src/reader.c
parent1cfecadf30286bb146a9f60154dc9d4e48f8d1cb (diff)
downloadserd-d77ae556562490d6ce70fed690eca69a18ee4c46.tar.gz
serd-d77ae556562490d6ce70fed690eca69a18ee4c46.tar.bz2
serd-d77ae556562490d6ce70fed690eca69a18ee4c46.zip
Add SerdCursor to public API
Diffstat (limited to 'src/reader.c')
-rw-r--r--src/reader.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/reader.c b/src/reader.c
index 40c48a41..79e2315e 100644
--- a/src/reader.c
+++ b/src/reader.c
@@ -39,8 +39,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;
@@ -246,7 +245,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(
@@ -267,20 +266,25 @@ serd_reader_start_file(SerdReader* reader, const char* uri, bool bulk)
return SERD_ERR_UNKNOWN;
}
- return serd_byte_source_open_source(
+ SerdNode* const name = serd_new_uri(uri);
+ const SerdStatus st = serd_byte_source_open_source(
&reader->source,
bulk ? (SerdReadFunc)fread : serd_file_read_byte,
(SerdStreamErrorFunc)ferror,
(SerdStreamCloseFunc)fclose,
fd,
- uri,
+ name,
bulk ? SERD_PAGE_SIZE : 1);
+ 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