X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=src%2Fmarkdown.c;h=c03d307740812dcb65f8e0765966e375b0f8eeb5;hb=354cf2e07ccd0d7900f96bffc279093997cbe203;hp=d5dbe197958944fb4f5ae70f031fcb9e2ae1930e;hpb=2669a43752c6d8386826a1d96fa64c42d9cc77b9;p=smdp.git diff --git a/src/markdown.c b/src/markdown.c index d5dbe19..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; } @@ -61,3 +61,29 @@ deck_t *new_deck() { x->slides = x->headers = 0; return x; } + +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 *slide, *next; + if (deck == NULL) + return; + slide = deck->slide; + while (slide) { + free_line(slide->line); + next = slide->next; + free(slide); + slide = next; + } + free_line(deck->header); + free(deck); +}