X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=src%2Fmarkdown.c;h=8471724a6df223ad66e07dac87058b3fd8efc0af;hb=7b546f2a11460bed09b61116c8be38f8decf0440;hp=d5dbe197958944fb4f5ae70f031fcb9e2ae1930e;hpb=2669a43752c6d8386826a1d96fa64c42d9cc77b9;p=smdp.git diff --git a/src/markdown.c b/src/markdown.c index d5dbe19..8471724 100644 --- a/src/markdown.c +++ b/src/markdown.c @@ -61,3 +61,31 @@ 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; + if (slide == NULL) + return; + free(slide); + slide = next; + } + free_line(deck->header); + free(deck); +}