X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=src%2Fparser.c;h=ce3f7028b5345214f83778c2c6ed2fa494610b4a;hb=bdd26d4dde3b3d3180619cc81622081025ca6cb5;hp=7a5498654a6d65a5385033171effad0c07fd8cd3;hpb=43aa3385fb0e78b302a9191789d59115402035f8;p=smdp.git diff --git a/src/parser.c b/src/parser.c index 7a54986..ce3f702 100644 --- a/src/parser.c +++ b/src/parser.c @@ -22,8 +22,10 @@ */ #include +#include #include #include +#include #include "parser.h" @@ -34,20 +36,21 @@ deck_t *markdown_load(FILE *input) { int l = 0; // line length int hc = 0; // header count int lc = 0; // line count - int sc = 0; // slide count + int sc = 1; // slide count int bits = 0; // markdown bits deck_t *deck = new_deck(); - slide_t *slide = new_slide(); + slide_t *slide = deck->slide; line_t *line = NULL; line_t *tmp = NULL; cstring_t *text = cstring_init(); - // assign first slide to deck - deck->slide = slide; - sc++; - while ((c = fgetc(input)) != EOF) { + if (ferror(input)) { + fprintf(stderr, "markdown_load() failed to read input: %s\n", strerror(errno)); + exit(EXIT_FAILURE); + } + if(c == '\n') { // markdown analyse @@ -178,8 +181,8 @@ deck_t *markdown_load(FILE *input) { } // split linked list - line->prev->next = (void*)0; - line->prev = (void*)0; + line->prev->next = NULL; + line->prev = NULL; // remove header lines from slide deck->slide->line = line; @@ -360,9 +363,6 @@ int markdown_analyse(cstring_t *text) { if(text->text[i] == ' ') { spaces++; - } else if(CHECK_BIT(bits, IS_CODE)) { - other++; - } else { switch(text->text[i]) { case '=': equals++; break; @@ -478,8 +478,8 @@ void markdown_debug(deck_t *deck, int debug) { } } -int is_utf8(char ch) { - return (ch & 0x80); +bool is_utf8(char ch) { + return (ch & 0x80) != 0x00; } int length_utf8(char ch) {