From 46ec4da981af45591d25cb54c47a0afd061306c2 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Sat, 29 Nov 2014 17:05:00 +0100 Subject: Push parser interface Replace cmark_parser_process_line with cmark_parser_push that takes arbitrary chunks of data. Also fixes #211. --- src/main.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 3a7ea4c..87cc151 100644 --- a/src/main.c +++ b/src/main.c @@ -35,7 +35,7 @@ int main(int argc, char *argv[]) int *files; char buffer[4096]; cmark_parser *parser; - size_t offset; + size_t bytes; cmark_node *document; parser = cmark_parser_new(); @@ -69,9 +69,8 @@ int main(int argc, char *argv[]) } start_timer(); - while (fgets((char *)buffer, sizeof(buffer), fp)) { - offset = strlen((char *)buffer); - cmark_parser_process_line(parser, buffer, offset); + while ((bytes = fread(buffer, 1, sizeof(buffer), fp)) > 0) { + cmark_parser_push(parser, buffer, bytes); } end_timer("processing lines"); @@ -85,9 +84,8 @@ int main(int argc, char *argv[]) exit(0); */ - while (fgets((char *)buffer, sizeof(buffer), stdin)) { - offset = strlen((char *)buffer); - cmark_parser_process_line(parser, buffer, offset); + while ((bytes = fread(buffer, 1, sizeof(buffer), stdin)) > 0) { + cmark_parser_push(parser, buffer, bytes); } } -- cgit v1.2.3