X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=src%2Fmarkdown.c;h=c03d307740812dcb65f8e0765966e375b0f8eeb5;hb=354cf2e07ccd0d7900f96bffc279093997cbe203;hp=2db9d684afae19a0acaa041838c2cc9b352a4f0f;hpb=7fc5d3a79deb7bc3ac8faffb6d295c6c3a9154d2;p=smdp.git diff --git a/src/markdown.c b/src/markdown.c index 2db9d68..c03d307 100644 --- a/src/markdown.c +++ b/src/markdown.c @@ -1,6 +1,6 @@ /* * An implementation of markdown objects. - * Copyright (C) 2014 Michael Goehler + * Copyright (C) 2018 Michael Goehler * * This file is part of mdp. * @@ -43,7 +43,7 @@ slide_t *new_slide() { slide_t *x = malloc(sizeof(slide_t)); x->line = NULL; x->prev = x->next = NULL; - x->lines = 0; + x->lines = x->stop = 0; return x; } @@ -62,26 +62,27 @@ deck_t *new_deck() { return x; } -void free_line(line_t *l) { - line_t *n; - while (l) { - n = l->next; - cstring_delete(l->text); - free(l); - l = n; +void free_line(line_t *line) { + line_t *next; + while (line) { + next = line->next; + if(line->text) + (line->text->delete)(line->text); + free(line); + line = next; } } void free_deck(deck_t *deck) { - slide_t *s, *t; + slide_t *slide, *next; if (deck == NULL) return; - s = deck->slide; - while (s) { - free_line(s->line); - t = s->next; - free(s); - s = t; + slide = deck->slide; + while (slide) { + free_line(slide->line); + next = slide->next; + free(slide); + slide = next; } free_line(deck->header); free(deck);